Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

11.06.2008, 17:56

Problem

Da dies mein erster Beitrag ist und neu hier bin, stelle ich mich nocheinmal schnell vor. Ich bin Luca habe 12 Jahre und komme aus Luxemburg. Also:
Ich lese das Buch "C++ für Spieleprogrammierer" und habe schon alles bis zum 3tem Kapitel alles verstanden. Wo ihr mir wirklich helfen müsst, ist bei der for-Bedingung. Ich verstehe diese einfach nicht. Bitte um Hilfe. Danke.

PS: Sorry, wenn ich ins falsche FOrum geschrieben habe.

Mfg Spiri

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

2

11.06.2008, 18:02

Erstmal herzlich Willkommen :D
Das Forum passt schonmal!

Damit wir dir helfen können, bräuchten wir aber schon ein paar genauere Infos. Was verstehst du denn an for-Schleifen nicht? Vielleicht postest du einfach ein bisschen Code und sagst uns, was dir dabei unklar ist ;)
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

Anonymous

unregistriert

3

11.06.2008, 18:16

Danke für die liebe Begrüßung =D

____________________________________________


// C++ für Spieleprogrammierer
// Listing 3.6
// for-schleifen
//
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
int RundenAnzahl = 0 // Anzahl der Runden
int RundenPunkte = 0 // Punkte einer Runde
int GesamtPunkte = 0 // Gesamt erreichte Punkte^

// Anzahl der Runden ermitteln
cout << "Wie viele Runden sollen gespielt werden: ";
cin >> Rundenanzahl;

// Runden duchlaufen
for (int i=0; i<RundenAnzahl; i++)

// Aktuelle Runde berrechnen
cout << "Runde " << i+1 << " wird gespielt" << endl;
cout << "Wie viele Punkte wurden erreicht: ";
cin >> RundenPunkte;

GesamtPunkte += RundenPunkte;

cout << "Zwischenstand: " << GesamtPunkte << "/n/n";
}

// Endergebnis ausgeben
cout << "/nNach " << RundenAnzahl << " Runden wurden insgesamt ";
cout << GesamtPunkte << " Punkte erreicht" << endl;

return 0;
}



Alles was fettgedruckt ist, versteh' ich nicht.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

11.06.2008, 18:25

Auch einmal ein Herzliches Willkommen von mir.

Und gleich mal ein paar Tips, dass du dich nicht unbeliebt machst. ;)

1. Lies das FAQ durch. (Also so wie du dich benehmen sollst und auch wenn du sonst mal ein Problem hast, schadet zuerst mal ein Blick ins FAQ nicht.)

2. Bitte bessere Titel für die Posts benutzen. "Hilfe" braucht eig. jeder, der einen Thread eröffnet. ;) (Bei dir wäre so etwas wie: "Verständnis Problem mit for-Schlaufe" oder so gut gewesen.)

3. Wenn du so ein konkretes Problem hast, kannst du ruhig ein wenig Code posten, das hilft (uns) meistens ziemlich schnell zu verstehen, wo du ein Problem hast.

Und noch ein Lob: Das Forum ist genau das richtige. ;)

Zur for Schlaufe: (Die ist eig. ganz simple. ;))

C-/C++-Quelltext

1
2
3
4
for (int i = 0; i < 5; i++)
{
...
}


So kann die in etwa aussehen.

Das bedeutet nichts anderes, als dass du den Inhalt zwischen den {} genau 5 mal durchläufst. Das denke ich ist dir klar. Was ich jetzt vermute ist, dass du mit dem Kopf der Schlaufe nicht ganz klar kommst.

C-/C++-Quelltext

1
int i = 0

Das dürfte ja klar sein, was das ist. Du erzeugst eine Variable i mit dem Wert 0. Du kannst auch jedes andere Objekt dort erzeugen (wobei der Sinnn dann etwas anderes ist. ;)).

C-/C++-Quelltext

1
i < 5

Das ist der Vergleich, der durchgeführt wird, wenn der PC beim Kopf angelangt. Das wesentliche hier ist, dass die Schlaufe durchlaufen wird, solange diese Bedingung true (WAHR) ist. Wenn du jetzt i > 5 dort hättest, dann würde die Schlaufe gar nicht erst duchlaufen, sonder gleicht nach der Schlaufe weitergemacht.

C-/C++-Quelltext

1
i++

Dieser Code wird immer ausgeführt, wenn du das Ende der Schlaufe erreicht hast und dann wird der Vergleich durchgeführt. Es könnte dort auch das stehen:

C-/C++-Quelltext

1
2
3
4
5
for (int i = 0; i < 5;)
{
    i++;
}
Das wäre äquivalent.


Keines dieser Parameter musst du angeben. Du kannst auch so etwas schreiben:

C-/C++-Quelltext

1
for (;;){}




So das war eigentlich das, was mir dazu so auf die schnelle einfällt.
Wenn es nicht das hier war, dann musst du genauer sagen, was dein Problem ist. ;)

EDIT:

4. Bitte Code-Tags benutzen. (Das ist der Button "C++-Code" oben wo du den Text eingibst.).

5

11.06.2008, 18:26

Willkommen!

Ich probier mal deine Fragen zu lösen:

C-/C++-Quelltext

1
2
// Runden duchlaufen 

for (int i=0; i<RundenAnzahl; i++) 

Also hier müsste alles klar sein. Der Zähler startet zwar bei 0, die Schleife läuft jedoch nur solang der Zähler kleiner als "RundenZahl" ist. Könntest genauso

C-/C++-Quelltext

1
for(int i=1; i<=RundenZahl; i++)


schreiben.



C-/C++-Quelltext

1
2
// Aktuelle Runde berrechnen 

cout << "Runde " << i+1 << " wird gespielt" << endl;

Hier steht "i+1" weil es ja wie gesagt bei 0 anfängt, und nicht bei 1. Darum wird immernoch 1 dazugezählt.



C-/C++-Quelltext

1
GesamtPunkte += RundenPunkte; 


Das Plusgleich bedeutet, dass der Variable "GesamtPunkte" der Wert von "RundenPunkte" hinzugezählt wird. Dass am Ende auch die Summe von allen Runden in "GesamtPunkte" steht.
Gleich wie "Gesamtpunkte = Gesamtpunkte + Rundenpunkte;"


Die

C-/C++-Quelltext

1
/n
sind mir eher als "\n" bekannt...
Habs so noch nie gesehn^^. Bedeutet jedoch, dass er in die nächste Zeile geht; gleich wie "endl".

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

6

11.06.2008, 18:30

Zitat von »"defaultplayer^^


Die

C-/C++-Quelltext

1
/n
sind mir eher als "\n" bekannt...
Habs so noch nie gesehn^^. Bedeutet jedoch, dass er in die nächste Zeile geht; gleich wie "endl".


Ich denke, dass das ein Tippfehler von ihm war. ;)

Das sind sogenannte Steuerzeichen, mit denen du den Text in der Konsole "formatieren" kannst.

http://de.wikipedia.org/wiki/Steuerzeichen

Anonymous

unregistriert

7

11.06.2008, 18:31

Doch es war das, Danke!!!

Nur noch eine klitzekleine Frage: Wie kann man so einen Programm unendlich durchlaufen???

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

8

11.06.2008, 18:36

klitzekleine Antwort: indem man ne Endlosschleife ins Prog einbaut und ne Technologie entwickelt, um alle Rechnerkomponenten im laufenden Betrieb zu tauschen (nach paar Jahren werden die auch ma müde im Dauerbetrieb) - dann muss man nur noch genug Strom und Ersatzteile haben, die Sonne darf in paar miliarden Jahren noch nich schlapp machen usw, schon steht dem Endlosbetrieb nur noch ein störrischer Enkel im weg, der kein Bock hat dein gestartetes Projekt weiter laufen zu lassen :badgrin:


Und jetzt erklär mal, was du eigentlich wissen willst.

Anonymous

unregistriert

9

11.06.2008, 18:38

Es geht noch um die for-schleife. Wie muss man so etwas Programmieren, damit der Programm unendlich mal läuft?

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

10

11.06.2008, 18:40

Mit ner for-Schleife ist das ein bisschen schwer, da du ja eingeben musst wie oft die Schleife durchlaufen soll und das ist halt irgendwie begrenzt (vorallem wenn du die Zahl vorher einer Variable zuweist!)
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

Werbeanzeige