KWALIFIKACJA ELM6 - TEST WIEDZY NR 1

PYTANIE NR 12.
Analizując poniższy fragment kodu programu sterującego pewnym urządzeniem mechatronicznym, określ, co oznacza linia
if (temp > 60) {
shutdown();
}
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek sprawdza, czy zmienna temp jest większa niż 60. Gdy temp > 60, wykonywany jest blok w klamrach, czyli następuje wywołanie funkcji shutdown(). Dla temperatury równej 60 lub niższej blok nie zostanie wykonany.

Pełne wyjaśnienie:

Linia z instrukcją warunkową:

if (temp > 60) { shutdown();
}

oznacza, że program najpierw porównuje wartość zmiennej temp z liczbą 60, używając operatora > (większe niż). Jeśli porównanie jest prawdziwe (czyli temperatura jest ściśle wyższa niż 60), wykonywany jest kod znajdujący się w klamrach, czyli zostaje wywołana funkcja shutdown(). W kontekście urządzeń mechatronicznych jest to typowy wzorzec: przekroczenie progu → reakcja ochronna (np. zatrzymanie napędu, odłączenie mocy, przejście w stan bezpieczny).

Dlaczego odpowiedź "Jeśli temperatura jest wyższa niż 60 stopni, uruchom funkcję shutdown." jest poprawna?

  • Dokładnie odpowiada warunkowi temp > 60 (nie "równa 60").
  • Opisuje działanie w bloku: shutdown() jest wywoływane, czyli uruchamiane.

Dlaczego pozostałe odpowiedzi są błędne?

  • Stwierdzenie o "wyłączeniu funkcji shutdown" myli wywołanie funkcji z jej dezaktywacją. Sama obecność shutdown(); oznacza uruchomienie tej procedury.
  • Wariant "temperatura równa 60" jest niezgodny z operatorem >. Dla równości potrzebne byłoby == 60 (lub dla "co najmniej" >= 60).
  • Wariant "temperatura niższa niż 60" odwraca warunek. Taki zapis wymagałby operatora < zamiast >.

Wskazówka egzaminacyjna: zawsze najpierw odczytaj operator porównania (>, <, ==, >=, <=), a dopiero potem próg liczbowy. To minimalizuje pomyłki typu "równa" vs "większa".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza sprawdzenie, czy wartość zmiennej temp jest ściśle większa od 60. Jeśli tak, program wykona kod w bloku { ... }. Jeśli temp wynosi 60 lub mniej, blok nie zostanie wykonany.
Bo użyto operatora >, który oznacza "większe niż", a nie "większe lub równe". Dla temperatury równej 60 warunek jest fałszywy. Gdyby miało działać od 60 włącznie, w kodzie zwykle pojawia się >=.
Wywołanie funkcji oznacza uruchomienie jej kodu w tym miejscu programu. Zapis shutdown(); nie "wyłącza funkcji", tylko każe programowi wykonać procedurę zdefiniowaną pod nazwą shutdown (np. zatrzymanie układu).
W wielu językach C/C++-podobnych = służy do przypisania, a == do porównania równości. W warunkach typu if (temp == 60) sprawdzasz równość. Pomylenie tych znaków to częsty błąd podczas czytania i pisania kodu.
Progi temperatury stosuje się m.in. do ochrony silników, napędów, zasilaczy i elementów mocy. Po przekroczeniu progu sterownik może ograniczyć moc, włączyć chłodzenie, zgłosić alarm lub wykonać bezpieczne zatrzymanie (procedura typu shutdown).
Procedurę awaryjną typu shutdown() stosuje się, gdy kontynuowanie pracy może uszkodzić urządzenie lub stworzyć zagrożenie. Alarm bywa używany przy mniej krytycznych odchyleniach. W praktyce często jest sekwencja: ostrzeżenie → alarm → wyłączenie awaryjne.
Najczęstsze pomyłki to: nieuwaga na znak > vs >=, mylenie "równe" z "większe", oraz interpretowanie nazwy funkcji po skojarzeniu (np. uznanie, że shutdown oznacza "wyłącz funkcję", a nie "wykonaj wyłączenie").
Podstaw wartość zmiennej do warunku i oceń porównanie. Dla przykładu: gdy temp = 61, warunek temp > 60 jest prawdziwy i blok się wykona. Gdy temp = 60 lub 59, warunek jest fałszywy i blok się nie wykona.
Klamry grupują wiele instrukcji w jeden blok wykonywany warunkowo. Dzięki temu po spełnieniu warunku można wykonać kilka działań naraz (np. zatrzymać napęd, zapisać błąd, zapalić kontrolkę). Bez klamr warunkowo wykonuje się zwykle tylko jedną instrukcję.
Ćwicz krótkie fragmenty kodu: if, else, porównania, progi i wywołania funkcji. Zawsze czytaj: (1) operator porównania, (2) próg, (3) co dzieje się w bloku. Rozwiązuj zadania, w których zmienia się tylko jeden znak (> vs >=).
info

To pytanie poprawnie rozwiązuje 82% zdających egzamin. średnio łatwe

Według specjalistów z branży: "Warunek sprawdza, czy zmienna temp jest większa niż 60."

Źródła:

  • cppreference.com, "if statement (C++)" (opis składni i działania instrukcji if) https://en.cppreference.com/w/cpp/language/if — dostęp 2026-03-01
  • cppreference.com, "Relational operators" (operatory porównania m.in. >, <, >=, <=) https://en.cppreference.com/w/cpp/language/operator_comparison — dostęp 2026-03-01
  • MDN Web Docs, "if...else" (ogólna interpretacja instrukcji warunkowej) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else — dostęp 2026-03-01

Materiały:

  • Dokumentacja języka C/C++: instrukcje sterujące i operatory porównania
  • Materiały szkolne z podstaw programowania sterowników i mikrokontrolerów
  • Ćwiczenia z czytania krótkich fragmentów kodu (if/else, progi, alarmy)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego