Hilfe: Funktion in Funktion aufrufen wie? / Einfaches Kurzprojekt



  • deine aufgabe hat mir keine logik. du schreibst zweimal die selbe funktion addition und alle machen das selbe. hie ist ein beispiel:

    float addition(float a, float b)
    {
      return a+b;
    }
    float subtraktion(float a, float b)
    {
      return a-b;
    }
    
    int main()
    {
      float a=4, b=23.2;
      cout << "ADD: " << addition(a,b) << endl;
      cout << "SUB: " << subtraktion(a,b) << endl;
      // oder
      cout << "funk in funk: " << addition(addition(a,b),subtraktion(a,b)) << endl;
    
      return 0;
    }
    

    by the way: return 0 heisst nicht gebe nichts aus sondern gebe 0 zurück, dass heisst dass die funktion irgendeinen wert zurückliefert.



  • Also ich sollte in der ersten Aufgabe ein Programm schreiben, mit den 4 Grundrechenarten. Ich habe es hier mal verkürzt wiedergegeben, weil das funktioniert ja einwanfrei. In der nächsten Ausgabe soll ich dieses Programm so erweitern, dass mit einer zusätzlichen Funktion alle Rechenarten mit Ergebnis auf einmal ausgegeben werden.



  • Suseplus schrieb:

    Also ich sollte in der ersten Aufgabe ein Programm schreiben, mit den 4 Grundrechenarten. Ich habe es hier mal verkürzt wiedergegeben, weil das funktioniert ja einwanfrei. In der nächsten Ausgabe soll ich dieses Programm so erweitern, dass mit einer zusätzlichen Funktion alle Rechenarten mit Ergebnis auf einmal ausgegeben werden.

    deklariere 2 globale vars,anschl.übergibst du die ergebnisse den globalen vars.mit der letzten funktion definierst du die ausgabe,also die ausgabe der 2 globalen vars.
    müßte so klappen...



  • #include <iostream>
    
    using namespace std;
    
    float addition(float a, float b)
    {
    return (a + b);
    }
    float subtraktion1(float a, float b)
    {
    return (a - b);
    }
    
    void alle(float a, float b)
    {
    cout <<"Das Ergebnis der Addition lautet: " << addition(a,b) <<endl; 
    }
    
    int main(){
    
    float a;
    float b;
    char Auswahl;
    
    cout <<"Bitte geben Sie den Wert a ein: ";
    cin >> a;
    cout <<"Bitte geben Sie den Wert b ein: ";
    cin >> b;
    cout <<'\n';
    cout <<"Bitte wählen Sie nun die Art der Rechenoperation:"<<endl;
    cout <<"a Addition a + b"<<endl;
    cout <<"b Subtraktion_1 a - b"<<endl;
    cout <<"c Alle Rechenoperationen"<<endl;
    cout <<'\n';
    cout <<"Bitte treffen Sie Ihre Auswahl: ";
    cin >>Auswahl;
    
    switch(Auswahl) {
    case 'a':
    cout <<"Das Ergebnis von "<<a <<" + "<<b <<" lautet: "<<addition(a,b)<<endl;
    break;
    
    case 'b':
    cout <<"Das Ergebnis von "<<a <<" - "<<b <<" lautet: "<<subtraktion1(a,b)<<endl;
    break;
    
    case 'c':
        alle(a,b);
        break;
    }
    
    return 0;
    }
    

    Probiers mal so.



  • Deathwachters Code funktioniert nun sauber ohne Fehler und der Ausgabe unnützer Zeichen.

    Danke Danke Danke



  • Und dann vergleiche mal bitte seinen und deinen Code.
    Dann werden dir die Fehler schon auffallen!



  • Es ist eine Frage der Kombination der Codeteile.

    Einzeln hatte ich es schon öfter so, aber oben und unten hatte ich aufeinmal anscheinbar nie diese Code gehabt.

    Letztenendes war das wichtigste nun wohl doch der Verzicht auf das cout unten und der Aufrauf einfach nur mit alle(a,b);



  • Demach weißt du also noch nicht so genau was "cout" macht, oder?



  • Na cout steht für die Ausgabe von dem Nachfolgenden Text/Variablen. Sicher gibt es natürlich wieder noch eine genauere Definition und Sonderregeln.



  • Suseplus schrieb:

    Na cout steht für die Ausgabe von dem Nachfolgenden Text/Variablen.

    Okay.

    Und jetzt überlege dir wieso Folgendes nicht geht:

    void add(int a, int b)
    {
     cout<<a+b<<endl;
    }
    
    ...
    
    int main()
    {
     ...
     cout<<add(12,2);
     ...
    }
    


  • Ich vermute mal, das der Compiler es nicht rafft, einen doppelten cout Befehl abzuarbeiten.



  • ...

    Ich glaube eher dass du das nicht raffst!


Anmelden zum Antworten