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.

144 KAPITEL 12. PROGRAMMENTWURF<br />

immer mit der Wand in Beruhrung bleiben, darf also nicht in eine Situation gelangen, in der<br />

" Absturzgefahr\ droht.<br />

In Abbildung 12.1 sind also die Teile (a) und (b) sowohl am Anfang, zwischendurch und am Ende<br />

korrekt. Die Ausgangslandschaft (c) ist nicht korrekt (Hamster schaut nicht nach Westen; der<br />

Berg ist nicht regelma ig). Der in Teil (d) skizzierte Snapshot von unterwegs ist nicht zulassig<br />

(es droht Absturzgefahr\), ebenso ist in Teil (e) eine unzulassige Endsituation skizziert (auf<br />

"<br />

einer Aufwartsstufe des Berges liegt kein Korn, dafur aber auf einer Abwartsstufe).<br />

12.3 Entwurf<br />

Wie bereits in Abschnitt 12.1 erwahnt, basiert der Entwurf von Algorithmen bzw. Programmen<br />

auf dem Prinzip der Schrittweisen Verfeinerung. Was genau ist aber unter diesem Prinzip zu<br />

verstehen? Schauen Sie sich unser Beispiel an. Eine intuitive Losungsidee ist folgende: Der Hamster<br />

soll zunachst bis zum Berg laufen und dann den Berg erklimmen. An dem " und\ in diesem<br />

Satz erkennen Sie, da das Problem in zwei Teilprobleme zerlegt werden kann:<br />

Der Hamster soll zum Berg laufen.<br />

Der Hamster soll den Berg erklimmen.<br />

Damit haben wir das Problem " verfeinert\. Wir mussen nun diese beiden Teilprobleme losen.<br />

Wenn wir anschlie end die Losungen der beiden Teilprobleme zusammensetzen, erhalten wir die<br />

Losung des Gesamtproblems.<br />

Ubertragen wir dieses Prinzip nun auf die Programmierung. In Kapitel 8 haben Sie mit der Prozedurde<br />

nition ein Sprachkonstrukt kennengelernt, mit dem Sie neue Befehle de nieren konnen.<br />

Dieses Sprachkonstrukt werden wir nun verwenden, um Hamsterprogramme nach dem Prinzip<br />

der Schrittweisen Verfeinerung zu entwickeln. De nieren Sie dazu fur jedes Teilproblem zunachst<br />

einfach eine Prozedur, ohne sich um die Implementierung zu kummern. Das Hauptprogramm<br />

setzt sich dann einfach aus den Aufruf der Prozeduren zusammen. An dem Beispielprogramm<br />

sei dieses verdeutlicht:<br />

// der Hamster soll zunaechst bis zum Berg laufen<br />

// und dann den Berg erklimmen<br />

void main()<br />

{<br />

laufe_zum_berg();<br />

erklimme_den_berg();<br />

}<br />

// der Hamster soll zum Berg laufen<br />

void laufe_zum_berg()<br />

{<br />

}<br />

// der Hamster soll den Berg erklimmen

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!