Avatar
NunuKrysa
Člen
Avatar
NunuKrysa:

Ahojte robím si do školy jednoduchý program na výpočet lin.rovnice, môžete mi poradiť prečo mi vypisuje error, prípadne čo by šlo urobiť jednoduchšie ?

package (blablabla..:D)
import java.util.Scanner;
public class Ppa1_cv04_1_A­16B0052K {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in, "Windows-1250");
System.out.prin­tln("Zadej cislo a:");
int a = sc.nextInt();
System.out.prin­tln("Zadej cislo b:");
int b = sc.nextInt();
int x ;
x = (0 - b)/ a;
System.out.prin­tln("---Vysledky---");
System.out.prin­tln("Rovnice:" + a + " * x + " + b + " = 0");
if ((a==0) && (b==0)) {
System.out.prin­tln("ma nekonecne reseni");
}
if ((a==0) && (b != 0)){
System.out.prin­tln("nema reseni v R");
}
if ((a!=0) && (b != 0)){
System.out.println ("ma reseni x = " + x);
}

}

Editováno 9. října 20:59
 
Odpovědět 9. října 20:59
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

chybí ti na konci jedna závorka... v jave nedělám, ale zkus to krokovat... jinak neměl bys tam mít kontrolu, aby to včas odchytilo "a" které by bylo nulou,abys jí nedělil?

Nahoru Odpovědět 9. října 21:24
Čím víc vím, tím víc věcí nevím.
Avatar
NunuKrysa
Člen
Avatar
Odpovídá na David Hynek
NunuKrysa:

Zatvorku som len zabudla skopirovat :D
Int x som dala do poslednej if metody, takze tie prve dve if mi spocita dobre.
Aspon nieco, ale zas teraz som si vsimla ze v zadani ma vyjst vysledok ako desatinne cislo a vobec mi to nepocita ked su cisla liche. :D nejaka rada ? (int x som zmenila na double x)

blablabla
public static void main(String[] args) {
Scanner sc = new Scanner (System.in, "Windows-1250");
System.out.prin­tln("Zadej cislo a:");
int a = sc.nextInt();
System.out.prin­tln("Zadej cislo b:");
int b = sc.nextInt();

System.out.prin­tln("---Vysledky---");
System.out.prin­tln("Rovnice: " + a + " * x + " + b + " = 0");
if ((a==0) && (b==0)) {
System.out.prin­tln("ma nekonecne reseni");
}
if ((a==0) && (b != 0)){
System.out.prin­tln("nema reseni v R");
}
if (a != 0){
double x ;
x = (0 - (b))/a;
System.out.println ("ma reseni x = " + x);
}

}

}
to b-cko na konci som dala do zatvorky, ci to nahodou nepojde, ale nejde :D

Editováno 9. října 21:29
 
Nahoru Odpovědět 9. října 21:27
Avatar
Petr Stastny
Redaktor
Avatar
Odpovídá na NunuKrysa
Petr Stastny:

Na to se nejde dívat. Dávej kód prosím do té značky </>, hned vedle smajlíků. Pak je to čitelný. :-)

public static void main(String[] args) {
Scanner sc = new Scanner (System.in, "Windows-1250");
System.out.println("Zadej cislo a:");
int a = sc.nextInt();
System.out.println("Zadej cislo b:");
int b = sc.nextInt();

System.out.println("---Vysledky---");
System.out.println("Rovnice: " + a + " * x + " + b + " = 0");
if ((a==0) && (b==0)) {
System.out.println("ma nekonecne reseni");
}
if ((a==0) && (b != 0)){
System.out.println("nema reseni v R");
}
if (a != 0){
double x ;
x = (0 - (b))/a;
System.out.println ("ma reseni x = " + x);
}

}

}
Editováno 9. října 21:32
 
Nahoru Odpovědět 9. října 21:31
Avatar
NunuKrysa
Člen
Avatar
NunuKrysa:

Dakujem :) este som kod takto nevkladala, ale uz sa to nestane, tiez sa mi to zda neprehladne :)

 
Nahoru Odpovědět 9. října 21:33
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:
  1. když postuješ kód, formátuj ho přes tady ty špičaté závorky nebo zmačkni ctrl+k
  2. ticket v podobě "vypisuje error" je tak trošku nejednoznačný - příště piš přímo celý název exceptiony, kterou ti to háže. Takhle si můžeme myslet, že je chyba v tom, že ti v ledničce došlo mlíko-.-
  3. je to tou závorkou a jménem. Nevím, kdes přišel k tak debilnímu jménu třídy - jestli někdo z ní pozná, že se jedná o nějakou funkci, tak je frajer

Takže takhle vypadá ten tvůj kód, který "funguje":

import java.util.Scanner;

public class Function {

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

A teď připomínky k řešení:

  1. problém ti nastal naprosto ze zřejmé věci - piš čitelněji kód, dodržuj konvence a když nějakou hlavičkou něco otevřeš, tak uzavírací závorku piš na té úrovni toho řádku, kde začínala hlavička - tuhle chybu bys hned uviděl
  2. srozumitelnější název. Název: "Ppa1_cv04_1_­A16B0052K" je slušně řečeko hovadina. Připomíná to trošku hash, ale ten už by jako název neměl být vůbec. Takže tohle zlepši
  3. nejde rozeznat, co je a a co b (jestli to jsou parametry rovnice y a x nebo k a q... případně u obecné rovnice indexi - ax(na druhou) + bx + c = 0)

Prostě a stručně - lépe identifikuj a klidně i pro zadávání popisuj, co vlastně má ten dotyčný doplnit. Jinak na začátečnícký projekt by to šlo a není důvod to přepisovat do něčeho složitějšího, to uděláš časem sám:)

PS: neber tyto poučky ve zlém - radím ti, co je blbě a co fixnout;)

Nahoru Odpovědět 9. října 21:41
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Lubor Pešek
Lubor Pešek:

jinak ještě se na to dívám a třeba by se dalo vytknout, že na jednom řádku deklaruješ lokálně x a hned na druhém jej inicializuješ. Nebo ta závorka (0-b).... nechci být pedant, ale nejsou v takovém případě všechna b záporná? pak stačí napsat rovnou (-b). Ale tak to jsou už jen kosmetické úpravy:) jen tak mimochodem

Nahoru Odpovědět 9. října 21:44
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
NunuKrysa
Člen
Avatar
Odpovídá na Lubor Pešek
NunuKrysa:

Jo to bude ono :D :D uz je vela hodin a moc mi to nemysli :D idem to skusit opravit. Lebo mi to nejak blbo pocitalo a nevedela som prist na to preco..Inak mi to uz sppusta v pohode, ziadne errory.

+ten nazov suboru bohuzial neovplyvnim kedze je potrebne ho zadat kvoli validaci na skolskom webe..ja by som to nevymyslela :D :D

A v zlom to neberiem, ja som vdacna za kazdu radu :D

 
Nahoru Odpovědět 9. října 21:50
Avatar
NunuKrysa
Člen
Avatar
NunuKrysa:

Takže už to funguje všetko ako má. :)

finálna verzia :D :

import java.util.Scanner;
public class Ppa1_cv04_1_A16B0052K {
    public static void main(String[] args) {
        Scanner sc = new Scanner (System.in, "Windows-1250");
        System.out.println("Zadej cislo a:");
        int a = sc.nextInt();
        System.out.println("Zadej cislo b:");
        int b = sc.nextInt();
        System.out.println("---Vysledky---");
        System.out.println("Rovnice: " + a + " * x + " + b + " = 0");
        if ((a==0) && (b==0)) {
            System.out.println("ma nekonecne reseni");
        }
        if ((a==0) && (b != 0)){
            System.out.println("nema reseni v R");
        }
        if (a != 0){
            double y ;
                    y = 0 - (b);
            double x ;
                x = y/a;
            System.out.println ("ma reseni x = " + x);
        }
    }

}
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět 9. října 21:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.