KWALIFIKACJA INF3 - STYCZEŃ 2023

PYTANIE NR 3.
Skrypt JavaScript obsługujący płace pracowników ma za zadanie wygenerować raport dla pracowników, którzy są zatrudnieni na umowę o pracę oraz zarabiają w przedziale obustronnie domkniętym od 4000 do
4500 zł. Wskaż warunek wygenerowania raportu.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny warunek musi spełniać oba kryteria jednocześnie:
1) umowa równa się 'praca',
2) pensja jest w przedziale domkniętym 4000–4500, czyli pensja >= 4000 oraz pensja <= 4500.
Dlatego używa się && między warunkami oraz w sprawdzeniu zakresu.

Pełne wyjaśnienie:

Warunek wygenerowania raportu opisuje sytuację, w której pracownik ma spełnić dwa wymagania jednocześnie:

  • jest zatrudniony na umowę o pracę (np. zapis w polu umowa jako 'praca'),
  • jego wynagrodzenie mieści się w zakresie od 4000 do 4500 zł włącznie.

Kluczowe są tu dwa elementy logiki:

  1. Koniunkcja (&&) – używamy jej, gdy oba warunki muszą być prawdziwe. Raport ma dotyczyć tylko osób, które jednocześnie mają właściwą umowę i jednocześnie spełniają kryterium płacowe.
  2. Przedział obustronnie domknięty – zapis "od 4000 do 4500 włącznie" oznacza, że dopuszczalne są wartości równe granicom. W kodzie przekłada się to na dwa porównania: pensja >= 4000 oraz pensja <= 4500. Te dwa porównania również muszą być spełnione naraz, więc łączymy je przez &&.

Dlatego poprawna postać warunku ma strukturę:

umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)

Pozostałe propozycje są błędne, bo stosują alternatywę (||) tam, gdzie potrzebna jest koniunkcja, co "rozluźnia" kryteria:

  • Warianty z pensja >= 4000 || pensja <= 4500 są praktycznie zawsze prawdziwe (dla większości liczb co najmniej jedna z tych nierówności zachodzi), więc nie filtrują poprawnie zakresu.
  • Warianty z umowa == 'praca' || (...zakres...) przepuszczą osoby z inną umową, jeśli tylko spełnią kryterium płacowe, albo osoby z umową 'praca' niezależnie od pensji.

Na egzaminie warto zapamiętać regułę: "w przedziale domkniętym" = dwa warunki połączone &&, a jeśli wymagania mają być spełnione łącznie, także między kryteriami stosuje się &&.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza, że akceptujesz wartości włącznie z granicami. W praktyce zapisujesz to jako dwa porównania naraz: pensja >= 4000 oraz pensja <= 4500, połączone operatorem &&.
Użyj koniunkcji, bo oba kryteria muszą być prawdziwe jednocześnie: if (umowa == 'praca' && pensja >= 4000 && pensja <= 4500). Dla czytelności często dodaje się nawiasy wokół sprawdzenia zakresu.
Bo pensja >= 4000 || pensja <= 4500 jest prawdziwe dla większości liczb (zwykle spełniona jest przynajmniej jedna nierówność). Zakres wymaga spełnienia obu granic, więc potrzebujesz &&.
Nie, bo dopuszcza osoby, które nie mają umowy o pracę, jeśli tylko mieszczą się w widełkach płacowych. W zadaniu oba kryteria mają być spełnione łącznie, więc pomiędzy nimi musi być operator &&.
Najczęściej myli się && z ||, albo zapisuje zakres jako "jedno z dwóch" zamiast "oba naraz". Częsty błąd to też brak nawiasów i nieczytelny warunek, przez co łatwo przeoczyć, co jest łączone.
W JavaScript && ma zwykle wyższy priorytet niż ||, ale w zadaniach egzaminacyjnych i tak warto stosować nawiasy, aby jednoznacznie wskazać kolejność. To ogranicza błędy i ułatwia ocenę poprawności warunku.
Koniunkcja to połączenie warunków operatorem && (logiczne "i"). Całe wyrażenie jest prawdziwe tylko wtedy, gdy każdy z warunków składowych jest prawdziwy. To typowy zapis, gdy filtrujesz dane po wielu kryteriach.
Podstaw przykładowe wartości i sprawdź granice: 3999 (fałsz), 4000 (prawda), 4500 (prawda), 4501 (fałsz) przy umowie 'praca'. Jeśli dla 'zlecenie' zawsze wychodzi fałsz, to znaczy, że warunek prawidłowo wymaga umowy o pracę.
W praktyce lepsze jest ===, bo unika niejawnych konwersji typów. Jednak w zadaniach szkolnych czasem pojawia się ==. Kluczowe jest tu poprawne użycie operatorów logicznych i zakresu, a nie sam wybór ==/===.
Możesz wydzielić warunki do zmiennych: const czyPraca = umowa == 'praca'; oraz const wZakresie = pensja >= 4000 && pensja <= 4500;, a potem użyć if (czyPraca && wZakresie). To ułatwia debugowanie.
info

Statystycznie 51% uczniów zna prawidłową odpowiedź. trudne

Źródła:

  • MDN Web Docs: Logical AND (&&) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND (dostęp: 2026-03-02)
  • MDN Web Docs: Logical OR (||) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR (dostęp: 2026-03-02)
  • MDN Web Docs: Greater than or equal (>=) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than_or_equal (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja JavaScript: operatory porównania i logiczne (MDN)
  • Ćwiczenia z logiki zdań (koniunkcja/alternatywa) w kontekście programowania
  • Zadania praktyczne: filtrowanie tablic obiektów metodą filter()

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego