abbruchfunktion

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von mdfx, 7. November 2005 .

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #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 ?
     

  2. Anzeige
  3. #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. =)
     
  4. #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 :]
     
  5. #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 ;)
     

  6. Videos zum Thema