Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:
Nemáš dostatočné oprávnenia.

Diskusia – 8. diel - Podmienky (vetvenie) v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Daniel Tesař:14.3.2017 19:26

Ahoj, mam problem z else jestli někdo nevíte, vždycky když použiju metodu else tak automaticky mi to vyplivne chybu v tom řádku a nevim si rady jak to opravit, prikladam fotku :), za pomoc budu velmi vděčný.

System je OSX.
Dan

Editované
Odpovedať
Tvořím. Analyzuju. Letím dál.
Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na Daniel Tesař
pocitac770:14.3.2017 19:44

Za if se nepíše středník, není to konec logiky (logika klauzule if je ve složených závorkách), takhle to bere jako obyčejný kus kódu.

Editované
Avatar
Odpovedá na pocitac770
Daniel Tesař:14.3.2017 23:48

Super :) tak proto, ještě jednou děkuju, sam sem si nad tim lamal hlavu a vubec mi to nedošlo

Odpovedať
Tvořím. Analyzuju. Letím dál.
Avatar
Neaktivní uživatel:12.4.2017 21:20

Naozaj skvelé články David. Baví ma to

Odpovedať
Neaktivní uživatelský účet
Avatar
Maroš Škumát:17.4.2017 23:00

Môže mi niekto vysvetliť aký význam tam má to Windows-1250 ? :)

Scanner sc = new Scanner("Windows-1250");
Avatar
Adam Ježek
Tvůrce
Avatar
Odpovedá na Maroš Škumát
Adam Ježek:18.4.2017 3:33

To bude asi kódování, aby speciální znaky (žščř...) vypadaly jak mají.

Odpovedať
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Kuba
Člen
Avatar
Kuba:1.5.2017 20:29

Ahoj, vytvořil jsem si amaterskou kalkulačku na kvadratické rovnice a přijde mi, že obsahuje poměrně hodně "ifů/elsů", zůstává "program" stále efektivní, nebo se již na dělení využívá jiná metoda? Dále pokud vytvořím cyklus x++, jak zadám, aby se cyklus zvýšil pouze o 0.5 a ne 1.0? Díky za Váš čas :)

package kvadrrovn;
import java.util.Scanner;

public class KvadrRovn {

    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in, "UTF-8");

       String repete = "ano";
       while (repete.contains("ano")) {

       System.out.println("Zadejte postupně hodnoty základního tvaru kvadratické rovnice:");
       System.out.println("ax2 + bx + c = 0");
       System.out.println("Zadej hodnotu a: [??x2 + bx + c = 0]");
       double a = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadej hodnotu b: [" + a + "x2 + ??x + c = 0]");
       double b = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadej hodnotu c: [" + a + "x2 + " + b + "x + ?? = 0]");
       double c = Double.parseDouble(sc.nextLine().trim());
       System.out.println("Zadání je: [" + a + "x2 + " + b + "x + " + c + " = 0]" );

       double D = (Math.pow(b, 2)) - (4 * a * c);
       if (a != 0){
           System.out.println("Diskriminant = " + D);
       if (D == 0) {
           System.out.println("Diskriminant je roven nule.\nRovnice má jedno 'dvoujnásobné' řešení: x1 = -b / 2*a");
           double x1D0 = -b / (2*a);
           System.out.println("Výsledek: x1 = " + x1D0);
       }
       else if (D < 0){
           System.out.println("Diskriminant je záporný.\nVýsledek: Rovnice nemá řešení v oboru reálných čísel.");
       }
       else {
           System.out.println("Diskriminant je kladný.\nVýsledek: Rovnice má 2 různá řešení:");
           double x1 = (-b + Math.sqrt(D)) / (2 * a);
           double x2 = (-b - Math.sqrt(D)) / (2 * a);
           System.out.println("x1 = " + x1 + "\nx2 = " + x2);
       }
       if (D >= 0){
       System.out.println("Nyní si dosadíme nějaké hodnoty pro nakreslení grafu:\nTabulka: [x;y]");

       for (int x = -5; x <= 5; x ++) {
          double y = a * Math.pow(x, 2) + b * x + c;
       System.out.println("[" + x +  ";" + y + "]");
       }

       }
         }
       else {
              System.out.println("a = 0, nejedná se o kvatratickou rovnici, ale lineární!");
               }

       System.out.println("Pokud chcete zadat další rovnici napište 'ano', pro ukončení jen zmáčkněte enter");
       repete = sc.nextLine().toLowerCase().trim();
       }
    }

}
Avatar
gcx11
Tvůrce
Avatar
Odpovedá na Kuba
gcx11:2.5.2017 0:19
for (double x = -5; x <= 5; x += 0.5d)

Ale počítej s tím, že to nemusí být přesné kvůli tomu, že se to ukládá do double. Lepší by bylo IMHO toto:

for (int y = -10; y <= 10; y += 10)
{
    double x = y/2.0d;
}
Editované
Avatar
Kuba
Člen
Avatar
Odpovedá na gcx11
Kuba:2.5.2017 17:04

Děkuji, musím si nastudovat proč se používá znak += a ne jen +. Nicméně druhá varianta nefunguje úplně tak jak má, chci do y (dle tvého kódu) dosadit hodnoty po jedné polovině, pak mi ale i x vyhází poloviční hodnoty. Ještě na to musím mrknout, každopádně znaménko += vyřešilo můj problém. Na přesnosti výpočtu zamakám později. Díky!

Avatar
pocitac770
Tvůrce
Avatar
Odpovedá na Kuba
pocitac770:2.5.2017 18:57
//přičte 1 k proměnné i
i++;
i = i + 1;
//přičte b k proměnné a
a += b;
a = a + b;
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 149.