Zum Inhalt springen

Rechenfehler bei Gewichtsberechnungen


airenthusiast141

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

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

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

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

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...