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

sKn

Frischling

  • »sKn« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Berlin

Beruf: Mediengestalter Digital- &Printmedien

  • Private Nachricht senden

1

29.10.2008, 18:10

Listing 3.6 LOGISCHER FEHLER ! ! !?? ! ! !

hallo ,
ich bin gerade dabei mich in das buch von heiko kalista einzuarbeiten.bis jetzt hat alles wunderbar geklappt und ich vertehe auch bis jetzt alles zu 120%, ebenfalls kann ich bis jetzt mit jedem beispiel rumspielen.doch nun bin ich an einem punkt angekommen das meiner logischen denkweise einfach wiederspricht!es geht um Listining 3.6 auf seite 73 / 74 :

hier der code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>

using namespace std; 

int main () 
{
    int RundenAnzahl = 0; 
    int RundenPunkte = 0; 
    int GesamtPunkte = 0; 

    cout << "Wie viele Runden sollen gespielt werden : "; 
    cin >> RundenAnzahl; 

    for (int i=0; i<RundenAnzahl; i++ )
    {
        cout << "Runde " << i+1 << " wird gespielt " << endl; 
        cout << "Wie viele Punkte wurden erreciht : " ; 
        cin >> RundenPunkte; 

        GesamtPunkte += RundenPunkte; 

        cout << "Zwichenstand : " << GesamtPunkte << "\n\n";
    }

    cout << "\nNach " << RundenAnzahl << " Runden wurden insgesamt "; 
    cout << GesamtPunkte << " Punkte erreciht" << endl; 

    return 0; 
}


ich habe auch den sinn und vorgang der for schleife verstanden, nur eines kommt mir komisch vor !

da die zählervariable mit 0 initialisiert wurde und somit der vorgang bei 0 anfängt zu zählen , aber wir ja in dem ersten ablauf der zählervariable mit 1 anfangen wird in der zeile

C-/C++-Quelltext

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


1 dazugerechnet ! ist mir ja klar , aber wie wir gelernt haben wird der Bedingungsteil und der aktionsteil nach jedem neuaufruf der for schleiufe neu ausgeführt.da kommen wir schon zu meinem problem das ich habe.

C-/C++-Quelltext

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

im aktionsteil dieser for schleife wird doch zu unserer integer variable i - 1 dazugerechnet.
wenn wir aber in der codezeile

C-/C++-Quelltext

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

ebenfalls 1 dazurechnen muesste doch im durchgang 2 nciht runde 2 stehen sondern runde 3 oO , oder nciht ! so wie im ersten durchgang statt 0 eine 1 steht. sprich das in jedem folgendem ablauf statt 1 - 2 dazugerechnet werden.

das ist das problem das ich mit dem logischem vorgang hier habe.

oder habe ich etwas falsch verstanden ? oO -.. mein kopf raucht oder liegt das daran dasich innerhalb der letzten 24h nicht 1 mal gepennt habe und auf seite 76 bin innerhalb von 11std ;\

bsgv

Frischling

Beiträge: 13

Wohnort: Würzburg

  • Private Nachricht senden

2

29.10.2008, 18:50

Hi,

hier

C-/C++-Quelltext

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

wird nicht 1 zu i dazugezählt, sondern nur der Wert von i+1 ausgegeben.

Anders wäre es, wenn hier z.B.

C-/C++-Quelltext

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

stehen würde (oder etwas vergleichbares).
Dann würde i bei jedem Durchgang zweimal um den Wert 1 erhöht.

MfG
bsgv[/quote]

3

29.10.2008, 18:50

Am ehesten kommst du dahinter, wenn du das Programm mit dem Debugger durchgehst.
Solltest du das nicht können, empfehle ich dir, die Werte für jeden Durchgang auf einen Zettel zu schreiben.
So in etwa:

1. Durchlauf
RundenAnzahl = 5
RundenPunkte = 0
GesamtPunkte = 0
i = 0
i+1 = 1

2. Durchlauf
RundenAnzahl = 5
RundenPunkte = 1
GesamtPunkte = 1
i = 1
i+1 = 2

usw.

sKn

Frischling

  • »sKn« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Berlin

Beruf: Mediengestalter Digital- &amp;Printmedien

  • Private Nachricht senden

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

30.10.2008, 08:39

Und da du neu bist noch einen kleinen Tipp:
Er reicht, wenn du ein Ausrufezeichen im Titel hast. Ansonsten sieht das recht nach Müll aus.. ;)

sKn

Frischling

  • »sKn« ist der Autor dieses Themas

Beiträge: 6

Wohnort: Berlin

Beruf: Mediengestalter Digital- &amp;Printmedien

  • Private Nachricht senden

Werbeanzeige