Java Reference
In-Depth Information
• Position des Hamsters,
• Blickrichtung des Hamsters,
• Anzahl der Körner im Maul des Hamsters und
• Anzahl der Körner auf bestimmten Feldern des Territoriums
bei der Beendigung eines Hamster-Programms als End- bzw. Ausgabegrößen bezeichnet. Die Mau-
ern spielen hier keine Rolle, da sich ihr Zustand gegenüber dem Anfangszustand ja nicht ändert.
Wie Sie schnell feststellen können, ist die obige Aufgabenstellung noch nicht exakt. Sie müssen also
weitere Informationen einholen bzw. selbst bestimmte Größen festlegen.
Unter der Annahme, dass alle nicht genannten Anfangs- und Endgrößen beliebig sind und - außer
den genannten - auch keinerlei Einschränkungen zum Lösungsweg (Weg des Hamsters) existieren,
ist nun folgende Reformulierung der obigen Aufgabenstellung exakt:
Der Hamster steht mit Blickrichtung Ost vor einem regelmäßigen Berg unbekannter Höhe (ohne
„Überhänge“!). Er muss dabei nicht unbedingt direkt vor dem Berg stehen. Die Stufen des Berges
sind jeweils eine Mauer hoch. Der Hamster habe mindestens so viele Körner im Maul, wie Stu-
fen existieren. Im Hamster-Territorium befinden sich anfangs keine Körner. Außer den Mauern, die
den Berg und den Weg zum Berg bilden, befinden sich keine weiteren Mauern im Territorium. Die
Aufgabe des Hamsters besteht darin, den Gipfel des Berges zu erklimmen und auf dem Gipfel anzu-
halten. Auf dem Weg zum Gipfel soll der Hamster auf jeder Stufe einschließlich dem Gipfel selbst
- und nur dort! - genau ein Korn ablegen. Auf dem Weg zum Gipfel muss der Hamster immer mit
der Wand in Berührung bleiben, darf also nicht in eine Situation gelangen, in der „Absturzgefahr“
droht.
In Abbildung 12.1 sind also die Teile (a) und (b) sowohl am Anfang, zwischendurch und am Ende
korrekt. Die Ausgangslandschaft (c) ist nicht korrekt (Hamster schaut nicht nach Osten; der Berg
ist nicht regelmäßig). Der in Teil (d) skizzierte Snapshot von unterwegs ist ebenfalls nicht zulässig
(es droht „Absturzgefahr“). Ebenso ist in Teil (e) eine unzulässige Endsituation skizziert (auf einer
Aufwärtsstufe des Berges liegt kein Korn, dafür aber auf einer Abwärtsstufe).
12.3 Entwurf
Wie bereits in Abschnitt 12.1 erwähnt, basiert der Entwurf von Algorithmen bzw. Programmen auf
dem Prinzip der Schrittweisen Verfeinerung . Was genau ist aber unter diesem Prinzip zu verstehen?
Schauen Sie sich unser Beispiel an. Eine intuitive Lösungsidee ist folgende: Der Hamster soll zu-
nächst bis zum Berg laufen und dann den Berg erklimmen. An dem „und“ in diesem Satz erkennen
Sie, dass das Problem in zwei Teilprobleme zerlegt werden kann:
• Der Hamster soll zum Berg laufen.
• Der Hamster soll den Berg erklimmen.
Damit haben wir das Problem „verfeinert“. Wir müssen nun diese beiden Teilprobleme lösen. Wenn
wir anschließend die Lösungen der beiden Teilprobleme zusammensetzen, erhalten wir die Lösung
des Gesamtproblems.
Übertragen wir dieses Prinzip nun auf die Programmierung. In Kapitel 8 haben Sie mit der Prozedur-
definition ein Sprachkonstrukt kennengelernt, mit dem Sie neue Befehle definieren können. Dieses
Search WWH ::




Custom Search