Java Reference
In-Depth Information
void testeEineRichtung() {
int schritte = 0;
/*
* die Ueberpruefung einer Richtung besteht aus der
* Ueberpruefung von so vielen Feldern, wie der Radius
* des Kreises aktuell gross ist; die zusaetzliche
* Konjunktion mit vornFrei() ist notwendig, falls das
* Feld nicht quadratisch ist
*/
while (!kornDa() && (schritte < radius) && vornFrei()) {
vor();
schritte++;
}
if (!kornDa()) {
linksUm();
}
}
Erläuterungen:
Die Variable
radius
enthält den Wert für die Radiusgröße des aktuell in Bearbeitung befindlichen
Kreises. Die Variable
radius
wird global definiert, weil sowohl im Hauptprogramm als auch in der
Prozedur
testeEineRichtung
darauf zugegriffen werden muss.
Die Abarbeitung eines Kreises besteht aus der Abarbeitung von vier Richtungen. Um die Anzahl be-
reits erledigter Richtungen nachzuhalten, wird eine Variable
richtungen
definiert, mit 0 initialisiert
und nach der Bearbeitung einer Richtung um den Wert 1 erhöht. Hier genügt eine lokale Variable,
da nur innerhalb der Prozedur
testeEinenKreis
auf sie zugegriffen wird.
Um sich die Anzahl an bereits ausgeführten Schritten zu merken, wird - ebenfalls lokal - in der
Prozedur
testeEineRichtung
eine Variable
schritte
definiert. Ihr Wert wird in der Schleifen-
bedingung mit dem aktuellen Wert der globalen Variablen
radius
verglichen, der die aktuelle Ra-
diusgröße angibt.
14.11 Übungsaufgaben
Nun sind wieder Sie gefordert; denn in diesem Abschnitt werden Ihnen einige Hamster-Aufgaben
gestellt, die sie selbstständig zu lösen haben. Sie müssen dabei zeigen, dass Sie den Umgang mit
Variablen, Zahlen und Ausdrücken nicht nur verstanden haben, sondern auch zum selbstständigen
Lösen von Aufgaben beherrschen. Denken Sie sich darüber hinaus selbst weitere Hamster-Aufgaben
aus und versuchen Sie, diese zu lösen. Viel Spaß!
14.11.1 Aufgabe 1
Ändern Sie das Lösungsprogramm von Beispielprogramm 1 aus Abschnitt 14.10.1 derart ab, dass
der Hamster auf dem Rückweg nur die Hälfte des Hinweges zurückläuft.
Search WWH ::
Custom Search