Logische Verknüpfungen
Aufgabe 1: Wahrheitswerte verknüpfen
Gib zuerst ohne Rechner an, welche Ergebnisse die folgenden Ausgaben liefern. Schreibe sie hinter die Kommentare.
Überprüfe dein Ergebnis danach am Rechner.
Python kennt drei logische Verknüpfungen:
| Verknüpfung | Bedeutung | Ergebnis ist wahr, wenn … |
|---|---|---|
and |
und | beide Seiten wahr sind |
or |
oder | mindestens eine Seite wahr ist |
not |
nicht | die Seite falsch ist |
Achtung beim or: In der Umgangssprache meint „oder" oft „entweder … oder". In der Informatik ist or immer einschließend: True or True ergibt True.
Die vollständige Übersicht heißt Wahrheitstafel:
| A | B | A and B |
A or B |
|---|---|---|---|
False |
False |
False |
False |
False |
True |
False |
True |
True |
False |
False |
True |
True |
True |
True |
True |
Beim and gibt es also nur eine Zeile mit dem Ergebnis wahr, beim or nur eine mit dem Ergebnis falsch.
Aufgabe 2: Ein Beispiel mit der Turtle
Skizziere zuerst auf Papier, welches Bild sich hier ergibt. Überprüfe dein Ergebnis danach am Rechner.
Tipp: Gehe die Bedingung durch
Lege eine Tabelle an und prüfe für jeden Wert von punkt beide Teilbedingungen einzeln:
| punkt | gerade? | kleiner als 5? | beides? | Farbe |
|---|---|---|---|---|
| 0 | ja | ja | ja | rot |
| 1 | nein | ja | nein | blau |
| 2 | ja | ja | ja | rot |
| … |
Rot werden nur die Punkte 0, 2 und 4 – denn nur bei ihnen sind beide Bedingungen erfüllt.
Punkt 6 und 8 sind zwar gerade, aber nicht mehr kleiner als 5. Punkt 1 und 3 sind zwar kleiner als 5, aber nicht gerade.
Aufgabe 3: Ein Punktequadrat
a) Skizziere wieder zuerst, welches Bild sich hier ergibt. Überprüfe dein Ergebnis danach am Rechner.
b) Modifiziere das Programm anschließend so, dass sich die weiter unten abgebildeten Zeichnungen ergeben. Ändere dabei nur die Bedingung!
Variante A
Tipp zu Variante A
Hier ist ein Punkt rot, wenn er in der ersten Spalte oder in der ersten Zeile liegt. Welche Verknüpfung brauchst du also?
Variante B
Tipp zu Variante B
Auf der Diagonalen sind Zeilennummer und Spaltennummer gleich. Dafür brauchst du gar keine Verknüpfung – nur einen Vergleich der beiden Variablen miteinander.
Variante C
Tipp zu Variante C
Rot ist ein Punkt, wenn er sowohl in einer der ersten fünf Zeilen als auch in einer der ersten fünf Spalten liegt.
Es muss jeweils nur die Bedingung ausgetauscht werden:
# Variante A: erste Zeile oder erste Spalte
if punkt == 0 or zeile == 0:
# Variante B: die Diagonale
if punkt == zeile:
# Variante C: das obere linke Viertel
if punkt < 5 and zeile < 5:
Zusatzaufgabe: Das Schachbrett
Modifiziere dein Programm nun so, dass eine Zeichnung wie unten entsteht.
Tipp 1: Wann ist ein Feld rot?
Sieh dir eine einzelne Zeile an: Dort wechseln sich die Farben ab. In der nächsten Zeile ist es genau umgekehrt.
Die Farbe hängt also von beiden Zählern gemeinsam ab.
Tipp 2: Die entscheidende Idee
Betrachte die Summe aus Zeilennummer und Spaltennummer. Ist sie gerade oder ungerade?
if (zeile + punkt) % 2 == 0:
pencolor("red")
else:
pencolor("blue")