Funktionen



  • Gewöhn dir besser an Funktionen so zu schreiben:

    int calcRectangleOutline(int width, int height)
    {
        return 2 * width + 2 * height;    
    }
    

    - Schichtentrennung
    - Kein Deutsch/Englisch MixUp
    - Unterstriche in Funktionen sehen kagge aus
    - Bin mir grad net sicher was Umfang auf Englisch heißt

    🤡



  • ok danke. Aber habe s noch nicht ganz verstanden.

    #include <iostream>
        using namespace std;
    
        int Add(int, int); 
        //Reserviert er speicher für Add oder für Add(int, int)?
        int main()
        {
          int a,b;
          cout<<"Bitte 2 Zahlen eingeben\n";
          cin>>a;
          cin>>b;
          cout<<"Die Summe von "<<a<<" und "<<b<<" ist "<<Add(a,b)<<".\n";
                                                        //Was bedeutet das \n und                                           
                                                        //add(a,b)?
         }
    
        int Add(int lhs, int rhs) //verstehe ich auch nicht. 
        {
          return lhs + rhs; //verstehe ich auch nicht.
    
        }
    


  • Les ein Tutorial und wenn du das nicht verstehst kauf dir ein gutes Buch. Hier wird dir keiner die Grundlagen erklären.



  • Ist das ne Funkrtion?

    float berechneKegelvolumen(float a,float b)
        {
        float A=a*b;
        return A;
        };
        void main()
        {
         float radius;
         float hoehe;
         cout<<"Bitte geben Sie den Faktor a ein: ";
         cin>>radius;
         cout<<"Bitte geben Sie den Faktor b ein: ";
         cin>>hoehe;
         cout<<"Der Flächeninhalt betraegt: "<<A<<endl;
        };
    


  • Ja aber da sind noch paar Dinge falsch:

    - Es heißt int main()
    - Man braucht kein Semikolon nach Funktionsblöcken (nach dem })
    - Lokale Variablen sind nur in ihrem Block gültig, d.h. die Funktion main kennt deine Variable A gar nicht. Jede Funktion kann aber eine Variable zurückgeben (das machst du ja mit return)
    - Anstatt A auszugeben (was ja nicht geht) musst du die Funktion aufrufen, die dir dann den Wert zurück gibt: cout << berechneKegelvolumen(radius, hoehe);



  • FireFlow schrieb:

    - Schichtentrennung
    --hab ich doch gesagt, es sollte nur ein überblick sein,deswegen hab ich es zusammengepackt( steht aber auch dabei), aber natürlich stimmt es.

    - Kein Deutsch/Englisch MixUp
    --wollte lediglich nicht guggen was umfang heisst ^^

    - Unterstriche in Funktionen sehen kagge aus
    --Ist geschmackssache und mir gefällts.

    Und wenn man schon so schick beginnen will, dann kann man auch gleich auf const-correctness achten.
    //edit gute Rechtschreibung ist selten ...



  • Also ich hab das jetzt etwas verendert.
    ISt das nun richtig ?

    float berechneRechteckfläche(float a,float b)
      {
      float f=a*b;
      return f;
      }
       int main()
       {
       float Sa;
       float Sb;
       cout<<"Bitte geben Sie den Faktor a ein: "<<endl;
       cin>>Sa;
       cout<<"Bitte geben Sie den Faktor b ein: "<<endl;
       cin>>Sb;
       cout<<"Der Flächeninhalt betraegt: "<<berechneRechteckfläche(Sa ,Sb);
       }
    


  • umlaute sind nicht erlaubt,sonst siehts aus als wenn es geht.
    Aber das müsstest du wissen. ich meine kompiliert der code ? macht er was zu erwarten is ?.. wenn ja, kannst du deine frage doch selbst beantworten.



  • Leider geht es nicht:
    3: parse error before {' In functionint main()':
    implicit declaration of function int berechneRechteckflaeche(...)' At top level: 21: parse error before}'

    #include <iostream>
    
    {
       float berechneRechteckflaeche(float a,float b)
    
        {
        float f=a*b;
        return f;
        }
        int main()
        {
         float Seite_A;
         float Seite_B;
         cout<<"Bitte geben Sie den Faktor a ein: "<<endl;
         cin>>Seite_A;
         cout<<"Bitte geben Sie den Faktor b ein: "<<endl;
         cin>>Seite_B;
         cout<<"Der Flächeninhalt betraegt: "<<berechneRechteckflaeche(Seite_A, Seite_B);
        }
    
    };
    


  • #include <iostream>
    
    using namespace std;
    
    float berechneRechteckflaeche(float a,float b) {
      return a*b;
    }
    int main() {
      float Seite_A, Seite_B;
      cout<<"Bitte geben Sie den Faktor a ein: "<<endl;
      cin>>Seite_A;
      cout<<"Bitte geben Sie den Faktor b ein: "<<endl;
      cin>>Seite_B;
      cout<<"Der Flächeninhalt betraegt: "<<berechneRechteckflaeche(Seite_A,Seite_B);
      return EXIT_SUCCESS;
    }
    


  • Du solltest dir wirklich eien ordentlichen stil für einrückungen zulegen. So wie du es machst kannst du einfach nicht erkennen wo etwas anfängt und endet.
    Ich machs so.

    #include <iostream>
    using namespace std;
    //{ zuviel
    
    float berechneRechteckflaeche(float a,float b) {
        float f=a*b;
        return f;
    }
    
    int main() {
        float Seite_A;
        float Seite_B;
        cout<<"Bitte geben Sie den Faktor a ein: "<<endl;
        cin>>Seite_A;
        cout<<"Bitte geben Sie den Faktor b ein: "<<endl;
        cin>>Seite_B;
        cout<<"Der Flächeninhalt betraegt: "<<berechneRechteckflaeche(Seite_A, Seite_B);
        return 0;
    }
    
    //};  auch zuviel
    

    Kurt



  • GUt ich habe es nun verstanden 🙂 werde mein Programm nun neue schreiben.^^


Anmelden zum Antworten