Jump to content
Melde dich an, um diesem Inhalt zu folgen  

Rechenfehler bei Gewichtsberechnungen

Empfohlene Beiträge

Hallo,

entschuldigt, dass ich hier jetzt einfach so reinplatze, aber ich habe ein ähnliches Problem. Ich komme bei einer relativ einfachen Berechnung einfach nicht auf das richtige Ergebnis im Programm. Ich habe mich durchgeackert durch viele Beiträge und unzählige für mich vorstellbare Feherquellen und habe meiner Meinung nach alle notwendigen Deklarationen und Besonderheiten beim Arbeiten mit "double" variablen durchgeführt und beachtet. Es geht um folgendes Problem. Ich möchte das Takeoffweight eines Flugzeuges berechnen lassen, bestehend aus dem vordefinierten Leergewicht, dem Gewicht aller Passagiere (Anzahl der Passagiere wird durch cin definiert) inkl. Gepäck (= toweightbasic) sowie dem zuvor auf ähnliche Weise erfolgreich berechneten Treibstoff in Pfund. Ich hatte einige Zeilen zuvor ein ähnliches Problem beim Ermitteln der empfohlenen Sinkrate, da ließ es sich aber durch das richtige Definieren mit xx.00 beispielsweise und das Rechnen ohne Zahlenwerte, also nur mit Variablen, lösen. Nur hier geht es einfach nicht. Ich habe meinen Taschenrechner gezückt und genauso wies im Quellcode steht 1:1 eingegeben und komme auf 146500 lbs während das Programm ausgibt: 1.03069e+265 bzw. bei einem anderen Testlauf weniger als das, was vorher für das Treibstoffgewicht rauskommt. Treibstoffgewicht bei jedem Durchlauf: 44630.6. Für toweightbasic = passengers*pasandluggageStdWeight kommt der korrekte Wert, nämlich 22880 lbs raus bei 104 Passagieren und 220 lbs als Standardgewicht pro Passagier (inkl. Gepäck). Anbei ein kompilierbarer Teil meines Codes, wäre für baldige Hilfe sehr dankbar. Ich übersehe ganz sicher was. 

#include <iostream>
#include <cmath>

#include <cstring>

using namespace std;

int main()

{

// Definition of aircraft to use:

string aircraft;

cout << "Please tell me which aircraft you wanna use (ICAO): "; getline(cin, aircraft);

// Aircraft ICAO Codes für eure Tests: Boeing 737 = B738; Boeing 747 = B744, Learjet 45 = LJ45;

// TOW and TOS Variables
                double pasandluggageStdWeight = 220.0; // lbs
                cout << pasandluggageStdWeight; // Testausgabe
                double passengers; // user input
                double emptyweightb738 =  90170.0; // lbs
                cout << emptyweightb738; // Testausgabe
                double emptyweightb744 = 404845.0; // lbs
                cout << emptyweightb744; // Testausgabe
                double emptyweightlj45 =  13550.0; // lbs
                cout << emptyweightlj45; // Testausgabe

                double reftakeoffweightb738 = 140507.0; // lbs
                double reftakeoffspeedb738 = 163.0; // knots
                double reftakeoffweightb744 = 846365.0; // lbs
                double reftakeoffspeedb744 = 205.0; // knots
                double reftakeoffweightlj45 = 20500.0; // lbs
                double reftakeoffspeedlj45 = 175.0; // knots

                double maxtakeoffweightb738 = 172500.0; // lbs
                double maxtakeoffweightb744 = 910000.0; // lbs
                double maxtakeoffweightlj45 =  20500.0; // lbs

                double takeoffweight;
                double takeoffspeed;
                // TOW and TOS Calculation

                cout << "Please enter the no. of passengers for this trip (no+.0): "; cin >> passengers;
                cout << passengers; // Testausgabe
                double toweightbasic = passengers*pasandluggageStdWeight; cout << toweightbasic;
                cout << "Calculating take off weight and speed";
                for(int i=1; i<=5;++i)
                {
                    cout << "."; Sleep(1000);
                }
                cout << ".\n\n";
                if(aircraft == "B738")
                {
                    takeoffweight = emptyweightb738+toweightbasic+cruisefuelgtog;
                    takeoffspeed = (takeoffweight/reftakeoffweightb738)*reftakeoffspeedb738;
                }
                if(aircraft == "B744")
                {
                    takeoffweight = emptyweightb744+toweightbasic+cruisefuelgtog;
                    takeoffspeed = (takeoffweight/reftakeoffweightb744)*reftakeoffspeedb744;
                }
                if(aircraft == "LJ45")
                {
                    takeoffweight = emptyweightlj45+toweightbasic+cruisefuelgtog;
                    takeoffspeed = (takeoffweight/reftakeoffweightlj45)*reftakeoffweightlj45;
                }
                cout << "Takeoff weight: " << takeoffweight << " lbs\n" << "Takeoff speed: " << takeoffspeed << " knots. Press 'Enter'!"; cin.get();
                if(aircraft == "B738")
                {
                    cout << "Maximum Takeoff Weight: " << maxtakeoffweightb738 << endl; Sleep(1000);
                }
                if(aircraft == "B744")
                {
                    cout << "Maximum Takeoff Weight: " << maxtakeoffweightb744 << endl; Sleep(1000);
                }
                if(aircraft == "LJ45")
                {
                    cout << "Maximum Takeoff Weight: " << maxtakeoffweightlj45 << endl; Sleep(1000);
                }

return 0;

}

Liebe Grüße,

Martin

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung