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.

Kapitel 11<br />

Boolesche Funktionen<br />

11.1 Motivation<br />

Der Hamster hat einen sehr begrenzten Grundvorrat an Befehlen (vor();, links um();, nimm();,<br />

gib();) und Testbefehlen (vorn frei(), maul leer(), korn da()). In Kapitel 8 haben Sie gelernt,<br />

wie mittels der De nition von Prozeduren dem Hamster weitere Befehle beigebracht werden<br />

konnen. In diesem Kapitel werden Sie einen Mechanismus kennenlernen, den Vorrat an<br />

Testbefehlen zu erweitern. Dazu werden sogenannte boolesche Funktionen oder Testfunktionen<br />

eingefuhrt.<br />

Stellen Sie sich vor, Sie mochten einen neuen Testbefehl mauer da() de nieren, der genau dann<br />

den Wert true liefert, wenn sich direkt in Blickrichtung vor dem Hamster eine Mauer be ndet.<br />

Im Prinzip entspricht dies dem booleschen Ausdruck !vorn frei(), denn dieser liefert ja das<br />

gewunschte Ergebnis. Prozeduren konnen Ihnen hier nicht weiterhelfen, denn diese konnen ja<br />

keinen Wert liefern. Was Sie benotigen ist ein Sprachkonstrukt, uber das Sie einen neuen Namen<br />

mauer da fur den neuen Testbefehl einfuhren und das immer dann, wenn Sie den Testbefehl<br />

mauer da() aufrufen, den Wert des booleschen Ausdrucks !vorn frei() liefert.<br />

Etwas komplizierter ist die folgende Situation: der Hamster soll ermitteln, ob sich links von<br />

ihm eine Mauer be ndet oder nicht. Es soll also ein neuer Testbefehl links frei() eingefuhrt<br />

werden. Ein solcher Testbefehl konnte dadurch realisiert werden, da sich der Hamster zunachst<br />

nach links umdreht. Anschlie end kann er mit Hilfe des Testbefehls vorn frei() uberprufen,<br />

ob die Kachel vor ihm frei ist. Falls der Aufruf des Testbefehls vorn frei() den Wert true<br />

liefert, mu auch der Testbefehl links frei() den Wert true liefern, fur den false-Fall gilt<br />

entsprechendes. Zu beachten ist jedoch, da sich der Hamster in beiden Fallen noch wieder nach<br />

rechts umdrehen mu , um in seine Ausgangsposition zuruck zu gelangen.<br />

Beide Beispiele lassen sich mit Hilfe sogenannter boolescher Funktionen realisieren. Bevor wir<br />

deren Syntax und Semantik kennenlernen, wird zunachst die boolesche return-Anweisung eingefuhrt.<br />

119

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!