2.2.1.7. Boolesche Logik |
Die so genannte mathematische Logik wird verwendet, um die
Strukturen der mathematischen Sprache auf die natürliche Sprache zu übertragen. Dabei
werden Möglichkeiten untersucht, mit denen einfache Aussagen kombiniert
werden können.
Gottfried Leibnitz verwendete bereits im 18. Jahrhundert die Algebra als
Sprachmodell zur Untersuchung von logischen Beziehungen.
Die Boolesche Algebra, auf der heute die Funktionsweise aller
Computer- und Programmiersprachen beruht, ist der Arbeit des britischen Mathematikers
George Boole (1815-1864) zu verdanken. Die Boolesche (oder logische) Algebra beruht auf
der Grundlage binärer logischer Operationen und bildet somit eine mathematische Struktur,
die lediglich auf den Zahlen "0" und "1" beruht.
Diese beiden Zahlen repräsentieren die Wahrheitswerte "TRUE" (1)
und "FALSE" (0), welche man "Boolesche Konstanten" nennt.
Unter einer einfachen Aussage versteht man einen Satz (eine
Aussage), die entweder wahr oder falsch ist, jedoch nie beide Wahrheitswerte gleichzeitig
annehmen kann. Mit diesen einfachen Aussagen lassen sich verschiedene Verknüpfungen
ausführen mit den so gennanten "Booleschen Operatoren". Zu diesen Operatoren
zählen die Konjunktion "and",
die Disjunktion "or" und
die Negation "not".
Mit "and"
verknüpfte Aussagen können nur den Wert "wahr" annehmen, wenn sowohl das
erste, als auch das zweite Argument die Bedingung erfüllt (oder 1 ist). "Or"- Verknüpfungen sind wahr, wenn mindestens
eines der Argumente wahr ist. Die Funktion "not" dagegen bildet grundsätzlich das Gegenteil eines gegebenen
Argumentes, d.h. wahe Aussagen werden falsch und falsche Aussagen als wahr angesehen.
Um feststellen zu können, ob die verknüpften Aussagen wahr oder falsch sind,
verwendet man die s.g. Wahrheitstabellen. Indem jedem Teil einer Aussage
alle Werte zugeordnet werden, die er annehmen kann, erhält man den Wert jeder einzelnen
möglichen Kombination. Eine Aussage, deren Wahrheitstabelle nur den Wert "wahr"
enthält, bezeichnet man als logisch wahr, im Gegensatz dazu nennt man
eine Aussage, der nur negative Werte zugeordnet werden logisch falsch.
Der Programminterpreter des TI-85 überprüft die verknüpften Bedingungen so lange, bis der Wert des Gesamtausdrucks feststeht. In einer mit "or" verknüpften Kette von Bedingungen bricht er beispielsweise nach der Überprüfung der ersten Bedingung ab, wenn die bereits den Wert "wahr" ergibt und somit der Wert des gesamten Ausdrucks bereits "wahr" ist.
Wahrheitstabellen:
|
|
|
Abgeleitet aus den Grundfunktionen "and", "or" und "not"
wurden die Funktionen "nor",
"nand" und "xor".
"Nor" und "nand" haben das gleiche Ergebnis, wie ein
zusammen angewendetes "not"
und "or" bzw. "not" und "and" , d.h. das Ergebnis wird umgekehrt . "Xor" bezeichnet man als "exklusives oder", d.h. wie bei "or" muss entweder das eine oder das
andere Argument wahr sein, nicht jedoch beide gleichzeitig.
Die zugehörigen Wahrheitstabellen sehen folgendermaßen aus:
|
|
|
Die technische Bedeutung der Booleschen Algebra
Die heutige Bedeutung der Booleschen Algebra besteht vor
allem darin, dass die als mathematisches Modell für die logische Darstellung der Schalter
in elektrischen Schaltkreisen diente. Diese werden in der Stromversorgung und vor allem in
Computern verwendet.
Schalter und alle anderen elektronischen Geräte kennen grundsätzlich nur zwei
Zustände geöffnet (kein Strom fliesst) oder geschlossen (Strom fliesst). Der
geschlossene Zustand entspricht der Booleschen Konstante "wahr", ein geöffneter
Schalter steht für "falsch".
Der einfachste Stromkreis besteht aus einer Stromquelle, Draht, einem Schalter und
einer Glühbirne, die zwischen Schalter und Stromquelle geschalten wird:
offen - Strom fliesst nicht | geschlossen - Strom fliesst |
Dieser Stromkreis wird komplexer, wenn man einen zweiten Schalter einbringt, der entweder parallel oder in Serie geschalten wird. Zwei in Serie geschaltete Schalter bilden eine AND- Verknüpfung. Nur wenn beide Schalter geschlossen sind fliesst Strom und die Bedingung ist erfüllt. Die Parallelschaltung dagegen beruht auf einer einfachen OR- Verknüpfung: wenn mindestens einer der beiden Schalter geschlossen ist, fliesst der Strom. Die brennende Glühlampe steht für eine erfüllte Bedingung.
Parallelschaltung von zwei Schaltern,
einer davon geöffnet Strom fliesst |
Reihenschaltung von zwei Schaltern,
einer ist geöffnet Strom fliesst nicht |
Bedeutung der Booleschen Algebra in TI-85 BASIC
In TI-85 BASIC gibt es nicht, wie in anderen
HLL (z.B. Pascal) den Datentyp "Boolean", dennoch findet die Boolesche Logik
ihre Anwendung:
In bedingten Anweisungen (Kapitel 2.3.2.5.) werden Bedingungen formuliert. Ist eine
Bedingung erfüllt, so nimmt der gesamte Ausdruck der Bedingung den Wert "wahr"
an (somit die Zahl 1). Ist die Bedingung nicht erfüllt, so ist der Wert des formulierten
Ausdrucks "falsch" ("0").
Bedingungen können mit den Booleschen Operatoren verknüpft werden. In TI-85 BASIC
stehen dazu die Operatoren "and",
"or", "not" und "xor" zur Verfügung.
Die mit den Booleschen Operatoren verknüpften Ausdrücke (Bedingungen) müssen in
der If- Anweisung in Klammern stehen.
Beispiele zur Anwendung der Booleschen Operatoren:
Operator | Beispiel | Erläuterung | Wert des Ausdrucks |
and | :If (3==3) and (32==9) :Disp "Beide Bedinungen sind wahr!" |
"Beide Bedinungen sind wahr!" wird ausgegeben, da sowohl die erste, als auch die zweite Bedingung erfüllt ist. | wahr / 1 |
or | :If (3<4) or
(3==4) :Disp "3 ist nicht größer als 4!" |
Die erste Bedingung ist erfüllt und somit die Gesamtbedingung wahr. Ob die zweite Bedingung auch erfüllt ist, ist für den Wert des Gesamtausdruckes unwichtig. | wahr / 1 |
xor | :"an"®SCHALTER1 :"an"®SCHALTER2" :If (SCHALTER1=="an") xor (SCHALTER2"=="an") :Disp "Ein Schalter ist aus!" |
2 Strings mit den Namen Schalter1 und Schalter2 wird die Zeichenkette "an" zugewiesen. Sowohl die erste, als auch die zweite Bedingung sind somit erfüllt. Der Wert des Gesamtausdruckes beträgt somit "falsch", da nur genau eine Bedingung erfüllt sein darf. | falsch / 0 |
not* | :4®B :If not -(B==0) :Disp "B ist ungleich 0" |
Die Variable ist ungleich 0, die Bedingung in Klammern also nicht erfüllt. "Not" kehrt den Wert der in Klammern stehenden Bedingung um, und damit ergibt der Gesamtausdruck den Wert "wahr". | wahr / 1 |
* Bei der Benutzung von "not" gilt zu beachten, dass er zusammen mit
dem Negationszeichen "-" verwendet werden muss, um das gewünschte Ergebnis zu
erreichen. Prinzipiell kann jedes "not" auch durch die Verwendung des Ungleichzeichens "¹" in der Bedingung
ersetzt werden. Diese Schreibweise ist nicht nur übersichtlicher, sondern auch
verständlicher und sollte deshalb vorgezogen werden.
Beispiel:
Mit Verwendung von "not" | :If not -(A==0) :Then :[Anweisungen] : End |
Ohne "not" | :If (A¹0) :Then :[Anweisungen] :End |