Java do - schleife Problem

AMD_Rulez

Lieutenant
Registriert
Feb. 2010
Beiträge
582
Hallo ich programmiere Java mit dem Cimson Editor.
Meinen Quellcode mag er leider nicht kompilieren da ein Fehler auftritt.
Guckt euch bitte mal meinen Code an ob ihr was findet oder Verbessrungsvorschläge habt:

import java.util.*;
public class BerechnungX
{
public static void main(String argv[])
{
double a;
double b;


Scanner input = new Scanner(System.in);
System.out.println("Mit diesem Programm können Sie den Wert x der Formel ax+b=0 berechnen.");
System.out.println("Geben Sie bitte den Wert für a ein: ");


do {
a = Double.parseDouble(input.nextLine());

if (a = 0 )
{
System.out.println("Sie haben a den Wert 0 zugewiesen. Diese Gleichung ist nicht lösbar.");
System.out.println("Geben Sie bitte eine neuen Wert für a ein.");
}
}while (a=0);



System.out.println("Geben Sie bitte den Wert für b ein: ");
b = Double.parseDouble(input.nextLine());

double x=(-b)/a;

System.out.println("Der Wert von X beträgt " +x+ " Dieses Programm ist zu ende.");
}
}





Danke im Vorraus
 
Danke an samotyr :)
@ WingX

Ganz einfach:
ich muss die gleichung nach x auflösen logischerweise;) tue ich das heist die gleichung so : x=(-b)/a

wenn du jetzt für a 0 einsetzt teilst du durch 0
schonmal durch 0 geteilt?!:D was sollte deiner meinung da raus kommen ?
ansonsten guck mal hier :http://de.wikipedia.org/wiki/Division_%28Mathematik%29
 
naja, nicht lösbar nach dem algorithmus in seinem Programm:


double x=(-b)/a;

Durch 0 teilen geht halt nicht ;)
 

Aufgrund dieser Formel ist es nicht lösbar im obigen Beispiel :)

edit
Da waren wohl einige schneller :-D
 
Dass das in deinem Algorithmus nicht geht, ist mir klar. Deswegen ja auch als "mathematische" Frage gestellt. Sinnvollerweise solltest du den Fall a=0 als Sonderfall einbauen, denn das ist bei der Gleichung sehr wohl möglich, x ist dann unbestimmt und kann jeglichen Wert annehmen, b ist zwingend = 0.
Außerdem solltest du dich um Exceptionhandling kümmern, was würde passieren, wenn ich für a oder b folgendes eingeben würde: "Exceptions sind blöd..."? Oder war das im Stoff noch nicht dran?
 
Die Gleichung ist nicht lösbar? Mathematisch ist das verkehrt.

ax + b = 0
Mit a = 0 folgt
0x + b = 0

Das wiederum heisst, dass der Wahrheitsgehalt dieser Gleichung nicht von x abhängig ist. Die Gleichung hat damit unendlich viele Lösungen.

Was stimmt, ist, dass die Gleichung nicht (auf einfache Weise) maschinenlösbar ist. Mathematisch lösbar dagegen ist sie durchaus. Es gibt nur keine eindeutige Lösung.
 
So wie ich das Programm geschrieben habe soll es auch sein es war eine schulaufgabe;) Eigentlich bin ich schon weiter in Sachen Java aber ich bin halt nicht auf des Rätsels Lösung gekommen. Das einzigste was mich immer verwirrt ist : && ; || ; ==;
warum reicht da nicht eins der jeweiligen Zeichen... naja danke nochmal;)
 
Die einzelnen & | beudeuten bitweises und bzw. oder. Das ist wohl aus der Syntax-Verwandschaft mit C/C++ entstanden, genauso wie das == als Vergleich und das = als Zuweisung.
 
Zurück
Oben