07.10.2013 Aufrufe

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

Vorlesungsskript - Hochschule Emden/Leer

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.

c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 32<br />

(b)<br />

Zugehörige Wahrheitswerttabellen:<br />

p q p ∧ q p ∨ q p XOR q p ←→ q<br />

W W W W F W<br />

W F F W W F<br />

F W F W W F<br />

F F F F F W<br />

Die Und-Beziehung ist genau dann WAHR, wenn beide Operanden WAHR sind.<br />

Die (Inklusiv-)Oder-Beziehung ist genau dann FALSCH, wenn beide Operanden FALSCH<br />

sind.<br />

Die Antivalenz- oder Exklusiv-Oder-Beziehung ist genau dann WAHR, wenn beide Operanden<br />

verschiedene Wahrheitswerte haben. In deutsch genauer: entweder . . . oder . . .<br />

Die Äquivalenz-Beziehung ist genau dann WAHR, wenn beide Operanden die gleichen<br />

Wahrheitswerte haben.<br />

(1) Alle vier Operatoren aus (a) sind – soweit ohne Kurzschlussverfahren (b2) – kommutativ<br />

und, wenn ungemischt, assoziativ.<br />

(2) Bei den Operatoren Und und (Inlusiv-)Oder wird in manchen Programmiersprachen das<br />

Kurzschlussverfahren angewendet: in einem Und-Ausdruck bzw. einem Oder-Ausdruck<br />

wird der rechte Operand nur dann ausgewertet, wenn der Ergebniswert nicht schon bereits<br />

durch den Wert des linken Operanden feststeht:<br />

• Bei dem Operator Inklusiv-Oder steht der Ergebniswert fest (W), wenn der erste Operand<br />

W ist; der Wert des zweiten Operanden spielt keine Rolle mehr.<br />

• Bei dem Operator Und steht der Ergebniswert fest (F), wenn der erste Operand F ist;<br />

auch hier spielt der Wert des zweiten Operanden keine Rolle mehr.<br />

In Falle der Ausnutzung des Kurzschlussverfahrens sind daher die beiden Operatoren Und<br />

und Oder nicht kommutativ △! – im Gegensatz zu (b1).<br />

Bsp Die Hierarchiestufen der in diesem Beispiel benutzten Operatoren seien folgendermaßen festgelegt (fallende<br />

Hierarchie, je Zeile mit gleicher Priorität):<br />

/ (Division)<br />

> = = (= sei der Operator für den Test auf Gleichheit)<br />

∧ ∨<br />

Der Ausdruck a = 0 ∧ b/a > 3 ist nur dann immer auswertbar, wenn das Kurzschlussverfahren<br />

garantiert ist, da sonst ggf. eine Division durch Null versucht wird, nämlich bei a = 0 FALSCH.<br />

Der Ausdruck a = 0 ∨ b/a > 3 ist ebenfalls nur bei garantiertem Kurzschlussverfahren immer<br />

auswertbar, da sonst eine Division durch Null (bei a = 0 WAHR) vorkommen würde.<br />

△!<br />

Schwierig wird die Übersicht bei garantiertem Kurzschlussverfahren, wenn der rechte Operand<br />

zusätzliche Wirkungen hat ( Seiteneffekte“, (Kap. 3.3)), z. B. bei folgendem Ausdruck:<br />

”<br />

b > 0 ∧ (liesZahl()< 10)<br />

(liesZahl() lese eine Zahl ein und gebe deren Wert zurück),<br />

da im Falle b > 0 WAHR die Zahl gelesen würde, im Falle FALSCH nicht.<br />

Anm Die Sprachen C ++/C garantieren bei den Operatoren Und und (Inklusiv-)Oder das Kurzschlussverfahren;<br />

bei Pascal darf der Compiler so verfahren, muss es aber nicht.<br />

(c) De-Morgansche Gesetze:<br />

p ∧ q ←→ p ∨ q p ∨ q ←→ p ∧ q<br />

Die Verneinung einer Und-Beziehung wird zur Oder-Beziehung der verneinten Operanden<br />

und umgekehrt.<br />

(d) Vereinfachung von komplexeren Booleschen Ausdrücken: Anwenden von Logik-Regeln (s.<br />

Lehrbücher Formale Logik) oder Karnaugh-Veit-(KV-)Diagramme (s. Digitale Elektronik).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!