kleiner Taschenrechner



  • andere Umsetzung. Stilistische Elemente muss ich mir noch aneignen merke ich 🤡

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main(int nNumberofArgs, char* pszArgs[])
    {
       cout << "Rechner v0.001\n";
       cout << "von KAKMNEsu\n";
       int wechsel = 0;
       double zahleins;
       do
          {
          if (wechsel < 1)
          {
          cout << "Bitte erste Zahl eingeben: ";
          cin >> zahleins;
          }
          else
          {
          }
          double zahlzwei;
          cout << "\nBitte zweite Zahl eingeben: ";
          cin >> zahlzwei;
    
          int faktor;
          cout << "(1)addieren, (2)substrahieren, (3)multiplizieren oder (4)dividieren? ";
          cin >> faktor;
    
          if (faktor <5>0)
             {
             if (faktor > 3)
                {
                double teilen = zahleins / zahlzwei;
                cout << zahleins << " geteilt durch " << zahlzwei << " ergibt: " << teilen << "\n";
                while (true)
                   {
                   zahleins = teilen;
                   teilen = zahleins / zahlzwei;
                   cout << "Erneut teilen? (4)ja (5)nein: ";
                   int weiterteilen;
                   cin >> weiterteilen;
                   if (weiterteilen < 5)
                      {
                      cout << zahleins << " geteilt durch " << zahlzwei << " ergibt: " << teilen << "\n"; 
                      }
                   else
                      {
                      wechsel = 1;
                      break;
                      }
                   }
                }
             else
                {
                if (faktor > 2)
                   {
                   double malnehmen = zahleins * zahlzwei;
                   cout << zahleins << " mal " << zahlzwei << " ergibt: " << malnehmen << "\n";
                   while (true)
                   {
                   zahleins = malnehmen;
                   malnehmen = zahleins * zahlzwei;
                   cout << "Erneut malnehmen? (3)ja (4)nein: ";
                   int weitermalnehmen;
                   cin >> weitermalnehmen;
                   if (weitermalnehmen < 4)
                      {
                      cout << zahleins << " mal " << zahlzwei << " ergibt: " << malnehmen << "\n"; 
                      }
                   else
                      {
                      wechsel = 1;
                      break;
                      }
                   }
                   }
                else
                   {
                   if (faktor > 1)
                      {
                      double abziehen = zahleins - zahlzwei;
                      cout << zahleins << " minus " << zahlzwei << " ergibt: " << abziehen << "\n";
                while (true)
                   {
                   zahleins = abziehen;
                   abziehen = zahleins - zahlzwei;
                   cout << "Nochmal abziehen? (2)ja (3)nein: ";
                   int weiterabziehen;
                   cin >> weiterabziehen;
                   if (weiterabziehen < 3)
                      {
                      cout << zahleins << " minus " << zahlzwei << " ergibt: " << abziehen << "\n"; 
                      }
                   else
                      {
                      wechsel = 1;
                      break;
                      }
                   }
                      }
                   else
                      {
                      if (faktor > 0)
                         {
                         double dazuzaehlen = zahleins + zahlzwei;
                         cout << zahleins << " plus " << zahlzwei << " ergibt: " << dazuzaehlen << "\n";
                while (true)
                   {
                   zahleins = dazuzaehlen;
                   dazuzaehlen = zahleins + zahlzwei;
                   cout << "Nochmal dazuzählen? (1)ja (2)nein: ";
                   int weiterdazuzaehlen;
                   cin >> weiterdazuzaehlen;
                   if (weiterdazuzaehlen < 2)
                      {
                      cout << zahleins << " plus " << zahlzwei << " ergibt: " << dazuzaehlen << "\n"; 
                      }
                   else
                      {
                      wechsel = 1;
                      break;
                      }
                   }
                         }
                      else
                         {
                         }
                      }
                   }
                }
             }
          else
             {
             }
    }while (true);
       return 0;
    
    }
    


  • Ein paar Änderungen.

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main(int nNumberofArgs, char* pszArgs[])
       {
       cout << "Rechner v0.011\n";
       cout << "von KAKMNEsu\n";
       int wechsel = 0;
       int faktor;
       double zahleins;
       double zahlzwei;
       do
          {
          if (wechsel < 1)
             {
             cout << "Erste Zahl: ";
             cin >> zahleins;
             cout << "addieren(2)  substrahieren(3)  multiplizieren(4)  dividieren(5): ";
             cin >> faktor;
             cout << "Zweite Zahl: ";
             cin >> zahlzwei;
             }
          else
             {
             cout << "Erste Zahl: " << zahleins << "\naddieren(2)  substrahieren(3)  multiplizieren(4)  dividieren(5): ";
             cin >> faktor;
             cout << "Zweite Zahl: ";
             cin >> zahlzwei;
             }
          if    (faktor ==5)
             {
             double teilen = zahleins / zahlzwei;
             cout << zahleins << " / " << zahlzwei << " = " << teilen << "\n";
             while (true)
                {
                zahleins = teilen;
                cout << "Neu(1)  Nochmal(5)  Weiter(6): ";
                int weiterteilen;
                cin >> weiterteilen;
                if (weiterteilen == 5)
                   {
                   teilen = zahleins / zahlzwei;
                   cout << zahleins << " / " << zahlzwei << " = " << teilen << "\n"; 
                   }
                else
                   {
                   if (weiterteilen == 6)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 0;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          if (faktor ==4)
             {
                double malnehmen = zahleins * zahlzwei;
                cout << zahleins << " * " << zahlzwei << " = " << malnehmen << "\n";
                while (true)
                   {
                   zahleins = malnehmen;
                   cout << "Neu(1)  Nochmal(4)  Weiter(5): ";
                   int weitermalnehmen;
                   cin >> weitermalnehmen;
                   if (weitermalnehmen == 4)
                      {
                      malnehmen = zahleins * zahlzwei;
                      cout << zahleins << " * " << zahlzwei << " = " << malnehmen << "\n"; 
                      }
                   else
                      {
                      if (weitermalnehmen == 5)
                         {
                         wechsel = 1;
                         break;
                         }
                      else
                         {
                         wechsel = 0;
                         break;
                         }
                      }
                   }
                }
             else
                {
                }
          if (faktor ==3)
             {
             double abziehen = zahleins - zahlzwei;
             cout << zahleins << " - " << zahlzwei << " = " << abziehen << "\n";
             while (true)
                {
                zahleins = abziehen;
                cout << "Neu(1)  Nochmal(3)  Weiter(4): ";
                int weiterabziehen;
                cin >> weiterabziehen;
                if (weiterabziehen == 3)
                   {
                   abziehen = zahleins - zahlzwei;
                   cout << zahleins << " - " << zahlzwei << " = " << abziehen << "\n"; 
                   }
                else
                   {
                   if (weiterabziehen == 4)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 2;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          if (faktor ==2)
             {
             double dazuzaehlen = zahleins + zahlzwei;
             cout << zahleins << " + " << zahlzwei << " = " << dazuzaehlen << "\n";
             while (true)
                {
                zahleins = dazuzaehlen;
                cout << "Neu(1)  Nochmal(2)  Weiter(3): ";
                int weiterdazuzaehlen;
                cin >> weiterdazuzaehlen;
                if (weiterdazuzaehlen == 2)
                   {
                   dazuzaehlen = zahleins + zahlzwei;
                   cout << zahleins << " + " << zahlzwei << " = " << dazuzaehlen << "\n"; 
                   }
                else
                   {
                   if (weiterdazuzaehlen == 3)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 0;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          }while (true);
       return 0; 
       }
    


  • *hust*, so langsam sollte ich mich mal registrieren.. leider war da ein Fehler drin 👎 den ich nicht editieren kann.

    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
    
    int main(int nNumberofArgs, char* pszArgs[])
       {
       cout << "Rechner v0.011\n";
       cout << "von KAKMNEsu\n";
       int wechsel = 0;
       int faktor;
       double zahleins;
       double zahlzwei;
       do
          {
          if (wechsel < 1)
             {
             cout << "Erste Zahl: ";
             cin >> zahleins;
             cout << "addieren(1)  substrahieren(2)  multiplizieren(3)  dividieren(4): ";
             cin >> faktor;
             cout << "Zweite Zahl: ";
             cin >> zahlzwei;
             }
          else
             {
             cout << "Erste Zahl: " << zahleins << "\naddieren(1)  substrahieren(2)  multiplizieren(3)  dividieren(4): ";
             cin >> faktor;
             cout << "Zweite Zahl: ";
             cin >> zahlzwei;
             }
          if    (faktor ==4)
             {
             double teilen = zahleins / zahlzwei;
             cout << zahleins << " / " << zahlzwei << " = " << teilen << "\n";
             while (true)
                {
                zahleins = teilen;
                cout << "Neu(1)  Nochmal(2)  Weiter(3): ";
                int weiterteilen;
                cin >> weiterteilen;
                if (weiterteilen == 2)
                   {
                   teilen = zahleins / zahlzwei;
                   cout << zahleins << " / " << zahlzwei << " = " << teilen << "\n";
                   }
                else
                   {
                   if (weiterteilen == 3)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 0;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          if (faktor ==3)
             {
                double malnehmen = zahleins * zahlzwei;
                cout << zahleins << " * " << zahlzwei << " = " << malnehmen << "\n";
                while (true)
                   {
                   zahleins = malnehmen;
                   cout << "Neu(1)  Nochmal(2)  Weiter(3): ";
                   int weitermalnehmen;
                   cin >> weitermalnehmen;
                   if (weitermalnehmen == 2)
                      {
                      malnehmen = zahleins * zahlzwei;
                      cout << zahleins << " * " << zahlzwei << " = " << malnehmen << "\n";
                      }
                   else
                      {
                      if (weitermalnehmen == 3)
                         {
                         wechsel = 1;
                         break;
                         }
                      else
                         {
                         wechsel = 0;
                         break;
                         }
                      }
                   }
                }
             else
                {
                }
          if (faktor ==2)
             {
             double abziehen = zahleins - zahlzwei;
             cout << zahleins << " - " << zahlzwei << " = " << abziehen << "\n";
             while (true)
                {
                zahleins = abziehen;
                cout << "Neu(1)  Nochmal(2)  Weiter(3): ";
                int weiterabziehen;
                cin >> weiterabziehen;
                if (weiterabziehen == 2)
                   {
                   abziehen = zahleins - zahlzwei;
                   cout << zahleins << " - " << zahlzwei << " = " << abziehen << "\n";
                   }
                else
                   {
                   if (weiterabziehen == 3)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 2;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          if (faktor ==1)
             {
             double dazuzaehlen = zahleins + zahlzwei;
             cout << zahleins << " + " << zahlzwei << " = " << dazuzaehlen << "\n";
             while (true)
                {
                zahleins = dazuzaehlen;
                cout << "Neu(1)  Nochmal(2)  Weiter(3): ";
                int weiterdazuzaehlen;
                cin >> weiterdazuzaehlen;
                if (weiterdazuzaehlen == 2)
                   {
                   dazuzaehlen = zahleins + zahlzwei;
                   cout << zahleins << " + " << zahlzwei << " = " << dazuzaehlen << "\n";
                   }
                else
                   {
                   if (weiterdazuzaehlen == 3)
                      {
                      wechsel = 1;
                      break;
                      }
                   else
                      {
                      wechsel = 0;
                      break;
                      }
                   }
                }
             }
          else
             {
             }
          }while (true);
       return 0;
       }
    

    Das sollte jetzt funktionieren.



  • addieren(1) substrahieren(2) multiplizieren(3) dividieren(4):

    Hier z. B. solltest Du noch eine Eingabe > 4 abfangen.

    Ich arbeite mich selbst auch gerade in C++ ein und weiss Deine Leitung daher recht gut einzuschaetzen, gratuliere.

    Gruss

    Guenther



  • Ich habe mich gerade noch ein wenig mehr mit Deinem Source beschaeftigt, und ich denke, dass hier waere noch eine interessante Verfeinerung:

    char keystroke = getch();
       switch( keystroke ) {
         case 'a':
         case 'b':
         case 'c':
         case 'd':
           KeyABCDPressed();
           break;
         case 'e':
           KeyEPressed();
           break;
         default:
           UnknownKeyPressed();
           break;
       }
    

    Ich selbst versuche mich gerade in ncurses einzuarbeiten. Mal sehen, ob ich damit Deinen Rechner um einen 'Tippstreifen' erweitern kann. Aehnliches habe ich vor 15 Jahren mal in Clipper realisiert.



  • Hi,

    Wie kann man dem Prog mitteilen, dass wenn z.B. links vom Gleicheitszeichen ein bestimmter Aufbau, Zahlen etc. ist, dann etwas machen soll. Zum Beispiel bei Gleichungen umstellen.



  • progerchris schrieb:

    Hi,

    Wie kann man dem Prog mitteilen, dass wenn z.B. links vom Gleicheitszeichen ein bestimmter Aufbau, Zahlen etc. ist, dann etwas machen soll. Zum Beispiel bei Gleichungen umstellen.

    Hast Du mal ein Beispiel?



  • Naja...

    eben: 5x + 6 = 7x + 8

    jetzt habe ich mich gefragt, wie man die x auf eine Seite bekommen könnte.
    Mna müsste ihm irgendwie sagen, dass wenn auf der rechten Seite des Gleichehitszeichen eine zahl mit einem 'x' steht, dass er die Zahl von der anderen Zahl mit 'x' abzieht.
    Also das ist nur ein kleines Beispiel. Das würde ich dann noch verfeinern, um z.B. größere Gleichungen zu berechnen.



  • Noch was:

    Kann man denn nicht auch mit den variablen x rechnen, die eben keinen bestimmten Wert haben. So wie bei f(x) = 2x +2. Man müsste ihm irgendwie sagen können, dass das x zu der Zahl vor x gehört.
    Das wäre ganz nett, um z.B. (5x^2+2x+5)/(x+2) zu rechnen.



  • progerchris schrieb:

    Kann man denn nicht auch mit den variablen x rechnen, die eben keinen bestimmten Wert haben. So wie bei f(x) = 2x +2. Man müsste ihm irgendwie sagen können, dass das x zu der Zahl vor x gehört.
    Das wäre ganz nett, um z.B. (5x^2+2x+5)/(x+2) zu rechnen.

    Falls Du damit so was wie Algebra meinst, dann hilft Dir diese Seite hier vieleicht weiter:

    http://www.mathtools.net/C_C__/Mathematics/

    Oder schau mal hier nach 'Algebra': http://www.freetechbooks.com/

    Guenther


Anmelden zum Antworten