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