programm



  • Hallo, ich bins wieder,

    ich hab mal ne Frage zu nem einfachen Programm.
    #include <iostream>
    using namespace std;

    const double pi = 3.141592654;

    int main()
    {
    int num;
    double flaeche, umfang, radius;
    flaeche = pi*radius*radius;
    umfang = 2 * pi * radius;
    radius=num;
    cout << "Bitte geben sie ihren Radius ein" << endl;
    cin >> num;

    cout <<"Kreisberechnung" << endl;
    cout << "radius: " << num << endl;
    cout << "flaeche " << flaeche << endl;
    cout << "umfang " << umfang << endl;
    system("PAUSE");
    return 0;
    }

    Ich möchte dass man den Radius eingibt, und dann die flaeche und den umfang ausgerechnet bekommt. programm.exe bekommt aber falsche werte bzw. 0 heraus, wieso?

    danke schonmal im voraus



  • Hallo,

    die Zuweisungen an die Variablen werden nicht irgendwie für immer an die Variablen gebunden, sondern es wird alles schön hintereinander abgearbeitet.
    D.h. also, dass radius den momentanen Wert von num bei radius=num annimmt.
    Und dieser ist 0 oder gar nicht definiert - zumindest nicht das, was später für num eingegeben wird.



  • Variablen speichern keine Formeln. So was

    flaeche = pi*radius*radius;
    

    wird direkt ausgewertet. Da du den Radius erst einliest, nachdem alle Berechnungen stattgefunden haben, kommt natürlich nur Müll heraus.



  • Deine Reihenfolge ergibt keinen Sinn.

    int num;
    double radius = num;
    cout << "Bitte geben sie ihren Radius ein" << endl;
    cin >> num;
    

    Sollte doch klar sein, wo da der Fehler liegt 😉



  • könnt ihr mir noch sagen was int bedeutet? definiert es eine variabel? und was ist int num??

    danke



  • #include <iostream>
    using namespace std;

    const double pi = 3.141592654;

    int main()
    {
    int num;
    double flaeche, umfang, radius;
    radius=num;
    flaeche = pi*radius*radius;
    umfang = 2 * pi * radius;
    cout << "Bitte geben sie ihren Radius ein" << endl;
    cin >> num;

    cout <<"Kreisberechnung" << endl;
    cout << "radius: " << num << endl;
    cout << "flaeche " << flaeche << endl;
    cout << "umfang " << umfang << endl;
    system("PAUSE");
    return 0;
    }

    soweit bin ich jetzt, er gibt 12,56 aus, der wert stimmt für radius=2, aber wenn ich zum beispiel 5 eingeben, steht da immer noch 12,56, woran könnte das liegen?



  • Vielleicht solltest du dir ein C++-Buch besorgen und die Programmiersprache lernen, bevor du etwas programmierst.



  • Du solltest die oberen Postings so lange lesen, bis du sie verstanden hast.
    Alles, was du zur Lösung deines Problems brauchst steht da bereits, insbesondere wurst hat dich ja schon mit der Nase hereingestupst.



  • ich habe ein buch, c++ lernen und professionell anwenden, angeblich für anfänger, aber überhaupt nicht anfängerfreundlich, da wird was über double und float gelabert aber nicht erklärt was int num ist oder wie man das anwendet.
    gibts noch welche hier die mir helfen möchten oder nur leute die sich zu gut halten



  • Timmy21 schrieb:

    ich habe ein buch, c++ lernen und professionell anwenden, angeblich für anfänger, aber überhaupt nicht anfängerfreundlich, da wird was über double und float gelabert aber nicht erklärt was int num ist oder wie man das anwendet.
    gibts noch welche hier die mir helfen möchten oder nur leute die sich zu gut halten

    Das Buch (ich habe eben in google books geschaut), enthält sehr wohl eine Beschreibung von int und beschreibt auch Variablendeklarationen und Zuweisungen mit int als Typ (In der Version ist auf Seite 50 der Sourcecode, und vorher werden die Datentypen etc. beschrieben z.B. auf Seite 38).



  • Hallo Timmy21,

    Ich möchte dass man den Radius eingibt, und dann die flaeche und den umfang ausgerechnet bekommt.

    Dann mach es doch genau so 😉

    Ich habe in Deinem Code mal Kommentare eingefügt. Du siehst, der Ablauf entspricht nicht Deiner Aussage.

    int main() 
    { 
      // Berechnung 
      int num; 
      double flaeche, umfang, radius; 
      radius=num; 
      flaeche = pi*radius*radius; 
      umfang = 2 * pi * radius; 
    
      // Eingabe des Radius
      cout << "Bitte geben sie ihren Radius ein" << endl; 
      cin >> num; 
    
      // Ausgabe der Resultate
      cout <<"Kreisberechnung" << endl; 
      cout << "radius: " << num << endl; 
      cout << "flaeche " << flaeche << endl; 
      cout << "umfang " << umfang << endl; 
      system("PAUSE"); 
      return 0; 
    }
    

    Herzliche Grüsse
    Walter



  • so habs, hatte
    cin >> num;
    radius = num;
    in der reihenfolge vertauscht, danke für die winks mit dem zaunpfahl


Anmelden zum Antworten