1. #1

    Registriert seit
    01.12.2011
    Beiträge
    6
    Thanked 0 Times in 0 Posts

    Standard Schwimmtestprogramm funktioniert nicht !

    Code:
    #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 !";
    	}
    }
    Hier das Hauptprogramm

    Code:
    #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;
    	}
    }
    Die Funktion
    Code:
    #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
    Und hier ist noch die Klasse

    Das programm funktioniert nicht und ich hab ehrlich gesagt keine Ahnung bei mir steht in der zeile
    Code:
    void Schwimmtest::Gegenstand(float pMasse, float pVolumen)
    Zu viele Deklarationen

    Ich hoffe ihr könnt mir weiterhelfen

  2. #2

    Registriert seit
    19.11.2011
    Beiträge
    496
    Thanked 412 Times in 268 Posts

    Standard 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 !";
    	}
    Code:
    if (Dichte = 1)
    	{
    		return 2;
    	}
    Deine Bedingungen sind alles Zuweisungen. Der Vergleichsoperator, den du suchst und verwenden solltest, lautet "==".


    Code:
    void Schwimmtest::Gegenstand(float pMasse, float pVolumen)
    {
    	pMasse = Masse;
    	pVolumen = Volumen;
    }
    Hier sollte es wohl eher heißen
    Code:
    Masse = pMasse;
    Volumen = pVolumen;
    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.
    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

  1. Funkmaus funktioniert nicht
    Von Runix im Forum Windows
    Antworten: 9
    Letzter Beitrag: 12.09.2013, 20:48
  2. Headset funktioniert nicht
    Von Manipulate im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 01.08.2013, 14:53
  3. Zeilenumbruch funktioniert nicht :/
    Von ZarneXxX im Forum PHP
    Antworten: 10
    Letzter Beitrag: 22.06.2013, 20:38
  4. [H] DayZ Mod funktioniert nicht...
    Von ryudragon14 im Forum Sonstige Games
    Antworten: 3
    Letzter Beitrag: 09.08.2012, 14:05
  5. Bluetooth funktioniert nicht
    Von Diestver im Forum Windows
    Antworten: 1
    Letzter Beitrag: 07.01.2012, 07:10
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.