Stránka 1 z 10

Pomozte s programováním v Javě

Napsal: 24 říj 2011 16:30
od Funstorm007
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.

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

Napsal: 24 říj 2011 16:43
od CZechBoY
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);
}

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

Napsal: 24 říj 2011 16:58
od Funstorm007
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?

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

Napsal: 24 říj 2011 17:06
od CZechBoY
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

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

Napsal: 24 říj 2011 18:07
od Funstorm007
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...

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

Napsal: 24 říj 2011 18:17
od CZechBoY
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/

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

Napsal: 24 říj 2011 19:10
od Funstorm007
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?

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

Napsal: 24 říj 2011 21:25
od CZechBoY
možná to bere rovnou z Windowsu, zkus si nastavit desetinnou tečku ve Winu

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

Napsal: 24 říj 2011 22:20
od Funstorm007
Co co? A kde prosimtě? A fungovalo by to pak i jinde než na mojim PC?

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

Napsal: 24 říj 2011 22:32
od CZechBoY
podle nastavení Windowsu

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

Napsal: 24 říj 2011 23:26
od Funstorm007
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

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

Napsal: 25 říj 2011 07:45
od CZechBoY
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