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 PHP

Fragment kodu w języku PHP ma następującą postać: Zakładając, że zmienne: a, b, c przechowują wartości numeryczne, wynikiem działania warunku będzie wypisanie liczby

if ($a > $b && $a > $c)   echo $a;
else if ($b > $c)   echo $b;
else   echo $c;
A. nieparzystej.
Źle. Kod nie bada reszty z dzielenia przez 2, więc nie ma nic wspólnego z nieparzystością.
B. parzystej.
Źle. Parzystość sprawdza się operatorem reszty z dzielenia, którego w kodzie nie ma.
C. największej.
Dobrze. Najpierw sprawdza, czy a jest większe od b i c, a jeśli nie, wypisuje większą z b i c.
D. najmniejszej.
Źle. Kod porównuje znakiem większości, więc w każdej gałęzi wybiera wartość większą, nie mniejszą.

Pytanie z egzaminu CKE, wrzesień 2015 (arkusz E.14-X-15.08).

Kod wypisuje największą z trzech liczb. Pierwszy warunek $a > $b && $a > $c sprawdza, czy a jest większe od obu pozostałych, i wtedy wypisuje a. Jeśli nie, wiadomo, że to nie a jest największe, więc wystarczy porównać b z c: większa z nich trafia na ekran.

Operator && to logiczne i: cały warunek jest prawdziwy tylko wtedy, gdy prawdziwe są obie części. Ten sam algorytm wyszukiwania maksimum spotkasz w każdym języku. W PHP można go zastąpić gotową funkcją max($a, $b, $c), a najmniejszą liczbę zwraca min(). Na egzaminie warto prześledzić kod na przykładowych liczbach, np. 3, 7 i 5.

Wybór najmniejszej liczby bierze się zwykle z pomylenia kierunku znaku. W kodzie są wyłącznie porównania >, więc każda gałąź wybiera wartość większą, a nie mniejszą. Najmniejszą wypisywałby ten sam kod ze znakami <.

Parzystość i nieparzystość w ogóle nie są tu badane. Sprawdza się je resztą z dzielenia, np. $a % 2 == 0, a tego operatora w kodzie nie ma. Wypisana liczba może być parzysta albo nieparzysta, zależnie od danych.

Prześledź przykład: dla a = 3, b = 7, c = 5 pierwszy warunek jest fałszywy, bo 3 nie jest większe od 7. Drugi warunek $b > $c jest prawdziwy, więc kod wypisze 7, czyli największą liczbę.

Przy równych wartościach, np. a = b = 7, kod też wypisze 7, bo porównanie > jest ścisłe i sterowanie przejdzie do dalszych gałęzi.

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.