KWALIFIKACJA ROL8 - TEST WIEDZY NR 1

PYTANIE NR 7.
Przyjrzyj się poniższemu fragmentowi kodu, który jest częścią systemu sterującego pracą maszyn rolniczych. Jaki jest cel tego fragmentu kodu?
if (tractor1.speed != tractor2.speed) {
    tractor2.speed = tractor1.speed;
}
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek sprawdza, czy prędkości są różne.
Jeśli tak, wykonywane jest przypisanie, które ustawia tractor2.speed na wartość tractor1.speed. W efekcie fragment nie "przyspiesza" ani nie "zwalnia" tractor1, tylko dopasowuje (synchronizuje) parametr prędkości obiektu tractor2 do tractor1.

Pełne wyjaśnienie:

Ten fragment realizuje prostą logikę synchronizacji: najpierw porównuje dwie wartości, a potem (tylko gdy są różne) wyrównuje jedną z nich.

Co robi warunek?
Wyrażenie tractor1.speed != tractor2.speed sprawdza, czy prędkości dwóch obiektów różnią się. To etap kontroli stanu – jeszcze bez zmiany danych.

Co robi blok w nawiasach klamrowych?
Instrukcja tractor2.speed = tractor1.speed; jest przypisaniem: po jej wykonaniu prędkość zapisana w tractor2.speed staje się równa prędkości z tractor1.speed. Oznacza to, że to tractor2 "dopasowuje się" do tractor1, a nie odwrotnie.

Dlaczego poprawna jest odpowiedź "Synchronizacja prędkości traktora2 z prędkością traktora1."?
Bo dokładnie taki jest skutek: po wykonaniu kodu (gdy wartości były różne) obie prędkości są równe, a źródłem wartości jest tractor1.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "Zwiększenie prędkości traktora1 do prędkości traktora2." – kod nie zmienia tractor1.speed w ogóle. Nie ma tu przypisania do tractor1.
  • "Sprawdzenie, czy oba traktory mają taką samą prędkość." – sam warunek faktycznie porównuje prędkości, ale celem całego fragmentu jest również zmiana prędkości tractor2, jeśli wystąpi różnica. To nie jest "tylko sprawdzenie".
  • "Zmniejszenie prędkości traktora1 do prędkości traktora2." – ponownie: nie ma operacji na tractor1.speed. Dodatkowo przypisanie nie oznacza wprost "zmniejszenia"; może ustawić wartość większą albo mniejszą, zależnie od danych.

Wskazówka egzaminacyjna: przy takich zadaniach zawsze wskaż, która zmienna jest po lewej stronie znaku = – to ona zostanie nadpisana (zmieniona).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator != sprawdza, czy dwie wartości są różne. Tutaj porównuje tractor1.speed i tractor2.speed. Jeśli prędkości się różnią, warunek jest spełniony i wykonywane jest przypisanie w bloku if.
W przypisaniu kluczowa jest lewa strona znaku =. To ona zostanie nadpisana. W instrukcji tractor2.speed = tractor1.speed źródłem jest prawa strona (tractor1), a celem aktualizacji jest lewa strona (tractor2).
Bo gdy prędkości są różne, wykonywane jest ustawienie tractor2.speed na dokładnie tę samą wartość, którą ma tractor1.speed. Po wykonaniu (w przypadku różnicy) obie wartości stają się równe, więc następuje wyrównanie parametru.
Nie. Zmiana następuje tylko wtedy, gdy warunek wykryje różnicę prędkości. Jeżeli tractor1.speed i tractor2.speed są już równe, blok if się nie wykona i wartość tractor2.speed pozostanie bez zmian.
Najczęściej myli się kierunek działania: uczniowie zakładają, że "pierwszy obiekt w linijce" się zmienia. W rzeczywistości zmienia się to, co stoi po lewej stronie znaku =, a prawa strona jest tylko odczytywana.
To przykład prostej logiki wyrównywania parametrów między modułami, np. gdy jeden kontroler wysyła wartość zadaną, a drugi ma się do niej dostosować. W praktyce synchronizacja może dotyczyć prędkości jazdy, dawki, obrotów lub innych sygnałów w systemie mechatronicznym.
Nie. Przypisanie tractor2.speed = tractor1.speed ustawia wartość "na równo" z inną wartością. To może oznaczać wzrost, spadek albo brak zmiany (gdy są równe), zależnie od tego, jakie liczby znajdują się w zmiennych w danym momencie.
Gdy chcesz ograniczyć zbędne aktualizacje i np. wysyłanie danych po magistrali lub wykonywanie operacji w pętli sterowania. Warunek powoduje, że przypisanie następuje tylko przy rzeczywistej zmianie, co może zmniejszyć obciążenie sterownika i "szum" w systemie.
Najpierw powiedz: "Porównujemy prędkości". Potem: "Jeśli są różne, to ustawiamy prędkość drugiego obiektu na wartość pierwszego". Na końcu wskaż skutek: "Po wykonaniu, przy różnicy, wartości będą jednakowe". Taki opis jest zwięzły i poprawny.
W mechatronice rolniczej podobnie synchronizuje się m.in. obroty wałka, prędkość podajnika, nastawę ciśnienia, pozycję siłownika, szerokość roboczą czy dawkę aplikacji. Wzorzec jest ten sam: porównanie, a potem wyrównanie wartości do źródła.
info

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

Specjaliści zwracają uwagę: "Warunek sprawdza, czy prędkości są różne.Jeśli tak, wykonywane jest przypisanie, które ustawia tractor2.speed na wartość tractor1.speed."

Źródła:

  • MDN Web Docs: "if...else" (JavaScript) – opis instrukcji warunkowej, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else - accessed 2026-03-01
  • MDN Web Docs: "Assignment (=)" (JavaScript) – semantyka przypisania, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment - accessed 2026-03-01
  • MDN Web Docs: "Inequality (!=)" (JavaScript) – znaczenie operatora nierówności, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality - accessed 2026-03-01

Materiały:

  • Dokumentacja podstaw języka używanego w sterowniku (instrukcje warunkowe, operatory porównania, przypisanie)
  • Materiały o logice sterowania w układach mechatronicznych (sygnały zadane i regulacja)
  • Ćwiczenia z czytania krótkich fragmentów kodu i opisu skutku działania (trace execution)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego