Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
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).