KWALIFIKACJA INF3 - CZERWIEC 2021

PYTANIE NR 3.
Program zapisany w języku PHP ma za zadanie obliczyć średnią pozytywnych ocen ucznia od 2 do 6.
Warunek wybierania ocen w pętli liczącej średnią powinien zawierać wyrażenie logiczne
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby wybrać oceny z zakresu od 2 do 6 włącznie, trzeba jednocześnie spełnić dwa warunki: ocena nie może być mniejsza niż 2 oraz nie może być większa niż 6.
Dlatego poprawny zapis to koniunkcja:
$ocena >= 2 and $ocena <= 6
.

Pełne wyjaśnienie:

Warunek ma wybrać (przepuścić do średniej) tylko te oceny, które mieszczą się w przedziale od 2 do 6 włącznie. Taki zapis oznacza przedział domknięty, więc poprawny filtr musi uwzględniać wartości brzegowe 2 oraz 6.

Logicznie jest to sytuacja, w której muszą być spełnione dwa ograniczenia naraz:

  • ocena jest nie mniejsza niż 2, czyli
    $ocena >= 2
  • ocena jest nie większa niż 6, czyli
    $ocena <= 6

Skoro oba warunki mają być prawdziwe jednocześnie, łączymy je operatorem koniunkcji, czyli and: $ocena >= 2 and $ocena <= 6.

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

  • $ocena > 2 and $ocena < 6
    odrzuca oceny równe 2 i 6. To błąd typu "pominięcie wartości granicznych" – zamiast przedziału domkniętego powstaje przedział otwarty.
  • $ocena >= 2 or $ocena <= 6
    jest praktycznie zawsze prawdą dla większości liczb, bo wystarczy spełnić tylko jeden z warunków. Przykładowo ocena 1 spełnia $ocena <= 6, a ocena 10 spełnia $ocena >= 2, więc filtr nie działa.
  • $ocena > 2 or $ocena < 6
    ma ten sam problem jak wyżej: alternatywa nie sprawdza "pomiędzy", tylko dopuszcza niemal każdą wartość, a dodatkowo usuwa sens granic przez użycie > i <.

Wskazówka egzaminacyjna: przy zadaniach "wartość w zakresie" zawsze sprawdź kontrprzykłady (np. 1 i 10) oraz brzegi (2 i 6). To szybko ujawnia, czy potrzebujesz and czy or oraz czy mają być użyte znaki z równością.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Stosuje się dwa porównania połączone koniunkcją: liczba ma być jednocześnie nie mniejsza niż 2 i nie większa niż 6, np. $x >= 2 && $x <= 6 (albo z and). To jest klasyczne sprawdzanie przedziału domkniętego.
Bo liczba ma spełnić oba ograniczenia jednocześnie: dolne i górne. Przy or wystarczy spełnić tylko jedno z nich, więc do przedziału "wejdą" też wartości spoza zakresu (np. 1 jest <= 6, a 10 jest >= 2).
To oznacza, że wartości brzegowe też są poprawne: 2 oraz 6 mają zostać zaliczone do obliczeń. W kodzie odzwierciedla się to znakami >= i <=. Gdy użyjesz > i <, odrzucisz 2 i 6.
Najczęściej używa się &&, bo ma inne (zwykle bezpieczniejsze) pierwszeństwo operatorów w złożonych wyrażeniach. and też działa logicznie, ale w połączeniu z przypisaniem może dać inny wynik niż oczekiwany. Na egzaminie kluczowa jest poprawna logika warunku.
Przetestuj trzy przypadki: dolną granicę (2), górną granicę (6) oraz wartości spoza (np. 1 i 10). Jeśli 2 i 6 przechodzą, a 1 i 10 odpadają, to warunek jest dobry. To prosty nawyk, który zmniejsza liczbę pomyłek.
Najczęstsze to: użycie or zamiast and, pominięcie równości na brzegach (> i < zamiast >= i <=), oraz brak testów wartości skrajnych. W efekcie filtr przepuszcza złe dane lub odrzuca poprawne.
Nie, bo taki zapis jest spełniony dla prawie każdej liczby. Dla x=1 prawdziwe jest x <= 6, a dla x=10 prawdziwe jest x >= 2. To znaczy, że filtr nie ogranicza danych do 2–6, tylko praktycznie wszystko przepuszcza.
Stosuje się filtr w pętli: gdy ocena spełnia warunek zakresu, dodajesz ją do sumy i zwiększasz licznik. Na końcu dzielisz sumę przez licznik (z kontrolą dzielenia przez zero). Warunek zakresu jest kluczowy, by nie psuć średniej błędnymi danymi.
Gdy użytkownik wpisuje liczby w formularzu: oceny, wiek, ilość sztuk, rabat, punkty, ceny itp. Walidacja po stronie serwera w PHP chroni aplikację przed danymi spoza dopuszczalnych granic i przed błędami logiki biznesowej (np. ujemne wartości).
Do zakresu używa się zwykle pary operatorów: >= (dolna granica) i <= (górna granica) oraz operatora logicznego łączącego warunki. Jeśli zakres ma być bez brzegów, wtedy stosuje się > i <.
info

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

Źródła:

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

Materiały:

  • Dokumentacja PHP: operatory porównania i logiczne
  • Ćwiczenia z logiki zdań (and/or) i testowania warunków na przykładach granicznych
  • Zadania praktyczne: walidacja danych w formularzach PHP oraz filtrowanie tablic w pętli

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego