Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
146 KAPITEL 12. PROGRAMMENTWURF<br />
Wenden wir uns zunachst der Implementierung der Prozedur erklimme eine stufe zu. Diese<br />
ist nicht mehr besonders schwierig:<br />
// der Hamster soll eine Stufe erklimmen<br />
void erklimme_eine_stufe()<br />
{<br />
links_um(); // nun schaut der Hamster nach oben<br />
vor(); // der Hamster erklimmt die Mauer<br />
rechts_um(); // der Hamster wendet sich wieder dem Berg zu<br />
vor(); // der Hamster begibt sich auf den naechsten Vorsprung<br />
gib(); // der Hamster legt ein Korn ab<br />
}<br />
// der Hamster dreht sich nach rechts um<br />
void rechts_um()<br />
{<br />
links_um(); links_um(); links_um();<br />
}<br />
Etwas schwieriger scheint die Implementierung der booleschen Funktion gipfel erreicht zu<br />
sein. Wie kann der Hamster feststellen, ob er sich auf dem Gipfel be ndet oder nicht? Uberlegen<br />
Sie einfach: wann wird die Funktion aufgerufen? Sie wird jedesmal dann aufgerufen, nachdem<br />
der Hamster eine Stufe erklommen hat. Steht der Hamster danach vor einer Mauer, so ist der<br />
Gipfel noch nicht erreicht. Be ndet sich vor dem Hamster jedoch keine Mauer, dann steht er auf<br />
dem Gipfel. Also ist die Implementierung der booleschen Funktion doch ganz einfach:<br />
// hat der Hamster den Gipfel erreicht?<br />
boolean gipfel_erreicht()<br />
{<br />
if (vorn_frei())<br />
{<br />
return true;<br />
}<br />
else<br />
{<br />
return false;<br />
}<br />
}<br />
oder besser formuliert (siehe auch Kapitel 11.3.3):<br />
// hat der Hamster den Gipfel erreicht?<br />
boolean gipfel_erreicht()<br />
{<br />
return vorn_frei();<br />
}