06.08.2013 Aufrufe

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

112 KAPITEL 10. WIEDERHOLUNGSANWEISUNGEN<br />

}<br />

nimm();<br />

} while (korn_da());<br />

void leg_ab()<br />

{<br />

do<br />

{<br />

gib();<br />

} while (!maul_leer());<br />

}<br />

Erlauterung Innerhalb der Prozedur sammle kann eine do-Anweisung benutzt werden, da<br />

laut Aufgabenstellung auf jeder Kachel mindestens ein Korn liegt und die Prozedur nur nach einem<br />

vor();-Befehl aufgerufen wird, d.h. der Hamster sich also bei Aufruf der Prozedur auf<br />

jeden Fall auf einer noch nicht " abgegrasten\ Kachel be ndet. Dasselbe tri t auch fur die<br />

Prozedur leg ab() zu; denn da der Hamster mindestens einmal " sammelt\, hat er auf jeden<br />

Fall Korner im Maul, bevor die Prozedur aufgerufen wird. Fur die Prozedur laufe in die -<br />

naechste ecke und sammle ist die Verwendung einer do-Anweisung jedoch nicht moglich. Hier<br />

mu eine while-Anweisung benutzt werden, da die Landschaft durchaus auch aus nur einer freien<br />

Kachel bestehen kann (siehe Abbildung 10.8 (rechts)). Bei Verwendung einer do-Anweisung<br />

anstelle der while-Anweisung wurde die Programmausfuhrung bzgl. der Landschaft aus Abbildung<br />

10.8 (rechts) zu einem Laufzeitfehler fuhren, was gema Abschnitt 10.2.3 bedeutet, da<br />

das Programm nicht korrekt ist.<br />

10.4 Beispielprogramme<br />

In diesem Abschnitt werden einige Beispiele fur Hamster-Programme gegeben, die Ihnen den<br />

Einsatz von Wiederholungsanweisungen demonstrieren sollen. Es werden jeweils eine oder mehrere<br />

Musterlosungen vorgestellt. Schauen Sie sich die Beispiele genau an und versuchen Sie, die<br />

Losungen nachzuvollziehen.<br />

10.4.1 Beispielprogramm 1<br />

Aufgabe:<br />

In einem rechteckigen geschlossenen Raum unbekannter Gro e ohne innere Mauern sind wahllos<br />

eine unbekannte Anzahl an Kornern verstreut (siehe Beispiele in Abbildung 10.9). Der Hamster,<br />

der sich zu Anfang in der linken unteren Ecke des Hamster-Territoriums mit Blickrichtung Ost<br />

be ndet, soll alle Korner aufsammeln und dann stehenbleiben.<br />

Losung:<br />

void main()<br />

{<br />

ernte_eine_reihe_und_laufe_zurueck();

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!