Hallo, ich hab hier eine Aufgabe, mit der ich nicht zurecht komme. Es sollen per Tastatureingabe rationale Zahlen für p und q der quadratischen Gleichung x² + p*x + q = 0 eingegeben werden.
Dazu soll im Programm die Diskriminante berechnet werden: D = p² - 4*q
Dann gibt es Fallunterscheidungen für D = 0, D>0 und D<0. Die entsprechenden Funktionen x1 und x2 für jeden Fall hab ich ins Programm geschrieben. Ich weiß jetzt aber nicht wie ich weiter vorgehen soll, soll ich die if-Anweisung verwenden? oder mit case operieren? Im Code ist für euch wohl unschwer zu erkennen, dass das nicht funktioniert, bekomm das Programm einfach nicht zum Laufen. Für Hilfestellungen wäre ich sehr dankbar.
Dazu soll im Programm die Diskriminante berechnet werden: D = p² - 4*q
Dann gibt es Fallunterscheidungen für D = 0, D>0 und D<0. Die entsprechenden Funktionen x1 und x2 für jeden Fall hab ich ins Programm geschrieben. Ich weiß jetzt aber nicht wie ich weiter vorgehen soll, soll ich die if-Anweisung verwenden? oder mit case operieren? Im Code ist für euch wohl unschwer zu erkennen, dass das nicht funktioniert, bekomm das Programm einfach nicht zum Laufen. Für Hilfestellungen wäre ich sehr dankbar.
Code:
class A8
{ public static void main(String[] args)
{int p, q, D, x1, x2, j;
System.out.println("Quadratische Gleichungen");
/* Tastatureingabe von p */
System.out.println("Bitte rationale Zahl p eingeben");
p=IO1.einint();
/* Tastatureingabe von q */
System.out.println("Bitte rationale Zahl q eingeben");
q=IO1.einint();
do
{D=p*p - 4*q;
System.out.println(p+" hoch "+2+" - "+4+" * "+q+" = "+D);
}
if (D > 0)
{ x1 = -p/2 + (Math.sqrt(D))/2;
x2 = -p/2 - (Math.sqrt(D))/2;
}
if (D = 0)
{ x1 = -p/2;
x2 = -p/2;
}
if (D < 0)
{ x1 = -p/2 + j * (Math.sqrt(-D))/2;
x2 = -p/2 - j * (Math.sqrt(-D))/2;
}
System.out.println("Ende der Berechnung");
}
}