Java vs. já 1:0

HackForum

Java vs. já 1:0#
Javu se teprv učím(jsem megalama) a za boha se mi nedaří zprovoznit argumenty z příkazového řádku. Pokouším se vytvořit prográmek na počítání kvydratických rovnic. Ale vždy chyba při kompilaci. (je dost možné že to nějak míchám s PHP a proto to mi nefunguje)

class test{
public static void main(String arg[]) {
double a = arg[0];
double b = arg[1];
double c = arg[2];
double diskriminant = (( b * b ) - 4 * a * c) ;
if (diskriminant < 0 ) {
System.out.println("Nema reseni");
} else {
double prvniKoren = ((( - 1 * b ) + Math.sqrt(diskriminant)) / ( 2 * a ));
double druhyKoren = ((( - 1 * b ) - Math.sqrt(diskriminant)) / ( 2 * a ));
System.out.println("x1 = " + prvniKoren + "\n" + "x2 = " + druhyKoren);
}
}
}


výpis chyby:
test.java:3: incompatible types
found : java.lang.String
required: double
double a = arg[0];
^
test.java:4: incompatible types
found : java.lang.String
required: double
double b = arg[1];
^
test.java:5: incompatible types
found : java.lang.String
required: double
double c = arg[2];
^
(odpovědět)
anthAncze | 213.192.59.*20.11.2007 18:52
re: Java vs. já 1:0#
Javu neumím, ale vypadá to, že se ti hádají dva rozdílné typy proměnných.

double a = arg[0];
double b = arg[1];
double c = arg[2];

a,b,c jsou typu double, kdežto
arg[0], arg[1], arg[2] jsou typu string. Musíš ty argumenty nějak přetypovat, než je přiřadíš do double.

----------
Get enlightened!
(odpovědět)
mr.Crow | E-mail | Website20.11.2007 19:02
re: Java vs. já 1:0#
to už jsem zkusil, ale nevim jestli jsem to napsal správně.

double a = ( double ) arg[0];
double b = ( double ) arg[1];
double c = ( double ) arg[2];
(odpovědět)
anthAncze | 213.192.59.*20.11.2007 19:29
re: Java vs. já 1:0#
class anthan{
public static void main(double arg[]) {
double a = arg[0];
double b = arg[1];
double c = arg[2];
double diskriminant = (( b * b ) - 4 * a * c) ;
if (diskriminant < 0 ) {
System.out.println("Nema reseni");
} else {
double prvniKoren = ((( - 1 * b ) + Math.sqrt(diskriminant)) / ( 2 * a ));
double druhyKoren = ((( - 1 * b ) - Math.sqrt(diskriminant)) / ( 2 * a ));
System.out.println("x1 = " + prvniKoren + "\n" + "x2 = " + druhyKoren);
}
}
}

----------
cd home/fridge/
chown 007 /beer
./drinkbitchdrinkX-P
(odpovědět)
prat3 | Website20.11.2007 21:33
re: Java vs. já 1:0#
nezamenuj datove typy;)

----------
cd home/fridge/
chown 007 /beer
./drinkbitchdrinkX-P
(odpovědět)
prat3 | Website20.11.2007 21:34
re: Java vs. já 1:0#
Zkus to takto:

import java.util.Scanner;
class test{
public static void main(String arg[]) {
Scanner vstup = new Scanner(arg[0] + " "+ arg[1] + " " + arg[2]);
double a = vstup.nextDouble();
double b = vstup.nextDouble();
double c = vstup.nextDouble();System.out.println(a + " " + b + " " + c);
double diskriminant = (( b * b ) - 4 * a * c) ;
if (diskriminant < 0 ) {
System.out.println("Nema reseni");
} else {
double prvniKoren = ((( - 1 * b ) + Math.sqrt(diskriminant)) / ( 2 * a ));
double druhyKoren = ((( - 1 * b ) - Math.sqrt(diskriminant)) / ( 2 * a ));
System.out.println("x1 = " + prvniKoren + "\n" + "x2 = " + druhyKoren);
}
}
}
(odpovědět)
L3tM31n | E-mail20.11.2007 22:05
re: Java vs. já 1:0#
argumenty prikazovy radky jsou v textovy podobe... musis je predelat na double

double a = Double.parseDouble(args[1]);
double b = Double.parseDouble(args[2]);
double c = Double.parseDouble(args[3]);

(odpovědět)
naked_ | 81.92.155.*21.11.2007 11:30
re: Java vs. já 1:0#
dík, tohle pomohlo
(odpovědět)
anthAncze | 213.192.59.*21.11.2007 15:14

Zpět
 
 
 

 
BBCode