Hilfestellung zu einer Aufgabe



  • Hallo liebe community

    Ich bin ein blutiger c++-Anfänger und hab hier etwas Mühe mit der Erstellung eines Progs zur Berechnung der Umlaufzeit eines Satelliten.

    Ich stell mal den Code rein, eventuell sieht bereits jemand den Fehler:

    //Programm zur Berechnung der Umlaufzeit und nötiger Höhe eines Umlaufsatelliten
    
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main ()
    
    {
    
    //Variablen-Bestimmung
    const float g   = 9.80665;   // Erdbeschleuningung
    const float Pi  = 3.14159;   // Pi auf 5 Stelle gerundet
    const int Re    = 6371000;   // in Meter angegeben
    
    // User-Input für die Satelliten-Höhe
    int satheight;
    cout << "Eingabe der Satelliten-Hoehe in [km]:";
    cin >> satheight;
    satheight = satheight * 1000; // Umwandlung in Meter
    
    // Berechnung der Umlaufzeit
    double umlaufzeit = 2 * Pi / Re * sqrt (pow (Re + satheight, 3) / g);
    umlaufzeit /= 3600; // Umwandlung in Stunden
    
    // Ausgabe
    cout << "Umlaufzeit: " << umlaufzeit << endl;
    
    return 0;
    
    }
    

    Den Wert, den ich z.B. mit 20km Satelliten-Höhe kriege, kann nicht stimmen (1.41339 Stunden). Bei einer Erhöhung auf 36km werden es lediglich 1.4187.

    Da stimmt etwas grundsätzlich nicht und ich sehe den Fehler nicht.

    Vielen Dank für allfällige Tipps!



  • Was gefällt dir am Ergebnis nicht?
    Was erwartest du?

    Schon mal mit dem Taschenrechner (und der einfachen Formel von http://de.wikipedia.org/wiki/Satellitenorbit#Umlaufzeit) überprüft:



  • Hi

    Hatte eine völlig falsche Einschätzung der Höhe.
    Nach dem händischen Durchrechnen, stimmt das ganze soweit und nachdem ich auf wikipedia nachgelesen habe, dass die geostationäre Umlaufbahn bei etwas rund 36000 km liegt, hats nun auch bei mir *klick* gemacht. :p


Anmelden zum Antworten