Pomozte s programováním v Javě

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 16:30

Zdravím,
učím se teď programovat v Javě ale problém je v tom, že když se mi to polopatě nevysvětlí, nepochopím to. No, bude toho víc ale prozatím potřebuju pomoct s tímto programem:

Kód: Vybrat vše

import java.util.*;

public class XXX {
   
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("Zadej cislo a: ");
      int a1 = sc.nextInt();
      System.out.print("Zadej cislo b: ");
      int a2 = sc.nextInt();
      System.out.println("---Vysledky---");
      double x = (double) (-a2)/a1;
      System.out.println("Rovnice: " + a1 + " * x + " + a2 + " = 0");
      if (a1 == 0 && a2 == 0) {
         System.out.println("ma nekonecne reseni");
      }
      if (a1 == 0) {
         System.out.println("nema reseni v R");
      }
      if (a2 == 0) {
         System.out.println("ma reseni x = 0.0");
      }
      if (a1 != 0 && a2 != 0) {
         System.out.println("ma reseni x = " + x);
      }
   }
}


A problém: Mám tam čtyři podmínky při čemž jak z nich plnyne, když bude a1 i a2 rovno nule, program vypíše rovnici 0 * x + 0 =0 a pod to "ma nekonecne reseni". A tak dál, myslím, že se v tom už vyznáte. Problém je v tom, že když určím poslední tři podmínky, výsledek se zobrazuj správně a ukáže se pouze 1 výpis a rovnice ale u té první if (a1 == 0 && a2 == 0) se mi ukáže výpis všech podmínek. Proč? Myslím, že s tím bude mít co dočinění to else ale to už jsem nepochopil jak že to funguje takže nevím...

BTW, omlouvám se jestli jsem to podal jako tatar ale jsem v tom vážně úplná lamka... Díky.

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 24 říj 2011 16:43

co to zkusit přes else ify?
java píše: if (a1 == 0 && a2 == 0) {
System.out.println("ma nekonecne reseni");
}
else if (a1 == 0) {
System.out.println("nema reseni v R");
}
else if (a2 == 0) {
System.out.println("ma reseni x = 0.0");
}
else {
System.out.println("ma reseni x = " + x);
}
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 16:58

Já jsem říkal, že tam to else někam patří ale nevěděl jsem jak a kam ho tam umístit páč to nechápu. Kdyby těch podmínek bylo ještě víc tak to začne tím if, pak několikrát else if a nakonec jen else?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 24 říj 2011 17:06

IF je podmínka, pokud se nesplní testuje se další podmínka ELSE IF, pokud ani ta se nevyhodnotí jako pravda tak přejde k dalšímu ELSE IF, .. až nakonec přejde k ELSE, které se provede pokud neplatí žádná z výše uvedených podmínek
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 18:07

OK, takhle přesně jsem to potřeboval vysvětlit, díky. A mám tu další zádrhel. :D Mám program:

Kód: Vybrat vše

import java.util.*;

public class XXX {
   
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("Zadej realne cislo: ");
      int x = sc.nextInt();
      System.out.println("---Vysledky---");
      if (x > 0) {
         System.out.print("10^" + x + " = " + Math.pow(10, x));
      }
      else if (x < 0) {
         System.out.print( Math.abs(x) + " odmocnina z 10 = " + Math.pow(10, 1/Math.abs(x)));
         }
      else {
         System.out.print("Vstup = 0.0");
      }
   }
}


A potřebuju aby x bylo jakékoliv reálné číslo s tím, že desetinná čárka bude vždy tečka. :D To zní hloupě, prostě desetinný oddělovač bude vždy tečka. Hledal jsem a hledal ale nenašel...

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 24 říj 2011 18:17

taknedávej datový typ INT (integer, celé číslo od -2^32 do 2^32), ale datový typ FLOAT (doufám že je v Javě taky :D), případně double, single
http://programujte.com/clanek/200705020 ... nne-4-dil/
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 19:10

Vskutku, když to tedy udělám takhle:

Kód: Vybrat vše

double x = sc.nextDouble();


tak to funguje, ovšem ale jen s čárkou jako desetinným oddělovačem. Jak to tedy udělat aby to fungovalo s tečkou?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 24 říj 2011 21:25

možná to bere rovnou z Windowsu, zkus si nastavit desetinnou tečku ve Winu
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 22:20

Co co? A kde prosimtě? A fungovalo by to pak i jinde než na mojim PC?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 24 říj 2011 22:32

podle nastavení Windowsu
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Funstorm007
Level 5
Level 5
Příspěvky: 2029
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Pomozte s programováním v Javě

Příspěvekod Funstorm007 » 24 říj 2011 23:26

No jasně, ale já potřebuju aby mi to šlo zadávat s desetinnou tečkou vždy. Ikdyž si to nastavím tady u sebe na PC takhle, půjdu na NB a tam už to zase nepůjde. Potřebuju to nastavit tak, abych tam čísla zadával s desetinnou tečkou a s desetinnou tečkou se mi i vracela... Brouzdal jsem po netu a tam jsem se dočetl, že by to mělo být deafultně nastavené na čárku no ale nikde už jsem nenašel návod "změňe si desetinný oddělovač snadno a rychle". Víš jak to myslím... :D

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomozte s programováním v Javě

Příspěvekod CZechBoY » 25 říj 2011 07:45

já Javu neznám tak nevim jak to tam je ;)
v krajním případě (kdyby se nic nenašlo na Googlu) tak bych to řešil přes STRING a ručně tu čárku přepisoval za tečku a přetypoval na double/float/single
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů