Hallo.
Ich hab ein Programm selbst geschrieben, welches Gleichungen löst (Funktionsgleichungen....).
Jetzt hab ich nur ein Problem.... Hier der Code
x wird immer um o,1 erhöht... Ich habs mal mit der Gleichung a=+1 b=-6 und c=+9 probiert, ich weiß, dass da 3 hinmuss, um die Gleichung auf Null zu bringen (Es geht um Nullstellen in Parabeln)
Aber wenn er dann bei 3 angekommen ist, so steh folgenes als Ergebnis da:
5,11591e-013
Wird x immer um 0,2 erhöht, so steht etwas ähnliches da und wenn es immer um 0,5 erhöht wird, dann funktionierts.... aber dann habe ich leider keine garantie, dass wirklich alle möglichkeiten mit einer nachkommarstelle getestet wurden....
Wo liegt da der Fehler?
Danke schonmal im voraus...
Gruß, D31~$0u1
Ich hab ein Programm selbst geschrieben, welches Gleichungen löst (Funktionsgleichungen....).
Jetzt hab ich nur ein Problem.... Hier der Code
#include <iostream>
#include <stdlib.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <ctime>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
float x, a, b, c, z, l;
cout << "Die Gleichung hat den Aufbau y = a*(x*x) + b*x + c" << endl;
cout << "Wobei y = 0" << endl;
cout << endl;
getch();
cout << "Bitte ale Zahlen mit ihrem Vorzeichen angeben." << endl;
cout << "Bitte a eingeben: ";
cin >> a;
cout << endl;
cout << "Bitte b eingeben: ";
cin >> b;
cout << endl;
cout << "Bitte c eingeben: ";
cin >> c;
cout << endl;
x=0;
do
{
x=x+0.1;
l=((a*(x*x))+(b*x))+c;
cout << l << " l ist so groß" << endl;
cout << x << " l ist so groß" << endl;
getch();
} while (l != 0);
cout << endl;
cout << "Bei der Gleichung: " << a << "*(x*x)+" << b << "*x+" << c <<endl;
cout << "Ist x= " << x << endl;
cout << endl;
system("PAUSE");
}
#include <stdlib.h>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <ctime>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
float x, a, b, c, z, l;
cout << "Die Gleichung hat den Aufbau y = a*(x*x) + b*x + c" << endl;
cout << "Wobei y = 0" << endl;
cout << endl;
getch();
cout << "Bitte ale Zahlen mit ihrem Vorzeichen angeben." << endl;
cout << "Bitte a eingeben: ";
cin >> a;
cout << endl;
cout << "Bitte b eingeben: ";
cin >> b;
cout << endl;
cout << "Bitte c eingeben: ";
cin >> c;
cout << endl;
x=0;
do
{
x=x+0.1;
l=((a*(x*x))+(b*x))+c;
cout << l << " l ist so groß" << endl;
cout << x << " l ist so groß" << endl;
getch();
} while (l != 0);
cout << endl;
cout << "Bei der Gleichung: " << a << "*(x*x)+" << b << "*x+" << c <<endl;
cout << "Ist x= " << x << endl;
cout << endl;
system("PAUSE");
}
x wird immer um o,1 erhöht... Ich habs mal mit der Gleichung a=+1 b=-6 und c=+9 probiert, ich weiß, dass da 3 hinmuss, um die Gleichung auf Null zu bringen (Es geht um Nullstellen in Parabeln)
Aber wenn er dann bei 3 angekommen ist, so steh folgenes als Ergebnis da:
5,11591e-013
Wird x immer um 0,2 erhöht, so steht etwas ähnliches da und wenn es immer um 0,5 erhöht wird, dann funktionierts.... aber dann habe ich leider keine garantie, dass wirklich alle möglichkeiten mit einer nachkommarstelle getestet wurden....
Wo liegt da der Fehler?
Danke schonmal im voraus...
Gruß, D31~$0u1