KWALIFIKACJA ELM6 - TEST WIEDZY NR 2

PYTANIE NR 10.
Rozważ następujący fragment kodu programowania urządzenia mechatronicznego:
if (sensor1.status == "failure") {
  system.shutdown();
} else {
  system.continueOperation();
}

Jaki jest cel tego fragmentu kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Kod sprawdza warunek: czy sensor1 ma status "failure". Gdy warunek jest spełniony, wykonywane jest system.shutdown(), czyli zatrzymanie/wyłączenie pracy dla stanu awarii czujnika. W przeciwnym razie uruchamiane jest system.continueOperation(), co oznacza kontynuowanie działania przy braku awarii.

Pełne wyjaśnienie:

Fragment przedstawia klasyczną instrukcję warunkową if/else, używaną do podejmowania decyzji w programie sterującym.

Najpierw sprawdzany jest warunek sensor1.status == "failure", czyli porównanie bieżącego stanu czujnika do wartości oznaczającej awarię. Jeśli status wskazuje awarię, wywoływana jest funkcja system.shutdown(). W praktyce logiki sterowania oznacza to przejście systemu do stanu bezpiecznego: zatrzymanie procesu, odłączenie napędów lub wstrzymanie cyklu, aby nie wykonywać pracy na podstawie niewiarygodnego pomiaru.

Jeżeli warunek nie jest spełniony (status nie jest równy "failure"), uruchamiana jest gałąź else z wywołaniem system.continueOperation(). To oznacza, że przy braku awarii czujnika system może działać dalej w trybie normalnym.

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

  • Stwierdzenie o "wyłączeniu systemu, gdy sensor1 działa poprawnie" odwraca sens warunku: wyłączenie następuje tylko wtedy, gdy status jest równy "failure".
  • Stwierdzenie o "kontynuowaniu działania, gdy sensor1 działa poprawnie" opisuje wyłącznie gałąź else i pomija cel fragmentu jako całości (obsługa dwóch przypadków), a w pytaniu chodzi o intencję tego kodu: reakcję na awarię poprzez shutdown.
  • Stwierdzenie o "kontynuowaniu działania, gdy sensor1 nie działa poprawnie" jest sprzeczne z wywołaniem shutdown() w sytuacji awarii.

Wskazówka egzaminacyjna: zawsze czytaj warunek wprost ("jeśli status to awaria, to…"), a potem sprawdź, jaka funkcja jest wykonywana w każdej gałęzi. W systemach mechatronicznych taka logika jest typowa dla diagnostyki i zachowania bezpiecznego.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja if/else wybiera jedną z dwóch ścieżek działania programu w zależności od spełnienia warunku. Jeśli warunek jest prawdziwy, wykonuje się blok po if; w przeciwnym razie wykonuje się blok po else. To podstawa logiki reakcji na stany normalne i awaryjne.
Awaria czujnika może oznaczać, że pomiar jest niewiarygodny, więc dalsze sterowanie może być niebezpieczne (np. błędna prędkość, pozycja, temperatura). Shutdown bywa najprostszą reakcją bezpieczeństwa: zatrzymuje proces, by zapobiec uszkodzeniom i zagrożeniom dla ludzi oraz maszyny.
To sprawdzenie, czy pole status ma dokładnie wartość tekstową "failure". Jeżeli tak, program traktuje to jako wykrycie awarii. Jeśli status ma inną wartość, program uznaje, że nie ma tej konkretnej awarii i przechodzi do gałęzi else.
Gałąź else uruchamia się, gdy warunek w if jest fałszywy. W tym kodzie oznacza to: jeśli status nie jest równy "failure", wywoływana jest funkcja kontynuująca pracę. Na egzaminie zawsze czytaj else jako "w przeciwnym razie".
Tak, czytelne nazwy funkcji mogą podpowiadać intencję kodu, ale nadal trzeba potwierdzić ją logiką warunku. W zadaniach egzaminacyjnych należy opierać się na tym, kiedy dana funkcja jest wywoływana (warunek), a nie tylko na tym, jak "brzmi" nazwa.
W praktyce spotyka się stany typu "OK/gotowy", "brak sygnału", "przekroczenie zakresu", "błąd komunikacji" lub kody liczbowe/bitowe. Konkretny zestaw zależy od urządzenia i protokołu. Na egzaminie ważne jest rozumienie mechanizmu: stan awaryjny uruchamia reakcję ochronną.
Częsty błąd wynika z odwracania warunku w myślach ("jeśli nie failure, to…"), albo z pobieżnego czytania. Pomaga technika: przeczytaj warunek na głos i dopisz konsekwencję: "jeśli status to awaria, to wyłącz". Dopiero potem sprawdź, co dzieje się "w przeciwnym razie".
Najprościej zasymulować dwa przypadki: ustaw status na wartość oznaczającą awarię i sprawdź, czy system przechodzi w stan zatrzymania, a następnie ustaw status na wartość poprawną i sprawdź, czy cykl pracy jest kontynuowany. W praktyce robi się to w symulatorze lub na trybie testowym sterownika.
Tak, czasem system nie wyłącza się całkowicie, tylko przechodzi w tryb degradacji (np. ograniczona prędkość, zatrzymanie tylko jednego modułu). Zależy to od analizy ryzyka i projektu. W tym zadaniu jednak kod jednoznacznie wskazuje na wywołanie funkcji zatrzymania przy awarii.
Zwróć uwagę na trzy elementy: wartość stanu "failure" (awaria), nazwę akcji shutdown() (zatrzymanie/wyłączenie) oraz continueOperation() (kontynuacja). Następnie połącz je z warunkiem if/else, aby poprawnie przypisać, co dzieje się w przypadku awarii i w przypadku normalnym.
info

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

Według specjalistów z branży: "Kod sprawdza warunek: czy sensor1 ma status "failure"."

Źródła:

  • MDN Web Docs: if...else — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else (dostęp 2026-02-27)
  • MDN Web Docs: Equality (==) — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality (dostęp 2026-02-27)

Materiały:

  • Materiały dydaktyczne z podstaw programowania (instrukcje warunkowe, sterowanie przepływem)
  • Dokumentacja środowiska/sterownika używanego w pracowni (opis stanów błędów czujników i reakcji systemu)
  • Ćwiczenia: implementacja prostych stanów pracy/awarii i testowanie gałęzi if/else na symulatorze

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego