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.

12.3. ENTWURF 145<br />

void erklimme_den_berg()<br />

{<br />

}<br />

Wenden wir uns nun dem Losen der beiden Teilprobleme zu. Beim ersten Teilproblem ist dies<br />

nicht besonders schwierig. Solange wie sich vor ihm keine Mauer be ndet, soll der Hamster ein<br />

feld nach vorne hupfen, am Fu e des Berges legt er ein Korn ab:<br />

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

void laufe_zum_berg()<br />

{<br />

while (vorn_frei())<br />

{<br />

vor();<br />

}<br />

gib(); // am Fusse des Berges legt der Hamster ein Korn ab<br />

}<br />

Die Losung des zweiten Teilproblems ist noch nicht ganz so einfach zu ermitteln. Also nutzen wir<br />

das Prinzip der Verfeinerung erneut { daher der Begri Schrittweise Verfeinerung. Zunachst<br />

stellen wir fest, da die Hohe des Berges nicht festgelegt, also prinzipiell beliebig ist. Diese<br />

Feststellung deutet darauf hin, da der Einsatz einer Wiederholungsanweisung notwendig ist.<br />

Innerhalb dieser Wiederholungsanweisung soll der Hamster jedes Mal eine Stufe erklimmen. Die<br />

Wiederholungsanweisung endet, sobald der Hamster den Gipfel erreicht hat. Wir notieren: " Der<br />

Hamster soll jeweils eine Stufe erklimmen, solange wie er den Gipfel noch nicht erreicht hat.\<br />

Ubertragen wir diese Losungsidee nun in entsprechende Sprachkonstrukte der Programmierung.<br />

Fur die Anweisung " Der Hamster soll eine Stufe erklimmen\ de nieren wir eine weitere Prozedur,<br />

fur die Bedingung " ist der Gipfel erreicht\ eine boolesche Funktion:<br />

// der Hamster soll den Berg erklimmen<br />

void erklimme_den_berg()<br />

{<br />

do<br />

{<br />

erklimme_eine_stufe();<br />

} while (!gipfel_erreicht());<br />

}<br />

// der Hamster soll eine Stufe erklimmen<br />

void erklimme_eine_stufe()<br />

{<br />

}<br />

// hat der Hamster den Gipfel erreicht?<br />

boolean gipfel_erreicht()<br />

{<br />

}

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!