Seite 1 von 1

Problem: Listing 3.8 (C++ für Spieleprogrammierer)

Verfasst: 06.03.2011, 11:47
von Destrikter
hey leute...
wie im titel schon gesagt hab ich ein problem mit listing 3.8 aus dem buch c++ für spieleprogrammierer ...
das listing war eine aufgabe bei der ein countdown erstellt wird und der "spieler" auswählen kann wo der countdown starten soll es sollte überprüft werden ob die zahl gerade oder ungerade ist .... bei einer geraden zahl soll das programm beendet werden
ansonsten sollte der countdown starten und bei der hälfte eine meldung ausgegeben werden.

hier meine lösung:

Code: Alles auswählen

// C++ für Spieleprogrammierer
// Listing 3.8
// Aufgabe
//
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	int CountdownZahl;		// Startzahl des Countdowns

	// Abfrage des Startwertes
	cout << "Wann soll der Countdown starten: ";
	cin >> CountdownZahl;

	// Überprüfe ob eine gerade Zahl eingegeben wurde
	if (CountdownZahl%2 == false)
		cout << "Es wurde keine gerade Zahl eingegeben" << endl << endl;

	else
	{

		// Countdownschleife
		//
		for (int i=CountdownZahl; i>=0; i--)
		{
			cout << "Countdown: " << i << endl;

			// Bei der Hälfte Meldung ausgeben
			if (i == CountdownZahl/2 +1)
				cout << "Die Haelfte wurde erreicht" << endl;
		}
	}


	return 0;
}

das ist ja jetzt schön und gut und diese version funktioniert auch.
aber auch nur weil ich mir folgende zeilen von der lösung abgekuckt habe:

Code: Alles auswählen

// Überprüfe ob eine gerade Zahl eingegeben wurde
	if (CountdownZahl%2 == false)
		cout << "Es wurde keine gerade Zahl eingegeben" << endl << endl;
meine frage jetzt: für was ist das "false"
oder bessergesagt : wie funktioniert die zeile ?? :D


ich hoffe ihr könnt mir helfen!!

mfg destrikter

Re: Problem: Listing 3.8 (C++ für Spieleprogrammierer)

Verfasst: 06.03.2011, 12:28
von Schrompf
Das % Zeichnen heißt "Modulu"-Operator. Es bedeutet, dass eine Division ausgeführt wird, aber anstatt dem Ergebnis der Rest der Division benutzt wird. Ein "bla % 2" bedeutet also, dass Du den Rest der Division durch 2 bekommst - das kann nur 0 für gerade Zahlen oder 1 für ungerade Zahlen sein. Das dann mit "false" zu vergleichen, finde ich dann reichlich blöd - "true" und "false" sind Wahrheitswerte und können damit eigentlich nicht direkt mit Zahlen verglichen werden. Ein "== 0" wäre passender.

Re: Problem: Listing 3.8 (C++ für Spieleprogrammierer)

Verfasst: 06.03.2011, 12:37
von Destrikter
ok danke .... ich wusste zwar das das der Modulo-operator ist aber hatte etwas verplant das dann der rest benutzt wird xD folglich konnt ich garnicht wissen was mit true und false gemeint ist obwohl ich weis das es war und falsch 0 und 1 bedeutet :p

ok thx :D