Taschenrechner



  • @Firefighter:

    Ich nehme mal an das hätte so heissen sollen:

    cout << "\n1.Zahl: ";  //<-- das ist kein L sondern eine "eins"
    .
    .
    . 
    cout << "\n2.Zahl: "; //bei copy and paste vergessen die zahl zu ändern...
    


  • Sorry für doppelpost aber ich habe noch einen guten Tipp:
    Im Deutschen wird bei einem mittels s gebildeten Plural einfach das
    s hinten angehängt ohne '
    🙂



  • achso...ok dann ergibt es sinn:)



  • Dave__R schrieb:

    Sorry für doppelpost aber ich habe noch einen guten Tipp:
    Im Deutschen wird bei einem mittels s gebildeten Plural einfach das
    s hinten angehängt ohne '
    🙂

    Dazu gibt es sogar eine eigene Webseite: http://www.deppenapostroph.de/ 😉



  • @ Joe_M.:
    Ja ich kenne den Ausdruck. Wollte aber nicht so persönlich werden 🙂



  • Danke bisher schonmal fürs Feedback

    Das mit dem überprüfen ob der Nenner 0 ist hab ich nun mit eingebaut.

    So nun hab ich noch eine Frage:

    cout << "\n\nWollen sie eine weitere Berechnung durchfuehren?\n";
        cout << "<J/N>";
        cin >> antwort;
    

    An dieser Stelle wird ja abgefragt ob das Programm nun beendet werden soll oder weitergerechnet wird.Wenn ich dort nun eine Zahl eingebe Schließt sich das Programm und ich möchte das gerne abfangen.Habe gedacht das dazu vll eine for-Schleife nicht schlecht wäre nur weiß ich nicht inwiefern ich diese aufbauen soll.Für einen kleinen Tipp wär ich dankbar ^^



  • cout << "\n\nWollen sie eine weitere Berechnung durchfuehren?\n";
    cout << "<J/N>";
    cin >> antwort;
    
    do
    {
      if(!cin)
      {
         cin.sync();
         cin.clear();
         cin.ignore();
    
         cout<<"Falsche Eingabe, Wiederholung: ";
         cin>>antwort;
      }
      else
      {
         cout<<"Richtige Eingabe"<<endl;
         break;
      }
    }while(!cin);
    


  • Wesentlich einfacher wäre wohl eher dies:

    . . .
        cout << "\n\nWollen sie eine weitere Berechnung durchfuehren?\n";
        cout << "<J/N>";
        cin >> antwort;
    
    		while( antwort != 'j' && antwort != 'n' )
    		{
    			cout << "Falsche Eingabe, wiederholen: ";
    			cin >> antwort;
    		}
    	system("cls");
    
    } while (antwort == 'j');
    
    }
    

    😉



  • Habs nun hinbekommen, dass das Programm nichtmehr durch eine Zahlenangabe abstürzt.Nun ist mir was anderes aufgefallen:Wenn ich große Zahlen Multipliziere werden nicht die reinen Zahlen ausgegeben sondern z.B. bei 5000*5000 kommt dort dann 2.5e+007 raus.Weiß jemand wie man das verhindern kann?



  • #include <iomanip>
    .
    .
    .
    std::cout <<  std::setprecision(xx) << std::fixed << Wert << std::endl;
    

    Dabei sind xx die Nachkommastellen und Wert soll der auszugebene Wert sein.



  • Hallo,

    hab nochmal eine Frage 😃

    In meinem Taschenrechner hab ich da ein Menü mit auswahlmöglichkeit, nun habe ich das Problem wenn ich dort anstatt einer Zahl einen Buchstaben eingebe das Prgramm in eine Endlosschleife läuft und immer wieder "Falsche Eingabe" ausspruckt.Anbei mal der Quellcode(ist etwas überarbeitet).

    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
    #include <cmath> 
    #include <iomanip>
    
    using namespace std;
    
    long double calculate(int ausw, long double x, long double y);  //deklaration der funktion 'calculate'
    
    int main()
    {
        int auswahl;                                                //deklaration der Variablen für die Funktion 'main'
        long double a = 0.0;
        long double b = 0.0;
        long double ergebnis = 0.0;
        char antwort;
    
        do                                                          //Schleife fürs Auswahl-Menü die nur solange gilt             
        {                                                           //wie die Antwort gleich 'j' ist
            cout << "Calculator v0.9_RC_1\n" << endl;
            cout << "|==============|\n\n";
            cout << "[1]Addition\n"<<
                    "[2]Subtraktion\n"<<                                //Auswahl-Menü
                    "[3]Multiplikation\n"<<
                    "[4]Division\n"<<
                    "[5]Quadrieren\n"<<
                    "[6]Wurzel ziehen\n"<<
                    "[7]Prozentrechnung\n"<<
                    "[0]Beenden\n\n";
            cout << "Waehlen sie eine Option aus: ";
            cin >> auswahl;                                             //Einlesen der Menü-Auswahl
    
            if( auswahl == 0 )                                          //Programm beenden wenn 0 gewählt wird
                return 0;
    
            system("cls");                                              //Bildschirminhalt löschen
    
            cout << "Kommazahlen muessen mit einem Punkt statt eines Kommas eingegeben werden!\n\n";
    
            if ( auswahl >= 1 && auswahl <= 4 )
            {
                cout << "\n1.Zahl: ";                                       //Erste Zahl einlesen
                cin  >> a;
    
                cout << "\n2.Zahl: ";
                cin  >> b;                                                  //Zweite Zahl einlesen
                }
                else if( auswahl >= 5 && auswahl <= 6 )
                {
                     cout << "\nBasis: ";                                       //Basis einlesen
                     cin  >> a;
    
                     cout << "\nExponent: ";                                    //Exponent einlesen
                     cin  >> b;
                     }
                     else if( auswahl == 7 )                                    //Werte für Prozentrechnung einlesen
                     {
                          cout << "bla";        
                          }
                          //if (auswahl !=
    
        ergebnis = calculate(auswahl, a, b);
    
        cout << "\nDas Ergebnis lautet: " << setprecision(2) << fixed << ergebnis;
    
        cout << "\n\nWollen sie eine weitere Berechnung durchfuehren?\n";         
        cout << "<J/N>";                                            //Abfrage ob weitergerechnet werden soll oder nicht              
        cin >> antwort;
    
            while( antwort != 'j' && antwort != 'n' ) 
            { 
                cout << "Falsche Eingabe, wiederholen: ";           //Fehlerabfang falls Zahl anstatt Buchstabe eingegeben wird
                cin >> antwort; 
            }
    
        system("cls");                                              //Bildschirminhalt löschen
    
    }while (antwort == 'j' );                                       //Bedingung der Do-While-Schleife
    
            return 0;
    
    }
    long double calculate (int ausw,long double x,long double y)    //Funktion zum berechnen der einzelnen Werte
    {
           long double res = 0.0;                                   //Definition des Ergebnis-Wertes
    
           switch(ausw)                                             //Switch-Anweisung für Menü-Auswahl
           { 
             case 1 :                                                //Berechnung zur Addition
             {    
                  res = x + y;
                  break;
             } 
             case 2 :                                                //Berechnung zur Subatraktion
             {    
                  res = x - y;
                  break;
             }                      
             case 3 :                                                //Berechnung zur Multiplikation
             {    
                  res = x * y;     
                  break; 
             }          
             case 4 :                                                //Berechnung zur Division    
             {    
                  res = x / y;
                         if (y == 0)                                 //Fehlerabfang falls durch 0 dividiert wird   
                         {
                            cout << "\nDivision durch 0 nicht moeglich!";
                         }                     
                  break;    
             }
             case 5 :
             {
                  res = pow (x, y);                                  //Berechnung zu Potenzierung    
                  break;     
             }
             case 6 :
             {
                  res = pow(x, 1.0 / y);                             //Berechnung zur Wurzelziehung
                  break;
             }
             case 7 :                                                //Berechnung zur Prozentberechnung
             {
                  //res = x y;
                  break;
             }     
             default : cout<<"Falsche Eingabeparameter!";            //Falsche Auswahl    
                  break; 
             }
     return res;    
    }
    

Anmelden zum Antworten