1.Frage/2.Programm soll von vorne anfangen (while-Schleife?)



  • weiß das keiner? bitte um antwort...



  • Stell den relevanten Code hier rein, ich werde mir wohl kaum eine .zip dafür ziehen...



  • dann beantwortest du eben nich, ist das so schwer?`schreib hier nicht sonen mist rein, nur relevantes!



  • Wie viel Selbstmitleid muss man aufbringen (lies: Wie bescheuert muss man sein), um die Chance hilfe zu bekommen künstlich zu schmälern?



  • AdminZ schrieb:

    dann beantwortest du eben nich, ist das so schwer?`schreib hier nicht sonen mist rein, nur relevantes!

    Relevant ist das schon, denn dasselbe wird wohl für (fast?) alle potentiellen Fragesteller gelten.



  • warum macht ihr mich für einen solchen dummkopf ala AdminZ verantwortlich?
    wenn ihr nicht die zip-datei haben wollt (was für mich recht unverständlich ist, 30 kb wird man wohl noch frei haben), stelle ich eben den gesamten quelltext hier hinein, wo liegt das problem?

    #include <iostream.h>
    
        int main()
         {
              cout << "Rechner\n\n";
              int a, b, c;
           enum Art { Nichts, Addieren, Subtrahieren, Dividieren, Multiplizieren};
    
           Art Eingabe;
           int z;
    
           cout << "Welche Rechnung würdest du gerne ausführen?\n";
           cout << "\n1=Addieren\n";
           cout << "2=Subtrahieren\n";
           cout << "3=Dividieren\n";
           cout << "4=Multiplizieren\n\n";
           cout << "Gib eine Zahl von 1 (Addieren) bis 4 (Multiplizieren) ein und drücke Enter: ";
           cin  >> z;
           Eingabe = Art(z);
    
    while(Eingabe==Addieren || Eingabe==Subtrahieren || Eingabe==Dividieren || Eingabe==Multiplizieren)
    {
      if (Eingabe == Addieren)
    {
              cout << "\nTippe 2 Zahlen ein, die addiert werden sollen:\n";
              cout << "Erste Zahl (danach Enter drücken): ";
              cin >> a;
              cout << "Zweite Zahl (danach Enter drücken): ";
              cin >> b;
              c=a+b;
              cout << "\n " << a;
              cout << "+ ";
              cout << " " << b;
              cout << "= " << c;
              cout << " \n";
              cout << "\nWenn du eine andere Rechenoperation ausführen möchtest,\n";
              cout << "starte das Programm bitte neu.\n\n";
    }
    else
    {
      if (Eingabe == Subtrahieren)
     {         
              cout << "\nTippe 2 Zahlen ein, die subtrahiert werden sollen:\n";
              cout << "Erste Zahl (danach Enter drücken): ";
              cin >> a;
              cout << "Zweite Zahl (danach Enter drücken): ";
              cin >> b;
              c=a-b;
              cout << "\n " << a;
              cout << "- ";
              cout << " " << b;
              cout << "= " << c;
              cout << " \n";
              cout << "\nWenn du eine andere Rechenoperation ausführen möchtest,\n";
              cout << "starte das Programm bitte neu.\n\n";
    }
    else
    {
      if (Eingabe == Dividieren)
    {
              cout << "\nTippe 2 Zahlen ein, die dividiert werden sollen:\n";
              cout << "Erste Zahl (danach Enter drücken): ";
              cin >> a;
              cout << "Zweite Zahl (danach Enter drücken): ";
              cin >> b;
              c=a/b;
              cout << "\n " << a;
              cout << "/ ";
              cout << " " << b;
              cout << "= " << c;
              cout << " \n";
              cout << "\nWenn du eine andere Rechenoperation ausführen möchtest,\n";
              cout << "starte das Programm bitte neu.\n\n";
    }
    else
    {
      if (Eingabe == Multiplizieren)
    {
              cout << "\nTippe 2 Zahlen ein, die multipliziert werden sollen:\n";
              cout << "Erste Zahl (danach Enter drücken): ";
              cin >> a;
              cout << "Zweite Zahl (danach Enter drücken): ";
              cin >> b;
    	  c=a*b;
              cout << "\n " << a;
              cout << "* ";
              cout << " " << b;
              cout << "= " << c;
              cout << " \n";
              cout << "\nWenn du eine andere Rechenoperation ausführen möchtest,\n";
              cout << "starte das Programm bitte neu.\n\n";
    }
    else
    {
              cout << "\nBitte schließen und Neu starten...\n\n";
    }
    }
    }
    }
    }
      }
    

    und nun bitte ich, meine frage zu beantworten.



  • CallToPower schrieb:

    ich hätte da noch einmal eine frage:

    mit einer while-schleife vor den if-bedingungen wollte ich, dass das programm von vorn beginnt (nicht von ganz vorn, nur von der abfrage an).
    jetzt wird aber (logischerweise) nur die schon gewählte bedingung (z.B. Addition) wiederholt. Ich möchte jedoch, dass das programm wieder mit den Abfragen, welche Rechenoperation man machen möchte, anfängt. 😕

    Hier der neue Quellcode

    *Edit: Ach ja, wenn man z.B. die Null drückt (verknüpft auf "Nichts") soll das Programm enden. Wie geht das?

    mach aus der while(...) {...} schleife ein do { ... } while (...) schleife - beginnend vor der zeile cout << "Welche Rechnung würdest du gerne ausführen?\n";
    die while bedingung kannst du umschreiben in while (Eingabe != 0)

    du hast wahnsinnig viel code doppelt, dreifach, vierfach da stehen. das ist schlecht. außerdem sind deine einrückungen kaputt. das ist noch schlechter, weil sich den code dann niemand genau anschauen wird. außerdem stehen wir hier eher auf kürzere codes mit kleinen, netten fehlern. aber sei's drum.

    verwende nicht #include <iostream.h> , sondern den header <iostream - dafür musst du dann natürlich den namespace std aufmachen: using namespace std;

    es gilt als schlechter stil, variablen gleich zu beginn zu definieren und mit so unaussagekräftigen namen wie a, b, c und z zu versehen.

    put it together und far from perfect: (ungetestet)

    #include <iostream>
    using namespace std;
    
    int main()
    {
       cout << "Rechner\n\n";
    
       enum Art { Nichts = 0, Addieren, Subtrahieren, Dividieren, Multiplizieren};
       int Eingabe = Nichts;
    
       do {
           cout << "Welche Rechnung würdest du gerne ausführen?\n"
                   "\n1=Addieren\n"
                   "2=Subtrahieren\n"
                   "3=Dividieren\n"
                   "4=Multiplizieren\n\n"
                   "Gib eine Zahl von 1 (Addieren) bis 4 (Multiplizieren) ein und drücke Enter: ";
           cin  >> Eingabe;
    
           int op1, op2;
           cout << "Gib nun die erste Zahl ein: ";
           cin >> op1;
           cout << "Jetzt gibt die zweite Zahl ein: ";
           cin >> op2;
    
           switch (Eingabe)
           {
           case Addieren: cout << "Ergebnis: " << op1 + op2 << endl; break;
           case Subtrahieren: cout << "Ergebnis: " << op1 - op2 << endl; break;
           case Dividieren: cout << "Ergebnis: " << double(op1) / op2 << endl; break;
           case Multiplizieren: cout << "Ergebnis: " << op1 * op2 << endl; break;
           default: cout << "Habe Eingabe nicht verstanden.\n";
           }
       }  while(Eingabe != Nichts);
    }
    


  • wir sind zu faul um die Zip Datei zu öffnen und das ganze gedöns...:) Wenn der Code direkt hier steht sind wir motivierter zu helfen:)



  • ok, danke, ich probiers gleich mal aus! 🙂



  • ich bedanke mich vor allem bei queer_boy.
    deine lösung ist um einiges besser als meine es war und funktioniert perfekt! 👍


Anmelden zum Antworten