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.

8.3. PROZEDURAUFRUF 65<br />

Prozeduraufruf<br />

Anweisung (2)<br />

Prozedurname<br />

Grundbefehl<br />

Prozeduraufruf<br />

( ) ;<br />

Abbildung 8.3: Syntaxdiagramm: Prozeduraufruf<br />

selbst wieder aufgerufen wird. Prozeduren, die sich selbst aufrufen, werden rekursive Prozeduren<br />

genannt und in Kapitel 16 detailliert erlautert.<br />

An dieser Stelle soll nochmal darauf hingewiesen werden, da in der Hamstersprache Gro - und<br />

Kleinbuchstaben unterschieden werden. Das bedeutet insbesondere, da wenn Sie eine Prozedur<br />

mit rechts um benennen, Sie sie auch mit rechts um(); aufrufen mussen. Der Aufruf der Anweisung<br />

Rechts Um(); wurde zu einer syntaktischen Fehlermeldung durch den Compiler fuhren,<br />

es sei denn, es ist noch eine weitere Prozedur namens Rechts Um de niert.<br />

8.3.2 Semantik<br />

Im Prinzip entspricht ein Prozeduraufruf einem Platzhalter fur den Prozedurrumpf, d.h. Sie<br />

konnen sich vorstellen, da an der Stelle des Prozeduraufrufes die Anweisungen des entsprechenden<br />

Prozedurrumpfes stehen.<br />

Eine alternative Erlauterung ist folgende: Wird irgendwo in einem Programm eine Prozedur<br />

aufgerufen, so wird bei der Ausfuhrung des Programms an dieser Stelle der Rumpf der Prozedur,<br />

d.h. die Anweisung(en) des Prozedurrumpfes ausgefuhrt. Der Kontroll u des Programms<br />

verzweigt beim Prozeduraufruf in den Rumpf der Prozedur, fuhrt die dortigen Anweisungen aus<br />

und kehrt nach der Abarbeitung der letzten Anweisung des Rumpfes an die Stelle des Prozeduraufrufs<br />

zuruck.<br />

8.3.3 Beispiele<br />

Folgendes Beispiel enthalt gultige Prozedurde nitionen fur die Prozeduren kehrt und rechts um<br />

und einen Prozeduraufruf der Prozedur kehrt:<br />

void kehrt()<br />

{<br />

links_um();<br />

links_um();<br />

}<br />

void rechts_um()<br />

{<br />

kehrt();

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!