KWALIFIKACJA ROL8 - TEST WIEDZY NR 1

PYTANIE NR 23.
Rozważ następujący fragment kodu programu sterującego systemem agrotronicznym:
if (temperatura > 30) {
    uruchom_wentylatory();
} else if (temperatura < 20) {
    uruchom_ogrzewanie();
} else {
    zatrzymaj_wszystko();
}
Jakie działanie zostanie podjęte przez system, gdy temperatura wynosi 25 stopni Celsjusza?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Dla temperatury 25 warunek "temperatura > 30" jest fałszywy, a "temperatura < 20" także jest fałszywy. Program przechodzi więc do gałęzi else i wywołuje funkcję zatrzymaj_wszystko(), czyli system zatrzyma działanie elementów wykonawczych.

Pełne wyjaśnienie:

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.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja if / else if / else sprawdza warunki po kolei i wykonuje tylko tę gałąź, której warunek jest spełniony jako pierwszej. Jeśli żaden warunek nie jest prawdziwy, wykona się blok else, czyli scenariusz "w przeciwnym razie".
Wartość 25°C nie spełnia warunku "powyżej 30" ani "poniżej 20". Dlatego program przejdzie do części else i wykona funkcję zatrzymania, czyli wyłączy/ zatrzyma elementy wykonawcze zgodnie z logiką "zatrzymaj_wszystko()".
Wentylatory są uruchamiane tylko wtedy, gdy spełniony jest warunek temperatura > 30. Ponieważ 25 nie jest większe od 30, ta gałąź nie zostanie wykonana i program przejdzie do kolejnych sprawdzeń.
Ogrzewanie uruchamia się tylko przy spełnieniu warunku temperatura < 20. Dla 25°C nierówność "mniej niż 20" jest fałszywa, więc blok odpowiedzialny za ogrzewanie nie zostanie wykonany.
else oznacza działanie domyślne, wykonywane wtedy, gdy wcześniejsze warunki nie są spełnione. W sterowaniu może to być tryb neutralny, bezpieczny lub utrzymanie stanu. W tym przykładzie jest to zatrzymanie wszystkich elementów.
Nie. "Nie podejmie żadnego działania" sugeruje brak reakcji programu. Tymczasem "zatrzymaj wszystko" to konkretna reakcja: wywołanie funkcji, która wydaje polecenie zatrzymania/wyłączenia. Program działa, tylko skutkiem jest stop systemu.
Do else trafią wszystkie temperatury, które nie są ani większe od 30, ani mniejsze od 20. Czyli praktycznie wartości w "środku" zakresu: od 20 do 30 włącznie (bo w kodzie użyto ostrych nierówności > i <).
Częsty błąd to mylenie > z >= oraz < z <=, przez co źle ocenia się przypadki graniczne (np. 20 lub 30). Drugi błąd to pomijanie gałęzi else i wybór odpowiedzi "na intuicję".
Histerezę stosuje się, gdy układ mógłby często przełączać się wokół progu (np. 29–31°C). Dodanie różnych progów włączenia i wyłączenia stabilizuje pracę wentylatora lub grzałki, zmniejsza zużycie elementów i poprawia komfort działania systemu.
Najprościej podstaw wartość do warunków po kolei i zapisz "prawda/fałsz". Gdy trafisz na pierwszy warunek prawdziwy, to ta gałąź się wykona. Jeśli wszystkie są fałszywe, wybierasz else. To eliminuje zgadywanie i pomyłki przy progach.
info

Około 82% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Eksperci podkreślają: "Dla temperatury 25 warunek "temperatura &gt; 30" jest fałszywy, a "temperatura &lt; 20" także jest fałszywy."

Źródła:

  • MDN Web Docs: "if...else" (JavaScript), https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else - dostęp 2026-02-27
  • Microsoft Learn: "if-else (C# reference)", https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statements/selection-statements#the-if-statement - dostęp 2026-02-27

Materiały:

  • Materiały dydaktyczne z podstaw programowania (instrukcje warunkowe)
  • Dokumentacja języka używanego na zajęciach (np. C/C++/C#/Java) – sekcja o if/else
  • Ćwiczenia z analizy przepływu sterowania (flowchart) dla prostych algorytmów progowych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego