Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

Słowa kluczowe: Funkcja rand() w PHP Funkcje w PHP Pętla while w PHP

Przedstawiony kod źródłowy ma za zadanie wyświetlenie

$liczba = 1;
while ($liczba != 0)
{
   $liczba = rand(0, 100);
   echo $liczba;
}
A. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
Źle. Skrypt nie wczytuje danych z klawiatury, tylko losuje liczby funkcją rand().
B. wylosowanych liczb z zakresu od 1 do 99
Źle. rand(0, 100) losuje także 0 i 100, a 0 kończy pętlę.
C. losowych liczb od 0 do 100, aż do wylosowania wartości 0
Dobrze. Pętla losuje i wyświetla liczby od 0 do 100, aż wypadnie 0.
D. ciągu liczb od 1 do 100
Źle. Kolejne liczby dałaby pętla z licznikiem; tu każda wartość jest losowana.

Pytanie z egzaminu CKE, czerwiec 2018 (arkusz E.14-X-18.06).

Zmienna $liczba zaczyna od 1 tylko po to, żeby warunek $liczba != 0 był prawdziwy przy pierwszym sprawdzeniu i pętla w ogóle wystartowała. W każdym obiegu rand(0, 100) losuje liczbę całkowitą z przedziału od 0 do 100 włącznie, a echo ją wyświetla. Gdy wypadnie 0, zostaje ono jeszcze wyświetlone, po czym warunek staje się fałszywy i pętla się kończy.

To typowy wzorzec pętli z warunkiem sprawdzanym na początku, w której liczby obiegów nie da się przewidzieć. Ten sam efekt bez sztucznej wartości startowej daje do { ... } while ($liczba != 0);, bo w niej warunek sprawdzany jest dopiero po pierwszym obiegu.

Wybór złej odpowiedzi zaczyna się zwykle od pominięcia jednej z dwóch funkcji. rand(0, 100) obejmuje oba końce przedziału, więc losowane są liczby od 0 do 100, a nie od 1 do 99. Zero musi być możliwe do wylosowania, bo tylko ono kończy pętlę.

Kolejne liczby od 1 do 100 dałaby pętla z licznikiem, na przykład for ($i = 1; $i <= 100; $i++). Tu nie ma żadnego zwiększania wartości, jest losowanie, więc wypisywane liczby nie tworzą ciągu.

Skrypt PHP wykonuje serwer i nie czyta danych z klawiatury użytkownika strony. Dane od użytkownika trafiają do niego z formularza, przez $_POST lub $_GET. W tym kodzie wszystkie wartości pochodzą z generatora liczb losowych, a pętla działa do wylosowania 0.

Zawsze warto sprawdzić, skąd w pętli pochodzą wartości i co kończy jej działanie.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.