KWALIFIKACJA INF3 - STYCZEŃ 2021

PYTANIE NR 8.
Zapisaną językiem PHP funkcję o nazwie policz wywołano z argumentem $Z = 1. Jaki wynik zostanie zwrócony?
Ilustracja przedstawia fragment kodu napisanego w języku PHP.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wynik "13" otrzymuje się po prześledzeniu wykonania funkcji policz dla argumentu $Z = 1: kolejne instrukcje modyfikują wartość zmiennych, a ostatecznie wykonywany jest return z wartością końcową. Aby rozwiązać takie zadanie, trzeba analizować kod krok po kroku, nie pomijając żadnej iteracji ani gałęzi warunku.

Pełne wyjaśnienie:

W tego typu zadaniach kluczowe jest poprawne ręczne prześledzenie działania funkcji PHP dla podanego argumentu wejściowego. Dla wywołania z $Z = 1 należy czytać kod od początku funkcji, notując po kolei, jak zmieniają się wartości zmiennych (najlepiej w formie krótkiej tabeli: "linia/operacja → nowa wartość"). Ostatecznie funkcja wykonuje instrukcję return, która natychmiast kończy jej działanie i zwraca wynik do miejsca wywołania. W tym zadaniu wartość zwracana to 13.

Jak rozwiązywać takie pytania na egzaminie:

  • Zidentyfikuj wejście: tutaj $Z startuje od 1.
  • Sprawdź inicjalizacje wewnątrz funkcji (np. zmienne pomocnicze, liczniki).
  • Rozpoznaj konstrukcje sterujące (pętle i warunki) i przejdź je krok po kroku, pilnując, kiedy warunek przestaje być spełniony.
  • Zwróć uwagę na return: po jego wykonaniu nie analizuje się już dalszych instrukcji.

Dlaczego pozostałe odpowiedzi są błędne w tego typu zadaniach (typowe źródła pomyłek):

  • Wartość "7" często pojawia się, gdy ktoś pominie część iteracji albo błędnie przyjmie skrócony przebieg pętli.
  • Wartość "4" bywa wynikiem zatrzymania analizy zbyt wcześnie (np. po pierwszej zmianie zmiennej lub po pierwszym przejściu warunku).
  • Wartość "1" zwykle wynika z niezauważenia modyfikacji argumentu (traktowanie $Z jako stałego lub błędne założenie, że funkcja zwraca wejście).

Wskazówka egzaminacyjna: jeżeli w odpowiedziach są liczby blisko siebie, zawsze wykonaj pełny "trace" do końca funkcji. Pojedyncze przeoczenie (np. jedna iteracja pętli) potrafi przesunąć wynik o kilka jednostek.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Najlepiej stosować "trace": wypisz wartości zmiennych po każdej instrukcji. Przejdź kolejno przez warunki i iteracje pętli, aż do return. Po return funkcja się kończy, więc nie analizujesz dalszego kodu.
return zwraca wartość z funkcji do miejsca wywołania i natychmiast przerywa wykonywanie funkcji. Jeśli w funkcji są instrukcje po return, nie zostaną wykonane. To częste źródło błędów w zadaniach.
Pętla wymaga policzenia dokładnej liczby iteracji oraz zmian zmiennych w każdej iteracji. Typowy błąd to pominięcie jednej iteracji albo złe sprawdzenie warunku zakończenia (np. < zamiast <=), co przesuwa wynik końcowy.
Najczęściej myli się operator porównania z przypisaniem, pomija się klamry albo błędnie zakłada, że wykona się kilka gałęzi naraz. Na egzaminie zawsze sprawdzaj, która gałąź jest spełniona dla bieżącej wartości zmiennych.
Tak. Prosta tabela "krok → wartość zmiennej" ogranicza pomyłki i pomaga kontrolować przebieg pętli. To szczególnie przydatne, gdy funkcja używa zmiennych pomocniczych (licznik, suma) lub wykonuje kilka operacji po kolei.
Wynik zwracany to to, co jest po return. Wypisanie (np. echo/print) nie jest zwróceniem wartości, tylko wysłaniem tekstu do wyjścia. W zadaniach o "jaki wynik zostanie zwrócony" liczy się return.
Domyślnie argument jest przekazywany przez wartość, ale wewnątrz funkcji można przypisać nową wartość do zmiennej parametru (np. $Z = $Z + 1). Wtedy dalsze obliczenia używają już zmienionej wartości parametru.
Najczęściej: analiza krótkiego kodu (funkcja, pętla, if), przewidzenie wyniku, rozpoznanie błędu logicznego, dopasowanie wyniku do argumentu, czasem proste operacje na łańcuchach lub tablicach. Kluczowa jest dokładność śledzenia.
Bo to wartość wejściowa ($Z = 1) i działa "efekt zakotwiczenia": mózg trzyma się pierwszej liczby, którą zobaczył. Jeśli jednak w funkcji są operacje na $Z lub zmiennych zależnych, wynik prawie nigdy nie pozostaje równy wejściu.
Ćwicz krótkie fragmenty kodu: pętle, if, funkcje z return. Po każdej linijce zapisuj nowe wartości zmiennych. Zwracaj uwagę na warunek zakończenia pętli i na to, że return kończy funkcję. To daje najszybszy wzrost skuteczności.
info

Około 46% zdających odpowiada poprawnie na to pytanie. trudne

Eksperci podkreślają: "Wynik "13" otrzymuje się po prześledzeniu wykonania funkcji policz dla argumentu $Z = 1: kolejne instrukcje modyfikują wartość zmiennych, a ostatecznie wykonywany jest return z wartością końcową."

Źródła:

  • PHP Manual: Functions (Defining and calling functions) https://www.php.net/manual/en/functions.user-defined.php - dostęp 2026-02-28
  • PHP Manual: return https://www.php.net/manual/en/function.return.php - dostęp 2026-02-28
  • PHP Manual: Control Structures (if / loops) https://www.php.net/manual/en/language.control-structures.php - dostęp 2026-02-28

Materiały:

  • Dokumentacja PHP: funkcje i return (php.net)
  • Kurs/rozdział o instrukcjach warunkowych i pętlach w PHP
  • Ćwiczenia z ręcznego śledzenia kodu (trace table) dla krótkich funkcji

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego