Warum funktioniert mein Programm nicht ?

W

Wasserranzen

Aktives Mitglied
Hallo,

Ich bräuchte wieder Hilfe. Ich war grade dabei ein Programm zu schreiben das quadratische Gleichungen der Form ax^2+bx+c=0 lösen soll. Leider will es nicht laufen.
Zwei Probleme habe ich aktuell:

1) if Else
2) Es kommt ein falsches Ergebnis raus.

Ich hoffe jemand kann mich aufklären.

Danke !

Java:
// ABC Formel = -b + - w(b^2-4ac)/2a = w(4) = 4*0,5 = 2
// ax^2 + bx + c = 0 I  1) ax^2 + bx && ax^2+c
// Nullstellen
//----------------------------------------------------------------
import java.util.Scanner;

public class ABC{
public static void main(String[]args){
//----------------------------------------------------------------
Scanner x = new Scanner(System.in);

double a;
double b;
double p;
double c;
double ABC;
double ABC2;
double w;
//----------------------------------------------------------------
a = 0;
b = 0;
p = 0;
c = 0;
w =0;
//----------------------------------------------------------------
System.out.println("Funktionsgleichung erwartet(b=p positiv)");
System.out.println( "0"+"="+"ax²+"+"bx"+"+c");
a = x.nextDouble();
System.out.print(a+"x²");
b = x.nextDouble();
System.out.println(b + "x");
c = x.nextDouble();
System.out.println(c);
p = x.nextDouble();
//----------------------------------------------------------------
if ( b < 0 && a >=-100000 && b >=-100000 && c >=-100000)
{

w = 0.5;
ABC = b*(-1)+w*(p*p-4*(a)*(c))/(2*a);
ABC2 = b*(-1)-w*(p*p-4*(a)*(c))/(2*a);
System.out.println("Die Lösungsmenge der Funktionsgleichung" + a +"x²" + b+"x"+c +"lautet");
System.out.println("x1"+" " +ABC);
System.out.println("x2"+" " +ABC2);
}

//----------------------------------------------------------------

{
else if ( b < 0 && a >= -100000 && b >=-100000)
w = 0.5;
ABC = b*(-1)+w*(p*p-4*(a)*(c))/(2*a);
ABC2 = b*(-1)-w*(p*p-4*(a)*(c))/(2*a);
System.out.println("Die Lösungsmenge der Funktionsgleichung" +  b+"x"+c +"lautet");
System.out.println("x1"+" " +ABC);
System.out.println("x2"+" " +ABC2);
}
//----------------------------------------------------------------
{
else if ( b<0 && a >= -100000 && c >= -100000)
w = 0.5;
ABC = b*(-1)+w*(p*p-4*(a)*(c))/(2*a);
ABC2 = b*(-1)-w*(p*p-4*(a)*(c))/(2*a);
System.out.println("Die Lösungsmenge der Funktionsgleichung" + a +"x²" +c +"lautet");
System.out.println("x1"+" " +ABC);
System.out.println("x2"+" " +ABC2);
}
//----------------------------------------------------------------

//Andere Verzeigung

else if ( b > 0 && a >= -100000 && b >= -100000 &&c >= -100000)
{
w = 0.5;
ABC = b+w*(p*p-4*(a)*(c))/(2*a);
ABC2 = b-w*(p*p-4*(a)*(c))/(2*a);
System.out.println("Die Lösungsmenge der Funktionsgleichung" + a +"x²" +b+"x"+c +"lautet");


System.out.println("x1"+" "+ABC);
System.out.println("x2"+" "+ABC2);
}
//----------------------------------------------------------------
//else if ( b >0 || a>= -100000 || b>= -100000 )




}
  }
 
truesoul

truesoul

Top Contributor
Hallo. Na ja kein wunder warum es nicht laufen will.

if else sollte so aussehen:

Java:
if(eine bedingung) {
   // CODE
} else if (noch eine bedingung) {
   // CODE
} else if(und noch eine bedingung) {
   // CODE
}

Dein if else sieht zum Teil so aus:

Java:
if(eine bedingung) {
   // CODE
} { else if (noch eine bedingung)
   // CODE
} { else if(und noch eine bedingung)
   // CODE
}

Ansonsten wäre eine bessere Fehlerbeschreibung wünschenswert.

Grüße
 
W

Wasserranzen

Aktives Mitglied
Danke, dass mit dem Klammern war das Problem. Leider habe ich noch eins. Die ABC Formel spuckt mir falsche Ergebnisse aus (Block 5.). Ich musste übrigens auch b zweimal in die Konsole abtippen, weil ich -b als Fall abfangen musste.
 
truesoul

truesoul

Top Contributor
Hallo.

Erstmal solltest du dein boilerplate code entfernen.
Alle Berechnung die du hast sind identisch.

Die Bedingung für dein If Statement kannst du auch in einer Methode auslagern.

Darfst du die Math Klasse verwenden?

Grüße
 
W

Wasserranzen

Aktives Mitglied
Ich bin leider ein Anfänger in Java und weiß nicht wie das geht. Ich musste die Berechnungen identisch machen, weil ich alle Vorzeichen Wechsel abfangen musste.
 
truesoul

truesoul

Top Contributor
Diese Abfragen kannst du in solch Methode auslagern.

Java:
boolean isValid1(double b, double a){
   return b < 0 && a >= -100000 && b >=-100000;
}

boolean isValid2(double b, double a){
   return // zweiter Statement;
}

usw  ...

if(isValid1(b, a) && isValid2(b, a) usw) {
 // Deine Berechnungen
}

Oder

Java:
boolean isValid(double b, double a, double c){
   return (b < 0 && a >= -100000 && b >=-100000) && (zweite Bedingung) && (dritte ....);
}

Und dann:

if(isValid(b, a, c)) {
 // Deine Berechnungen
}

Grüße
 
Zuletzt bearbeitet:
W

Wasserranzen

Aktives Mitglied
Verstehe ich leider nicht. Dieses Kapitel hatte ich noch nicht. Gibt es denn keine Möglichkeit mein Problem mit dem Vorzeichen auf eine andere Weise zu lösen? Ansich geht ja alles, außer das die Berechnungen falsch sind.
 
Robat

Robat

Top Contributor
Für den Anfang kannst du das ruhig erstmal so lassen.
Es ist zwar viel Boilerplate-Code dabei aber bring erstmal das Programm zum laufen.

Du sagtest oben was von Block 5.
Was meinst du damit? Welcher Teil funktioniert nicht - funktioniert überhaupt eine Berechnung?
 
truesoul

truesoul

Top Contributor
Wie lautet die Aufgabenstellung?

Ich frage weil es für die Berechnung eine Rolle spielt.
Na ja mit der Klasse Math wäre die Berechnung einfacher. Ansonsten muss du ein wenig mehr Code schreiben.

Grüße
 
W

Wasserranzen

Aktives Mitglied
Ja, funktionieren schon, aber die Ergebnisse sind leider falsch. Ich musste auch b^2 = p setzen, da ich nicht weiß ob meine Variable b mehr als ein Wert annehmen kann. Schätze nicht.

Es ist eigentlich nur für mich gedacht. Als Übung quasi.
 
Robat

Robat

Top Contributor
Wo hast du die Formel her? Für meine Begriffe fehlt da eine Wurzel.
x1 = (- b + sqrt(b2 - 4ac)) / (2a)
x2 = (- b - sqrt(b2 - 4ac)) / (2a)
 
Zuletzt bearbeitet:
truesoul

truesoul

Top Contributor
Java:
        double a = 2;
        double b = 3;
        double c = 1;

        double d = b * b - 4 * a * c;

        double positive = (-b + sqrt(d)) / (2 * a);
        double negative = (-b - sqrt(d)) / (2 * a);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Warum funktioniert mein Programm nicht ? Java Basics - Anfänger-Themen 6
W Erste Schritte Warum funktioniert mein Programm nicht ? ~if Anweisung~ Java Basics - Anfänger-Themen 4
A Mein 1x1 Programm funktioniert nicht? Java Basics - Anfänger-Themen 2
R Mein Plugin funktioniert nicht? Java Basics - Anfänger-Themen 10
G Mein Java Projekt funktioniert nicht Java Basics - Anfänger-Themen 5
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
G Warum funktioniert mein Updater nicht? Java Basics - Anfänger-Themen 2
G Mein erster Thread funktioniert nicht. Java Basics - Anfänger-Themen 3
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
T % funktioniert nicht Java Basics - Anfänger-Themen 2
D e(fx)clipse installieren funktioniert nicht Java Basics - Anfänger-Themen 3
D GPIO Nutzung mit Pi4J Library auf Raspberry funktioniert nicht Java Basics - Anfänger-Themen 3
F Java GUI-PaintComponent funktioniert nicht Java Basics - Anfänger-Themen 1
J equals funktioniert nicht - Warum Java Basics - Anfänger-Themen 13
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
V_Fynn03 Erste Schritte JButton funktioniert nicht trotz richtiger Methode. Java Basics - Anfänger-Themen 17
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
G Programm mit Schleife funktioniert nicht Java Basics - Anfänger-Themen 5
T Redirect funktioniert nicht Java Basics - Anfänger-Themen 3
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
D Klassen add Methode funktioniert nicht. Java Basics - Anfänger-Themen 31
J ImagaIO funktioniert nicht unter Ubuntu Java Basics - Anfänger-Themen 23
F Vergleiche mit charAt funktioniert bei Strings nicht, was tun? Java Basics - Anfänger-Themen 5
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
M Methoden Arrays.deepequals() funktioniert nicht Java Basics - Anfänger-Themen 2
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S JDK 9 für Windows 32 bit installiert, aber es funktioniert nix Java Basics - Anfänger-Themen 6
F Input/Output die eine txt-Datei funktioniert die andere nicht Java Basics - Anfänger-Themen 8
UnknownInnocent Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
S Dijkstra Algorithmus funktioniert nicht Java Basics - Anfänger-Themen 4
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
A TicTacToe funktioniert bis auf "schiefer" Sieg Java Basics - Anfänger-Themen 6
M Erste Schritte Importieren funktioniert nicht Java Basics - Anfänger-Themen 7
N Funktion funktioniert nicht immer Java Basics - Anfänger-Themen 6
F FileCreation - PrintWriter funktioniert nicht... Java Basics - Anfänger-Themen 1
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
T Methode in Klasse funktioniert nicht Java Basics - Anfänger-Themen 14
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
C Warum funktioniert 'instanceof' bei generics nicht? Java Basics - Anfänger-Themen 4
M Frage, wie dieser Code funktioniert, bzw. weshab er bei mir nicht funktioniert Java Basics - Anfänger-Themen 4
L Level Reset funktioniert nicht Java Basics - Anfänger-Themen 3
A Java Scanner Funktioniert nicht Java Basics - Anfänger-Themen 2
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
W Warum funktioniert meine if Anweisung nicht? Java Basics - Anfänger-Themen 8
J Stringvergleich funktioniert nicht Java Basics - Anfänger-Themen 8
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
V Inkrement funktioniert nicht Java Basics - Anfänger-Themen 2
V Inkrement funktioniert nicht Java Basics - Anfänger-Themen 1
L Schleife funktioniert nicht richtig Java Basics - Anfänger-Themen 12
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
X Java 64 bit Funktioniert nicht Java Basics - Anfänger-Themen 7
ChrisPL4Y Wieso funktioniert dieses Programm nicht? Java Basics - Anfänger-Themen 6
S Repaint() in der Schleife funktioniert nicht immer Java Basics - Anfänger-Themen 5
N relativer Dateipfad funktioniert nicht Java Basics - Anfänger-Themen 6
N Input/Output System.in funktioniert nicht Java Basics - Anfänger-Themen 4
M Iterator funktioniert nicht Java Basics - Anfänger-Themen 5
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
J copyURLToFile funktioniert nicht :-( Java Basics - Anfänger-Themen 14
T Programm Funktioniert nicht Java Basics - Anfänger-Themen 2
JavaNewbie2.0 GUI Funktioniert nicht Java Basics - Anfänger-Themen 18
T Java Executable jar file funktioniert nicht Java Basics - Anfänger-Themen 4
S nio move() funktioniert nicht richtig Java Basics - Anfänger-Themen 2
B Könnte jemand über dieses jurze Javaprogramm schauen? Irgendwas funktioniert mit der z-Varible nicht Java Basics - Anfänger-Themen 2
M In Netbeans Programm so abspeichern dass es funktioniert Java Basics - Anfänger-Themen 8
C Klasse funktioniert nicht Java Basics - Anfänger-Themen 2
N Timer funktioniert nicht beim starten Java Basics - Anfänger-Themen 3
G Warum funktioniert das Programm für negative Eingabe nicht? Java Basics - Anfänger-Themen 3
G Wie funktioniert das? > Schiffe versenken Java Basics - Anfänger-Themen 13
V For Schleife funktioniert nicht Java Basics - Anfänger-Themen 2
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
P Java-Code funktioniert nicht Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
Z Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht Java Basics - Anfänger-Themen 2
snipesss Java-Code gedownloaded, funktioniert aber nicht? Java Basics - Anfänger-Themen 9
R If anwendung funktioniert nicht Java Basics - Anfänger-Themen 3
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
Syncopated Pandemonium Verketten von Strings funktioniert nicht Java Basics - Anfänger-Themen 4
K Verlgeichsoperator in If funktioniert nicht? Java Basics - Anfänger-Themen 15
T Methoden Nach der Schleife funktioniert nichts mehr Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Anzeige

Neue Themen


Oben