Brauche dringend hilfe <edit>bei einfachem Taschenrechner</edit>



  • hallo leute ich bracuhe mal eure hilfe.

    In der Schule haben wir eine Aufgabe bekommen einne Taschenrechner zu Programmieren mit Funktionen.

    was ich auch gemacht habe.

    So jetzt kommt das problem wir mußen jetzt noch eine Funktion Implementieren die alle ergebnisse ausgebn kann.

    ich habe das was probiert aber es klapt bei mir nicht.

    #include <iostream.h>
    
    float Subtraktion(float x, float y)
    {
            return (x-y);
    }
    
    float Addition (float x, float y)
    {
            return (x+y);
    }
    
    float Multiplikation(float x, float  y)
    {
            return (x*y);
    }
    
    float Division(float x, float y)
    {
           return (x/y);
    }
    float Alleausgeben(float x, float y)
    {
    cout << Addition(x,y) <<endl;
    cout << Subtraktion(x,y) <<endl;
    cout << Multiplikation(x,y) <<endl;
    cout << Division(x,y);
    }
    void main()
    {
    float zahl1;
    float zahl2;
    char wahl;
    
            cout <<" <+> Addition\n";
            cout <<" <-> Subtraktion\n";
            cout <<" <*> Multiplikation\n";
            cout <<" </> Division\n";
            cout <<" <a> Allesausgeben";
            cout <<"\nGeben Sie Rechenoperation ein" <<endl;
          cin >> wahl;
          switch (wahl)
          {
             case '+':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Addition(zahl1,zahl2);
                break;
             }
             case '-':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Subtraktion(zahl1,zahl2);
                break;
             } 
             case '*':
             { 
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Multiplikation(zahl1,zahl2);
                break;
             }
             case '/':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Division(zahl1,zahl2);
                break;
             }
             case 'a':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDie Ergebniss lauten "<< Alleausgeben(zahl1, zahl2);
             }
             }
    
    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
    }
    


  • So jetzt kommt das problem wir mußen jetzt noch eine Funktion Implementieren die alle ergebnisse ausgebn kann.

    Und was heisst das genau?? Summiert??

    ggf.

    float zahl1;
    float zahl2;
    float summe=0;
    char wahl;
    

    Bei jeder Berechung das Ergebnis nochmal extra auf die Summe legen. Hier als Bsp. fürs addieren:

    cout <<"\nDas Ergebnis lautet "<< Addition(zahl1,zahl2);
    summe+=Addition(zahl1,zahl2);

    Alles ausgeben

    cout <<"\nDie Ergebniss lauten "<< summe;



  • Du hast doch schon eine Funktion, die alles ausgeben kann 😉 nur gibt die das Ergebnis nicht als Rückgabe raus, sondern direkt auf den Bildschirm - also mußt du sie nur richtig einsetzen:

    cout <<"\nDie Ergebnisse lauten "<< endl;
    Alleausgeben(zahl1, zahl2);
    

    (alternativ könnte Alleausgeben() auch einen String aus allen Rechenergebnissen zusammenbauen und per return zurückgeben)



  • Du hast doch schon eine Funktion, die alles ausgeben kann 😉 nur gibt die das Ergebnis nicht als Rückgabe raus, sondern direkt auf den Bildschirm - also mußt du sie nur richtig einsetzen:
    C/C++ Code:
    cout <<"\nDie Ergebnisse lauten "<< endl;
    Alleausgeben(zahl1, zahl2);
    C/C++ Code:
    cout <<"\nDie Ergebnisse lauten "<< endl;
    Alleausgeben(zahl1, zahl2);
    C/C++ Code:
    cout <<"\nDie Ergebnisse lauten "<< endl;
    Alleausgeben(zahl1, zahl2);

    (alternativ könnte Alleausgeben() auch einen String aus allen Rechenergebnissen zusammenbauen und per return zurückgeben)

    die funktion stimmt aber nicht. ich weiss nicht aber ich denke hier lieg der fehler.

    float Alleausgeben(float x, float y)
    {
    cout << Addition(x,y) <<endl;
    cout << Subtraktion(x,y) <<endl;
    cout << Multiplikation(x,y) <<endl;
    cout << Division(x,y);
    

    }

    denn wen ich es kompiliere kommt eine fehler meldung raus "ungültige gleitkommapoeration"

    wir dürfen noch keine string verwenden



  • Da diese Funktion nichts zurückgeben will, benötigt sie auch keinen Rückgabetyp - sprich: ersetze das float am Zeilenanfang durch void:

    void Alleausgeben(float x, float y)
    {
      cout << Addition(x,y) <<endl;
      cout << Subtraktion(x,y) <<endl;
      cout << Multiplikation(x,y) <<endl;
      cout << Division(x,y);  
    }
    


  • es hilft leider nicht

    es macht nicht das was es machen soll.

    kann´s du mir bitte erklären wie ich in eine Funktion eine andere Implementieren kann.



  • Dann sag doch mal, was der Compiler für Beschwerden hat. (und hast du den Aufruf in der main() auch so angepasst, wie ich es dir oben vorgeschlagen habe? - für mich sieht das Problem stark danach aus, daß du die Grundlagen von C++ noch kapieren mußt)



  • habe so gemavht wie du es gesagt hat.

    geht aber nicht.

    werde mal die aufgaben stellung noch mal beschreiben.

    Erweitern Sie den Taschenrechner aus der Aufgabe so, dass zusätzlich die ergebnisse alles Rechenoperationnen aus dem Bildschirm ausgegben werden können. Implementieren sie auch diese zusätzliche Funktionalität als Funktion.

    #include <iostream.h>
    
    float Subtraktion(float x, float y)
    {
            return (x-y);
    }
    
    float Addition (float x, float y)
    {
            return (x+y);
    }
    
    float Multiplikation(float x, float  y)
    {
            return (x*y);
    }
    
    float Division(float x, float y)
    {
           return (x/y);
    }
    
    void main()
    {
    float zahl1;
    float zahl2;
    char wahl;
    
            cout <<" <+> Addition\n";
            cout <<" <-> Subtraktion\n";
            cout <<" <*> Multiplikation\n";
            cout <<" </> Division\n";
    
            cout <<"\nGeben Sie Rechenoperation ein" <<endl;
          cin >> wahl;
          switch (wahl)
          {
             case '+':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Addition(zahl1,zahl2);
                break;
             }
             case '-':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Subtraktion(zahl1,zahl2);
                break;
             } 
             case '*':
             { 
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Multiplikation(zahl1,zahl2);
                break;
             }
             case '/':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Division(zahl1,zahl2);
                break;
             }
    
             }
    
    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
    }
    

    und das ist mein Taschenrechner denn ich prog habe.



  • habe so gemavht wie du es gesagt hat.

    geht aber nicht.

    werde mal die aufgaben stellung noch mal beschreiben.

    Erweitern Sie den Taschenrechner aus der Aufgabe so, dass zusätzlich die ergebnisse alles Rechenoperationnen aus dem Bildschirm ausgegben werden können. Implementieren sie auch diese zusätzliche Funktionalität als Funktion.

    und das ist mein Taschenrechner denn ich prog habe. ohne die Funktion wo alles ausgegeben wird

    #include <iostream.h>
    
    float Subtraktion(float x, float y)
    {
            return (x-y);
    }
    
    float Addition (float x, float y)
    {
            return (x+y);
    }
    
    float Multiplikation(float x, float  y)
    {
            return (x*y);
    }
    
    float Division(float x, float y)
    {
           return (x/y);
    }
    
    void main()
    {
    float zahl1;
    float zahl2;
    char wahl;
    
            cout <<" <+> Addition\n";
            cout <<" <-> Subtraktion\n";
            cout <<" <*> Multiplikation\n";
            cout <<" </> Division\n";
    
            cout <<"\nGeben Sie Rechenoperation ein" <<endl;
          cin >> wahl;
          switch (wahl)
          {
             case '+':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Addition(zahl1,zahl2);
                break;
             }
             case '-':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Subtraktion(zahl1,zahl2);
                break;
             } 
             case '*':
             { 
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Multiplikation(zahl1,zahl2);
                break;
             }
             case '/':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDas Ergebnis lautet "<< Division(zahl1,zahl2);
                break;
             }
    
             }
    
    char p[50];
    cin.getline(p,50);
    cin.getline(p,50);
    }
    


  • Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,

    du hast doch im case folgendes stehen:

    ...
             case 'a':
             {
                cout <<"Geben Sie die erste Zahl ein: ";
                cin >> zahl1;
                cout <<"\nGeben Sie nun die zweite Zahl ein: ";
                cin >> zahl2;
                cout <<"\nDie Ergebniss lauten "<< Alleausgeben(zahl1, zahl2);
             } 
             ...
    

    Deine Allesausgeben sieht wiefolgt aus:

    float Alleausgeben(float x, float y)
    {
    cout << Addition(x,y) <<endl;
    cout << Subtraktion(x,y) <<endl;
    cout << Multiplikation(x,y) <<endl;
    cout << Division(x,y);
    }
    

    So, nun solltest du vielleicht aus

    cout <<"\nDie Ergebniss lauten "<< Alleausgeben(zahl1, zahl2);
    

    als erstes nur

    Alleausgeben(zahl1, zahl2);
    

    machen und dann deine Funktion wie oben schon gesagt in

    void Alleausgeben(float x, float y)
    

    abändern, und das Programm sollte einwandfrei kompelieren, und laufen.



  • man bin ich blöd.

    es funzt.

    ich danke euch allen für die schnelle hilfe


Anmelden zum Antworten