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.

10.2. WHILE-ANWEISUNG 105<br />

}<br />

}<br />

10.2.4.3 Beispiel 3<br />

Hamsteraufgabe Der Hamster be ndet sich wie in Beispiel 2 irgendwo in einem rechteckigen<br />

durch Mauern abgeschlossenen sonst aber mauerlosen Raum unbekannter (aber endlicher)<br />

Gro e. Auf den einzelnen Kacheln kann jeweils eine beliebig gro e aber endliche Anzahl an<br />

Korner liegen. Der Hamster soll in eine Ecke laufen und dann anhalten. Dabei soll er alle Korner<br />

einsammeln, die er auf seinem Weg ndet. Abbildung 10.4 enthalt einige Beispiele fur den skizzierten<br />

Landschaftstyp.<br />

Programm<br />

void main()<br />

{<br />

sammle();<br />

laufe_bis_zur_naechsten_wand_und_sammle();<br />

links_um();<br />

laufe_bis_zur_naechsten_wand_und_sammle();<br />

}<br />

void sammle()<br />

{<br />

while (korn_da())<br />

{<br />

nimm();<br />

}<br />

}<br />

void laufe_bis_zur_naechsten_wand_und_sammle()<br />

{<br />

while (vorn_frei())<br />

{<br />

vor();<br />

sammle();<br />

}<br />

}<br />

Erlauterung Das Programm entspricht zum gro en Teil dem Losungsprogramm aus Beispiel<br />

2. Es wird jedoch durch die Prozedur sammle erweitert. Wird diese ausgefuhrt, dann sammelt<br />

der Hamster alle Korner ein, die auf der Kachel liegen, auf der er sich gerade be ndet. Die<br />

Prozedur arbeitet dabei unabhangig von der konkreten Anzahl an Kornern auf einer Kachel<br />

korrekt. Nehmen wir an, auf einer Kachel liegen sieben Korner. Dann ist die Schleifenbedingung<br />

korn da() siebenmal erfullt , d.h. es wird insgesamt siebenmal der Befehl nimm(); ausgefuhrt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!