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.

160 KAPITEL 12. PROGRAMMENTWURF<br />

unteren Ecke des Hamster-Territoriums mit Blickrichtung Ost be ndet, soll alle Korner aufsammeln<br />

und dann stehenbleiben.<br />

Die prazisierte Problemstellung lautet:<br />

bzgl. der Ausgangssituation:<br />

{ Der Hamster steht in der unteren linken Ecke des Territoriums.<br />

{ Der Hamster schaut nach Osten.<br />

{ Die Anzahl an Kornern im Maul des Hamster ist nicht festgelegt.<br />

{ Auf beliebigen Feldern in Territorium liegen beliebig viele Korner.<br />

{ Das Territorium ist von einer rechteckigen geschlossenen Wand von Mauern umgeben;<br />

ansonsten be nden sich keine Mauern im Territorium; es existiert mindestens ein Feld<br />

im Territorium, auf dem keine Mauer steht.<br />

bzgl. der Endsituation:<br />

{ Die Position des Hamsters ist nicht festgelegt.<br />

{ Die Blickrichtung des Hamsters ist nicht festgelegt.<br />

{ Die Anzahl an Kornern im Maul des Hamsters ist nicht festgelegt.<br />

{ Auf keinem Feld im Territorium sollen mehr Korner liegen (d.h. der Hamster soll alle<br />

Korner, die anfangs im Territorium liegen, einsammeln)<br />

bzgl. des Weges des Hamsters:<br />

{ Es gibt keine Constraints bzgl. des Weges des Hamsters.<br />

12.7.6.2 Losungsidee<br />

Der Hamster soll die Reihe " abgrasen\, in der er sich gerade be ndet. Anschlie end soll er<br />

testen, ob sich nordlich von ihm noch eine weitere Reihe be ndet. Wenn ja, soll er sich in diese<br />

Reihe begeben und diese Reihe abgrasen. Dieser Vorgang soll solange wiederholt werden, bis der<br />

Hamster die nordliche Begrenzungswand erreicht.<br />

12.7.6.3 Programmcode<br />

// der Hamster soll einzelne Koernerreihen abgrasen,<br />

// solange wie noch weitere Reihen existieren; er unterscheidet<br />

// dabei, ob er die Reihen von Osten oder von Westen aus abgrast<br />

void main()<br />

{<br />

ernte_eine_reihe_nach_osten();<br />

while (weitere_reihe_links_vom_hamster_existiert())<br />

{<br />

begib_dich_links_um_in_naechste_reihe();<br />

ernte_eine_reihe_nach_westen();

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!