Java vs. já 1:0
HackForum
| 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 |
|
|
|
| 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) | |
|
|
| 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 |
|
|
|
| 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) | |
|
|
| nezamenuj datove typy;)
----------
cd home/fridge/
chown 007 /beer
./drinkbitchdrinkX-P (odpovědět) | |
|
|
| 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) | |
|
|
| 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 |
|
|
|
| dík, tohle pomohlo (odpovědět) | anthAncze | 213.192.59.* | 21.11.2007 15:14 |
|
|
|