Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 11 maja 2026 14:38
  • Data zakończenia: 11 maja 2026 14:58

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

W języku JavaScript, funkcja Math.pow() wykorzystuje się do obliczenia

A. potęgi liczby
B. pierwiastka kwadratowego liczby
C. wartości bezwzględnej liczby
D. wartości przybliżonej liczby
Wybierając odpowiedzi, które nie są zgodne z funkcją Math.pow(), można popełnić pewne typowe błędy myślowe. Odpowiedź dotycząca wartości bezwzględnej liczby nie ma związku z działania funkcji Math.pow(). Funkcja ta nie jest zaprojektowana do obliczania wartości bezwzględnej, co jest zadaniem funkcji Math.abs(). Wartość bezwzględna to odległość liczby od zera na osi liczbowej, a obliczenia potęgowania nie mają tutaj zastosowania. Z kolei pierwiastek kwadratowy liczy się zupełnie inaczej. Aby obliczyć pierwiastek kwadratowy z liczby, należy użyć funkcji Math.sqrt(), która zwraca liczbę, która podniesiona do kwadratu daje oryginalną liczbę. Zastosowanie Math.pow() do wyznaczenia pierwiastka kwadratowego, na przykład Math.pow(9, 0.5), daje prawidłowy wynik, ale jest mniej klarowne i mniej wydajne niż użycie dedykowanej funkcji. Ostatnia opcja, dotycząca wartości przybliżonej liczby, również jest błędna, ponieważ Math.pow() nie służy do przybliżania wartości, a jedynie do podnoszenia jej do odpowiedniej potęgi. Ważne jest, aby zrozumieć, jakie funkcje są dostępne w JavaScript i jak mają być stosowane w odpowiednich kontekstach, aby uniknąć nieporozumień oraz poprawić czytelność i efektywność kodu w projektach programistycznych.

Pytanie 2

Określ rezultat wykonania skryptu stworzonego w języku PHP

Ilustracja do pytania
A. B
B. A
C. D
D. C
Odpowiedzi B, C i D są niepoprawne z kilku powodów związanych z błędnym zrozumieniem działania funkcji asort() w PHP. Po pierwsze, funkcja ta sortuje tablicę według wartości w porządku rosnącym, ale co ważne, zachowuje oryginalne klucze. Odpowiedź B ukazuje tablicę z kluczami zresetowanymi do wartości całkowitych, co wskazuje na zastosowanie innej funkcji sortującej jak sort() zamiast asort(). Taki wynik wskazuje brak zrozumienia kluczowej cechy asort(), która jest istotna w pracy z tablicami asocjacyjnymi, gdzie zachowanie kluczy jest konieczne do prawidłowego odwzorowania danych. W odpowiedzi C klucze są także zresetowane, a wartości są w niewłaściwej kolejności, co mogłoby sugerować użycie sort() na tablicy o zmienionym indeksowaniu. Odpowiedź D pokazuje tablicę posortowaną poprawnie, ale w niewłaściwej kolejności, co sugeruje błędne użycie funkcji sortującej, być może zakładające odwrotną kolejność lub błędne przypisanie wartości. Kluczowe jest zrozumienie, jak różne funkcje sortujące w PHP wpływają na klucze i wartości tablic, aby unikać takich błędów i poprawnie wykorzystywać funkcje jak asort() do manipulacji danymi w kontekście ich praktycznego zastosowania, jak konfigurowanie ustawień czy analiza danych, gdzie zachowanie oryginalnych kluczy jest kluczowe. Niewłaściwe zastosowanie może prowadzić do błędnych interpretacji danych i problemów z zachowaniem integralności aplikacji.

Pytanie 3

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
B. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
C. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
D. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 4

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. this.jezyk = nazwa;
B. return this.jezyk;
C. this.j = nazwa;
D. return this.j;
Niepoprawne odpowiedzi w tym pytaniu wynikają z niezrozumienia roli setterów i sposób, w jaki są one używane do zarządzania stanem obiektu w JavaScript. Odpowiedź 'this.j = nazwa;' jest nieprawidłowa, ponieważ próbuje przypisać wartość bezpośrednio do właściwości 'j', która nie istnieje w obiekcie 'osoba'. Z kolei 'return this.j;' i 'return this.jezyk;' nie są prawidłowe, ponieważ setter nie powinien zwracać wartości. Jego zadaniem jest ustawienie wartości, a nie jej zwrócenie. Zrozumienie roli setterów w zarządzaniu stanem obiektu jest kluczowe dla prawidłowego używania JavaScript. Setter powinien zawsze przypisywać wartość do właściwości obiektu, a nie próbować zwrócić wartość lub przypisać wartość do nieistniejącej właściwości.

Pytanie 5

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. ceil(x)
B. exp(x)
C. sqrt(x)
D. floor(x)
W tym zadaniu chodzi o dokładne zrozumienie, jak działają konkretne metody obiektu Math w JavaScript, a nie tylko o mechaniczne skojarzenie nazwy funkcji z efektem. Dla liczby x = 2.8 poprawnym wynikiem ma być 2, czyli liczba całkowita powstała przez zaokrąglenie w dół. Najczęstsze pomyłki biorą się z mylenia różnych typów zaokrągleń albo z kojarzenia nazw z innych języków czy z matematyki teoretycznej, bez sprawdzenia, co dokładnie robią w JS. Jeżeli ktoś wybiera exp(x), to zwykle wynika to z faktu, że nazwa brzmi „matematycznie” i kojarzy się z jakąś funkcją liczbową. Jednak Math.exp(x) zwraca e do potęgi x, czyli wartość funkcji wykładniczej. Dla 2.8 byłaby to liczba około 16.44, kompletnie niepowiązana z zaokrąglaniem. Ta metoda służy do obliczeń matematycznych wyższego poziomu, np. w algorytmach statystycznych czy finansowych, a nie do pracy na liczbach całkowitych. Z kolei wybór ceil(x) wynika często z mylenia pojęć „zaokrąglanie” i „obcinanie”. Math.ceil(2.8) zaokrągla zawsze w górę do najbliższej liczby całkowitej, więc wynik to 3. W praktyce ceil przydaje się np. przy obliczaniu liczby stron w paginacji, gdy chcemy mieć pewność, że ostatnia strona też się zmieści, nawet jeśli nie jest pełna. Tutaj jednak wymagane jest zejście w dół, więc ceil daje odwrotny efekt niż potrzebny. sqrt(x) to z kolei pierwiastek kwadratowy. Math.sqrt(2.8) zwróci wartość około 1.673, a więc nadal liczbę zmiennoprzecinkową. Czasem uczniowie mylą tę metodę, bo myślą, że „pierwiastek” w jakiś sposób „zmniejsza” liczbę, więc może zbliżyć ją do 2. W kontekście programowania webowego takie myślenie jest niebezpieczne – tu liczy się precyzyjna definicja tego, co robi funkcja, zgodnie ze specyfikacją ECMAScript, a nie intuicyjne skojarzenia z matematyki szkolnej. Kluczowe jest zapamiętanie różnicy: floor – zawsze w dół, ceil – zawsze w górę, round – do najbliższej liczby całkowitej, sqrt – pierwiastek, exp – funkcja wykładnicza. Dobra praktyka w JavaScripcie to zawsze sprawdzić dokumentację, gdy nie jesteśmy na 100% pewni, co robi dana metoda Math, bo drobna pomyłka przy zaokrąglaniu może później rozwalić logikę całej aplikacji, chociażby przy indeksowaniu tablic, generowaniu ID czy przy obliczeniach finansowych.

Pytanie 6

Gdzie w dokumencie HTML mogą być umieszczane fragmenty kodu JavaScript?

A. tak w sekcji <head>, jak i <body>, w znaczniku <java>
B. wyłącznie w sekcji <body>, w znaczniku <java>
C. jedynie w sekcji <head>, w znaczniku <script>
D. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
Wiesz, wstawianie kodu JavaScript do dokumentu HTML powinno odbywać się w znaczniku <script>. Możesz go umieścić zarówno w <head>, jak i w <body>. Często wrzucamy skrypty do <head>, bo chcemy, żeby załadowały się przed wyświetleniem treści. To się przydaje, gdy skrypty zmieniają coś w DOM. Z drugiej strony, jak wrzucisz je do <body>, to skrypty będą ładowane po całej treści, co może przyspieszyć to, co widzi użytkownik. Na przykład, jeśli tworzysz coś interaktywnego, lepiej umieścić skrypty na dole, żeby nie blokować renderowania. Dobrze jest też pamiętać o atrybucie 'defer' w <script>, bo dzięki temu skrypt się ściąga równolegle z innymi rzeczami, ale działa dopiero jak cały dokument jest załadowany. To ważne, żeby strony działały sprawnie i były przyjemne w użytkowaniu.

Pytanie 7

Aby w JavaScript wykonać wymienione kroki:

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
   następnie po zatwierdzeniu
2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
   wartość pobrana z okna "Kwalifikacja: ..."
należy w znaczniku <script> umieścić kod
A. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

B. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " .A);

C. A = alert("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

D. A << prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);
A. A.
B. D.
C. C.
D. B.
Wygląda na to, że nie do końca trafiłeś. Niektóre odpowiedzi sugerowały użycie funkcji, które nie nadają się do tego zadania. Na przykład, `alert` pokazuje tylko jakiś komunikat, ale nie pozwala na wpisanie czegoś przez użytkownika. Inną możliwością mogły być też metody manipulacji DOM, ale to już trochę bardziej skomplikowane i nie było w tym przypadku konieczne. Ważne jest, żeby wiedzieć, które funkcje w JavaScript są do czego, żeby móc je dobrze wykorzystać.

Pytanie 8

Podany kod źródłowy ma na celu pokazanie

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. kolejne liczby od 1 do 100
B. wylosowane liczby od 1 do 99
C. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
D. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
Odpowiedź "losowe liczby od 0 do 100 tak długo, aż nie zostanie wylosowana wartość 0" jest poprawna, ponieważ kod źródłowy wykorzystuje funkcję rand(), która generuje losowe liczby z zadanego zakresu, w tym przypadku od 0 do 100. Pętla while działa w taki sposób, że kontynuuje swoje działanie, dopóki zmienna $liczba nie przyjmie wartości 0. Oznacza to, że wszystkie wylosowane liczby, niezależnie od tego, czy są to liczby parzyste, nieparzyste, czy wartości graniczne, będą wyświetlane na ekranie do momentu, aż wylosowana zostanie wartość 0, która przerwie działanie pętli. Przykładem zastosowania tego typu kodu może być generowanie próbki danych w celu testowania algorytmów lub symulacji. Praktyka ta jest zgodna z dobrymi standardami programowania, gdzie często wykorzystuje się losowe dane do różnych celów, takich jak testowanie, analizy statystyczne lub gry. Ponadto, rozumienie jak działa generowanie liczb losowych i kontrola pętli jest podstawową umiejętnością w programowaniu, która pomaga w rozwoju bardziej zaawansowanych aplikacji.

Pytanie 9

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 60
B. 125
C. 625
D. 120
Program jest przykładem prostego algorytmu obliczającego silnię liczby n, którą użytkownik wprowadza za pomocą funkcji prompt. Zmienna a jest inicjalizowana wartością 1 i służy do przechowywania wyniku. Pętla for rozpoczyna się od wartości n i zmniejsza wartość i do 2, za każdym razem mnożąc a przez i. Dla n=5 pętla wykona się pięć razy, obliczając kolejno 5*4*3*2*1, co daje wynik 120. Metoda document.write wyświetla wynik na stronie. Rozumienie mechanizmu działania pętli for i operatora *= jest kluczowe w zrozumieniu algorytmów obliczeniowych używanych w programowaniu JavaScript. Silnia jest podstawowym przykładem algorytmu rekurencyjnego, który można również zaimplementować za pomocą funkcji rekurencyjnej, co jest często stosowane w programowaniu funkcyjnym. Znajomość takich konstrukcji pozwala na tworzenie bardziej zaawansowanych algorytmów przetwarzania danych i optymalizację kodu, co jest cenioną umiejętnością w branży IT.

Pytanie 10

W grze komputerowej można przejść do kolejnego poziomu, gdy spełnione są trzy warunki: zdobycie 20 punktów, zebranie co najmniej 3 paczek oraz przebycie dystansu 200 m. Wyrażenie logiczne, które weryfikuje te warunki w języku JavaScript, to

A. punkty == 20 || paczki == 3 || dystans == 200
B. punkty == 20 && paczki >= 3 && dystans == 200
C. punkty == 20 && paczki == 3 && dystans == 200
D. punkty == 20 || paczki >= 3 || dystans == 200
Wybrana odpowiedź 'punkty == 20 && paczki >= 3 && dystans == 200' jest prawidłowa, ponieważ wykorzystuje operator logiczny AND ('&&'), co oznacza, że wszystkie trzy warunki muszą być spełnione jednocześnie, aby przejść do następnego poziomu w grze. W kontekście programowania, a zwłaszcza w JavaScript, zrozumienie operatorów logicznych jest kluczowe dla podejmowania decyzji w oparciu o różne warunki. Na przykład, jeśli gracz zdobył dokładnie 20 punktów, zebrał 3 paczki i przebył 200 metrów, to wszystkie te warunki są spełnione, co pozwala na kontynuację gry. Dobrą praktyką jest stosowanie operatora >= (większe lub równe) dla paczek, ponieważ pozwala to graczowi na zbieranie większej liczby paczek, co dodaje elementy strategii i rozwoju w grze. Używanie odpowiednich operatorów logicznych jest fundamentalne w programowaniu, zapewniając, że aplikacje działają zgodnie z oczekiwaniami użytkowników. Przykład zastosowania to wprowadzenie logiki do gier, gdzie gracz musi wykonać określone zadania, aby przejść do kolejnych poziomów, co jest podstawą mechaniki wielu gier komputerowych.

Pytanie 11

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementsByTagName("nomargin")
B. getElement("nomargin")
C. getElementsByClassName("nomargin")
D. getElementById("nomargin")
Funkcja getElementsByClassName("nomargin") jest poprawnym sposobem na uzyskanie dostępu do elementów HTML przypisanych do klasy o nazwie 'nomargin'. Jest to metoda dostępna w obiekcie document, która zwraca kolekcję wszystkich elementów, które mają wskazaną klasę. W przeciwieństwie do getElementById, która zwraca pojedynczy element o podanym identyfikatorze, getElementsByClassName zwraca listę, co jest szczególnie przydatne, gdy mamy do czynienia z wieloma elementami oznaczonymi tą samą klasą. Przykładowo, jeśli mamy kilka divów z klasą 'nomargin', możemy w łatwy sposób iterować przez wszystkie z nich i stosować różne operacje, takie jak zmiana stylów czy dodawanie zdarzeń. Używanie tej metody jest zgodne z najlepszymi praktykami, ponieważ pozwala na selekcję grupy elementów, co z kolei wspiera modularność i łatwość zarządzania kodem. Warto również pamiętać, że w przypadku użycia tej metody, zmiany w DOM będą miały wpływ na wszystkie elementy, co może być przydatne w złożonych interfejsach użytkownika.

Pytanie 12

DOM oferuje metody i właściwości, które w języku JavaScript umożliwiają

A. przeprowadzanie operacji na zmiennych przechowujących liczby
B. przesyłanie danych formularza bezpośrednio do bazy danych
C. pobieranie oraz modyfikowanie elementów strony widocznej w przeglądarce
D. manipulowanie łańcuchami zadeklarowanymi w kodzie
Odpowiedź dotycząca pobierania i modyfikowania elementów strony wyświetlonej przez przeglądarkę jest poprawna, ponieważ DOM (Document Object Model) stanowi interfejs programistyczny, który umożliwia skryptom JavaScript dostęp do struktury dokumentu HTML lub XML. Dzięki DOM programiści mogą dynamicznie zmieniać zawartość, strukturę i styl dokumentu. Na przykład, za pomocą metody document.getElementById('elementId') można uzyskać dostęp do konkretnego elementu na stronie, a następnie modyfikować jego właściwości, jak tekst czy atrybuty, za pomocą elementów takich jak innerHTML lub setAttribute. Stosowanie DOM jest zgodne z najlepszymi praktykami, takimi jak minimalizowanie manipulacji na stronie, co prowadzi do lepszej wydajności aplikacji. Warto również zwrócić uwagę na standardy W3C, które promują poprawne użycie DOM w kontekście dostępu i użyteczności stron internetowych. Umiejętność efektywnej pracy z DOM jest kluczowa w nowoczesnym web developmencie, gdzie interaktywność i dynamika są niezbędne do tworzenia atrakcyjnych i responsywnych aplikacji internetowych.

Pytanie 13

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz2.png zostanie wymieniony przez obraz1.png
B. obraz1.png zostanie wymieniony przez obraz2.png
C. obraz2.png zostanie zniknięty
D. obraz1.png zostanie zniknięty
Odpowiedź jest poprawna, ponieważ przycisk w kodzie JavaScript powoduje, że po jego kliknięciu element HTML o identyfikatorze 'id1', który jest obrazem 'obraz2.png', zostanie ukryty. Wartość 'style.display' zmienia się na 'none', co jest standardowym sposobem na ukrycie elementu w dokumentach HTML. W praktyce takie podejście jest szeroko stosowane w interaktywnych aplikacjach webowych, aby poprawić doświadczenia użytkowników, umożliwiając im dynamiczne ukrywanie lub wyświetlanie treści w odpowiedzi na ich działania. Ukrywanie elementów zamiast ich usuwania z DOM ma swoje zalety, ponieważ umożliwia ich późniejsze przywrócenie, co jest bardziej efektywne w kontekście wydajności. Dobrym przykładem może być rozwijane menu na stronie, gdzie po kliknięciu na dany element, jego zawartość jest ukrywana lub pokazywana bez potrzeby przeładowywania całej strony.

Pytanie 14

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. ulicy i miasta ze wszystkich zwróconych rekordów
B. ulicy i miasta z pierwszego zwróconego rekordu
C. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
D. miasta i kodu pocztowego z pierwszego zwróconego rekordu
Kod PHP używa funkcji mysqli_query do wykonania zapytania SELECT, które pobiera kolumny ulica miasto i kod_pocztowy z tabeli adresy. Następnie funkcja mysqli_fetch_row pobiera pierwszy rekord wyników jako tablicę. Elementy tej tablicy są indeksowane od 0 dlatego $a[1] odnosi się do drugiego elementu czyli kolumny miasto a $a[2] do trzeciego elementu czyli kolumny kod_pocztowy. Funkcja echo wypisuje te dwie wartości co oznacza że kod faktycznie wyświetla miasto i kod pocztowy z pierwszego zwróconego rekordu. W praktyce takie podejście jest używane do szybkiego dostępu do danych z bazy jednak warto pamiętać o zabezpieczeniach takich jak filtrowanie danych wejściowych czy użycie przygotowanych zapytań aby chronić się przed SQL Injection. Dobre praktyki obejmują także obsługę błędów połączenia z bazą oraz poprawne zarządzanie zasobami takimi jak zamykanie połączenia po zakończeniu operacji na bazie danych. Używanie indeksów liczbowych może być mniej czytelne dlatego w bardziej złożonych aplikacjach zaleca się stosowanie mysqli_fetch_assoc dla łatwiejszego dostępu przez nazwy kolumn.

Pytanie 15

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. będzie przechowywany na serwerze przez jedną godzinę
B. wygaśnie po jednej godzinie od momentu jego utworzenia
C. będzie przechowywany na serwerze przez 24 godziny
D. wygaśnie po dobie od momentu jego utworzenia
Odpowiedź wygaśnie po jednej dobie od jego utworzenia jest prawidłowa, ponieważ w funkcji setcookie() parametr time() + (3600 * 24) ustala czas wygaśnięcia ciasteczka na 24 godziny, licząc od momentu jego utworzenia. W praktyce oznacza to, że ciasteczko będzie dostępne dla przeglądarki przez całą dobę, co jest przydatne w wielu aplikacjach webowych. Ciasteczka są używane do przechowywania informacji o sesji użytkownika, preferencjach oraz stanach aplikacji. Przykładem zastosowania może być pamiętanie, że użytkownik jest zalogowany, co ułatwia korzystanie z serwisu. Zgodnie z najlepszymi praktykami, zaleca się ustawianie odpowiednich parametrów dla ciasteczek, takich jak HttpOnly i Secure, a także ich właściwe zarządzanie, aby nie narażać danych użytkowników na niebezpieczeństwo. Ponadto, dobrze jest regularnie przeglądać i aktualizować politykę dotycząca ciasteczek, aby spełniać wymogi przepisów o ochronie danych osobowych, takich jak RODO.

Pytanie 16

Jaką rolę pełni funkcja PHP o nazwie mysql_select_db()?

A. określić tabelę, z której będą pobierane informacje
B. pobrać dane z bazy danych na podstawie zapytania
C. nawiązać połączenie bazy danych z serwerem SQL
D. określić bazę, z której będą pobierane dane
Istnieje kilka powszechnych nieporozumień dotyczących funkcji mysql_select_db(), które mogą prowadzić do błędnych wniosków. Niewłaściwe jest myślenie, że ta funkcja służy do określenia tabeli, z której będą pobierane dane. W rzeczywistości, mysql_select_db() nie odnosi się bezpośrednio do tabel; zamiast tego, definiuje bazę, w której te tabele się znajdują. Kolejnym błędem jest przekonanie, że mysql_select_db() odpowiada za połączenie bazy danych z serwerem SQL. To zadanie należy do mysql_connect(), która tworzy połączenie z serwerem. Istnieje również mylne założenie, że funkcja ta pobiera dane z bazy danych. W rzeczywistości, pobieranie danych odbywa się za pomocą osobnych zapytań SQL, które są wykonywane po wcześniejszym wybraniu odpowiedniej bazy danych. Takie nieporozumienia mogą prowadzić do błędów w kodzie, gdzie programista usiłuje używać mysql_select_db() do operacji, które nie są jej przeznaczone. Niezrozumienie roli bazy danych i tabel w kontekście SQL oraz funkcji PHP może skutkować nieefektywnym kodem oraz problemami z jego debugowaniem. Ważne jest, aby mieć jasność co do roli różnych funkcji w interakcji z bazą danych, co pozwala na bardziej efektywne i bezpieczne programowanie.

Pytanie 17

Jakiego zdarzenia trzeba użyć, aby funkcja JavaScript była uruchamiana za każdym razem, gdy użytkownik wprowadzi jakikolwiek znak do pola tekstowego?

A. onload
B. onmouseout
C. onkeydown
D. onclick
Odpowiedź 'onkeydown' jest w porządku! To zdarzenie działa za każdym razem, gdy ktoś naciska klawisz w polu edycyjnym. Świetnie nadaje się do monitorowania, co użytkownik wpisuje na bieżąco. Na przykład w formularzach można go użyć, żeby od razu sprawdzić, czy dane są poprawne. Dzięki temu użytkownik widzi, czy coś jest nie tak, co ogólnie poprawia użyteczność aplikacji. Poza tym, dobrym pomysłem jest nadawanie zrozumiałych nazw funkcjom, które reagują na te zdarzenia – pomaga to później w utrzymaniu kodu. Można też łączyć onkeydown z onkeyup czy onkeypress, żeby jeszcze lepiej kontrolować wprowadzane dane. To na pewno sprawi, że Twoja aplikacja będzie bardziej interaktywna.

Pytanie 18

Przedstawiony kod PHP nawiązuje połączenie z serwerem bazy danych. Jakiego typu operacje powinny się znaleźć w instrukcji warunkowej w miejscu trzech kropek?
$db = mysqli_connect("localhost", "root", "qwerty", "baza1");
if (!$db) {
...
}

A. Zamknięcie połączenia z bazą danych
B. Obsługa błędu połączenia
C. Obsługa danych uzyskanych z bazy
D. Informacja o udanym połączeniu z bazą
Wybór obsługi błędu połączenia jako prawidłowej odpowiedzi jest zgodny z najlepszymi praktykami programistycznymi w zakresie zarządzania połączeniami z bazą danych. W sytuacji, gdy połączenie nie zostanie nawiązane, ważne jest, aby skutecznie obsłużyć ten błąd. Tylko w ten sposób programista może zrozumieć, co poszło nie tak, a także podjąć odpowiednie kroki w celu skorygowania problemu. Na przykład można wyświetlić komunikat informujący o błędzie, logować go w systemie lub wysłać powiadomienie do administratora. Dobrą praktyką jest również implementacja mechanizmów ponownego łączenia lub alternatywnych metod połączenia, jeśli to możliwe. Warto również zaznaczyć, że niewłaściwe zarządzanie połączeniem z bazą danych może prowadzić do poważnych konsekwencji, takich jak utrata danych, a nawet awarie aplikacji. Dlatego, umieszczając kod do obsługi błędów w instrukcji warunkowej, programista wykazuje się odpowiedzialnością oraz dbałością o jakość kodu.

Pytanie 19

Aby przekształcić tekst „ala ma psa” na „ALA MA PSA”, jaka funkcja PHP powinna być zastosowana?

A. strtoupper('ala ma psa');
B. strstr ('ala ma psa');
C. ucfirst ('ala ma psa');
D. strtolower('ala ma psa');
Funkcja strtoupper w PHP jest używana do konwersji wszystkich liter w danym ciągu znaków na wielkie litery. W kontekście modyfikacji tekstu „ala ma psa” na „ALA MA PSA”, zastosowanie funkcji strtoupper('ala ma psa') jest poprawnym podejściem. Funkcja ta jest częścią standardowej biblioteki PHP i jest szeroko stosowana w projektach, gdzie zachowanie wielkich liter jest kluczowe. Przykład użycia funkcji strtoupper jest prosty: wystarczy przekazać do niej ciąg, który ma zostać przekształcony. Przykładem może być zapis: $text = 'ala ma psa'; $uppercaseText = strtoupper($text); echo $uppercaseText; co wygeneruje wynik ALA MA PSA. Warto zauważyć, że funkcja ta nie zmienia oryginalnego ciągu, lecz zwraca nowy ciąg z przekształconymi literami. Zastosowanie funkcji strtoupper jest szczególnie przydatne w aplikacjach webowych, gdzie formatowanie tekstu może być kluczowe dla zapewnienia spójności danych wyjściowych oraz ich estetyki.

Pytanie 20

Jaką instrukcją można zastąpić poniższy kod JavaScript, pełniącą tę samą funkcję?

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}

Kod 1.
while (i < 100) {
  document.write(i + ' ');
}

Kod 2.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}

Kod 3.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}

Kod 4.
A. Kod 3
B. Kod 4
C. Kod 2
D. Kod 1
Odpowiedzi inne niż Kod 3 są niepoprawne ponieważ nie odzwierciedlają poprawnie logiki oryginalnej pętli for. Kod 1 gdzie warunek jest i < 10 zamiast i < 100 będzie iterować zbyt mało razy ponieważ inkrementacja i odbywa się co 10 jednostek a warunek przerywający pętlę jest osiągnięty już po pierwszej iteracji co nie odpowiada strukturze pętli for. Kod 2 również używa błędnego warunku i < 100 ale brakuje w nim inicjalizacji zmiennej i co może prowadzić do błędów związanych z używaniem nieokreślonej zmiennej. W praktyce taki błąd jest często spotykany w przypadku gdy programista zapomina o zdefiniowaniu zmiennej przed rozpoczęciem pętli co prowadzi do nieprzewidywalnego działania kodu. Kod 4 także nie jest poprawny ponieważ w warunku while używa i < 10 co oznacza że pętla znów nie zostanie wykonana odpowiednią ilość razy. Ponadto inkrementacja i o 1 jednostkę zamiast o 10 znacznie zmienia ilość iteracji wymaganych do zakończenia pętli co nie jest zgodne z początkową pętlą for. Rozważając te błędne odpowiedzi warto zauważyć że precyzyjne określanie warunków i operacji w pętlach jest kluczowe dla ich prawidłowego działania co jest podstawą efektywnego programowania.

Pytanie 21

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. sesji
B. ciasteczek
C. bazy danych
D. zmiennych tekstowych
Obsługa ciasteczek jest kluczowym elementem w zarządzaniu stanem w aplikacjach webowych. Ciasteczka, czyli małe pliki tekstowe przechowywane w przeglądarce użytkownika, pozwalają na śledzenie aktywności użytkownika między stronami i sesjami. W kodzie powyżej widzimy użycie globalnej tablicy PHP $_COOKIE do sprawdzania, czy ciasteczko o określonej nazwie zostało ustawione. Funkcja isset() sprawdza, czy zmienna jest zdefiniowana i nie jest null. Jeśli ciasteczko istnieje, jego wartość jest wyświetlana. Ciasteczka są powszechnie używane do zarządzania sesjami, personalizacji treści czy śledzenia zachowań użytkowników. W praktyce, zabezpieczenia są ważnym aspektem zarządzania ciasteczkami. Powinny być szyfrowane i oznaczone jako HttpOnly oraz Secure, aby zminimalizować ryzyko kradzieży informacji przez ataki XSS. Programiści powinni także stosować polityki prywatności zgodnie z regulacjami RODO, informując użytkowników o użyciu ciasteczek. Zrozumienie tych mechanizmów jest fundamentalne dla budowy bezpiecznych i funkcjonalnych aplikacji webowych.

Pytanie 22

Elementem odpowiadającym imieniu Agata w zaprezentowanej tablicy JavaScript jest:

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona[Agata];
B. Imiona[4];
C. Imiona['Agata'];
D. Imiona[3];
Poprawna odpowiedź to Imiona[3], ponieważ w JavaScript indeksowanie tablicy zaczyna się od zera. Oznacza to, że pierwszy element tablicy Imiona to 'Anna' (Imiona[0]), drugi to 'Joanna' (Imiona[1]), trzeci to 'Monika' (Imiona[2]), a czwarty to 'Agata' (Imiona[3]). W kontekście programowania w JavaScript ważne jest, aby znać zasady indeksowania, co jest szczególnie istotne przy pracy z tablicami, ponieważ niewłaściwe indeksowanie może prowadzić do błędów, takich jak undefined. W praktyce, jeżeli chcemy uzyskać dostęp do konkretnego elementu tablicy, musimy użyć odpowiedniego indeksu. Ponadto, korzystanie z tablic w JavaScript jest powszechną praktyką, a zrozumienie ich mechanizmu pozwala na efektywne operowanie danymi. Należy również pamiętać o dobrych praktykach w programowaniu, takich jak stosowanie opisowych nazw zmiennych oraz komentowanie kodu, co zwiększa jego czytelność i zrozumienie dla innych programistów.

Pytanie 23

W formularzu, wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w pokazany sposób. Jaki typ będzie miała zmienna x?

var x = parseInt(a);
A. zmiennoprzecinkowy
B. NaN
C. napisowy
D. liczbowy, całkowity
Funkcja parseInt() w JavaScript jest super przydatna, bo pozwala zamienić ciąg znaków na liczbę całkowitą. Jak masz zmienną a, która bierze dane z inputu typu number, to parseInt() łapie te liczby i wyrzuca wszystko, co nie jest cyfrą. Dzięki temu dostajesz liczby całkowite. Warto wiedzieć, że ta funkcja nie zaokrągla wyników, tylko obcina część dziesiętną. To świetna opcja, gdy potrzebujesz tylko całkowitych wartości. parseInt() dobrze działa w programowaniu – często wykorzystuje się go do walidacji i manipulacji liczbami. Z mojego doświadczenia, kiedy pracujesz z różnymi typami danych, musisz zadbać, żeby przekształcenia były na miejscu, bo to bardzo ważne dla aplikacji. Użycie parseInt() jest zgodne z zasadami ECMAScript, co oznacza, że działa w różnych środowiskach JavaScript. Przykładem dobrego zastosowania są aplikacje webowe, gdzie często potrzebujesz liczb całkowitych, na przykład w kalkulatorach czy formularzach z wyborem ilości produktów.

Pytanie 24

$i=10; $a=0; while $i) { $a=$a+2; $i--; } W języku PHP przedstawiono fragment kodu. Jaka będzie wartość zmiennej a po zakończeniu pętli?

A. 20
B. 2
C. 10
D. 0
W analizowanym fragmencie kodu PHP, mamy do czynienia z pętlą while, która działa tak długo, jak zmienna $i jest różna od zera. Na początku $i przyjmuje wartość 10, a zmienna $a jest inicjalizowana na 0. W obrębie pętli $a jest zwiększana o 2 w każdej iteracji, a zmienna $i jest dekrementowana o 1. Pętla wykona się więc 10 razy, co oznacza, że $a zostanie zwiększone 10 razy o 2, co daje łącznie: 2 * 10 = 20. Takie podejście do zarządzania pętlami jest zgodne z najlepszymi praktykami programowania, gdzie unika się złożonych operacji wewnątrz pętli na rzecz prostych i efektywnych obliczeń. Warto zauważyć, że sprawdzanie warunków oraz aktualizowanie zmiennych w pętli są kluczowe dla uniknięcia nieskończonych pętli oraz błędów logicznych, co jest istotne w kontekście utrzymania i czytelności kodu.

Pytanie 25

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
B. zwrócenie wartości liczb parzystych od a do b
C. wypisanie wszystkich liczb z zakresu od a do b
D. wypisanie liczb parzystych z zakresu od a do b
Odpowiedzi takie jak "wypisanie wszystkich liczb z przedziału od a do b" oraz "zwrócenie wartości parzystych liczb od a do b" ilustrują powszechne nieporozumienia dotyczące działania funkcji oraz jej logiki. Funkcja nie wypisuje wszystkich liczb z przedziału, ponieważ jej konstrukcja ogranicza wyniki do liczb parzystych. Odpowiedź ta nie uwzględnia kluczowego kroku w funkcji, polegającego na modyfikacji zmiennej a, co oznacza, że w przypadku nieparzystego a, pierwsza wypisana liczba będzie parzysta. Natomiast odpowiedź sugerująca, że funkcja zwraca wartości parzyste, jest również myląca, ponieważ funkcja nie zwraca wartości (nie używa return), a jedynie wypisuje je na stronie za pomocą document.write(). To może prowadzić do nieporozumień, zwłaszcza w kontekście oczekiwań dotyczących struktury danych. Typowym błędem myślowym jest zakładanie, że pętle for mogą generować wszystkie liczby w danym zakresie, gdy w rzeczywistości sposób ich inkrementacji (w tym przypadku o 2) determinuje, które wartości są ostatecznie wyświetlane. Przykładem na to jest sytuacja, gdy użytkownik nie dostrzega, że pętla zmienia krok zwiększenia i przez to nie uzyskuje pełnej sekwencji liczb. Warto zwrócić uwagę na konwencje programistyczne, takie jak zasady dotyczące wypisywania danych i używania zwrotów, co jest kluczowe dla tworzenia przejrzystego i efektywnego kodu.

Pytanie 26

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 4
B. Kod 2
C. Kod 3
D. Kod 1
W przypadku analizy niepoprawnych odpowiedzi, ważne jest zrozumienie błędnych koncepcji, które mogą prowadzić do błędnych wniosków. W Kodzie 1 błędnie zastosowano mechanizm else, który prowadzi do tego, że ostatnia operacja jest wykonywana zawsze, gdy żaden poprzedni warunek nie jest spełniony. Może to prowadzić do nieprzewidywalnych wyników, jeśli wartość 'dzialanie' nie pasuje do żadnego z przypadków. Kod 3, z użyciem operatora !=, nie zapewnia prawidłowego działania, gdyż realizuje wszystkie operacje niezależnie od wartości 'dzialanie', co jest sprzeczne z zamiarem instrukcji switch. To powszechny błąd, gdzie brak pełnego zrozumienia logiki warunkowej prowadzi do pomyłek w implementacji. Z kolei, Kod 4 ma poprawną strukturę if-else if, ale różni się od poprawnej odpowiedzi nadmiarem zagnieżdżonych warunków, co może wprowadzać niepotrzebne komplikacje i zwiększać czas wykonania. Zrozumienie błędów w logice warunkowej jest kluczowe do pisania efektywnego i poprawnego kodu, co jest fundamentalne w programowaniu aplikacji o wysokiej niezawodności. Kluczem do unikania takich błędów jest praktyka i głębokie zrozumienie struktury danych oraz logiki w programowaniu.

Pytanie 27

W PHP utworzenie oraz przypisanie tablicy asocjacyjnej do zmiennej odbywa się poprzez zapis

A. $tab = array ("a" => 1, "b" => 2, "c" => 3);
B. $tab = array (); $tab[] = array (1, 2, 3, 4);
C. $tab = array (array (1, 2), array (3, 4));
D. $tab = array (1, 2, 3, 4);
Żeby dobrze stworzyć i przypisać zmiennej tablicę asocjacyjną w PHP, trzeba użyć głównie składni, która pozwoli nam przypisać wartości do konkretnych kluczy. Jak mamy zapis $tab = array ("a" => 1, "b" => 2, "c" => 3); to definiujemy tablicę, w której klucze to "a", "b" i "c", a wartości to 1, 2 i 3. Takie tablice asocjacyjne w PHP są naprawdę super, bo ułatwiają zarządzanie danymi, dzięki czemu bez problemu możemy sięgać po wartości używając unikalnych kluczy zamiast nudnych indeksów. Można to sobie wyobrazić na przykładzie aplikacji, gdzie klucze są identyfikatorami użytkowników, a wartości to ich dane. Jest to mega pomocne, szczególnie w dużych projektach, gdyż kod staje się bardziej czytelny i łatwiejszy do naprawy. Tak więc umiejętne korzystanie z tablic asocjacyjnych to kluczowa umiejętność w programowaniu w PHP, a dobrze przypisane wartości do kluczy ułatwiają pracę z danymi.

Pytanie 28

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. concat()
B. trim()
C. slice()
D. replace()
Metoda slice() w języku JavaScript jest kluczowym narzędziem do wydobywania fragmentów ciągów tekstowych. Umożliwia wyodrębnienie podciągu na podstawie określonych indeksów początkowego i końcowego. Przykładowo, jeśli mamy napis 'JavaScript' i chcemy uzyskać 'Script', możemy użyć slice(4, 10). Indeks początkowy jest wliczany, a końcowy jest wykluczany, co zapewnia elastyczność w manipulacji ciągami. Metoda slice() nie modyfikuje oryginalnego ciągu, co jest zgodne z zasadą immutability w funkcjonalnym programowaniu, zwiększając bezpieczeństwo danych. Metoda ta obsługuje również ujemne indeksy, co pozwala na łatwe wyodrębnianie fragmentów z końca napisu. Warto pamiętać, że slice() jest preferowana, gdyż jest bardziej czytelna i intuicyjna w porównaniu z innymi metodami do manipulacji tekstem, jak substr() czy substring().

Pytanie 29

W skrypcie JavaScript deklaracja zmiennych ma miejsce

A. wyłącznie na początku skryptu
B. w chwili pierwszego użycia zmiennej
C. zawsze z poprzedzającym nazwą znakiem $
D. tylko gdy określimy typ zmiennej oraz jej nazwę
W języku JavaScript zmienne mogą być deklarowane w momencie ich pierwszego użycia, co oznacza, że nie muszą być z góry zadeklarowane przed ich użyciem. To podejście ułatwia rozwój aplikacji, ponieważ programista może dynamicznie wprowadzać zmienne w trakcie pisania kodu. Przykładem może być sytuacja, gdy podczas wykonywania funkcji chcemy stworzyć zmienną w oparciu o dane wejściowe użytkownika. W takiej sytuacji możemy od razu przypisać wartość do zmiennej bez wcześniejszej deklaracji. Na przykład: "let x = 10;" można zamienić na "let x; x = 10;". Dodatkowo, JavaScript wspiera hoisting, co oznacza, że deklaracje zmiennych są „podnoszone” na początek ich zakresu, co może prowadzić do sytuacji, w której zmienna jest używana przed jej deklaracją. Zrozumienie tych mechanizmów jest kluczowe dla efektywnego programowania w JavaScript oraz unikania typowych pułapek, takich jak niezamierzona referencja do niezdefiniowanej zmiennej. Praktyczne zastosowanie tej wiedzy pozwala tworzyć bardziej elastyczne i dynamiczne skrypty, co jest zgodne z nowoczesnymi standardami programowania.

Pytanie 30

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. nazwa bazy danych
B. adres serwera bazy danych
C. nazwa użytkownika
D. hasło dla użytkownika
Odpowiedź 'nazwa użytkownika' jest na pewno właściwa, bo w konstruktorze klasy mysqli w PHP musimy podać nazwę użytkownika jako drugi argument. To ważne, bo bez tych danych, czyli nazwy użytkownika i hasła, nie da się połączyć z bazą danych. Używanie mysqli to dobra praktyka, zwłaszcza jeśli chodzi o bezpieczeństwo przed atakami SQL injection. Jak chcemy się połączyć, to zapisujemy to tak: $a = new mysqli('localhost', 'nazwa_użytkownika', 'hasło', 'nazwa_bazy'). Dzięki temu możemy na przykład ściągnąć dane z tabeli 'użytkownicy'. Warto też pamiętać o walidacji danych wejściowych i korzystaniu z przygotowanych zapytań, bo to naprawdę podnosi poziom bezpieczeństwa naszej aplikacji. I nie zapominaj, żeby zamknąć połączenie po zakończonej pracy, używając metody close().

Pytanie 31

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Zmienne zostały błędnie zadeklarowane
B. W instrukcji if znajduje się przypisanie zamiast operacji porównania
C. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
D. Przed instrukcją else nie powinno być średnika
Kod JavaScript z błędem logicznym w pytaniu ma na celu sprawdzenie równoważności dwóch zmiennych, jednak ze względu na użycie niewłaściwego operatora nie działa poprawnie. W przypadku stwierdzenia, że przed klauzulą else nie powinno być średnika, należy zrozumieć, że w JavaScript średnik wskazuje koniec instrukcji i jego obecność lub brak bezpośrednio przed else może zmienić logikę kodu, ale nie w tym kontekście. Jeśli chodzi o błędne przypisanie zamiast porównania w instrukcji if, właściwe używanie operatorów przypisania i porównania jest kluczowe, ponieważ ich zamiana prowadzi do logicznych błędów, które mogą być trudne do zdiagnozowania. Natomiast nieprawidłowa deklaracja zmiennych w JavaScript może wpływać na zakres lub sposób ich użycia, ale tutaj zmienne są poprawnie zadeklarowane za pomocą var, choć nowoczesne standardy promują let lub const dla lepszej kontroli zakresu. Na koniec, zamiana miejsc instrukcji wewnątrz sekcji if oraz else prowadzi jedynie do zmiany logicznej kolejności akcji bez rozwiązywania błędu pierwotnego, jakim jest użycie niewłaściwego operatora porównania. Kluczowym jest tu zrozumienie, że zrozumienie i poprawne stosowanie operatorów logicznych jest fundamentalne w pisaniu poprawnego kodu.

Pytanie 32

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. / treść komentarza/
B. // treść komentarza
C. /* treść komentarza*/
D. <!-- treść komentarza -->
Poprawna odpowiedź to zapis w postaci /* treść komentarza */. W języku PHP taki zapis oznacza komentarz wielowierszowy, czyli taki, który może rozciągać się na kilka linii kodu. Komentarz zaczyna się znakiem /* i kończy się dokładnie sekwencją */. Wszystko, co znajduje się pomiędzy tymi znacznikami, jest ignorowane przez interpreter PHP i nie ma wpływu na działanie programu. Można to wykorzystać np. tak: /* Funkcja liczy sumę dwóch liczb Parametry: $a – pierwsza liczba $b – druga liczba */ function suma($a, $b) { return $a + $b; } Z mojego doświadczenia dobrze jest używać komentarzy wielowierszowych do opisywania całych bloków logiki, np. większych funkcji, klas albo skomplikowanych fragmentów algorytmu. W dokumentacji i w dobrych projektach często spotyka się też komentarze stylizowane na PHPDoc, np.: /** * Zwraca sumę dwóch liczb całkowitych * @param int $a * @param int $b * @return int */ To nadal jest zwykły komentarz wielowierszowy, tylko używany zgodnie z pewnym standardem narzędziowym. Moim zdaniem warto wyrabiać sobie nawyk pisania czytelnych komentarzy, ale jednocześnie nie przesadzać – komentarz wielowierszowy powinien wyjaśniać „dlaczego” coś jest zrobione w określony sposób, a nie przepisywać oczywistości z kodu. W praktyce w PHP używa się trzech form komentarzy: // dla jednowierszowych, # (rzadziej, ale też działa) oraz właśnie /* */ dla wielowierszowych. Znajomość tej składni to absolutna podstawa przy pracy z większymi projektami PHP, bo bez niej kod szybko staje się nieczytelny dla innych programistów.

Pytanie 33

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript? ```n = "Napis1"; s = n.length;```

A. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
B. Przypisze wartość zmiennej n do zmiennej s
C. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
D. Wyświetli liczbę znaków napisu z zmiennej n
Fragment skryptu w języku JavaScript, w którym zmienna n jest przypisana do napisu "Napis1", a następnie zmienna s jest przypisana do długości tego napisu, korzysta z właściwości length. Odpowiedź 3 jest poprawna, ponieważ właściwość length dla obiektów typu string zwraca liczbę znaków w danym napisie. W tym przypadku "Napis1" ma 6 znaków, więc zmienna s przyjmie wartość 6. Tego typu operacje są powszechnie stosowane w programowaniu do manipulacji i analizy danych tekstowych, co jest istotnym aspektem tworzenia aplikacji webowych. W praktyce, programiści często muszą sprawdzać długość napisów, aby weryfikować dane wejściowe, przygotowywać napisy do dalszego przetwarzania lub dostosowywać interfejs użytkownika. Dobrym przykładem zastosowania length jest walidacja formularzy, gdzie długość wprowadzonego tekstu musi spełniać określone kryteria, np. minimalną lub maksymalną liczbę znaków. Warto zaznaczyć, że zgodnie ze standardami ECMAScript, wszystkie napisy w JavaScript mają tę właściwość, co czyni ją niezwykle użyteczną w codziennej pracy programisty.

Pytanie 34

Który z poniższych sposobów na komentarz jednoliniowy jest akceptowany w języku JavaScript?

A. #
B. //
C. <!
D. !
W JavaScript, jeśli chcesz dodać komentarz jednoliniowy, musisz użyć podwójnych ukośników, czyli '//' na początku linii. Te komentarze są naprawdę przydatne, bo pozwalają ci opisać, co robi dany kawałek kodu, albo czasami wyłączyć fragmenty podczas testowania. Co fajne, to że wszystko, co napiszesz za '//' zostanie zignorowane przez interpreter, więc nie będzie miało wpływu na działanie skryptu. Przykład: masz linijkę 'let x = 5; // Ustawia wartość x na 5', i wszystko po '//' nie będzie brane pod uwagę przez JavaScript. Komentarze są zgodne z ECMAScript, który jest takim standardem dla tego języka. Szczerze mówiąc, dobrze jest używać komentarzy do dokumentacji, bo to ułatwia czytanie kodu i pracę z innymi programistami. Pamiętaj, żeby robić je zwięzłe, ale muszą też dobrze tłumaczyć, co miał na myśli autor kodu.

Pytanie 35

W języku PHP wykorzystano funkcję ```is_float()```. Które z poniższych wywołań tej funkcji zwróci rezultat true?

A. is_float(3.34)
B. is_float(NULL)
C. is_float('3,34')
D. is_float(334)
Zrozumienie, co dokładnie zwraca funkcja is_float(), jest bardzo ważne, jeśli chce się dobrze pracować z typami danych w PHP. Na przykład, jak wpiszesz is_float(334), to dostaniesz false, bo 334 to liczba całkowita, a nie zmiennoprzecinkowa. To może być mylące, bo nie każdy wie, że float to coś konkretnego. Podobnie jest z is_float(NULL) - zwraca false, bo NULL to jakby brak wartości, a nie liczba. Jeszcze jedno – jakbyś wywołał is_float('3,34'), to też dostaniesz false, bo PHP nie rozpozna tego jako float; to traktuje jako tekst. PHP nie konwertuje automatycznie tekstu na float, zwłaszcza jak używasz przecinka, zamiast kropki. Te błędy często biorą się stąd, że ludzie myślą, że PHP sam zrozumie, co mają na myśli. Dlatego warto ogarnąć, jak działa typowanie w PHP i jak używać funkcji tych sprawdzających typy, jak is_float(). Dzięki temu twój kod będzie bardziej stabilny i unikniesz błędów przy jego działaniu.

Pytanie 36

Która z metod komentowania kodu nie jest używana w PHP?

A. // komentarz
B. /* komentarz */
C. # komentarz
D. <!-- komentarz -->
Odpowiedź <!-- komentarz --> jest prawidłowa, ponieważ w PHP nie używa się tego rodzaju komentarzy w kodzie źródłowym. W PHP komentarze są oznaczane przy pomocy dwóch głównych metod: // dla komentarzy jednoliniowych oraz /* ... */ dla komentarzy wieloliniowych. Komentarze są niezwykle istotnym elementem programowania, ponieważ pozwalają na dokumentację kodu, co ułatwia jego zrozumienie i konserwację. Chociaż <!-- ... --> jest składnią używaną w HTML do komentowania, w kontekście PHP nie jest ona rozpoznawana i nie będzie miała wpływu na kod. Używanie odpowiednich typów komentarzy w PHP jest zgodne z najlepszymi praktykami, ponieważ zapewnia czytelność kodu i ułatwia współpracę w zespole deweloperskim. Ważne jest również, aby unikać niepoprawnych praktyk, które mogą prowadzić do błędów w interpretacji kodu, szczególnie w projektach, gdzie HTML i PHP są łączone.

Pytanie 37

W języku JavaScript zmienna i, która ma przechowywać wynik dzielenia równy 1, powinna być zadeklarowana jako

A. var i = Number(3/2)
B. var i = 3/2
C. var i = parseFloat(3/2)
D. var i = parseInt(3/2)
Wybór odpowiedzi, które nie wykorzystują parseInt, prowadzi do błędnych rezultatów lub nieodpowiedniego typu danych. Odpowiedź "var i = Number(3/2);" zwraca wartość 1.5, ponieważ funkcja Number konwertuje wyrażenie 3/2 do postaci liczby zmiennoprzecinkowej. Takie podejście jest niewłaściwe, gdyż nie spełnia wymogu uzyskania liczby całkowitej. Z kolei "var i = parseFloat(3/2);" nawiązuje do konwersji na liczbę zmiennoprzecinkową, co również nie jest zgodne z oczekiwaną odpowiedzią. Obie te funkcje są użyteczne, ale w kontekście tego pytania nie prowadzą do uzyskania wyników zgodnych z założeniem. Dodatkowo, wybór "var i = 3/2;" bezpośrednio przypisuje wynik dzielenia do zmiennej, co skutkuje wartością 1.5, a nie 1. Przykładem typowego błędu w myśleniu może być założenie, że każda konwersja liczb w JavaScript prowadzi do uzyskania liczby całkowitej, co jest mylnym wnioskiem. Warto pamiętać, że w JavaScript typy danych są elastyczne, co może prowadzić do nieoczekiwanych wyników, jeśli nie stosuje się odpowiednich funkcji do konwersji typów. Dlatego kluczowe jest zrozumienie kontekstu operacji, aby wybrać odpowiednią metodę konwersji, co jest fundamentalne w bezbłędnym programowaniu.

Pytanie 38

W języku PHP zmienna typu float może przyjmować wartości

A. wartości zmiennoprzecinkowe
B. wartości logiczne
C. jedynie liczby całkowite
D. wartości nieliczbowe
W języku PHP zmienne typu float są używane do reprezentowania liczb zmiennoprzecinkowych, co oznacza, że mogą przechowywać zarówno wartości całkowite, jak i wartości z częścią ułamkową. Typ float w PHP jest szczególnie przydatny w sytuacjach, gdzie precyzyjne obliczenia są niezbędne, na przykład w aplikacjach finansowych, gdzie obliczenia z użyciem pieniędzy wymagają uwzględnienia centów. W praktyce, operacje na zmiennych typu float mogą obejmować dodawanie, odejmowanie, mnożenie oraz dzielenie. Warto również zauważyć, że PHP obsługuje zarówno liczby w formacie dziesiętnym, jak i w notacji naukowej. Dobrą praktyką jest używanie funkcji takich jak round() do zaokrąglania wyników obliczeń zmiennoprzecinkowych, aby uniknąć problemów z precyzją, które mogą występować w wyniku ograniczeń reprezentacji liczb zmiennoprzecinkowych w pamięci komputera. W dokumentacji PHP, typ float jest jasno zdefiniowany jako liczba zmiennoprzecinkowa, co podkreśla jego kluczową rolę w różnych zastosowaniach programistycznych. Zrozumienie tego typu zmiennych jest fundamentem dla efektywnego programowania w PHP.

Pytanie 39

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
B. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
C. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
D. Kolejnymi liczbami od 0 do 9 i wypisanie ich
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 40

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie 100,200>, należy użyć:

A. if(liczba<100 || liczba>=200)
B. if(liczba>100 && liczba <=200)
C. if (liczba>100 || liczba<=200)
D. if(liczba<100 && liczba<=200)
Aby sprawdzić, czy liczba znajduje się w przedziale od 100 do 200 włącznie w języku JavaScript, należy użyć operatora logicznego AND (&&). Wyrażenie if(liczba > 100 && liczba <= 200) oznacza, że liczba musi być większa niż 100 oraz jednocześnie mniejsza lub równa 200. Przykład: jeśli mamy liczby 150 i 250, to 150 spełnia warunki tego warunku (jest większa od 100 i mniejsza lub równa 200), podczas gdy 250 nie spełnia (jest większa od 200). Kluczowe jest zrozumienie operatorów porównania oraz logicznych w JavaScript. Zgodnie z ECMAScript, językiem, na którym oparty jest JavaScript, użycie operatora AND w tym kontekście jest standardowym podejściem do określenia, czy wartość znajduje się w danym przedziale. Poprawne użycie tych operatorów jest istotne dla logiki programów oraz dostosowywania warunków do różnych sytuacji, co jest niezbędne w codziennej pracy programisty.