#1 7. November 2005 Code: #include <iostream.h> #include <math.h> #include <conio.h> float quadrat(float x) { return (x*x); } float wurzel (float y) { return (sqrt(y)); } int main() { unsigned int wahl; float zahl; cout << "(1) Wurzelrechnung" << endl << "(2) Quadrieren" << endl; cin >> wahl; cout << endl; if ( wahl == 1 || wahl == 2) { if (wahl == 1) { cout << "Sie haben wurzelrechnung gewählt!" << endl; } else { cout << "Sie haben Quadratrechnung gewählt!" << endl; } } else { cout << "undgueltige auswahl"; getch(); } cout << "Zahl angeben!" << endl; cin >> zahl; if (wahl == 1) { cout << "Die wurzel aus " << zahl << " ist: " << wurzel(zahl); } else { cout << "Das quadrat aus " << zahl << " ist: " << quadrat(zahl); } getch(); } Hab mir nun mal ein kleines Programm Prgrammiert... Ich weiß, dass die funktionen wurzel und quadrat unsinnig sind, aber da das mein 2. programm ist, wollte ich gerne mal bsichen mit funktionen üben... Zu meiner frage.. wenn die Eingabe ungültig ist, soll er das programm an der stelle abbrechen. getch(); macht das aber nicht, wie ich das gedacht hätte... hat wer ne idee ? + Multi-Zitat Zitieren
#2 8. November 2005 Wie meinst du das mit dem abbrechen? Mit getch(); wird ja nur auf eine Eingabe gewartet und so meintest du das nicht oder? Bräuchte eine genauere Beschreibung. =) + Multi-Zitat Zitieren
#3 9. November 2005 Das machst du am besten mit ner switch-Anweisung. Dazu muss die Eingabevariable aber als char deklariert sein. Folgendermaßen: Code: char choice; do{ cout<<"Menu"; cout<<"\n1. Wurzelrechnung"<<endl<<"2. Quadrieren"<<endl; cout<<"3. Ende"<<endl; cin>>choice; switch(choice) { case '1': cout<<"Wert zur Wurzelberechnung: "; cin>>wert; wurzel(wert); //Funktion aufrufen //und Wert übergeben break; case '2': cout<<"Wert zum Quadrieren: "; cin>>wert; quadrieren(wert); //Funktion aufrufen und Wert //übergeben break; case '3': cout<<"Ende des Programms"!; getch(); break; default: cout"Error! Dies ist kein gueltiger Menupunkt!!"; } }while (choice != '3'); - Das break dient dazu, dass nicht alle cases nacheinander abgearbeitet werden, sondern dass es nach Ausführen des jeweiligen Menupunkt wieder zurück ins Auswahlmenu springt - deshalb auch die do while Schleife -> bei Wahl von 3 ist der Vergleichswert 'true' und springt aus dem ganzen raus, - Die default Anweisung dient dazu falsche Eingabe abzufangen. Springt also danach wieder ins Auswahlmenu, damit du das Programm nicht immer wieder neu starten musst....... Hoff ich konnte dir helfen :] + Multi-Zitat Zitieren
#4 9. November 2005 Ja das ist genau das, was ich meinte und sogar noch etwas was ich wollte, aber nich gefragt habe Danke bekommst dafür nen 10er + Multi-Zitat Zitieren