for schleife
-
Hallo,
ich hab ein programmiertechn. Problem für die Uni. Leider habe wenig erfahrung mit c++. Aber evtl. kann mir ja jemand helfen.
Das Problem liegt in der for schleife, also bei 3 maliger Fehleingabe soll das Programm beendet werden.
Ich hoffe, hier in dem forum auf hilfe zu stoßen./*Programm zur Ermittlung einer Wurzel von Zahlen im Bereich von -1000 bis 1000.
Zahlen, die ausserhalb des Bereiches sind, sollen max. 3 mal korrigiert werden können *///Verfasser: Jens P. Schaetzle
//12. April 2003#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>char a;
int counter = 0;
double x;int main()
{do
{
system ("CLS");cout <<"Bitte geben Sie eine Zahl ein: ";
cin >>x;
for (counter < 3; x < -1000 || x > 1000; ++counter);
if (counter == 3) break; //Bei 3 Fehleingaben erfolgt Programmabruchcout <<"Bitte geben Sie eine Zahl ein: ";
cin >>x;/if (x < -1000 || x > 1000)
{
cout <<"Bloedsinn"<<"\n";
}/if (x >= -1000 && x < 0)
{
cout <<"x= "<<sqrt(-x)<<" (IMAGINAER)"<<"\n";
}else if (x <= 1000 && x > 0)
{
cout <<"x= "<<sqrt(x)<<"\n";
}else if (x == 0)
{
cout <<"x= 0" <<"\n";
}cout <<"Wollen Sie das Programm beenden? (J / N)"<<"\n";
cin >>a;
}
while (a == 'n' || a == 'N'); //Durch die Eingabe von "n" springt die Schleife zum Anfang}
-
Übrigens, ich bin 14 und gehe in die 8. Klasse -> habe nicht einmal Informatik-Unterricht!!
Studenten...;)Compiler: Visual C++ 6
Fehlerfrei kompiliert.
ANSI-Standard von 1997/*Programm zur Ermittlung einer Wurzel von Zahlen im Bereich von -1000 bis 1000. Zahlen, die ausserhalb des Bereiches sind, sollen max. 3 mal korrigiert werden können */ //Verfasser: Jens P. Schaetzle //12. April 2003 #include <iostream> #include <cmath> using namespace std; int main() { int wurzelzahl = 0; int error = 0; char weiter = 'j'; while(true) { cout << "Von welcher Zahl moechten Sie die Wurzel (-1000/1000)?\n"; cin >> wurzelzahl; while(error < 3 ) { if(wurzelzahl < -1000 || wurzelzahl > 1000) { error++; cout << "\aZahl ungueltig! Gebe erneut ein: "; cin >> wurzelzahl; } else break; } if(error >= 3) break; cout << "Die Wurzel aus " << wurzelzahl << ": " << sqrt(wurzelzahl) << '\n'; cout << "Fortfahren (j/n)?\n"; cin >> weiter; if(weiter == 'n' || weiter == 'N') break; } return 0; }
[ Dieser Beitrag wurde am 12.04.2003 um 21:13 Uhr von BodPa editiert. ]
-
Informatik muss auch nicht unbedingt was mit C++ zu tun haben.
-
ja, aber wenn man so eine Hausaufgabe aufbekommt hat man sicher schonmal C++ im Unterricht durchgekaut...;)
-
kannst du nicht wissen :p
-
da hat einer keine Ahnung von komplexen Zahlen?
i^2 = -1
aber nicht sqrt(-1) = i
UNDEFINIERT
gut,gut
aber es gibt ja die Einheitswurzeln
er könnte auch Lösungen der Gleichung x^2 = a suchen
dann wäre es wieder korrekt
-
for (counter < 3; x < -1000 || x > 1000; ++counter);
der erste Para in der for-Schleife ist der Init-Part für ne Zählervariable, das counter<3 ist sinnlos..wenn du nach der for-schleife gleich n Strichpunkt machst, passiert gar nix in der Schleife außer die Sachen innerhalb des for-Kopfs
die wurzelgeschichte sollte in ne eigene Funktion anstatt in ner do-while Schleife innerhalb von main():
außerdem solltest du Code-Einrückungen verwenden, des macht den Code 10X lesbarer (mindestens
)
-
der erste Para in der for-Schleife ist der Init-Part für ne Zählervariable, das counter<3 ist sinnlos..wenn du nach der for-schleife gleich n Strichpunkt machst, passiert gar nix in der Schleife außer die Sachen innerhalb des for-Kopfs
die wurzelgeschichte sollte in ne eigene Funktion anstatt in ner do-while Schleife innerhalb von main():
außerdem solltest du Code-Einrückungen verwenden, des macht den Code 10X lesbarer (mindestens )
Ich frage mich, was die an der UNI eigentlich lernen
[ Dieser Beitrag wurde am 12.04.2003 um 22:08 Uhr von BodPa editiert. ]
-
Original erstellt von BodPa:
**Ich frage mich, was die an der UNI eigentlich lernen
**nur weil einer nicht gut c kann heisst das ja nicht das er nichts lernt....
wenn mir jemand sagen würde ich solle was in lisp proggen würd ich auch ziemlich dumm aus der wäsche kucken.p.s. ich bin (noch) nicht student
-
Original erstellt von japro:
nur weil einer nicht gut c kann heisst das ja nicht das er nichts lernt....
wenn mir jemand sagen würde ich solle was in lisp proggen würd ich auch ziemlich dumm aus der wäsche kucken.p.s. ich bin (noch) nicht student
Nein ich meinte wegen dem alten Standard und so. Dos-Befehle verwenden, schlechte Einrückungen, unlesbarer Code -> ich dachte da lernt man wenigstens modernes Coden. Das nicht jeder Mensch C/C++ können muss ist klar, ist auch besser so, sonst gäbe es abertausend arbeitslose Programmierer.
Bod Pa
[ Dieser Beitrag wurde am 13.04.2003 um 13:39 Uhr von BodPa editiert. ]
[ Dieser Beitrag wurde am 13.04.2003 um 13:39 Uhr von BodPa editiert. ]
[ Dieser Beitrag wurde am 13.04.2003 um 13:40 Uhr von BodPa editiert. ]