Java Reference
In-Depth Information
legAb();
}
void laufeInDieNaechsteEckeUndSammle() {
do {
vor();
sammle();
} while (vornFrei());
}
void sammle() {
do {
nimm();
} while (kornDa());
}
void legAb() {
do {
gib();
} while (!maulLeer());
}
Erläuterung Innerhalb der Prozedur sammle kann eine do-Anweisung benutzt werden, da laut
Aufgabenstellung auf jeder Kachel mindestens ein Korn liegt und die Prozedur nur nacheinem
vor(); -Befehl aufgerufen wird, d.h. der Hamster sich also bei Aufruf der Prozedur auf jeden Fall
auf einer noch nicht „abgegrasten“ Kachel befindet. Auch in der Prozedur laufeInDieNaechste-
EckeUndSammle ist die Verwendung einer do-Anweisung möglich, weil laut Aufgabenstellung der
Raum aus mindestens zwei freien Reihen und zwei freien Spalten besteht, der vor(); -Befehl also
auf jeden Fall sicher ausgeführt werden kann. Letzteres bedingt weiterhin, dass der Hamster auf je-
den Fall mindestens vier Körner einsammelt, sodass auch in der Prozedur legAb eine do-Anweisung
verwendet werden kann.
10.4 Beispielprogramme
In diesem Abschnitt werden einige Beispiele für Hamster-Programme gegeben, die Ihnen den Ein-
satz und die Auswirkungen von Wiederholungsanweisungen demonstrieren sollen. Schauen Sie sich
die Beispiele genau an und versuchen Sie, die Lösungen nachzuvollziehen.
10.4.1 Beispielprogramm 1
Aufgabe:
In einem rechteckigen geschlossenen Raum unbekannter Größe ohne innere Mauern sind wahllos
eine unbekannte Anzahl an Körnern verstreut (siehe Beispiele in Abbildung 10.9). Der Hamster,
der sich zu Anfang in der linken unteren Ecke des Raumes mit Blickrichtung Ost befindet, soll alle
Körner aufsammeln und dann stehenbleiben.
Search WWH ::




Custom Search