W pokazanym fragmencie programu zastosowano klasyczną konstrukcję if / else if / else. Oznacza to, że program sprawdza warunki po kolei i wykona dokładnie jedną z gałęzi: pierwszą, której warunek okaże się prawdziwy. Jeśli żaden warunek nie jest spełniony, wykonywana jest gałąź else.
Dla temperatury równej 25°C analizujemy kolejno:
- Sprawdzenie "temperatura > 30": wartość 25 nie jest większa od 30, więc ta część nie uruchomi wentylatorów.
- Następnie "temperatura < 20": wartość 25 nie jest mniejsza od 20, więc ta część nie uruchomi ogrzewania.
- Ponieważ oba warunki są fałszywe, program wchodzi do else i wykonuje "zatrzymaj_wszystko()".
Odpowiedź "Zatrzyma wszystko" jest więc poprawna, bo 25°C mieści się w przedziale pośrednim (od 20 do 30 włącznie, przy ostrych nierównościach w kodzie), dla którego przewidziano zatrzymanie wszystkich elementów.
Pozostałe odpowiedzi są niepoprawne, bo:
- "Uruchomi wentylatory" wymaga spełnienia warunku temperatury powyżej 30°C, co tu nie zachodzi.
- "Uruchomi ogrzewanie" wymaga spadku temperatury poniżej 20°C, czego również nie ma.
- "Nie podejmie żadnego działania" jest mylące: gałąź else to także działanie (wywołanie funkcji zatrzymania), nawet jeśli skutkiem jest wyłączenie/stop elementów wykonawczych.
W praktyce takie progi często uzupełnia się o histerezę lub opóźnienia czasowe, aby uniknąć częstego przełączania przy wartościach granicznych, ale w tym zadaniu liczy się wyłącznie literalna logika warunków.