1. #1
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.461
    Thanked 9.169 Times in 3.039 Posts
    Blog Entries
    5

    Standard [C++] Einfacher Taschenrechner

    Guten Tag,

    IT-Hausaufgabe für meine Klasse & Übungsstuff für den Rest:

    Sie sollen einen einfachen Taschenrechner programmieren. Dieser soll zwei Operanden sowie die folgenden Operatoren verarbeiten können:

    Addition, Operator: +
    Subtraktion, Operator: -
    Multiplikation, Operator: *
    Division mit Dezimalstellen (falls vorhanden): / (Bedingung: 2. Operand darf nicht 0 sein)
    Ganzzahlige Division mit Rest: : (Bedingung: 2. Operand darf nicht 0 sein, jeder der Operanden muss ganzzahlig sein)

    Ungültige Operanden oder Operatoren sollen über eine Fehlermeldung abgewiesen werden.

    Anmerkung:
    Coding-Styl entspricht den Anforderungen des Lehrers (Öffnende Geschweifte Klammern in neue Zeile setzen etc, alles was schwul ist halt).
    Compiliert mit Borland C++ Builder 5.

    Source:

    PHP-Code:
    #include <iostream>
    #include <conio>

    using namespace std;

    void main()
    {
         
    float Operand1;
         
    cin >> Operand1;

         
    char Operator;
         
    cin >> Operator;

         
    float Operand2;
         
    cin >> Operand2;

         switch(
    Operator)
         {
                          case 
    '+':
                               
    cout << Operand1 Operand2;
                               break;

                          case 
    '-':
                               
    cout << Operand1 Operand2;
                               break;

                          case 
    '*':
                               
    cout << Operand1 Operand2;
                               break;

                          case 
    '/':
                               if(
    Operand2 == 0)
                               {
                                           
    cout << "Division durch 0 nicht m" << char(148) << "glich!";
                               }
                               else
                               {
                                     
    cout << Operand1 Operand2;
                               }
                               break;

                          case 
    ':':
                               if(
    Operand2 == 0)
                               {
                                           
    cout << "Division durch 0 nicht m" << char(148) << "glich!";
                               }
                               else if((int)
    Operand1 != Operand1 || (int)Operand2 != Operand2)
                               {
                                     
    cout << "Nur ganzzahlige Operanden m" << char(148) << "glich!";
                               }
                               else
                               {
                                     
    cout << (int)(Operand1 Operand2) << " Rest " << (int)Operand1 % (int)Operand2;
                               }
                               break;

                          default:
                                  
    cout << "Ung" << char(129) << "ltiger Operator!";
                                  break;
         }

         
    getch();



  2. #2
    Avatar von Ta1lor
    Registriert seit
    15.11.2011
    Beiträge
    767
    Thanked 832 Times in 435 Posts

    Standard AW: [C++] Einfacher Taschenrechner

    Du kannst die Eingabe auch so machen, finde ich persönlich schöner.

    Code:
    cin >> Operand1 >> Operator >> Operand2
    Und warum machst du nur bei ":" das ganze mit dem Rest?

    Ich hätte das so gemacht:


    PHP-Code:
    float Operand1Operand2;
         
    char Operator;
         
    cin >> Operand1 >> Operator >> Operand2;
         switch(
    Operator)
         {
            case 
    '+'cout << Operand1 Operand2; break;
            case 
    '-'cout << Operand1 Operand2; break;
            case 
    '*'cout << Operand1 Operand2; break;
            case 
    '/'
                if (
    Operand2 == 0)
                {
                    
    cout << "Geht nicht" << endl;
                } 
                else if (
    int (Operand1) != Operand1 || int (Operand2) != Operand2)
                    { 
                        
    cout << "Nur ganzzahlige Operanten m" << char(148) << "glich!" << endl
                    } 
                else if (
    int (Operand1) % int (Operand2) != 0
                        { 
                        
    cout << int ((Operand1) / Operand2) << " Rest " << int (Operand1) % int (Operand2) << endl
                        } 
                 
                        
                else 
    cout << Operand1 Operand2 << endl;
                 
                        break;
            default:
                    
    cout << "Ung" << char(129) << "ltiger Operator!";
                    
    _getch();
                    return;
                    break;
         }

         
    _getch(); 

    /e Ahja, jetzt hab ich das mit dem ":" auch gelesen..
    Geändert von Ta1lor (11.01.2012 um 01:42 Uhr)

  3. #3
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.461
    Thanked 9.169 Times in 3.039 Posts
    Blog Entries
    5

    Standard AW: [C++] Einfacher Taschenrechner

    Zitat Zitat von Ta1lor Beitrag anzeigen
    Du kannst die Eingabe auch so machen, finde ich persönlich schöner.

    Code:
    cin >> Operand1 >> Operator >> Operand2
    Zitat Zitat von DMW007
    Anmerkung:
    Coding-Styl entspricht den Anforderungen des Lehrers (Öffnende Geschweifte Klammern in neue Zeile setzen etc, alles was schwul ist halt).
    Wirtschaftsinformatiker halt, die sind sehr penibel.
    Der will das nach dem Schema

    PHP-Code:
    Datentyp Variablename;
    cin >> Variablename
    Dasselbe in switch-Blöcken.

    PHP-Code:
    [...]
    case 
    '+'cout << Operand1 Operand2; break; 
    Wenns nur um eine so kurze Codezeile geht würde ich das auch in eine Zeile knallen, gibt bei ihm aber Punktabzug da seine Vorgabe für switch eben so lautet:

    PHP-Code:
    switch(Variable)
    {
        case 
    "bla":
            
    //TuWas
            
    break;

    Wenn ich das für mich selbst schreibe, würde ich das auch etwas anders lösen, daher auch der Hinweis.

    Zitat Zitat von Ta1lor Beitrag anzeigen
    Und warum machst du nur bei ":" das ganze mit dem Rest?
    Aufgabenstellung.
    / gibt normale Kommazahlen aus, : nur ganze Zahlen mit Rest.


Ähnliche Themen

  1. Anfänger Einfacher Taschenrechner
    Von DMW007 im Forum Aufgaben
    Antworten: 3
    Letzter Beitrag: 12.08.2013, 15:55
  2. Taschenrechner
    Von Sky.NET im Forum Showroom
    Antworten: 0
    Letzter Beitrag: 18.02.2012, 01:26
  3. [C#] Taschenrechner-Konsole
    Von Snees im Forum .Net
    Antworten: 2
    Letzter Beitrag: 17.12.2011, 12:58
  4. [PS] Einfacher Rand
    Von Devon im Forum Tutorials
    Antworten: 0
    Letzter Beitrag: 01.12.2011, 13:02
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.