Diskuze: Neviem zopakovať cyklus
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Všeobecně (ve všech jazycích) funguje "while" dokud je platná podmínka. Pokud ti cyklus nefunguje, zkontroluj podmínku. Koukni se, jaký výsledek proměnných ti z toho leze.
Keď píšeš otázku tak si všimni, že troška vyššie je taká ikonka
smajlíka a napravo od nej je ikonka </>. Keď na ňu klikneš a potom
medzi ten text ktorý ti pribudol vložíš svoj kód tak to tu na stránke bude
pekne farebné ako u teba keď to píšeš Eclipse 
Cyklus nezopakuješ pretože program nejde ani zbuildovať
Java je case sensitive takže premenná double x je úplne iná než double X
Nepoužívaj diakritiku v názvoch premenných
čislo ,
najlepšie je hneď od začiatku písať všetko v angličtine
Scanner ti slúži na načítavanie vstupu od užívateľa a ten nemusí byť vždy len číslo tak prečo si premennú nazývať číslo? Nazvime ju scanner a potom z metód Scannera bude jasne vidno čo od neho chceme
Pre načítanie čísla zo vstupu je lepšie načítať celý riadok a nakoniec to parsovať Double.parseDouble(scanner.nextLine())
Keď máš viacero podmienok ktoré závisia od rovnakej premennej a vieš, že vždy nastane len jeden prípad tak nepoužívaj viacero samostatných if-ov za sebou ale použi aj vetvu else, tak sa nemusia kontrolovať ostatné podmienky ak niektorá pred nimi už platila
Keďže do tých premenných a, b, c... v každom cykle načítame nové hodnoty tak ich vytiahneme pred ten cyklus nech sa dookola nealokujú nové
V prípade, že rovnica má len jeden koreň nepotrebuješ ďalšiu premennú do ktorej ho ukladať ale môžeš ju uložiť už do existujúcej x1
Desatinné čísla neporovnávaj priamo cez == z dôvodu toho ako sa ukladajú do pamäte tam vznikajú odchýlky. Buď to porovnaj s nejakou malou odchýlkou 0,00001 alebo či jedno je < prípade > a ak ani jedno neplatí tak budú rovnaké
Keď už Scanner nebudeš používať uvoľni prostriedky OS príkazom scanner.close()
Nakoniec o riadiacej premennej musí ten cyklus vedieť že existuje ešte pred tým než sa doňho vojde takže premennú do ktorej uložíme nakoniec rozhodnutie či sa má cyklus zopakovať deklarujeme ešte pred cyklom s tým že ju nazveme nejako lepšie než X alebo cmd
PS: je obor reálnych čísiel a nie oDbor
+ treba doplniť kontrolu či
a nie je nula aby si ňou nedelil
private static final String nextInputChar = "X";
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
double a, b, c, D, x1, x2;
String nextInput;
do {
System.out.print("Zadaj a: ");
a = Double.parseDouble(scanner.nextLine());
System.out.print("Zadaj b: ");
b = Double.parseDouble(scanner.nextLine());
System.out.print("Zadaj c: ");
c = Double.parseDouble(scanner.nextLine());
D = (b * b) - 4 * a * c;
//TODO pridat kontrolu ci a nie je nula
if (D < 0) {
System.out.println("D = " + D);
System.out.println("Kvadratická rovnica nemá žiadne riešenie v obore R!");
} else if (D > 0){
x1 = (-b + sqrt(D)) / (2 * a);
x2 = (-b - sqrt(D)) / (2 * a);
System.out.println("D = " + D);
System.out.println("Prvý koreň kvadratickej rovnice, x1 = " + x1);
System.out.println("Druhý koreň kvadratickej rovnice, x2 = " + x2);
} else {
x1 = (- b) / (2 * a);
System.out.println("D = " + D);
System.out.println("Kvadratická rovnica má len jeden koreň, x = " + x1);
}
System.out.println("Pre další príklad vpíš tlačidlo " + nextInputChar + " a potom enter");
nextInput = scanner.nextLine();
} while(nextInput.equals(nextInputChar));
scanner.close();
}
Zobrazeno 3 zpráv z 3.