Logische Variablen und logische Terme
Pasch beim Würfeln
Wir betrachten noch einmal das folgende Pasch-Würfel-Problem:
Wie lange dauert es, bis man einen 3er-Pasch (bzw. 4er-Pasch, 5er-Pasch usw.) erhält?
Logische Variablen
Logische Variablen sind Variablen, die ein Datenobjekt vom Typ bool
verwalten.
Das folgende Programm benutzt die logische Variable paschGefunden
, um zu erfassen, ob bereits
ein 3er-Pasch vorliegt.
from random import randint # Verarbeitung paschGefunden = False versuche = 0 while not paschGefunden: w1 = randint(1, 6) w2 = randint(1, 6) w3 = randint(1, 6) versuche = versuche + 1 if w1 == w2 and w1 == w3: paschGefunden = True # Ausgabe print(versuche)
Aufgabe 1
(a) Erkläre die Verwendung der Variablen paschGefunden
.
Teste das Programm.
(b) Ändere das Programm so ab, dass man mit dem Programm die Anzahl der Versuche bis zu einem 4er-Pasch ermitteln kann.
Logische Terme
Logische Terme sind Terme, die bei der Auswertung einen Wahrheitswert als
Ergebnis liefern. Logische Terme werden aus einfachen Bedingungen (wie z.B. Vergleichen),
den logischen Werten True
und False
,
logischen Variablen und logischen Operatoren (sowie logischen Funktionen) aufgebaut.
Logische Terme werden benutzt, wenn man komplexere Bedingungen beschreibt.
Logischen Terme können - wie im folgenden Programm - aber auch bei Zuweisungen an logische Variablen benutzt werden.
from random import randint # Verarbeitung paschGefunden = False versuche = 0 while not paschGefunden: w1 = randint(1, 6) w2 = randint(1, 6) w3 = randint(1, 6) versuche = versuche + 1 paschGefunden = (w1 == w2 and w1 == w3) # Ausgabe print(versuche)
Das Zusammenspiel von logischen Variablen und logischen Operatoren liefert oft kurze und verständliche Programme.
from random import randint
# Initialisierung
n = 5
# Verabeitung
paschGefunden = False
versuche = 0
while not paschGefunden:
versuche = versuche + 1
w1 = randint(1, 6)
zaehler = 1
istPasch = True
while zaehler < n:
w = randint(1, 6)
zaehler = zaehler + 1
istPasch = istPasch and (w == w1)
if istPasch:
paschGefunden = True
# Ausgabe
print(versuche)
Aufgabe 2
Was leistet das Programm? Erkläre seine Funktionsweise.
Quellen
- Foto: Dreier-Pasch - Urheber: S. Tabor - Lizenz: CreativeCommons BY-SA 3.0