W zadaniach tego typu trzeba ocenić, który program realizuje zadaną funkcję boolowską (zależność logiczną). Najpewniejszą metodą jest weryfikacja równoważności logicznej, a nie ocena "na oko".
Jak to zrobić krok po kroku:
- Zidentyfikuj wejścia i wyjście (jakie sygnały są argumentami funkcji i co jest wynikiem).
- Rozpisz zależność w postaci czytelnej (np. uporządkuj nawiasy, uwzględnij NOT, AND, OR).
- Zbuduj tabelę prawdy: dla n wejść jest 2n kombinacji. Dla każdej kombinacji wyznacz oczekiwane wyjście z zależności.
- Przetestuj programy na tych samych kombinacjach wejść (w myśli, na papierze albo w symulatorze) i porównaj wyniki.
Dlaczego poprawna jest odpowiedź "Program 2."?
Bo dla zestawu kombinacji wejść wyjście programu pokrywa się z wyjściem wynikającym z podanej zależności logicznej (czyli program jest z nią równoważny). W praktyce oznacza to, że "Program 2." ma właściwe użycie operatorów AND/OR/NOT oraz właściwe grupowanie (nawiasowanie) warunków.
Dlaczego pozostałe programy są błędne?
- "Program 1." typowo odpada, gdy ma inną kolejność/priorytet operacji lub brakuje mu negacji w jednym z członów, przez co dla części kombinacji daje inne wyjście.
- "Program 3." bywa niepoprawny, gdy realizuje funkcję podobną, ale nie równoważną (np. zamienia AND na OR, stosuje negację na innym poziomie albo implementuje warunek zbyt "szeroki").
- "Program 4." często różni się w tzw. przypadkach brzegowych (kombinacje, w których zmienia się tylko jedno wejście), co ujawnia się dopiero po sprawdzeniu tabelą prawdy.
Wskazówka egzaminacyjna: jeśli nie masz czasu na pełną tabelę prawdy, wybierz 4–6 krytycznych przypadków: wszystkie zera, wszystkie jedynki oraz takie, gdzie pojedyncze wejście zmienia się z 0 na 1. To szybko wykrywa większość niezgodności.