Funktionsaufruf



  • Hallo!
    Bin ein absoluter Anfänger, was das programmieren in C++ angeht.
    Ich sollte jetzt ein Programm schreiben, das mir bei Eingabe eines beliebigen Radius den zugehörigen Kreisumfang ausgibt. Hier der Quelltext:

    #include <iostream>
    #include <conio.h>
    #include <math.h>
    using namespace std;

    int main ()
    {
    float a = 3.1415926535;
    float r;
    float A;

    cout << "Radius in cm:";
    cin >> r;

    A= pow(r,2)*a;

    cout << "Kreisflaeche in cm²:" << A;

    getch();
    return 0;
    }

    Nun soll ich aber den Berechnungsteil in eine separate Funktion außerhalb der Main-Funktion packen und diese Funktion dann über die Main-Funktion aufrufen.
    Ich habe es schon auf verschiedene Arten probiert, aber der Debugger zeigt mir dann immer diverse Fehler beim kompilieren an.
    Wie würde das denn syntaktisch und inhaltlich richtig aussehen?



  • janiboy46 schrieb:

    Wie würde das denn syntaktisch und inhaltlich richtig aussehen?

    Zeig mal was du bisher hast, also einen deiner Versuche + Fehlermeldung des Compilers.



  • Also hier einer meiner Versuche:

    #include <iostream>
    #include <conio.h>
    #include <math.h>
    using namespace std;

    float flaeche (float pi , float r , float A);

    int main ()
    {
    float pi = 3.1415926535;
    float r;
    float A;

    cout << "Radius:";
    cin >> r;

    flaeche (pi,r,A);

    cout << "Kreisflaeche:" << A;

    getch();
    return 0;
    }

    float flaeche (float pi, float r, float A)
    {
    A= pow(r,2)*pi;
    return A;
    }

    und dann sagt der Debugger : ,,The variable 'A' is being used without being initialized.''
    Aber eigentlich habe ich A ja in der Funktion flaeche definiert!!??
    Also wie gesagt, bin wirklich ein Anfänger und ist daher wahrscheinlich eh ein ganz dummer Fehler, weil ich noch nie vorher mit Funktionen (außer der main-Funktion) gearbeitet habe.



  • janiboy46 schrieb:

    und dann sagt der Debugger : ,,The variable 'A' is being used without being initialized.''
    Aber eigentlich habe ich A ja in der Funktion flaeche definiert!!??

    Das sind zwei verschiedene Variablen, einmal eine lokale Variable in A, einmal ein Funktionsparameter. Die haben nichts miteinander zu tun, die Namensgleichheit interessiert den Compiler nicht.

    Dein Programm sollte eher so aussehen:

    float flaeche(float r);
    
    int main() {
      ...
      cout << "Radius:";
      cin >> r; 
      float A = flaeche(r);
      cout << "Kreisflaeche:" << A; 
      ...
    }
    
    float flaeche(float r) {
      const float pi = 3.14...;
      return r * r * pi;
    }
    


  • Ok, danke!
    Habs jetzt geändert und auch verstanden. 😉


Anmelden zum Antworten