Stephan Liebig
Erfahrenes Mitglied
Hallo, ich habe ein kleines Problem. Ich möchte in C++ die pq-Formel realisieren. Allerdings gibt er mir für x1 und x2 immer -1.#IND.
Woran liegt das?
Variablen:
Dabei sollte ich vielleicht kurz sagen, wass passiert.
Als erstes gibt man eine Zahl für p und q ein, damit eine Gleichung ensteht.
Ich habe die Formel x1/2 = -(p/2) +- wurzel( (p/2)² - q ) aufgeteilt in 3 Teile.
Einmal das -(p/2), das ergebnis wird in nwurzel_erg gespeichert. Dann wird das unter der Wurzel berechnet. Sprich (p/2)²-q. Das Ergebnis wird in wurzel_erg gespeichert. Das speichere ich nun auch in x0 um damit die Wurzel aus diesem Ergebnis zu berechnen.
Woran liegt das?
Variablen:
Code:
//Variablen fuer die pq-Formel
float p(0), q(0), wurzel_erg(0), nwurzel_erg(0), x0(0), a0(0);
float x1(0), x2(0);
bool pq_wiederholen;
Code:
do {
cout << " Bitte geben Sie die Zahlen fuer p und q ein.\n";
cout << " p = ";
cin >> p;
cout << endl;
cout << " q = ";
cin >> q;
nwurzel_erg = (p/2)*(-1);
wurzel_erg = ((p/2)*(p/2)) - q;
if(wurzel_erg < 0)
{
cout << "SYSTEM: Der Wurzelausdruck wurde negativ! \n";
cout << "Erneute eingabe? Ja = 1 / Nein = 0 \n";
cout << "Ihre Eingabe: ";
cin >> pq_wiederholen;
}
else
{
wurzel_erg = x0;
x0 = a0;
do
{
x0=x0-(x0*x0-a0)/(2*x0);
}
while ( abs (x0*x0-a0)>genauigkeit );
x1 = nwurzel_erg + x0;
x2 = nwurzel_erg - x0;
cout << "Die Nullstellen von x^2 + " << p <<"x + " << q << " = 0 ist:\n";
cout << "nwurzel_erg = " << nwurzel_erg << endl;
cout << "wurzel_erg = " << wurzel_erg << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
cout << endl;
cout << "Programm wiederholen?";
cin >> pq_wiederholen;
}
}
while(pq_wiederholen == true);
Dabei sollte ich vielleicht kurz sagen, wass passiert.
Als erstes gibt man eine Zahl für p und q ein, damit eine Gleichung ensteht.
Ich habe die Formel x1/2 = -(p/2) +- wurzel( (p/2)² - q ) aufgeteilt in 3 Teile.
Einmal das -(p/2), das ergebnis wird in nwurzel_erg gespeichert. Dann wird das unter der Wurzel berechnet. Sprich (p/2)²-q. Das Ergebnis wird in wurzel_erg gespeichert. Das speichere ich nun auch in x0 um damit die Wurzel aus diesem Ergebnis zu berechnen.
Zuletzt bearbeitet: