• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

QuadGleichung.java

mucke

Celler Dickstiel
Registriert
28.06.08
Beiträge
798
Hallo soll diese aufgabe hier lösen:

Schreiben Sie ein Programm, das für drei beliebige ganze Zahlen a, b, c, die Lösung(en) der Glei- chung ax2 + bx + c = 0 berechnet. x sei dabei vom Typ float. Es sollen alle möglichen Fälle behandelt werden. Testen Sie das Programm mit folgenden Werten (zur Überprüfung sind die zu erwartenden Lösungen mit angegeben):
(1, -8, 15)zwei Lösungen: 3.0 und 5.0
(9, 6, 1)eine Lösung: -0,3333...
(3, 2, 7)keine reellen Lösungen (
0, 0, 0)unendlich viele Lösungen
(0, 3, -2)eine Lösung: 0.6666... (
0, 0, 5)keine Lösungen
Hinweis: Die Wurzel berechnet sich mittels Math.sqrt(). Beispiel:
x = Math.sqrt(y);
Danach steht in x die Wurzel von y.


/* QuadGleichung.java */

public class QuadGleichung
{
public static void main (String[] args)
{
int a = 1;
int b = -8;
int c = 15;


double x1F = -b/2+Math.sqrt(b*b/4-c);
double x2F = -b/2-Math.sqrt(b*b/4-c);


System.out.println(" x1 = " + x1F);
System.out.println(" x2 = " + x2F);
}
}

das habe ich bis jetzt auf die erste lösung komm ich aber wenn ich es mit den zweiten Zahlen probier komm ich net weiter
 
Mathematischer Fehler ;)
Du hast ja 6x^2, was sagt dir das? Richtig, normieren. ;)
 
Habs jetzt so gelöst, stimmt eigentlich alles soweit

/* QuadGleichung.java */

public class QuadGleichung
{
public static void main (String[] args)
{
int a = 9;
int b = 6;
int c = 1;
float x1;
float x2;

double Dis =((b)*(b)-4*a*c);

if (Dis > 0)
{
double x1F = ((-b+Math.sqrt(Dis))/(2*a));
double x2F = ((-b-Math.sqrt(Dis))/(2*a));


System.out.println(" x1 = " + x1F);
System.out.println(" x2 = " + x2F);
}
else if ( Dis == 0)
{
double x1F = ((-b+Math.sqrt(Dis))/(2*a));
System.out.println(" x1 = " + x1F + "doppelt");
}
else if ( Dis < 0)
{System.out.println("keine loesung");
}
}
}