Prawa logiki (p, q, r)

Zadanie 7 z 10 · rozdział 2Trudność: 2 z 3boollogikatabele prawdyformatowanie

Treść zadania

Wczytaj wartości logiczne p, q i r i sprawdź dla nich osiem praw logiki.
Każde prawo to równoważność lewej strony L i prawej strony R:

  1. Prawo wyłączonego środka — L = p or not p, R = True
  2. Prawo niesprzeczności — L = not (p and not p), R = True
  3. Przemienność koniunkcji — L = p and q, R = q and p
  4. Przemienność alternatywy — L = p or q, R = q or p
  5. Pierwsze prawo de Morgana — L = not (p and q), R = not p or not q
  6. Drugie prawo de Morgana — L = not (p or q), R = not p and not q
  7. Rozdzielność koniunkcji względem alternatywy — L = p and (q or r), R = (p and q) or (p and r)
  8. Rozdzielność alternatywy względem koniunkcji — L = p or (q and r), R = (p or q) and (p or r)

Dla każdego prawa oblicz L i R dla wczytanych wartości i sprawdź instrukcją if, czy są równe.

Dane wejściowe

  • 1. linia: p — napis True albo False
  • 2. linia: q — napis True albo False
  • 3. linia: r — napis True albo False

Dane wyjściowe

8 linii — po jednej dla każdego prawa, w kolejności z listy:

<nazwa prawa>: L=<L> R=<R> -> równoważne

gdy L jest równe R, albo <nazwa prawa>: L=<L> R=<R> -> nierównoważne w przeciwnym razie.
<L> i <R> to dosłownie True albo False. (Wszystkie prawa z listy są prawdziwe, więc poprawny program zawsze wypisze równoważne — różnić się będą wartości L i R).

Uwagi

  • input() zwraca napis. Nie zamieniaj go przez bool(...) — bool("False") to True (każdy niepusty napis jest prawdziwy). Zamiast tego porównaj: p = input() == "True".
  • f-string wstawia wartość logiczną jako tekst: f"L={True}" daje L=True.

Przykład

Wejście
False
True
False
Wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=False R=False -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=False R=False -> równoważne

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 2

Zadania w tym rozdziale ćwiczą podejmowanie decyzji w programie na podstawie warunków.

Konwencje wspólne:

  • Każde zadanie jest osobnym programem: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Dane wejściowe wczytuj dokładnie w podanej kolejności, każdą wartość z osobnej linii (o ile nie napisano inaczej).
  • Wyniki wypisuj dokładnie jak w specyfikacji (w tym wielkość liter, polskie znaki, kropki, spacje).
  • Jeżeli zadanie mówi „nie wypisuj nic” — program ma zakończyć się bez żadnego wyjścia (bez spacji, bez pustej linii).
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”. Tekst podany w input("…") jest ignorowany przez sprawdzarkę.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
False
False
False
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=False R=False -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=True R=True -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=False R=False -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=False R=False -> równoważne

Test 2

Nie uruchomiono
Wejście
False
False
True
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=False R=False -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=True R=True -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=False R=False -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=False R=False -> równoważne

Test 3

Nie uruchomiono
Wejście
False
True
True
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=False R=False -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=True R=True -> równoważne

Test 4

Nie uruchomiono
Wejście
True
False
False
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=False R=False -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=True R=True -> równoważne

Test 5

Nie uruchomiono
Wejście
True
False
True
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=False R=False -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=True R=True -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=True R=True -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=True R=True -> równoważne

Test 6

Nie uruchomiono
Wejście
True
True
False
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=True R=True -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=False R=False -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=True R=True -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=True R=True -> równoważne

Test 7

Nie uruchomiono
Wejście
True
True
True
Oczekiwane wyjście
Prawo wyłączonego środka: L=True R=True -> równoważne
Prawo niesprzeczności: L=True R=True -> równoważne
Przemienność koniunkcji: L=True R=True -> równoważne
Przemienność alternatywy: L=True R=True -> równoważne
Pierwsze prawo de Morgana: L=False R=False -> równoważne
Drugie prawo de Morgana: L=False R=False -> równoważne
Rozdzielność koniunkcji względem alternatywy: L=True R=True -> równoważne
Rozdzielność alternatywy względem koniunkcji: L=True R=True -> równoważne
Uruchom z własnymi danymi