KWALIFIKACJA INF3 - STYCZEŃ 2017

PYTANIE NR 37.
Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy

Działaniem przedstawionego kodu PHP będzie wypełnienie tablicy

Ilustracja przedstawia fragment kodu PHP, który jest związany z kwalifikacją zawodową technika programisty.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Poprawna odpowiedź opisuje typowy schemat: skrypt wypełnia tablicę określoną liczbą wartości losowych (10 elementów), a potem przechodzi po tablicy i wypisuje tylko te elementy, które spełniają warunek bycia liczbą ujemną.
Pozostałe opcje zmieniają liczbę elementów, zakres lub znak filtrowanych wartości.

Pełne wyjaśnienie:

W tego typu zadaniach kluczowe jest rozdzielenie dwóch etapów działania kodu: (1) jak powstaje zawartość tablicy oraz (2) co jest wypisywane na wyjściu.

Jeżeli kod używa generatora liczb losowych i pętli wykonującej się określoną liczbę razy, to tablica jest wypełniana wartościami losowymi w liczbie wynikającej z warunku pętli (np. 10 iteracji oznacza 10 elementów). Następnie zwykle pojawia się druga pętla (lub ta sama pętla z dodatkowym warunkiem) z instrukcją warunkową, która decyduje, co wypisać. Gdy warunek sprawdza, czy element jest mniejszy od zera, na wyjściu pojawią się wyłącznie wartości ujemne.

Odpowiedź "10 losowymi wartościami, a następnie wypisanie wartości ujemnych." jest zgodna z takim przebiegiem: losowanie daje różne liczby, a filtr w postaci warunku wybiera tylko ujemne.

Dlaczego pozostałe odpowiedzi nie pasują do typowego kodu z tego zadania?

  • Wariant z "kolejnymi liczbami od -100 do 100" sugeruje generowanie sekwencji rosnącej (np. inkrementację), a nie losowanie. To inny mechanizm wypełniania tablicy.
  • Wariant z "kolejnymi liczbami od 0 do 9 i wypisanie ich" pomija filtrowanie (warunek na ujemne) i zakłada dodatni, prosty zakres, typowy dla demonstracji indeksów, a nie dla selekcji liczb ujemnych.
  • Wariant z "100 losowymi wartościami, a następnie wypisanie wartości dodatnich" zmienia zarówno liczbę elementów (100 zamiast 10), jak i kryterium wypisywania (dodatnie zamiast ujemnych), więc wymagałby innego warunku w kodzie.

Wskazówka egzaminacyjna: zawsze najpierw policz iteracje pętli wypełniającej tablicę (ile elementów realnie powstaje), a dopiero potem sprawdź warunek wypisywania (np. mniejsze od zera vs większe od zera). To ogranicza pomyłki wynikające z intuicji.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To utworzenie elementów tablicy, gdzie każda wartość jest wynikiem funkcji losującej (np. random_int). Zamiast sekwencji rosnącej otrzymujesz liczby zależne od losowania, więc przy każdym uruchomieniu skrypt może dać inny zestaw danych.
Sprawdź pętlę, która dopisuje elementy do tablicy: zakres licznika i warunek zakończenia. Liczba iteracji pętli zwykle równa się liczbie dodanych elementów. Uważaj na warunki typu < vs <=, bo zmieniają wynik o 1.
Dzieje się tak, gdy w pętli wypisującej jest warunek filtrujący, np. sprawdzenie, czy element jest mniejszy od zera. Wtedy wszystkie wartości dodatnie i zero są pomijane, a na ekran trafiają wyłącznie liczby spełniające warunek.
Najczęstsze to: złe policzenie iteracji (mylenie < z <=), pominięcie inicjalizacji licznika, nieuwzględnienie kroku pętli oraz mylenie pętli wypełniającej tablicę z pętlą wypisującą wyniki. Pomaga rozpisanie etapów działania.
random_int() jest zalecane do bezpieczniejszego i bardziej przewidywalnego (w sensie jakości) losowania w nowoczesnych wersjach PHP. rand() bywa spotykane w starszych przykładach. Na egzaminie ważniejsze jest rozpoznanie, że użyto losowania, a nie generowania kolejnych liczb.
foreach stosuje się, gdy chcesz przejść po wszystkich elementach tablicy bez ręcznego zarządzania indeksem. To częsty wzorzec: najpierw wypełnienie tablicy, potem foreach z warunkiem (np. wypisz tylko ujemne). Jest czytelny i ogranicza błędy indeksowania.
Najprościej warunkiem porównania: liczba < 0. Jeśli warunek jest spełniony, wykonujesz wypisywanie (np. echo). Uważaj, by nie pomylić znaku i nie użyć > 0, bo wtedy wypiszesz dodatnie, a nie ujemne.
W typowej tablicy indeksowanej numerycznie tak, ale zależy od sposobu dodawania elementów. Jeśli używasz zapisu $tab[] = ..., PHP zwykle nada kolejne indeksy od 0. Jeśli indeksy ustawiasz ręcznie, zakres może wyglądać inaczej, mimo że elementów jest 10.
Losowanie rozpoznasz po funkcji zwracającej wartość pseudolosową (np. random_int) i braku zależności od poprzedniego elementu. Generowanie kolejnych liczb zwykle ma postać i++ lub dopisywania wartości zależnej od licznika pętli (np. $tab[] = $i).
Ćwicz czytanie krótkich skryptów: wypisz krok po kroku, co robi każda pętla i warunek. Trenuj typowe schematy: wypełnianie tablicy, filtrowanie, zliczanie spełniających warunek oraz wypisywanie. Pomaga też samodzielne uruchamianie kodu i porównywanie z przewidywaniami.
info

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

Źródła:

  • PHP Manual: Arrays — https://www.php.net/manual/en/language.types.array.php (dostęp: 2026-03-01)
  • PHP Manual: Control Structures (for/foreach/if) — https://www.php.net/manual/en/language.control-structures.php (dostęp: 2026-03-01)
  • PHP Manual: random_int — https://www.php.net/manual/en/function.random-int.php (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja PHP: typ array i operacje na tablicach
  • Dokumentacja PHP: pętle (for/foreach/while) i instrukcje warunkowe
  • Dokumentacja PHP: funkcje losujące (rand/random_int)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego