-
12.06.2012, 16:30 #1Neuling
- Registriert seit
- 01.12.2011
- Beiträge
- 6
Thanked 0 Times in 0 Posts
Schwimmtestprogramm funktioniert nicht !
Hier das HauptprogrammCode:#include <iostream> #include <conio> #include "STF.cpp" using namespace std; void main () { Schwimmtest S1; cout << "Schwimmtest" << endl << endl; cout << "Masse: "; float m; cin >> m; cout << "Volumen: "; float V; cin >> V; cout << "Ergebnis: "; if (S1.VerhaltenImWasser() = 1) { cout << "Der Gegenstand schwimmt !"; } else if (S1.VerhaltenImWasser() = 2) { cout << "Der Gegenstand schwebt !"; } else if (S1.VerhaltenImWasser() = 3) { cout << "Der Gegenstand sinkt !"; } }
Die FunktionCode:#include "STF.h" void Schwimmtest::Gegenstand(float pMasse, float pVolumen) { pMasse = Masse; pVolumen = Volumen; } int Schwimmtest::VerhaltenImWasser() { float Dichte = Masse / Volumen; if (Dichte = 1) { return 2; } else if (Dichte < 1) { return 1; } else if (Dichte > 1) { return 3; } }
Und hier ist noch die KlasseCode:#ifndef _STF_H #define _STF_H class Schwimmtest { public: void Gegenstand(float pMasse, float pVolumen); int VerhaltenImWasser(); private: float Masse; float Volumen; } #endif _STF_H
Das programm funktioniert nicht und ich hab ehrlich gesagt keine Ahnung bei mir steht in der zeileZu viele DeklarationenCode:void Schwimmtest::Gegenstand(float pMasse, float pVolumen)
Ich hoffe ihr könnt mir weiterhelfen
-
12.06.2012, 22:28 #2U-Labs Routinier
- Registriert seit
- 19.11.2011
- Beiträge
- 496
Thanked 412 Times in 268 Posts
AW: Schwimmtestprogramm funktioniert nicht !
Code:if (S1.VerhaltenImWasser() = 1) { cout << "Der Gegenstand schwimmt !"; } else if (S1.VerhaltenImWasser() = 2) { cout << "Der Gegenstand schwebt !"; } else if (S1.VerhaltenImWasser() = 3) { cout << "Der Gegenstand sinkt !"; }Deine Bedingungen sind alles Zuweisungen. Der Vergleichsoperator, den du suchst und verwenden solltest, lautet "==".Code:if (Dichte = 1) { return 2; }
Hier sollte es wohl eher heißenCode:void Schwimmtest::Gegenstand(float pMasse, float pVolumen) { pMasse = Masse; pVolumen = Volumen; }
Wenn du das alles verbessert hast, wirst du immer noch kein Ergebnis bekommen, denn die Methode Gegenstand(float, float) rufst du gar nicht auf. Die Überprüfung in der Methode VerhaltenImWasser() wird mit uninitialisierten Variablen gemacht.Code:Masse = pMasse; Volumen = pVolumen;
Konkret heißt das, dass du zunächst die Methode Gegenstand(float, float) mit den vom Benutzer eingegeben Werten aufrufen musst. Erst dann solltest du VerhaltenImWasser() aufrufen. Wo wir schon bei dieser Methode sind: Es ist nicht nötig zu überprüfen, ob die Dichte größer als 1 ist. Du hast vorher geprüft, ob sie kleiner oder gleich 1 ist. Ist es nicht der Fall, kann die Dichte nur größer 1 sein. Den letzten if-else Zweig kannst du also löschen, in ein else umwandeln oder einfach nach der if-Abfrage 3 zurückgeben.
Ähnliche Themen
-
Funkmaus funktioniert nicht
Von Runix im Forum WindowsAntworten: 9Letzter Beitrag: 12.09.2013, 20:48 -
Headset funktioniert nicht
Von Manipulate im Forum HardwareAntworten: 3Letzter Beitrag: 01.08.2013, 14:53 -
Zeilenumbruch funktioniert nicht :/
Von ZarneXxX im Forum PHPAntworten: 10Letzter Beitrag: 22.06.2013, 20:38 -
[H] DayZ Mod funktioniert nicht...
Von ryudragon14 im Forum Sonstige GamesAntworten: 3Letzter Beitrag: 09.08.2012, 14:05 -
Bluetooth funktioniert nicht
Von Diestver im Forum WindowsAntworten: 1Letzter Beitrag: 07.01.2012, 07:10
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
Zitieren