MINT lernen

Logische Operatoren

Zwei Sachaufgaben zu and, or und not mit Hinweisen und Erwartungshorizont.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Würfelregel im Brettspiel

AFB I–II

Die Spiele-AG programmiert die Regeln für ein neues Brettspiel. Nach jedem Wurf mit zwei Würfeln entscheidet dieses Programm:

w1 = int(input("Würfel 1? "))w2 = int(input("Würfel 2? "))if w1 == w2 and w1 >= 5:    print("Superpasch: noch einmal würfeln und 10 Bonuspunkte")elif w1 == w2 or w1 + w2 == 7:    print("Noch einmal würfeln")elif not (w1 == 1 or w2 == 1):    print("Normal ziehen")else:    print("Eine Runde aussetzen")
  1. Erstelle eine Übersicht mit den Ausgaben für die Würfe (6, 6), (3, 3), (2, 5), (4, 6), (1, 4) und (1, 6).
  2. Zeige, dass die Bedingung not (w1 == 1 or w2 == 1) gleichbedeutend ist mit w1 != 1 and w2 != 1.
  3. Ermittle, bei wie vielen der 36 möglichen Würfe man eine Runde aussetzen muss.

Hinweise

Hinweis zu Aufgabe a)
Prüfe die Bedingungen von oben; nur der erste wahre Zweig läuft.
Hinweis zu Aufgabe b)
Wann ist w1 == 1 or w2 == 1 falsch?
Hinweis zu Aufgabe c)
Zähle alle Würfe mit mindestens einer 1 und streiche die, die schon vorher einen anderen Zweig auslösen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
  • (6, 6) → Superpasch: noch einmal würfeln und 10 Bonuspunkte
  • (3, 3) → Noch einmal würfeln
  • (2, 5) → Noch einmal würfeln
  • (4, 6) → Normal ziehen
  • (1, 4) → Eine Runde aussetzen
  • (1, 6) → Noch einmal würfeln

Bei (1, 6) greift schon der zweite Zweig, weil 1 + 6 = 7 ist — die Eins spielt dann keine Rolle mehr.

Erwartungshorizont zu Aufgabe b)

w1 == 1 or w2 == 1 ist genau dann falsch, wenn keiner der beiden Würfel eine 1 zeigt. not dreht das Ergebnis um: Die ganze Bedingung ist also genau dann wahr, wenn w1 keine 1 und w2 keine 1 ist — das ist w1 != 1 and w2 != 1. Kurz: not (A or B) ist dasselbe wie not A and not B.

Erwartungshorizont zu Aufgabe c)

Mindestens eine 1 zeigen 11 Würfe: (1, 1) bis (1, 6) und (2, 1) bis (6, 1). Davon greift bei (1, 1) schon der Pasch-Zweig und bei (1, 6) und (6, 1) die Summe 7. Es bleiben 11 − 3 = 8 Würfe: (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (3, 1), (4, 1), (5, 1).

2

Ausleihe in der Schulbibliothek

AFB II–III

In der Schulbibliothek gilt: Lehrkräfte dürfen immer ausleihen. Schülerinnen und Schüler brauchen einen gültigen Ausweis, dürfen keine offene Mahnung haben und höchstens 4 Bücher gleichzeitig ausgeliehen haben (vor der neuen Ausleihe also weniger als 5).

  1. Entwickle ein Programm, das die nötigen Angaben abfragt und „Ausleihe möglich“ oder „Ausleihe nicht möglich“ ausgibt. Verwende genau eine if-Bedingung mit logischen Operatoren.
  2. Untersuche, ob die beiden folgenden Varianten der Bedingung dasselbe leisten wie deine: (1) rolle == "L" or ausweis == "j" and mahnungen == 0 and geliehen < 5 und (2) (rolle == "L" or ausweis == "j") and mahnungen == 0 and geliehen < 5.
  3. Nimm Stellung zu Jonas’ Vorschlag, die Bedingung so zu schreiben: not (ausweis != "j" or mahnungen > 0 or geliehen >= 5) or rolle == "L".

Hinweise

Hinweis zu Aufgabe a)
Die Lehrkraft-Regel mit or, die drei Schülerregeln mit and verbinden.
Hinweis zu Aufgabe b)
Welcher Operator bindet stärker? Probiere eine Lehrkraft mit einer offenen Mahnung.
Hinweis zu Aufgabe c)
Prüfe erst, ob die Bedingung korrekt ist, und dann, wie gut man sie lesen kann.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Mögliche Lösung:

# Ausleihe in der Schulbibliothekrolle = input("Schüler (S) oder Lehrkraft (L)? ")ausweis = input("Ausweis gültig (j/n)? ")mahnungen = int(input("Offene Mahnungen? "))geliehen = int(input("Bereits ausgeliehen? "))if rolle == "L" or (ausweis == "j" and mahnungen == 0 and geliehen < 5):    print("Ausleihe möglich")else:    print("Ausleihe nicht möglich")
Schüler (S) oder Lehrkraft (L)? S
Ausweis gültig (j/n)? j
Offene Mahnungen? 0
Bereits ausgeliehen? 2
Ausleihe möglich
Erwartungshorizont zu Aufgabe b)

Variante (1) ist gleichwertig: and bindet stärker als or, Python klammert also automatisch genau so wie in der Musterlösung. Die Klammern dort dienen nur der Lesbarkeit. Variante (2) ist falsch: Hier gelten die Mahnungs- und Bücherregel auch für Lehrkräfte. Eine Lehrkraft mit einer offenen Mahnung (rolle = "L", mahnungen = 1) bekäme „Ausleihe nicht möglich“.

Erwartungshorizont zu Aufgabe c)

Die Bedingung ist korrekt: not (A or B or C) ist wahr, wenn keiner der drei Hinderungsgründe vorliegt — also genau dann, wenn Ausweis gültig, keine Mahnung und weniger als 5 Bücher. Sie ist aber schwerer zu lesen, weil man die doppelte Verneinung im Kopf umdrehen muss. Ich würde die positive Formulierung mit and vorziehen; Jonas’ Variante ist höchstens sinnvoll, wenn man bewusst die Gründe für eine Ablehnung aufzählen will.