KWALIFIKACJA INF3 - CZERWIEC 2022 (test 2)

PYTANIE NR 25.
W języku PHP należy zapisać warunek, który będzie spełniony, gdy zmienna $a będzie dowolną liczbą całkowitą mniejszą od -10 lub gdy zmienna $b będzie dowolną liczbą z przedziału (25, 75). Wyrażenie logiczne użyte w tym warunku ma postać
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek ma być spełniony, gdy zachodzi co najmniej jeden z dwóch przypadków:
1) $a jest mniejsze niż -10,
2) $b leży w przedziale otwartym (25, 75), czyli jednocześnie $b > 25 oraz $b < 75. Dlatego poprawne jest połączenie "or" między przypadkami i "and" wewnątrz przedziału.

Pełne wyjaśnienie:

Treść wymaga zbudowania wyrażenia logicznego spełnionego w dwóch sytuacjach: gdy $a < -10 albo gdy $b należy do przedziału otwartego (25, 75). Przedział otwarty oznacza, że wartości brzegowe nie są dozwolone, więc trzeba zapisać to jako dwa porównania wykonane jednocześnie: $b > 25 oraz $b < 75.

Z tego wynika naturalna konstrukcja:

  • pierwszy człon: ($a < -10)
  • drugi człon (zakres dla b): (($b > 25) and ($b < 75))
  • połączenie przypadków: pierwszy or drugi

Dlatego poprawny zapis to: ($a < -10) or (($b > 25) and ($b < 75)).

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

  • Wariant z "(($b > 25) or ($b < 75))" opisuje warunek prawie zawsze prawdziwy: dla większości liczb rzeczywistych zachodzi co najmniej jedna z nierówności ($b > 25 lub $b < 75). To nie jest sprawdzenie "bycia w przedziale", tylko zbyt szeroka alternatywa.
  • Wariant "($a < -10) and ( ... )" wymaga spełnienia obu części jednocześnie, czyli jednoczesnego spełnienia warunku dla $a oraz warunku zakresu dla $b. To przeczy treści "lub", która dopuszcza spełnienie tylko jednego z przypadków.
  • Wariant "($a < -10) and (($b > 25) and ($b < 75))" jest dodatkowo zaostrzony: wymaga i $a < -10, i $b w (25, 75). To też nie odpowiada wymaganiu alternatywy.

Wskazówka egzaminacyjna: gdy widzisz zapis "x jest w (m, n)", niemal zawsze oznacza to dwie nierówności połączone AND. Natomiast słowo "lub" na poziomie zdań z reguły przekłada się na OR pomiędzy całymi blokami warunków, najlepiej rozdzielonymi nawiasami.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Przedział otwarty (25, 75) oznacza, że wartość musi być większa od 25 i jednocześnie mniejsza od 75. W PHP zapisujesz to jako dwa porównania połączone koniunkcją, np. $b > 25 oraz $b < 75.
Najprościej jako koniunkcję dwóch nierówności: ($b > 25) and ($b < 75) (albo z operatorami &&). To wymusza spełnienie obu ograniczeń naraz, czyli faktyczne "bycie w przedziale".
Bo zakres wymaga spełnienia dwóch warunków jednocześnie: dolnej i górnej granicy. OR oznacza "wystarczy jeden warunek", co dla nierówności typu $b > 25 lub $b < 75 dawałoby wynik prawdziwy dla większości liczb i nie opisywałoby przedziału.
Obie formy działają, ale && i || są często zalecane w warunkach, bo mają inne priorytety i bywają mniej mylące w złożonych wyrażeniach. Jeśli używasz and/or, stosuj nawiasy, aby jednoznacznie określić kolejność.
Spełniają go wszystkie wartości większe od 25 i mniejsze od 75, np. 25.1, 30, 74.999. Nie spełniają go wartości równe 25 lub 75 ani mniejsze/równe 25, ani większe/równe 75. To jest dokładnie sens przedziału otwartego.
W kontekście sprawdzania przedziału zwykle nie. Taki zapis jest prawdziwy dla prawie każdej liczby (bo liczba jest albo większa od 25, albo mniejsza od 75). To typowy błąd: OR nie zawęża do zakresu, tylko go nadmiernie rozszerza.
Gdy treść mówi "warunek spełniony, gdy X lub Y", w kodzie tworzysz dwa bloki logiczne i łączysz je operatorem alternatywy, np. (X) || (Y). Każdy blok może być złożony (np. zakres liczbowy z AND).
Nie zawsze są "konieczne" składniowo, ale są bardzo zalecane. Nawiasy zwiększają czytelność i zmniejszają ryzyko błędu związanego z priorytetem operatorów. Na egzaminie pomagają też jednoznacznie pokazać, jak grupujesz warunki.
Podstaw kilka wartości dla $a i $b i sprawdź wynik if. Przykładowo: ustaw $a na -11 i dowolne $b, aby sprawdzić część z $a, a potem ustaw $a na -10 i testuj różne $b (np. 26, 75, 25) dla części zakresowej. To szybko ujawnia błędy AND/OR.
Najczęstsze pomyłki to: użycie OR zamiast AND, pominięcie jednej granicy, odwrócenie znaków nierówności oraz nieuwzględnienie, czy przedział jest otwarty czy domknięty. Warto zapamiętać schemat: "w (m,n)" → x > m i x < n.
info

Około 58% zdających odpowiada poprawnie na to pytanie. średnie

Według specjalistów z branży: "Warunek ma być spełniony, gdy zachodzi co najmniej jeden z dwóch przypadków:1) $a jest mniejsze niż -10, 2) $b leży w przedziale otwartym (25, 75), czyli jednocześnie $b &gt; 25 oraz $b &lt; 75."

Źródła:

  • PHP Manual: Logical Operators (and, or, xor, &&, ||), https://www.php.net/manual/en/language.operators.logical.php - accessed 2026-03-02
  • PHP Manual: Comparison Operators, https://www.php.net/manual/en/language.operators.comparison.php - accessed 2026-03-02
  • PHP Manual: Operator Precedence, https://www.php.net/manual/en/language.operators.precedence.php - accessed 2026-03-02

Materiały:

  • Dokumentacja PHP: operatory porównania i logiczne
  • Ćwiczenia z logiki matematycznej (AND/OR, prawa de Morgana)
  • Zadania praktyczne z walidacji danych w PHP (instrukcje if/elseif)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego