Springe zum Inhalt oder Footer
SerloDie freie Lernplattform

5Logische Verknüpfungen

Im Kapitel bedingte Verzweigung hast du gelernt, dass eine Aussage stets wahr oder falsch sein kann und dass ein Programm in jedem Fall verschiedene Wege einschlagen kann. Im aktuellen Programm benutzen wir die Aussage:

Bewegung erkannt

wenn der mittlere Anschluss des PIR-Sensors von 0V auf 3.3V ansteigt und damit eine Bewegung signalisiert. In Circuitpython schreiben wir pir_d.rose.

Möchte man eine Aussage aus Teilaussagen zusammensetzen, benötigt man logische Verknüpfungen.

Es gibt drei logische Verknüpfungen: UND, ODER, NICHT

if «Bedingung1» and «Bedingung2»

if «Bedingung1» or «Bedingung2»

if not «Bedingung»

Betrachte den folgenden Programmausschnitt, der den vorangegangenen verändert und übernehme die Änderungen in deinen Code.

pir = digitalio.DigitalInOut(board.A5)
pir.switch_to_input()
pir_d = Debouncer(pir)
door = digitalio.DigitalInOut(board.D9)
door.switch_to_input(pull=digitalio.Pull.UP)

while True:
    pir_d.update()

    if pir_d.rose and door.value:
        pixel[0] = BLUE
        adafruit_rtttl.play(board.A3, korobeyniki)
        pixel[0] = CLEAR

Die Nicht-Verknüpfung

Die logische nicht-Verknüpfung kehrt den Wahrheitswert einer Aussage um. Sie verneint also eine Aussage, man spricht daher auch von einer Negation. Aus:

die Tür ist offen

wird:

die Tür ist nicht offen (geschlossen)

In Circuitpython schreibst du ein not direkt vor die Aussage, wenn du sie negieren möchtest.

Die UND-Verknüpfung

Die logische und-Verknüpfung wird auch Konjunktion genannt. Eine mit and zusammengesetzte Aussage ist also nur dann wahr, wenn beide Teilaussagen - die erste und die zweite - wahr sind. Beispiel:

Bewegung erkannt und die Tür ist offen

Die ODER-Verknüpfung

Die logische oder-Verknüpfung wird auch Disjunktion genannt. Eine mit or zusammengesetzte Aussage ist also dann wahr, wenn mindestens eine der beiden Teilaussagen - die erste oder die zweite oder auch beide - wahr ist. Beispiel:

Bewegung erkannt oder die Tür ist offen

Beachte, dass die logische oder-Verknüpfung nicht dem Entweder-Oder aus dem Alltag entspricht.

Welche logische Verknüpfung wurde in dem Programm oben verwendet und wie verhält sich das Programm wenn du die Konjunktion durch eine Disjunktion ersetzt?

Aufgabe

Verändere das Programm so dass nur dann das Lied gespielt wird, wenn der Magnetschalter geschlossen ist und eine Bewegung erkannt wurde.


Dieses Werk steht unter der freien Lizenz
CC BY-SA 4.0Was bedeutet das?