kleiner Taschenrechner



  • Ich habe hier nochmal ein überarbeitete Version meines TRs. Man kann jetzt auch unter anderem auf die Ergebnisse zurückgreifen und mit denen rechnen.

    #include <iostream> 
    #include <conio.h> 
    #include <cstdlib>
    #include <string>
    #include <iomanip>
    using namespace std; 
    #define ESC 27
    
    int EINTRAEGE = 4, taste = 0, nummer = 0, x,a;
    double zahl1, zahl2, Summe,Differenz,Produkt,Quotient;
    char* titel[] = {" Addition "," Subtraktion "," Multiplikation "," Division "," Druecke ESC, um zu beenden "};
    bool ende = false;
    string commands = "[ESC] = Beenden   ";
    double func(double *zahl1, double *zahl2);
    
    void Funktion() 
    {
    
      system("cls"); 
    
         switch(nummer) 
         {
    
         case 0:
              cout<<"Sie haben die Rechenoperation Addition gewählt.";
              func(&zahl1,&zahl2);
              Summe = zahl1+zahl2;
              cout<<"\nDie Summe der beiden Zahlen beträgt: "<< Summe<< endl;
              system("pause");
              system("cls");
              cout <<"\nWollen Sie mit einem Ergebnis aus Subtraktion/Multiplikation oder Divison \nrechnen?"; 
              cout<<"\nDann druecken sie die 1,2,3 oder eine Taste und Enter zum Beenden\n";
              cin >> a;
    
              switch (a)
              {
    
                     case 1:
                          double *ptr;
                          ptr = &Differenz;
                          cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie zu addieren.";
                          cin >> zahl2;
                          cout<<"\nDie Summe ist: " << *ptr<<" + " << zahl2 <<" = " << *ptr+zahl2<< endl;
                          break;
    
                     case 2:
    
                          ptr = &Produkt;
                          cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie zu addieren.";
                          cin >> zahl2;
                          cout<<"\nDie Summe ist: " << *ptr<<" + " << zahl2 <<" = " << *ptr+zahl2<< endl;
                          break;
    
                     case 3:
    
                          ptr = &Quotient;
                          cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie zu addieren.";
                          cin >> zahl2;
                          cout<<"\nDie Summe ist: " << *ptr<<" + " << zahl2 <<" = " << *ptr+zahl2<< endl;
                          break;
    
              }
         break;
    
         case 1:
              cout<<"Sie haben die Rechenoperation Subtraktion gewählt";
              func(&zahl1,&zahl2);
              Differenz = zahl1-zahl2;
              cout<<"\nDie Differenz: "<<Differenz<< endl;
              system("pause");
              system("cls");
              cout <<"\nWollen Sie mit einem Ergebnis aus Addition/Multiplikation oder Division rechnen?"; 
              cout<<"\nDann druecken sie die 1,2,3 oder eine Taste und Enter zum Beenden\n";
              cin >> a;
              switch(a)
              {
                       case 1:
                            double *ptr;
                            ptr = &Summe;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie von der Summe abzuziehen.";
                            cin >> zahl2;
                            cout<<"\nDie Differenz ist: " << *ptr << " - " << zahl2<< " = " <<*ptr-zahl2 << endl;
                            break;
                       case 2:
                            ptr = &Produkt;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie von dem Produkt abzuziehen.";
                            cin >> zahl2;
                            cout<<"\nDie Differenz ist: " << *ptr << " - " << zahl2 << " = " << *ptr-zahl2 << endl;
                            break;
                       case 3:
                            ptr = &Quotient;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie von dem Quotient abzuziehen.";
                            cin >> zahl2;
                            cout<<"\nDie Differenz ist: " << *ptr << " - " << zahl2 <<" = " << *ptr-zahl2 << endl;
                            break;
              }
         break;
    
         case 2:
              cout<<"Sie haben die Rechenoperation Multiplikation gewählt";
              func(&zahl1,&zahl2);
              Produkt = zahl1*zahl2;
              cout<<"\nDas Produkt der beiden Zahlen beträgt: "<< Produkt<< endl;   
              system("pause");
              system("cls");
              cout <<"\nWollen Sie mit einem Ergebnis aus Addition/Subtraktion oder Division rechnen?"; 
              cout<<"\nDann druecken sie die 1,2,3 oder eine Taste und Enter zum Beenden\n";
              cin >> a;
              switch(a)
              {
                       case 1:
                            double *ptr;
                            ptr = &Summe;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie mit der Summe zu multiplizieren.";
                            cin >> zahl2;
                            cout<<"\nDas Produkt ist: " << *ptr << " * " << zahl2 << " = " << *ptr*zahl2 << endl;
                            break;
                       case 2:
                            ptr = &Differenz;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie mit der Differenz zu multiplizieren.";
                            cin >> zahl2;
                            cout<<"\nDas Produkt: " << *ptr << " * " << zahl2 << " = " << *ptr*zahl2 << endl;
                            break;
                       case 3:
                            ptr = &Quotient;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie mit dem Quotienten zu multiplizieren.";
                            cin >> zahl2;
                            cout<<"\nDas Produkt ist: " << *ptr << " * " <<zahl2 << " = " << *ptr*zahl2 << endl;
                            break;
              }
         break; 
    
         case 3:
              cout<<"Sie haben die Rechenoperation Division gewählt";
              func(&zahl1,&zahl2);
              Quotient = zahl1/zahl2;
              if(zahl2 == 0)
              {
                       cout<<"Error, die 2. Zahl darf keine Null sein!";
              }
              else
              {
    
                  cout<<"\nDer Quotient der beiden Zahlen beträgt: "<< zahl1/zahl2<< endl;
              }
              system("pause");
              system("cls");
              cout <<"\nWollen Sie mit einem Ergebnis aus Addition/Subtraktion oder Multiplikation rechnen?"; 
              cout<<"\nDann druecken sie die 1,2,3 oder eine Taste und Enter zum Beenden\n";
              cin >> a;
              switch(a)
              {
                       case 1:
                            double *ptr;
                            ptr = &Summe;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie durch die Summe zu teilen.";
                            cin >> zahl2;
                            cout<<"\nDer Quotient ist: " << *ptr << " / " << zahl2 << " = " << *ptr/zahl2 << endl;
                            break;
                       case 2:
                            ptr = &Differenz;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie durch die Differenz zu teilen.";
                            cin >> zahl2;
                            cout<<"\nDer Quotient ist: " << *ptr << " / " << zahl2 << " = " << *ptr/zahl2 << endl;
                            break;
                       case 3:
                            ptr = &Summe;
                            cout<<"\nBitte geben Sie eine 2.Zahl ein, um sie durch das Produkt zu teilen.";
                            cin >> zahl2;
                            cout<<"\nDer Quotient ist: " << *ptr << " / " << zahl2 << " = " << *ptr/zahl2 << endl;
                            break;
              }
         break;
    
        }
    
    } 
    int main() 
    { 
         while (!ende) 
         { 
            system("cls"); 
             cout << " ---------------------------\n";
             cout << " Ein kleiner Taschenrechner\n"; 
             cout<<"\n Copyright by Christopher H.";
             cout<<"\n --------------------------- \n\n";
             for (int i=0;i<=EINTRAEGE;i++) 
             { 
                 if (i == nummer) 
                 { 
                     cout << " -> "<< titel[i] << " <- \n"; 
                     cout<< right << setw(6) <<"-"<<"-----------\n";    
                 }
    
                 else 
                 { 
                     cout << "    " << titel[i] << "    \n"; 
                 } 
    
             } 
             taste = getch(); 
             if (taste == 'a')   
             { 
               if (nummer == EINTRAEGE) 
               { 
                   nummer = 0; 
               } 
               else 
               { 
                  nummer++; 
               } 
             } 
    
             if (taste == 'q') 
             { 
               if (nummer == 0) 
               { 
                   nummer = EINTRAEGE; 
               } 
               else 
               { 
                  nummer--; 
               } 
             } 
    
             if(taste == 13) //Enter
             { 
                 Funktion(); 
             } 
    
             switch(getch())
             {
                            case ESC: ende =true;
             }
    
         } 
    
    }
    
    //////////////////////////////////////////////////////////////////////////////
    double func(double *pzahl1, double *pzahl2)
    {
           system("cls");
           cout <<"\nBitte geben Sie die erste Zahl ein: ";
           cin >> *pzahl1;
           cout<<"\nGeben Sie nun die zweite Zahl ein: ";
           cin >> *pzahl2;
    }
    


  • 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