06.08.2013 Aufrufe

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

PDF-Datei (ca. 1 MByte)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

102 KAPITEL 10. WIEDERHOLUNGSANWEISUNGEN<br />

Es mu die Aufgabenstellung fur alle sich aus der Landschaftcharakterisierung ergebenden<br />

moglichen Ausgangssituationen korrekt und vollstandig losen.<br />

Es darf fur keine sich aus der Landschaftcharakterisierung ergebenden moglichen Ausgangssituation<br />

zu einem Laufzeitfehler fuhren.<br />

Es mu nach endlicher Zeit fur alle sich aus der Landschaftcharakterisierung ergebenden<br />

moglichen Ausgangssituationen enden, es sei denn, eine Nicht-Terminierung des Programms<br />

wird in der Aufgabenstellung explizit erlaubt.<br />

10.2.4 Beispiele<br />

10.2.4.1 Beispiel 1<br />

Das Hamsterprogramm fur das oben skizzierte Problem, da der Hamster irgendwo in einer<br />

Landschaft steht und bis zur nachsten Mauer laufen soll, sieht folgenderma en aus:<br />

void main()<br />

{<br />

while (vorn_frei())<br />

{<br />

vor();<br />

}<br />

}<br />

Uberprufen wir einmal, ob das Programm fur die Landschaft in Abbildung 10.1 (links) korrekt<br />

arbeitet (siehe auch Abbildung 10.3 (links)).<br />

#######<br />

#<br />

#<br />

# # o #<br />

#<br />

#<br />

> # o #<br />

# o #<br />

# # o #<br />

# ######<br />

#######<br />

#<br />

#<br />

# # o #<br />

#<br />

#<br />

> # o #<br />

# o #<br />

# # o #<br />

# ######<br />

#######<br />

#<br />

#<br />

# # o #<br />

#<br />

#<br />

> # o #<br />

# o #<br />

# # o #<br />

# ######<br />

Abbildung 10.3: Typische Hamsterlandschaften zu Beispiel 1<br />

Zunachst wird der Testbefehl vorn frei() ausgewertet. Er liefert den Wert true. Also ist die<br />

Schleifenbedingung erfullt. D.h. als nachstes wird die Iterationsanweisung ausgefuhrt. Dieses ist<br />

eine Blockanweisung, die als einzige Anweisung den Befehl vor(); enthalt. Der Hamster hupft<br />

eine Kachel nach vorne (siehe Abbildung 10.3 (Mitte)). Nach der Abarbeitung der Iterationsanweisung<br />

wird erneut die Schleifenbedingung uberpruft. Der Testbefehl vorn frei() liefert<br />

auch dieses Mal den Wert true, so da der vor();-Befehl ein zweites Mal ausgefuhrt wird und<br />

sich die Situation gema Abbildung 10.3 (rechts) ergibt. Wiederum wird nun die Schleifenbedingung<br />

uberpruft. Inzwischen steht der Hamster jedoch vor einer Mauer, so da der Testbefehl

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!