06.08.2013 Aufrufe

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

106 KAPITEL 10. WIEDERHOLUNGSANWEISUNGEN<br />

Nach dem siebten Schleifendurchlauf hat der Hamster jedoch alle Korner der Kachel aufgenommen,<br />

so da die Schleifenbedingung bei ihrer achten Uberprufung nicht mehr erfullt und damit<br />

die while-Anweisung beendet ist. Bei einer Anzahl von 20 Kornern auf einer Kachel wird die<br />

Iterationsanweisung genau zwanzig Mal ausgefuhrt; allgemein bei n Kornern genau n-mal. Beachten<br />

Sie, da die Prozedur sammle auch dann korrekt arbeitet, wenn auf einer Kachel kein<br />

Korn liegt. Dann ist die Schleifenbedingung bereits bei der ersten Uberprufung nicht erfullt und<br />

der nimm();-Befehl wird kein einziges Mal ausgefuhrt.<br />

Die Prozedur sammle wird in der Iterationsanweisung der prozedur laufe bis zur naechsten -<br />

wand und sammle aufgerufen. Diese Prozedur bewirkt, da jedes Mal, wenn der Hamster auf eine<br />

neue Kachel springen kann, er dies auch tut und diese anschlie end " abgrast\. Die Iterationsanweisung<br />

der diesbezuglichen while-Anweisung innerhalb der Prozedur besteht daher aus einer<br />

Blockanweisung mit der Anweisungssequenz vor(); und sammle();.<br />

Achtung Achten Sie darauf, da die Prozedur sammle ganz zu Anfang des Programms einmal<br />

aufgerufen wird. Ohne diese Anweisung ware das Programm nicht korrekt! Es wurde nur bei<br />

solchen Landschaften korrekt arbeiten, bei denen sich auf der Ausgangskachel des Hamsters<br />

keine Korner be nden. Bei den anderen Landschaften wurde der Hamster die Korner auf seiner<br />

Ausgangskachel liegenlassen und damit nicht die komplette Aufgabenstellung erfullen.<br />

10.2.5 Anmerkungen<br />

10.2.5.1 Ubersichtlichkeit<br />

Um eine bessere Ubersichtlichkeit ihres Programmes zu erzielen und potentielle Fehlerquellen<br />

zu vermeiden, berucksichtigen Sie bitte bei der while-Anweisung dasselbe, was bereits bei der if-<br />

Anweisung in Kapitel 9.5.4 erlautert wurde. Benutzen Sie moglichst als Iterationsanweisung die<br />

Blockanweisung. Plazieren Sie dabei die o nende und schlie ende Klammer der Blockanweisung<br />

untereinander und rucken Sie die inneren Anweisungen der Blockanweisung um zwei Spalten<br />

nach rechts ein, wie in folgendem Beispiel, in dem der Hamster bis zur nachsten Mauer lauft<br />

und dabei solange moglich eine Kornerspur legt:<br />

void main()<br />

{<br />

while (vorn_frei())<br />

{<br />

vor();<br />

if (!maul_leer())<br />

{<br />

gib();<br />

}<br />

}<br />

}

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!