Schleife Frage?
-
Hallo hab Probleme mit dem folgenden Quelltext. Warum wird die Schleife nur einmal durchlaufen? Nach dem ersten durchlauf hat f doch den Wert 3, warum wird die Schleife dann nicht nochmal durchlaufen?
#include "stdafx.h"
#include <iostream>using namespace std;
int main(void)
{ double x,min,max,f;
cout<<"Programm zur Annaeherung an eine Nullstelle der Funktion f(x)=x3+x2+2x+3\n\n";
min=-50;
max=50;
do{
x=(min+max)/50;
f=x*x*x+x*x+2*x+3;
cout<<"f("<<x<<") = "<<f<<endl;
if (f>=0)
{
max=x;
}
else
{
min=x;
}
cout<<"min = "<<min<<" max = "<<max<<endl;
}
while ((f<0.01) && (f>=0));return 0;
}
-
bourne schrieb:
while ((f<0.01) && (f>=0));Diese Bedingung kann nie true sein. => Schleife wird nur einmal durchlaufen...
Gruß Caipi
-
Klar jetzt hab ichs auch verstanden hatte ein denkfehler.
-
Caipi schrieb:
bourne schrieb:
while ((f<0.01) && (f>=0));Diese Bedingung kann nie true sein. => Schleife wird nur einmal durchlaufen...
Gruß Caipi
Klar kann die Bedingung wahr werden, aber nur wenn f im Intervall [0,0,01[ liegt (und 3 ist außerhalb dieses Intervalls).
-
CStoll schrieb:
Caipi schrieb:
bourne schrieb:
while ((f<0.01) && (f>=0));Diese Bedingung kann nie true sein. => Schleife wird nur einmal durchlaufen...
Gruß Caipi
Klar kann die Bedingung wahr werden, aber nur wenn f im Intervall [0,0,01[ liegt (und 3 ist außerhalb dieses Intervalls).
Jep. Hast recht. Weiß nicht, wo ich mein Hirn beim schreiben gelassen habe...
