KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 29.
W wyniku działania pętli zapisanej w języku PHP zostanie wypisany ciąg liczb:
Ilustracja przedstawia fragment kodu napisanego w języku PHP, który jest związany z egzaminem zawodowym dla technika
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawny wynik odpowiada pętli, w której licznik zaczyna się od 10 i jest zwiększany o 5 w każdej iteracji, a warunek zakończenia nie dopuszcza wypisania wartości 50. Dlatego pojawiają się liczby 10, 15, 20, …, 45. Odpowiedzi z 0 błędnie zakładają inny start, a z 50 – inny warunek graniczny.

Pełne wyjaśnienie:

W zadaniach tego typu analizuje się pętlę w trzech krokach: inicjalizacja (od jakiej wartości startuje licznik), krok (o ile licznik rośnie/maleje w iteracji) oraz warunek zakończenia (kiedy pętla przestaje się wykonywać). Wynik w postaci 10 15 20 25 30 35 40 45 jest charakterystyczny dla sytuacji, gdy:

  • pierwsza wypisywana wartość to 10 (czyli start nie jest równy 0),
  • kolejne wartości rosną o 5 (stały przyrost w każdej iteracji),
  • pętla kończy się przed 50 (np. warunek w stylu "mniej niż 50"), więc 50 nie zostaje wypisane.

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

  • 10 15 20 25 30 35 40 45 50 – ten wynik pasowałby do warunku, który pozwala wykonać iterację także dla wartości 50 (np. granica włączona). Jeśli w pętli granica jest wyłączona, 50 nie powinno się pojawić.
  • 0 5 10 15 20 25 30 35 40 45 – ta odpowiedź zakłada inny start licznika (0) i wypisywanie od zera, co nie zgadza się z wynikiem rozpoczynającym się od 10.
  • 0 5 10 15 20 25 30 35 40 45 50 – łączy dwa błędy naraz: start od 0 oraz dopuszczenie wartości 50.

Wskazówka egzaminacyjna: zwracaj szczególną uwagę na operator relacji w warunku (np. różnica między "mniej niż" a "mniej lub równe") oraz na to, czy wypisanie następuje przed czy po zmianie licznika w iteracji. To najczęstsze źródło pomyłek typu off-by-one.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Sprawdź operator w warunku zakończenia: jeśli jest "mniej niż" (np. <), to wartość graniczna nie wejdzie do pętli; jeśli jest "mniej lub równe" (np. <=), to może zostać wypisana. Zwróć też uwagę, czy wypisanie jest przed inkrementacją.
To typowa pomyłka o 1 iterację: pętla wykona się raz za dużo albo raz za mało. Wynika zwykle z mylenia < z <= albo z tego, że zmiana licznika następuje przed/po wypisaniu.
Jeśli licznik rośnie co 5 i warunek zakończenia nie dopuszcza osiągnięcia 50, ostatnią wypisaną liczbą będzie 45. 50 pojawiłoby się tylko wtedy, gdy warunek pozwala na iterację z wartością 50 (granica włączona).
Zawsze analizuj: start licznika, krok (inkrementacja/dekrementacja) oraz warunek zakończenia. Dodatkowo ustal, w którym miejscu jest echo/print względem zmiany licznika.
Najpierw ustal pierwszy i ostatni element, który spełnia warunek. Potem użyj reguły dla ciągu arytmetycznego: liczba kroków to różnica podzielona przez 5, a liczba elementów to zwykle "kroki + 1". Uważaj na to, czy granica jest włączona.
Logika jest równoważna (warunek steruje iteracją), ale w for inicjalizacja, warunek i krok są w nagłówku, a w while zwykle rozdzielone w kodzie. Na egzaminie liczy się kolejność: sprawdzenie warunku → wykonanie → zmiana licznika.
Najczęściej: mylenie < z <=, nieuwzględnianie kroku (np. +5), zakładanie startu od 0 oraz przeoczenie, czy wypisanie jest przed czy po inkrementacji. Pomaga rozpisanie 2–3 pierwszych iteracji ręcznie.
Zawsze, bo w do...while ciało pętli wykonuje się przed sprawdzeniem warunku. Dlatego nawet przy warunku fałszywym na starcie pojawi się jeden wydruk. To ważne, gdy porównujesz wyniki z pętlą while.
Zwykle pojawi się jeszcze jedna wartość na końcu, o ile licznik dokładnie osiąga granicę. Przykładowo przy kroku 5 i granicy 50, operator <= może spowodować dopisanie 50 do wyniku.
Ćwicz "trace" kodu: zapisuj w tabelce kolejne wartości licznika i to, co jest wypisywane. Porównuj warianty z for, while i do...while, a szczególnie zadania z granicą (np. 50) i krokiem (np. 5), bo tam najłatwiej o off-by-one.
info

Statystycznie 64% uczniów zna prawidłową odpowiedź. średnie

Specjaliści zwracają uwagę: "Poprawny wynik odpowiada pętli, w której licznik zaczyna się od 10 i jest zwiększany o 5 w każdej iteracji, a warunek zakończenia nie dopuszcza wypisania wartości 50."

Źródła:

  • PHP Manual – for: https://www.php.net/manual/en/control-structures.for.php (dostęp 2026-02-18)
  • PHP Manual – while: https://www.php.net/manual/en/control-structures.while.php (dostęp 2026-02-18)
  • PHP Manual – do...while: https://www.php.net/manual/en/control-structures.do.while.php (dostęp 2026-02-18)

Materiały:

  • Dokumentacja PHP: pętle i instrukcje sterujące
  • Ćwiczenia z przewidywania wyjścia programu (trace) dla pętli
  • Zadania o błędach typu off-by-one i porównanie < vs <=

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego