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: 1 maja 2026 13:58
  • Data zakończenia: 1 maja 2026 14:19

Egzamin zdany!

Wynik: 20/40 punktów (50,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

Efekt przedstawiony na obrazie, wykonany za pomocą edytora grafiki rastrowej, to

Ilustracja do pytania
A. szum RGB.
B. rozmycie Gaussa.
C. grawerowanie.
D. pikselizacja.
Twoja odpowiedź jest prawidłowa! Wybrany efekt to pikselizacja. Pikselizacja polega na zmniejszeniu rozdzielczości obrazu do poziomu, gdy każdy piksel staje się widoczny dla oka. Efekt ten charakteryzuje się wyraźnymi, dużymi blokami pikseli tworzącymi obraz. Jest to efekt często stosowany w grafice komputerowej, szczególnie w celu nadania grafice stylu retro. Pikselizacja była też kluczowym elementem estetyki gier wideo z lat 80. i 90., kiedy to technologiczne ograniczenia sprzętowe wymuszały korzystanie z niskiej rozdzielczości obrazu. W dzisiejszych czasach efekt pikselizacji jest często stosowany celowo, dla uzyskania określonego efektu artystycznego lub dla celów nostalgicznych. Warto jednak pamiętać, że nadmierne pikselizowanie obrazu może prowadzić do utraty szczegółów, dlatego zawsze warto dobrze przemyśleć zastosowanie tego efektu.

Pytanie 2

Do jakich zadań można wykorzystać program FileZilla?

A. kompilowania skryptu na stronie
B. sprawdzania poprawności strony internetowej
C. publikacji strony internetowej
D. analizowania skryptu na stronie
FileZilla to popularny klient FTP (File Transfer Protocol), który umożliwia przesyłanie plików między lokalnym komputerem a serwerem internetowym. Jego głównym zastosowaniem jest publikacja stron internetowych, co oznacza, że dzięki FileZilla można łatwo przenieść pliki HTML, CSS, JavaScript oraz inne zasoby na serwer, gdzie strona stanie się dostępna w Internecie. Przykładowo, jeśli stworzyłeś stronę w lokalnym środowisku, FileZilla pozwala na połączenie się z serwerem docelowym, a następnie na przesłanie wszystkich niezbędnych plików. Dobre praktyki branżowe zalecają również zarządzanie wersjami i regularne aktualizacje witryn, a FileZilla wspiera te procesy, umożliwiając łatwe synchronizowanie lokalnych katalogów z zawartością serwera. Dodatkowo, FileZilla obsługuje różne protokoły, takie jak SFTP czy FTPS, co zwiększa bezpieczeństwo transferu danych. Właściwe korzystanie z tego narzędzia jest kluczowe dla zapewnienia prawidłowego działania witryn oraz ich efektywnej publikacji.

Pytanie 3

Zaproponowany blok ilustruje operację

Ilustracja do pytania
A. załadowania lub przedstawienia danych
B. wykorzystania wcześniej zdefiniowanej procedury lub funkcji
C. realizacji zadania w pętli
D. podjęcia decyzji
Podjęcie decyzji w programowaniu jest kluczowym elementem umożliwiającym dynamiczne i warunkowe działania w aplikacjach. Symbolicznie, blok decyzyjny w diagramie przepływu, takim jak przedstawiony na obrazku, oznacza punkt, w którym program sprawdza określony warunek i w zależności od jego wyniku podejmuje różne ścieżki działania. Jest to często implementowane przy użyciu struktur decyzyjnych takich jak instrukcje if-else w wielu językach programowania. Na przykład w języku Python decyzję można wyrazić jako if temperatura > 30: print('Gorąco') else: print('Chłodno'). Decyzje te pozwalają programowi reagować na zmieniające się warunki i dane wejściowe, co jest niezbędne w tworzeniu interaktywnych aplikacji czy systemów sterowania. Zgodnie z dobrymi praktykami w inżynierii oprogramowania, właściwe stosowanie bloków decyzyjnych sprzyja czytelności kodu i efektywności jego działania. Dodatkowo, w większych projektach często stosuje się wzorce projektowe takie jak stan lub strategia, które opierają się na mechanizmach decyzyjnych, pomagając zarządzać złożonością kodu i poprawiać jego skalowalność.

Pytanie 4

Element

<meta charset="utf-8">
definiuje metadane dotyczące strony internetowej, odnosząc się do
A. języka witryny
B. opisu witryny
C. słów kluczowych
D. kodowania znaków
Ten element <meta charset="utf-8"> jest naprawdę ważny w nagłówku stron HTML, bo to on mówi przeglądarkom, jak odczytywać znaki w Twoim dokumencie. Dzięki temu tekst wyświetla się poprawnie na różnych urządzeniach. UTF-8 jest najbardziej popularnym kodowaniem, bo obsługuje niemal wszystkie znaki z różnych języków, co sprawia, że Twoja strona może być bardziej uniwersalna. Na przykład, jeśli masz tekst po polsku, to użycie UTF-8 upewnia się, że takie znaki jak ą czy ć będą prawidłowo pokazane. Właśnie dlatego warto stosować UTF-8, bo to, co zaleca W3C, jest bardzo sensowne - chodzi przecież o to, żeby strona była dostępna dla każdego, niezależnie od tego, z jakiego języka korzysta.

Pytanie 5

W formularzu wartość z pola input o typie number została przypisana do zmiennej a i następnie przetworzona w skrypcie JavaScript w poniższy sposób. Jaki typ będzie miała zmienna z?

var z = parseFloat(a);
A. napisowego
B. liczbowego, całkowitego
C. zmiennoprzecinkowego
D. NaN
W kontekście działania funkcji parseFloat() ważne jest zrozumienie, dlaczego niektóre odpowiedzi mogą być błędne. Funkcja ta przetwarza dane tekstowe na liczby zmiennoprzecinkowe, więc oczekiwanie, że wynik będzie typu liczbowego całkowitego, jest nieprawidłowe. Bardzo często pojawia się błędne założenie, że skoro do funkcji przekazano liczbę całkowitą, to wynik również powinien być typu całkowitego. W rzeczywistości parseFloat() zawsze zwraca typ zmiennoprzecinkowy, co ma na celu zapewnienie elastyczności w przetwarzaniu zarówno liczb całkowitych, jak i dziesiętnych. Kolejnym nieporozumieniem jest oczekiwanie, że funkcja zwróci NaN. Taka sytuacja miałaby miejsce tylko wtedy, gdyby łańcuch zaczynał się od znaków niemożliwych do zinterpretowania jako liczba. Błędne jest również przypuszczenie, że wynik będzie typu tekstowego czy napisowego, ponieważ głównym celem parseFloat() jest konwersja tekstu do liczby, a nie odwrotnie. Zrozumienie tych subtelności pozwala uniknąć typowych błędów myślowych, takich jak zakładanie, że wszystkie wartości pochodzące z pól input zawsze mają poprawny typ przed interpretacją. Warto przy tym pamiętać o dobrych praktykach w programowaniu, które nakazują świadome zarządzanie typami danych, zwłaszcza w językach dynamicznie typowanych, jakim jest JavaScript. Dzięki temu programy stają się bardziej odporne na błędy wynikające z nieoczekiwanych typów danych.

Pytanie 6

W języku PHP wartość 1 została przypisana do zmiennej $a. Porównanie $a === $b zwraca true, gdy zmienna $b ma wartość

A. D. "1" lub '1'
B. A. *1
C. C. 1 lub '1'
D. B. '1'
W przypadku użycia operatora == w porównaniu zmiennych w PHP, może dojść do automatycznej konwersji typów, co prowadzi do niejasnych wyników. Wiele osób myśli, że porównanie zmiennej typu integer z zmienną typu string zawsze będzie zachodzić poprawnie, co jest jednym z najczęstszych błędów. Na przykład, jeśli zmienna $b jest zainicjowana wartością '1' (string), operator == zwróci true, ponieważ PHP automatycznie przekształci string na liczbę przed porównaniem. To podejście może prowadzić do nieprzewidywalnych wyników, gdy porównujemy różne typy danych, co może być źródłem błędów w bardziej złożonych aplikacjach. Ponadto, w kontekście programowania w PHP, praktyki związane z silnym typowaniem zyskują na znaczeniu, a operator === staje się preferowany, ponieważ zapewnia większą przewidywalność i bezpieczeństwo kodu. Używanie operatora == może prowadzić do sytuacji, gdzie programista nie jest świadomy, że różne typy danych są porównywane, co może skutkować nieprawidłowymi wynikami. Warto również rozważyć, że w przypadku porównania z typem string, takie jak '1', PHP zastosuje konwersję, co może prowadzić do błędów, jeśli nie jesteśmy świadomi tej konwencji. Dlatego kluczowe jest zrozumienie różnicy między tymi operatorami, aby uniknąć niezamierzonych konsekwencji w logicznych warunkach w kodzie.

Pytanie 7

Jakie jest zastosowanie programu debugger?

A. interpretacji kodu w wirtualnej maszynie Java
B. analizy wykonywanego programu w celu lokalizacji błędów
C. tłumaczenia kodu napisanego w języku wyższego poziomu na język maszynowy
D. badania kodu źródłowego w celu znalezienia błędów składniowych
Interpretacja kodu w wirtualnej maszynie Java odnosi się do działania maszyny wirtualnej, która wykonuje kod bajtowy stworzony przez kompilatory języków programowania, takich jak Java. Chociaż maszyna wirtualna jest istotna w procesie uruchamiania aplikacji Java, nie jest to funkcjonalność debuggera, który ma na celu inną rolę. Podobnie, analiza kodu źródłowego w celu odnalezienia błędów składniowych to proces, który wykonuje kompilator przed uruchomieniem programu. Debugger nie zajmuje się analizą składni, lecz koncentruje się na wykrywaniu błędów podczas wykonywania kodu. Tłumaczenie kodu zapisanego w języku wyższego poziomu na język maszynowy jest zadaniem kompilatora, a nie debuggera. Debugger działa na poziomie wykonania programu, a nie na poziomie jego kompilacji, co jest kluczowym aspektem odróżniającym te dwie funkcjonalności. Poprawne zrozumienie ról kompilatora i debuggera jest niezbędne, aby uniknąć mylnych wniosków dotyczących procesów tworzenia i uruchamiania oprogramowania.

Pytanie 8

Które z poniższych stwierdzeń jest poprawne w kontekście grafiki rastrowej?

A. Podczas skalowania obraz nie traci na jakości.
B. Obraz zapisywany jest za pomocą figur geometrycznych rozmieszczonych w układzie współrzędnych.
C. Jest to przedstawienie obrazu poprzez siatkę pikseli, które są odpowiednio kolorowane w układzie pionowo-poziomym na ekranie komputera, drukarce lub innym urządzeniu wyjściowym.
D. Grafika rastrowa nie jest zapisywana w formacie WMF (ang. Windows Metafile Format - format metaplików Windows).
Pierwsza z podanych odpowiedzi jest niepoprawna, ponieważ podczas skalowania grafiki rastrowej, obraz traci na jakości. Piksele, które składają się na obraz, muszą być rozciągane lub kompresowane, co prowadzi do rozmycia lub zniekształcenia detali obrazu. Kolejna nieprawidłowa odpowiedź sugeruje, że grafika rastrowa jest opisywana za pomocą figur geometrycznych w układzie współrzędnych, co jest mylące, gdyż to opisuje grafikę wektorową, która wykorzystuje matematyczne formuły do tworzenia obrazów. Grafika wektorowa jest skalowalna bez utraty jakości, co jest jej główną zaletą w porównaniu do grafiki rastrowej. Ostatnia nieprawidłowa odpowiedź wskazuje, że grafika rastrowa nie jest zapisywana w formacie WMF. Zdecydowanie jest to fałszywe stwierdzenie, ponieważ WMF, czyli Windows Metafile Format, obsługuje zarówno grafikę wektorową, jak i rastrową. W rzeczywistości wiele programów graficznych pozwala na zapis obrazów rastrowych w tym formacie, co czyni tę odpowiedź całkowicie nieprawdziwą. Zrozumienie różnic między tymi typami grafiki jest kluczowe dla ich właściwego zastosowania w projektach graficznych.

Pytanie 9

Po uruchomieniu poniższego kodu PHP na ekranie ukaże się bieżąca data w formacie:

echo date("Y-m");
A. tylko rok
B. dzień oraz rok
C. rok oraz miesiąc
D. dzień, miesiąc, rok
Odpowiedź "rok i miesiąc" jest prawidłowa, ponieważ funkcja date() w PHP, kiedy wykorzystujemy format "Y-m", zwraca datę w formacie roku, np. 2023, oraz miesiąca w postaci dwucyfrowej, np. 09 dla września. Warto zrozumieć, że format "Y" generuje czterocyfrowy rok, natomiast "m" generuje dwucyfrowy miesiąc. To podejście jest często wykorzystywane w aplikacjach webowych do prezentacji dat w sposób zrozumiały dla użytkowników, a także do grupowania danych według miesięcy w bazach danych. Przykładowo, w systemach raportowania finansowego, często wykorzystuje się ten format do agregacji danych sprzedażowych według miesięcy, co ułatwia analizę wyników. Użycie odpowiednich standardów w formacie daty wspomaga utrzymanie spójności i czytelności danych w różnych systemach informatycznych.

Pytanie 10

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
B. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
C. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
D. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
Odpowiedź jest prawidłowa, ponieważ proces normalizacji sygnału dźwiękowego faktycznie polega na dostosowywaniu głośności nagrania w taki sposób, aby najgłośniejszy fragment osiągał maksymalny poziom na skali. W praktyce, jeżeli najgłośniejszy element sygnału osiąga połowę skali, program do obróbki dźwięku zwiększa głośność wszystkich innych fragmentów, aby najgłośniejszy osiągnął pełną głośność. To działanie jest zgodne z powszechnie przyjętymi standardami normalizacji dźwięku, które zapewniają, że nagrania mają spójny poziom głośności, co jest istotne w produkcji audio, aby nie występowały nagłe zmiany głośności pomiędzy różnymi utworami. Normalizacja jest szczególnie przydatna w kontekście przygotowywania materiałów do publikacji, takich jak albumy muzyczne czy podcasty, gdzie istotne jest, by słuchacz nie musiał regulować głośności podczas odtwarzania różnych nagrań. Przykładem może być album muzyczny, gdzie różne utwory mogą mieć różne poziomy nagrania, a normalizacja pozwala na ich wyrównanie w celu uzyskania jednolitego doświadczenia słuchowego.

Pytanie 11

Jakie jest zadanie poniższej pętli? ```int x = 0; while (x < 10) { mojeKsiazki[x] = new Ksiazka(); x++; }```

A. stworzenie dziesięciu instancji obiektów typu Ksiazka.
B. wyświetlenie danych z tabeli Ksiazka na ekranie.
C. uzupełnienie tablicy Ksiazka danymi.
D. stwórzenie jednego obiektu typu mojeKsiazki
Analizując dostępne odpowiedzi, można zauważyć szereg nieprawidłowych koncepcji w odniesieniu do działania pętli while. Odpowiedź sugerująca wypełnienie tabeli Ksiazka danymi wskazuje na nieporozumienie, ponieważ pętla nie wprowadza żadnych danych do obiektów Ksiazka; zamiast tego jedynie tworzy ich instancje. Kolejna odpowiedź, dotycząca wypisywania danych na ekranie, jest również błędna, ponieważ w przedstawionym kodzie nie ma żadnej operacji wyświetlania danych, a jedynie przypisanie nowych obiektów do tablicy. Trzecia niepoprawna koncepcja, związana z utworzeniem jednego obiektu typu mojeKsiazki, myli się co do natury tablic. Tablica mojeKsiazki jest jedną zmienną przechowującą wskaźniki do utworzonych obiektów typu Ksiazka, a nie pojedynczym obiektem. W kontekście programowania obiektowego istotne jest zrozumienie różnicy pomiędzy instancjami klas a kolekcjami tych instancji, co jest kluczowe dla efektywnego zarządzania pamięcią i strukturami danych. Typowe błędy myślowe, które prowadzą do takich wniosków, to brak znajomości podstawowych zasad programowania obiektowego oraz mylenie operacji na obiektach z operacjami na tablicach lub innych strukturach danych. Ważne jest, aby każdy programista zrozumiał, jak działają pętle oraz jak skutecznie tworzyć i zarządzać obiektami w ramach tablic czy kolekcji.

Pytanie 12

Który z poniższych fragmentów kodu JavaScript zwróci true?

A. "def" > "abc"
B. "abc" > "def"
C. "ab" > "c"
D. "a" > "b"
Porównania 'a' > 'b', 'ab' > 'c' oraz 'abc' > 'def' nie zwracają wartości true z powodu zasad leksykalnego porównania ciągów tekstowych w JavaScript. W pierwszym przypadku, porównując 'a' do 'b', 'a' ma wartość Unicode 97, a 'b' wartość 98. Ponieważ 97 jest mniejsze niż 98, porównanie zwraca false. W drugim przypadku, 'ab' i 'c' są analizowane w ten sposób, że 'a' (97) jest mniejsze niż 'c' (99), co również skutkuje wynikiem false, ponieważ porównanie zaczyna się od pierwszych znaków. Ostatnie porównanie 'abc' > 'def' także zwraca false, ponieważ pierwszy znak 'd' (100) jest większy niż 'a' (97), co sprawia, że całe porównanie jest fałszywe. Warto zauważyć, że w przypadku porównań ciągów tekstowych, wielkość liter ma wpływ na wynik, dlatego 'A' będzie mniejsze od 'a', co może prowadzić do nieporozumień, szczególnie przy pracy z danymi użytkowników lub przy sortowaniu. Zrozumienie tych zasad jest kluczowe dla programistów, aby unikać błędów logicznych w kodzie.

Pytanie 13

Język PHP zapewnia wsparcie dla

A. obiektów przeglądarki
B. klawiszy klawiatury
C. sesji i ciastek
D. zdarzeń związanych z myszą
PHP, jako język skryptowy po stronie serwera, oferuje wsparcie dla zarządzania sesjami oraz ciasteczkami, co jest kluczowe w kontekście tworzenia aplikacji internetowych. Sesje w PHP umożliwiają przechowywanie danych użytkownika pomiędzy różnymi żądaniami HTTP, co jest istotne w przypadku potrzeb utrzymania stanu aplikacji, np. podczas logowania. Dzięki funkcjom takim jak session_start() można łatwo rozpocząć nową sesję lub wznowić istniejącą. Ciasteczka, z kolei, pozwalają na przechowywanie danych po stronie klienta, co umożliwia personalizację doświadczeń użytkowników na stronie. Przykładem może być zapisywanie preferencji użytkownika, takich jak język interfejsu. Dobre praktyki w zakresie obsługi sesji i ciasteczek obejmują stosowanie bezpiecznych identyfikatorów sesji, ograniczanie czasu życia ciasteczek, a także ich szyfrowanie, co chroni przed atakami typu session hijacking. W ten sposób PHP gwarantuje, że aplikacje są nie tylko funkcjonalne, ale także bezpieczne.

Pytanie 14

Po wykonaniu kodu PHP zostanie wyświetlona aktualna data zawierająca jedynie
echo date("Y");

A. rok
B. dzień
C. dzień i miesiąc
D. miesiąc i rok
Odpowiedź \"rok\" jest prawidłowa, ponieważ funkcja `date()` w PHP, w przypadku użycia formatu \"Y\", zwraca czterocyfrowy rok bieżącej daty. Funkcja ta jest kluczowa w kontekście programowania w PHP, szczególnie gdy chodzi o zarządzanie datami i czasem. W praktyce, używanie tej funkcji jest niezwykle istotne w aplikacjach internetowych, gdzie często jest potrzebne wyświetlenie daty w różnych formach. Na przykład, w systemach zarządzania treścią (CMS) można stosować funkcję `date()` do automatycznego generowania daty publikacji artykułów. Warto również zaznaczyć, że PHP oferuje różne formaty dla dat, a stosowanie standardów, takich jak format ISO 8601, może być przydatne w przypadku wymiany danych z innymi systemami. Używanie `date("Y")` to dobra praktyka, aby uniknąć problemów z lokalizacją i zapewnić spójność w wyświetlaniu daty na stronach internetowych."

Pytanie 15

W CSS, co spowoduje poniższy kod z plikiem rysunek.png?

p {background-image: url("rysunek.png");}
A. tłem dla każdego akapitu
B. widoczny, jeśli zastosowany zostanie znacznik img w kodzie
C. tłem całej witryny
D. pokazany obok każdego akapitu
Rozważmy niepoprawne odpowiedzi które dotyczą innych zastosowań obrazów w CSS. Pierwsza sugestia że obraz będzie tłem całej strony jest błędna ponieważ aby to osiągnąć należałoby przypisać właściwość background-image do selektora body a nie p. Tylko wtedy obraz tła obejmowałby całą stronę. Z kolei odpowiedź sugerująca że obraz zostanie wyświetlony przy użyciu znacznika img również nie jest prawidłowa w kontekście kodu CSS który odnosi się do tła a nie do wstawiania obrazów jako treści dokumentu HTML. Taki efekt można uzyskać tylko poprzez odpowiednie osadzenie obrazu w kodzie HTML a nie za pomocą właściwości background-image. Trzecia niepoprawna sugestia że obraz będzie wyświetlany obok każdego paragrafu jest niezgodna z działaniem CSS dla tła. W rzeczywistości ustawienie background-image wpływa tylko na tło elementu a nie na jego zewnętrzne ułożenie. Typowym błędem przy interpretacji znaczenia background-image jest założenie że wpływa on na pozycjonowanie czy zawartość w sposób inny niż wizualne tło co może prowadzić do nieporozumień w kontekście projektowania stron internetowych. Ważne jest zrozumienie że background-image w CSS służy jedynie do dekoracyjnego aspektu wewnątrz danego selektora i nie zmienia struktury dokumentu HTML co stanowi kluczowy element w projektowaniu responsywnych i estetycznych stron www.

Pytanie 16

W zaprezentowanym schemacie bazy danych o nazwie biblioteka, składniki: czytelnik, wypożyczenie oraz książka są

Ilustracja do pytania
A. polami
B. encjami
C. atrybutami
D. krotkami
W modelowaniu relacyjnych baz danych encje są kluczowymi elementami, które reprezentują obiekty rzeczywistego świata, wokół których zbudowana jest struktura bazy. W przedstawionym diagramie bazy danych biblioteki encjami są czytelnik wypozyczenie i ksiazka. Każda z tych encji posiada swoje własne atrybuty, które opisują jej właściwości na przykład encja czytelnik ma takie atrybuty jak imię nazwisko i adres. W kontekście praktycznym encje są odwzorowywane na tabele w bazie danych gdzie wiersze tabeli reprezentują poszczególne instancje encji a kolumny reprezentują atrybuty. Rozumienie różnicy między encjami a atrybutami jest istotne dla efektywnego projektowania baz danych zgodnie z dobrymi praktykami takimi jak normalizacja, która pomaga unikać redundancji danych. W związku z tym prawidłowe zrozumienie i identyfikacja encji ma kluczowe znaczenie w budowaniu skalowalnych i wydajnych baz danych. W praktyce analizy danych encje są podstawą do tworzenia modeli relacyjnych które umożliwiają generowanie raportów i analizowanie danych w sposób zorganizowany i logiczny

Pytanie 17

Zapis tagu HTML w formie <a href="#hobby">przejdź</a>?

A. jest poprawny, po kliknięciu w odnośnik otworzy się strona internetowa o adresie "hobby"
B. jest błędny, niepoprawnie użyto znaku "#" w atrybucie href
C. jest błędny, w atrybucie href trzeba wpisać adres URL
D. jest poprawny, po kliknięciu w odnośnik aktualna strona zostanie przewinięta do elementu o nazwie "hobby"
Myślenie, że znacznik <a href="#hobby">przejdź</a> jest błędny, bo używasz znaku '#' w href, jest trochę mylące. Ten znak '#' to normalny sposób, żeby wskazać lokalne odnośniki na tej samej stronie, co jest zgodne z regułami HTML. Nie jest prawdą, że musi być cały adres URL, bo lokalne identyfikatory są jak najbardziej w porządku. Często spotykam się z przekonaniem, że href zawsze powinien prowadzić do zewnętrznego linku, a to nieprawda. Wiele stron korzysta z lokalnych linków, co naprawdę sprawdza się w długich treściach, pozwalając użytkownikom szybko przechodzić do tych sekcji, które ich interesują. Nie można też myśleć, że tylko absolutne identyfikatory w href są jedynym słusznym rozwiązaniem, bo to podejście z lokalnymi odnośnikami jest powszechnie akceptowane i sprawdza się w praktyce.

Pytanie 18

Pętla zapisana w języku PHP wstawi do tablicy liczby:

$x = 0;
for ($i = 0; $i < 10; $i++)
{
    $tabl[$i] = $x;
    $x = $x + 10;
}
A. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
B. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
C. 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
D. 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
Niestety, Twoja odpowiedź jest nieprawidłowa. Błędne odpowiedzi sugerują, że pętla wstawia do tablicy liczby od 0 do 9 lub od 10 do 100, albo od 0 do 10. To jest niepoprawne, ponieważ pętla zaczyna się od $x = 0 i wykonuje się 10 razy ($i od 0 do 9), a w każdej rundzie pętli wartość $x jest zwiększana o 10. Dlatego po 10 rundach w tablicy znajdują się liczby: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90. Wybór innej odpowiedzi może wynikać z błędnego zrozumienia działania pętli albo mylenia różnych rodzajów pętli, które mają różne zastosowania. Pętle są fundamentalnym elementem każdego języka programowania, w tym PHP, dlatego warto zrozumieć ich działanie. Proszę poświęcić więcej czasu na zrozumienie tego tematu, ponieważ jest to podstawa do dalszego programowania.

Pytanie 19

Jak w języku PHP można przypisać wartość 4 do zmiennej sesyjnej o nazwie wyborID?

A. session.wyborID = 4;
B. $_SESSION["wyborID"] = 4;
C. session.wyborID = {4};
D. $_SESSION[4] = wyborID;
Poprawna odpowiedź to $_SESSION["wyborID"] = 4;, ponieważ w PHP zmienne sesji są przechowywane w superglobalnej tablicy $_SESSION. Aby ustawić wartość zmiennej sesji, należy przypisać danej zmiennej wartość w tym kontekście. W tym przypadku, przypisujemy wartość 4 do klucza "wyborID" w tablicy $_SESSION. Poprawne użycie podwójnych cudzysłowów dla klucza jest istotne, ponieważ pozwala na prawidłowe interpretowanie klucza jako ciągu znaków. Dobrą praktyką jest również zawsze sprawdzanie, czy sesje są poprawnie uruchomione przed ich użyciem, co można osiągnąć poprzez wywołanie funkcji session_start(). Przykład użycia może wyglądać tak: session_start(); $_SESSION["wyborID"] = 4; Warto wiedzieć, że sesje w PHP są szeroko stosowane do przechowywania danych użytkownika między różnymi stronami, co jest kluczowe dla aplikacji webowych wymagających autoryzacji lub personalizacji.

Pytanie 20

Walidacja strony internetowej polega na

A. reklamowaniu strony
B. umieszczaniu treści w sieci
C. sprawdzeniu jej w celu usunięcia błędów
D. zestawie działań mających na celu zwiększenie liczby odwiedzin
Proces walidacji strony internetowej polega na systematycznym sprawdzeniu jej zawartości oraz struktury w celu identyfikacji i eliminacji błędów, które mogą wpływać na jej funkcjonalność oraz użyteczność. Walidacja to kluczowy etap w cyklu życia strony, ponieważ zapewnia, że strona działa zgodnie z wymaganiami technicznymi i standardami branżowymi, takimi jak W3C. Przykłady zastosowania walidacji obejmują sprawdzanie poprawności kodu HTML, CSS oraz dostępności, co jest istotne dla zapewnienia pozytywnego doświadczenia użytkowników. Strony internetowe, które są walidowane, mają większe szanse na lepsze pozycjonowanie w wyszukiwarkach, co przekłada się na wyższą oglądalność. Regularna walidacja jest również zgodna z najlepszymi praktykami w zakresie utrzymania jakości i bezpieczeństwa, co w dłuższej perspektywie wspiera reputację marki i zaufanie użytkowników.

Pytanie 21

Zapis w języku JavaScript:

x = przedmiot.nazwa();
wskazuje, że
A. Zmienna x będzie przechowywać rezultat wykonania metody nazwa.
B. nazwa jest polem w klasie przedmiot.
C. Zmienna x będzie przechowywać rezultat działania funkcji przedmiot.
D. nazwa stanowi właściwość obiektu przedmiot.
W kontekście przedstawionego pytania, niepoprawne odpowiedzi sugerują nieporozumienia dotyczące struktury obiektów w JavaScript oraz różnicy pomiędzy metodami a właściwościami. W szczególności, wskazanie, że nazwa jest właściwością obiektu przedmiot, jest mylne, ponieważ w tej konstrukcji 'nazwa' nie jest statycznym atrybutem, lecz metodą, co implikuje, że jest funkcją, a nie prostą wartością. Istotne jest zrozumienie, że właściwości obiektów przechowują dane, ale metody wykonują operacje na tych danych. Dodatkowo, mylenie metody z polem klasy prowadzi do błędnego postrzegania obiektów. W JavaScript, metody są funkcjami przypisanymi do obiektów, podczas gdy pola klasy, nazywane właściwościami, są zupełnie innym bytem. Typowe błędy myślowe w tym kontekście obejmują również nieznajomość pojęcia kontekstu wykonania, który w JavaScript jest kluczowy dla zrozumienia, jak metody działają w odniesieniu do obiektów. Właściwe zrozumienie tych różnic jest fundamentalne dla efektywnego programowania obiektowego. Używanie obiektów w JavaScript powinno opierać się na jasnym rozróżnieniu pomiędzy ich właściwościami a funkcjami, co skutkuje bardziej zorganizowanym i zrozumiałym kodem.

Pytanie 22

Który z modyfikatorów określa opisany w ramce przypadek? Metoda i zmienna są dostępne wyłącznie dla innych metod tej samej klasy

A. public
B. private
C. static
D. protected
Modyfikator 'private' w języku programowania, takim jak Java czy C#, oznacza, że dana metoda lub zmienna jest dostępna wyłącznie wewnątrz własnej klasy. Oznacza to, że nie można uzyskać dostępu do tych elementów z zewnątrz klasy, co zwiększa bezpieczeństwo i hermetyzację kodu. Przykład zastosowania: jeśli masz klasę 'Samochód', a w niej prywatną metodę 'uruchomSilnik()', to można ją wywołać jedynie z innych metod tej samej klasy, takich jak 'jedź()' lub 'stop()'. Dzięki temu możesz mieć pewność, że mechanizmy sterujące silnikiem nie będą modyfikowane z zewnątrz, co może prowadzić do nieprzewidywalnych zachowań. Oprócz tego, stosowanie modyfikatora 'private' jest zgodne z zasadą enkapsulacji, co jest jedną z fundamentalnych zasad programowania obiektowego. Zaleca się używanie 'private' dla tych elementów, które nie powinny być dostępne dla innych części programu, co pozwala na lepsze zarządzanie kodem i jego testowalność.

Pytanie 23

W CSS, poniższy zapis spowoduje, że czerwony kolor zostanie zastosowany do

h1::first-letter {color:red;}
A. pierwsza litera nagłówka drugiego poziomu
B. pierwsza linia akapitu
C. pierwsza litera nagłówka pierwszego poziomu
D. tekst nagłówka pierwszego poziomu
Wiesz, użycie selektora CSS ::first-letter w połączeniu z stylem h1 to fajny sposób na zmianę wyglądu pierwszej litery w nagłówku. Kiedy używasz tego, kolor czerwony sprawi, że ta litera będzie się wyróżniać, co jest super, zwłaszcza w przypadku nagłówków czy akapitów. To technika, którą często stosuje się w projektowaniu stron, żeby nadać im trochę typograficznego stylu, jak w książkach z dużymi inicjałami. Ale pamiętaj, że ten selektor działa tylko z blokowymi elementami, takimi jak <p> czy <h1>, więc jeżeli spróbujesz zastosować go z elementami liniowymi, to niestety efekty nie będą takie, jak się spodziewasz. Zawsze warto też mieć na uwadze standardy W3C, bo one pomagają w tworzeniu dostępnych stron. No i ten selektor jest częścią specyfikacji CSS Pseudo-Elements Level 3, więc przeglądarki go dobrze wspierają. Zrozumienie, jak i kiedy stosować takie selektory, to klucz do tworzenia nowoczesnych stron.

Pytanie 24

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. wypisanie wszystkich liczb w przedziale od a do b
B. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
C. zwrócenie parzystych wartości liczb od a do b
D. wypisanie liczb parzystych w zakresie od a do b
W przypadku pierwszej błędnej odpowiedzi, najważniejszy błąd to myślenie, że funkcja zwraca wartości parzyste jak zwykły wynik. W rzeczywistości funkcja wypisuje te liczby na stronie za pomocą document.write(), więc to jest kluczowy szczegół. Druga niepoprawna odpowiedź jest na dobrej drodze, ale myli się w interpretacji 'wypisania liczb parzystych z przedziału od a do b'. Funkcja nie tylko wypisuje liczby parzyste, ale też sprawdza, czy a jest nieparzyste, i wtedy zmienia tę wartość. Co do trzeciej błędnej odpowiedzi, sugeruje ona, że funkcja wypisuje wszystkie liczby między a a b, co jest zupełnie błędne, bo pętla for zwiększa n o 2, więc tylko parzyste liczby się pojawią. Rozumienie jak działa pętla for oraz operator modulo jest kluczowe, żeby dobrze zrozumieć tę funkcję. Jeśli nie ogarniasz tych podstaw, ciężko będzie analizować kod w JavaScript i pisać lepsze programy.

Pytanie 25

Odizolowane środowisko ogólnego przeznaczenia, utworzone na fizycznym serwerze z wykorzystaniem technologii wirtualizacji, to

A. serwer dedykowany.
B. serwer VPS.
C. serwer aplikacji.
D. serwer DHCP.
Opis w pytaniu bardzo precyzyjnie wskazuje na wirtualizację i izolację środowiska, dlatego częste pomyłki wynikają głównie z mieszania pojęć różnych typów serwerów. Serwer aplikacji to przede wszystkim rola programowa – oprogramowanie, które uruchamia logikę aplikacji (np. Tomcat, WildFly, Node.js, serwer PHP-FPM). Może działać na VPS-ie, na serwerze dedykowanym, a nawet na zwykłym hostingu współdzielonym. Nie jest to jednak samo w sobie „odizolowane środowisko” stworzone przez wirtualizację sprzętową, tylko usługa działająca w ramach jakiegoś systemu operacyjnego. Z mojego doświadczenia wiele osób myli tu warstwę systemową z warstwą aplikacyjną. Serwer dedykowany natomiast to fizyczna maszyna przeznaczona dla jednego klienta. Owszem, można na nim tworzyć wiele odizolowanych środowisk (np. kilka VPS-ów), ale sam w sobie nie jest „odizolowanym środowiskiem utworzonym przy użyciu wirtualizacji”. On jest właśnie tą bazą sprzętową, na której dopiero instalujemy hypervisor i tworzymy serwery VPS. W języku branżowym mówi się, że serwer dedykowany to bare metal – goły metal, na którym dopiero budujemy warstwę wirtualizacji. Serwer DHCP z kolei to zupełnie inna kategoria – to usługa sieciowa służąca do automatycznego przydzielania adresów IP, masek, bram domyślnych i DNS-ów w sieci lokalnej. Może działać na routerze, na serwerze fizycznym, na VPS-ie, a nawet w systemie wbudowanym. Nie opisuje on w ogóle rodzaju środowiska, tylko konkretną funkcję w sieci. Typowy błąd myślowy przy tym pytaniu to skupianie się na słowie „serwer” zamiast na kluczowych fragmentach: „odizolowane środowisko ogólnego przeznaczenia” i „utworzone na fizycznym serwerze z wykorzystaniem technologii wirtualizacji”. Te dwie cechy razem są charakterystyczne właśnie dla VPS-a – wirtualnej maszyny logicznie wydzielonej z jednego, mocniejszego serwera fizycznego.

Pytanie 26

Z przedstawionych tabel Artykuly i Autorzy należy wybrać jedynie nazwiska autorów i tytuły ich artykułów, które zostały ocenione na 5. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = artykuly.id;
B. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id;
C. SELECT nazwisko, tytul FROM autorzy, artykuly WHERE ocena == 5;
D. SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;
Gratulacje! Wybrałeś poprawne zapytanie SQL, które dokładnie odpowiada na postawione pytanie. Zapytanie 'SELECT nazwisko, tytul FROM autorzy JOIN artykuly ON autorzy.id = autorzy_id WHERE ocena = 5;' jest prawidłowe, bo łączy dwie tabele 'autorzy' i 'artykuly' za pomocą klucza obcego 'autorzy_id' w tabeli 'artykuly'. Dzięki temu uzyskujemy dostęp do nazwisk autorów i tytułów artykułów. Dodatkowo, część 'WHERE ocena = 5' filtruje wyniki tak, aby wyświetlane były tylko te rekordy, gdzie ocena wynosi 5. To jest kluczowy element, który pozwala nam skupić się tylko na tych danych, które są istotne dla pytania. W praktyce, tego typu zapytania pomagają nam w analizie wydajności autorów i jakości artykułów, co jest niezwykle ważne w branży wydawniczej.

Pytanie 27

Który znacznik ma zastosowanie w sekcji body dokumentu HTML?

A. <title>
B. <meta>
C. <link>
D. <h2>
<h2> to znacznik nagłówka, który zgodnie ze specyfikacją HTML5 stosuje się właśnie w sekcji <body>. Nagłówki od <h1> do <h6> służą do strukturyzowania treści dokumentu, czyli tego, co realnie widzi użytkownik na stronie. W <body> umieszczamy całą zawartość prezentowaną w przeglądarce: teksty, nagłówki, obrazy, formularze, przyciski, listy itd. Moim zdaniem dobrze jest zapamiętać prostą zasadę: wszystko, co jest „treścią strony” dla użytkownika, ląduje w <body>, a wszystko, co jest „informacją o stronie” dla przeglądarki i wyszukiwarki – w <head>. Znacznik <h2> jest semantycznym nagłówkiem drugiego poziomu. Oznacza to, że powinien być używany jako podtytuł lub tytuł sekcji podrzędnej względem <h1>. Przykładowo: <h1>Temat strony</h1>, a niżej <h2>Podrozdział 1</h2>, <h2>Podrozdział 2</h2> itd. Taka struktura pomaga nie tylko użytkownikom, ale też czytnikom ekranowym, SEO i ogólnej czytelności kodu. Dobre praktyki mówią, żeby nie używać nagłówków tylko do „zwiększania czcionki”, ale właśnie do logicznego podziału treści. Do zmiany wyglądu służy CSS. W typowym dokumencie HTML mamy: <html>, w nim <head> z metadanymi i <body> z widoczną zawartością. <h2> musi znajdować się właśnie w <body>, bo jest elementem treści, a nie metadanych. Gdy zaczniesz pisać większe strony, poprawne wykorzystanie nagłówków bardzo ułatwia nawigację, generowanie spisów treści, a także utrzymanie projektu w ryzach, co w praktyce jest naprawdę ważne przy pracy zespołowej czy w dużych serwisach.

Pytanie 28

Po zrealizowaniu przedstawionego fragmentu kodu w języku C/C++ do zmiennej o nazwie zmienna2 przypisany zostanie ```int zmienna1 = 158; int *zmienna2 = &zmienna1;```

A. przypisana liczba w kodzie binarnym odpowiadająca wartości, która jest przechowywana w zmienna1
B. przypisana ta sama wartość, która jest przechowywana w zmienna1
C. przypisana zamieniona na łańcuch wartość, która jest przechowywana w zmienna1
D. przypisany adres zmiennej o nazwie zmienna1
W odpowiedziach 2, 3 i 4 pojawiają się błędne interpretacje tego, co właściwie dzieje się w kodzie. Odpowiedź 2 sugeruje, że zmienna2 otrzyma tę samą wartość, co zmienna1, co jest błędne, ponieważ zmienna2 jest wskaźnikiem, a nie zmienną przechowującą wartość. W C/C++ wskaźnik przechowuje adres, a nie samą wartość. Odpowiedź 3 zakłada, że wartość przechowywana w zmienna1 zostanie przekształcona na łańcuch, co jest również niepoprawne. Wskaźniki nie dokonują automatycznych konwersji wartości na inne typy, a operator '&' zwraca adres zmiennej, a nie jej wartość. Wreszcie, odpowiedź 4 sugeruje, że zmienna2 otrzyma liczbę binarną odpowiadającą wartości zmiennej zmienna1. To również jest nieprawdziwe, ponieważ adres pamięci jest reprezentowany w systemie heksadecymalnym lub dziesiętnym, a nie binarnym. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków często wynikają z niewłaściwego zrozumienia różnicy między wartością a adresem w kontekście wskaźników. Zrozumienie tego rozróżnienia jest kluczowe dla efektywnego programowania w C/C++ i unikania problemów z zarządzaniem pamięcią.

Pytanie 29

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. sumy.
B. części wspólnej.
C. grupowania.
D. wykluczenia.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 30

Baza danych księgarni zawiera tabelę o nazwie książki, w której znajdują się: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Aby wygenerować raport dotyczący sprzedanych książek z tytułami i nazwiskami autorów, co należy zrobić?

A. stworzyć kwerendę wyszukującą tytuły książek
B. przygotować dwie oddzielne kwerendy: pierwszą wyszukującą tytuły książek, drugą wyszukującą nazwiska autorów
C. zdefiniować relację 1..n pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
D. zdefiniować relację 1..1 pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
Wybranie odpowiedzi, która mówi tylko o tym, żeby stworzyć kwerendę do wyszukiwania tytułów książek, to nie jest dobry pomysł, bo nie bierze pod uwagę związku między książkami a autorami. Bez połączenia tych dwóch rzeczy raport byłby niespójny i brakowałoby ważnych informacji o autorach. Co do odpowiedzi, która mówi o relacji 1..1 - to też nie jest to prawda, bo tak naprawdę w naszym przypadku autorzy mogą mieć kilka książek, więc relacja powinna być 1..n. W innym wypadku, mogłoby to wprowadzić w błąd. Dodatkowo, robienie dwóch oddzielnych kwerend to nie jest efektywne podejście, bo nie integruje danych, a to jest kluczowe, gdy chcemy mieć pełny obraz sytuacji. Łączenie danych w jednej kwerendzie za pomocą JOIN to standard w analizie baz danych i daje lepszą organizację oraz czytelność wyników.

Pytanie 31

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. zmienną tekstową.
B. obiektem klasy stdClass.
C. ciągiem znaków zakodowanym w JSON.
D. tablicą asocjacyjną.
Poprawnie – w PHP zmienna superglobalna $_POST jest tablicą asocjacyjną, czyli zbiorem par klucz ⇒ wartość. Kluczami są nazwy pól formularza (atrybut name w HTML), a wartościami – dane przesłane metodą POST. Dzięki temu po stronie PHP możesz wygodnie odwoływać się do konkretnych pól, np.: $imie = $_POST['imie']; $email = $_POST['email'];. To jest bardzo naturalne, bo struktura formularza HTML też opiera się na nazwach pól, więc mapowanie na tablicę asocjacyjną jest po prostu praktyczne. Moim zdaniem ważne jest też zrozumienie, że $_POST zawsze jest tablicą (array w PHP), nawet jeśli w formularzu jest tylko jedno pole. Jeżeli użytkownik nic nie wyśle, to będzie to pusta tablica, a nie null czy ciąg znaków. Z mojego doświadczenia warto zawsze sprawdzać isset($_POST['nazwa']) albo używać filter_input(INPUT_POST, 'nazwa'), co jest zgodne z dobrymi praktykami bezpieczeństwa. $_POST jest jedną z tzw. superglobali, obok $_GET, $_SERVER, $_FILES, $_SESSION itd. Są one dostępne w całym skrypcie, niezależnie od zasięgu (scope) funkcji. W kontekście formularzy webowych przyjętym standardem jest: używamy $_GET do danych z adresu URL (zapytania typu ?id=5), a $_POST do danych z formularzy, szczególnie gdy przesyłamy hasła, większe teksty, dane wrażliwe. To jest zgodne z typową architekturą aplikacji webowych w PHP. Warto też wiedzieć, że wartości w $_POST są zawsze typu string (lub tablica stringów, gdy używasz nazw pól z nawiasami, np. name="interesy[]"), ale sama zmienna $_POST jest tablicą asocjacyjną. Dobra praktyka: nie ufaj ślepo zawartości $_POST – zawsze waliduj i filtruj dane wejściowe przed zapisaniem do bazy czy wyświetleniem użytkownikowi, żeby unikać np. XSS i SQL injection.

Pytanie 32

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.j = nazwa;
B. return this.j;
C. return this.jezyk;
D. this.jezyk = nazwa;
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 33

W notacji szesnastkowej kolor zielony reprezentowany jest jako #008000. Jaką wartość przyjmuje on w notacji RGB?

A. rgb(0, 160, 0)
B. rgb(0, 80, 0)
C. rgb(0, 100, 0)
D. rgb(0, 128, 0)
Wartość koloru zielonego w notacji szesnastkowej #008000 odpowiada w notacji RGB wartości rgb(0, 128, 0). W tym systemie kolorów każda składowa koloru (czerwony, zielony, niebieski) jest reprezentowana jako liczba całkowita w przedziale od 0 do 255, co odpowiada 8-bitowym wartościom. W przypadku koloru zielonego, składowa czerwonego ma wartość 0, składowa zielonego 128, a składowa niebieskiego także 0. W praktyce, RGB jest powszechnie stosowane w projektowaniu graficznym, programowaniu oraz w tworzeniu stron internetowych, gdzie kolory są definiowane w taki sposób, aby zapewnić szeroką gamę odcieni. Wartości RGB mogą być wykorzystywane w CSS do stylizacji elementów, co pozwala na precyzyjne odwzorowanie zamierzonych kolorów oraz estetyki. Stosując standardy webowe, umiejętność konwersji między różnymi formatami kolorów jest niezbędna, zwłaszcza w kontekście zapewnienia spójności wizualnej na różnych urządzeniach i platformach.

Pytanie 34

Które z podanych formatów NIE JEST zapisane w języku CSS?

Ilustracja do pytania
A. D
B. B
C. A
D. C
Odpowiedź C jest prawidłowa, ponieważ atrybut bgcolor jest przestarzałą metodą określania koloru tła w HTML i nie jest częścią CSS. CSS (Cascading Style Sheets) zostało stworzone, aby oddzielić prezentację dokumentu od jego struktury. Korzystanie z CSS pozwala na lepsze zarządzanie stylem i spójność w wyglądzie wielu stron internetowych. Atrybuty HTML związane z wyglądem, takie jak bgcolor, zostały zastąpione przez deklaracje w CSS. Na przykład w CSS można ustawić kolor tła całej strony za pomocą selektora body i właściwości background-color. Takie podejście jest bardziej elastyczne i zgodne z nowoczesnymi standardami. Dzięki CSS możliwe jest stosowanie zaawansowanych stylizacji, takich jak gradienty czy obrazy tła, które nie były dostępne w prostych atrybutach HTML. Przy projektowaniu stron internetowych zaleca się, aby unikać przestarzałych atrybutów HTML, które mogą być niekompatybilne z nowoczesnymi przeglądarkami i powodować problemy z dostępnością.

Pytanie 35

Fragment kodu napisany w języku JavaScript, który realizuje sumowanie dwóch liczb, wygląda następująco (zobacz ramka): Aby operacja dodawania odbywała się po naciśnięciu przycisku zatytułowanego "dodaj", należy w miejsce wykropkowane wprowadzić

Ilustracja do pytania
A. <button onclick="return dodaj()">dodaj</button>
B. <button onselect="return dodaj()">oblicz</button>
C. <button onselect="return dodaj()">dodaj</button>
D. <button onclick="return obliczj()">dodaj</button>
Wybór innych odpowiedzi wskazuje na niepełne zrozumienie sposobu przypisywania zdarzeń do elementów HTML w kontekście języka JavaScript. Atrybut onselect w HTML nie jest przeznaczony dla przycisków, lecz dla elementów tekstowych, takich jak input czy textarea, gdzie jest wykorzystywany do reagowania na wybór tekstu przez użytkownika. Zastosowanie onselect w kontekście przycisku jest niepoprawne, gdyż nie wywoła żadnej funkcji w odpowiedzi na kliknięcie użytkownika. Z kolei użycie niewłaściwej nazwy funkcji, jak w przypadku onselect="return dodaj()" dla przycisku "oblicz", wskazuje na błąd logiczny. Jeśli funkcja została nazwana dodaj() w kodzie JavaScript, musi być właśnie tak wywoływana. Zasady dobrego projektowania aplikacji webowych wymagają, aby atrybuty HTML odpowiadały zgodnie z ich przeznaczeniem, co zapewnia poprawne działanie i łatwość debugowania. Poprawne przypisanie zdarzeń to kluczowy aspekt w programowaniu interfejsów użytkownika, a błędne użycie atrybutów prowadzi do problemów z funkcjonalnością strony. Dlatego tak istotne jest zrozumienie i stosowanie właściwych atrybutów zdarzeń, co ułatwia rozwój i zarządzanie aplikacjami internetowymi.

Pytanie 36

Wskaż poprawne zdanie dotyczące poniższego polecenia. ```CREATE TABLE IF NOT EXISTS ADRES (ulica VARCHAR(70)) CHARACTER SET utf8); ```

A. Rekord tabeli nie może mieć wartości 3 MAJA
B. Nie można dodawać do tabeli ulic, które zawierają polskie znaki w nazwie
C. IF NOT EXISTS używa się opcjonalnie, żeby potwierdzić, że taka tabela nie istnieje w bazie danych
D. Klauzula CHARACTER SET utf8 jest wymagana
Pierwsze stwierdzenie, że rekordem tabeli nie może być 3 MAJA, jest niepoprawne, ponieważ w SQL nie ma ograniczeń co do znaków w wartościach tekstowych poza ogólnymi zasadami dotyczącymi typów danych. Jeżeli kolumna była zdefiniowana jako VARCHAR, można wprowadzać dowolne ciągi znaków, w tym daty w formacie tekstowym, o ile są one zgodne z ograniczeniami zdefiniowanymi na poziomie bazy danych. Drugie stwierdzenie, że klauzula CHARACTER SET utf8 jest obowiązkowa, również jest błędne. Ustalanie zestawu znaków jest opcjonalne; jeśli nie zostanie określony, system domyślnie użyje zestawu znaków przypisanego do bazy danych. Zestaw znaków jest istotny dla poprawnego przechowywania i wyświetlania danych tekstowych, ale jego brak nie uniemożliwia stworzenia tabeli. Wreszcie, trzecie stwierdzenie, że do tabeli nie można wprowadzać ulic zawierających polskie znaki, jest nieprawdziwe. W przypadku użycia zestawu znaków utf8, baza danych jest w stanie poprawnie przechowywać i przetwarzać polskie znaki diakrytyczne, takie jak ą, ę, ó, czy ł. W związku z tym nie ma żadnych ograniczeń co do wprowadzania takich danych, co czyni wprowadzenie ulic z polskimi znakami jak najbardziej możliwym i prawidłowym.

Pytanie 37

W języku CSS zapis

h2 {background-color: green;}
spowoduje, że kolor zielony będzie dotyczył:
A. tła tekstu nagłówka drugiego stopnia
B. tła całej strony
C. czcionki każdego nagłówka na stronie
D. czcionki nagłówka drugiego stopnia
Odpowiedź, że kolor zielony będzie dotyczył tła tekstu nagłówka drugiego stopnia, jest poprawna. W kodzie CSS, zapis <b>h2 {background-color: green;}</b> oznacza, że wszystkie elementy <h2> na stronie będą miały tło w kolorze zielonym. W praktyce oznacza to, że każdy nagłówek drugiego stopnia będzie miał zielone tło, co może być użyteczne do wyróżnienia sekcji na stronie. Warto zauważyć, że stylowanie tła nagłówków może poprawić czytelność i estetykę dokumentu, zwłaszcza w sytuacjach, gdy chcemy podkreślić różne sekcje treści. Dobrą praktyką w CSS jest także używanie klas i identyfikatorów do bardziej precyzyjnego stylowania, co pozwala na unikanie konfliktów z innymi stylami na stronie. Dodatkowo, można eksperymentować z różnymi kolorami i przezroczystościami, aby uzyskać unikalne efekty wizualne, co jest szczególnie ważne w nowoczesnym projektowaniu stron internetowych.

Pytanie 38

Wartość atrybutu w tabeli, który pełni rolę klucza głównego

A. nigdy nie jest innego typu niż numeryczny
B. jest używana do szyfrowania zawartości tabeli
C. może przyjmować wartość null (NULL)
D. musi być unikalna
Klucz podstawowy w bazach danych to coś, co naprawdę musi być unikalne, żeby każda informacja w tabeli była dobrze zidentyfikowana. Przykładowo, w tabeli 'Klienci' mamy kolumnę 'ID_klienta'. To jest dobry klucz podstawowy, bo każdy klient musi mieć swój własny numer, żeby nie było sytuacji, gdzie dwóch klientów ma ten sam identyfikator. Gdyby klucz podstawowy był taki sam dla różnych rekordów, mogłoby to wywołać spore zamieszanie przy aktualizacjach czy usuwaniu danych. Warto też pamiętać, że są takie rzeczy jak indeksy, które mogą pomóc w zapewnieniu, że klucz podstawowy jest unikalny i przyspiesza wyszukiwanie danych. Można użyć kluczy naturalnych, które mają sens w kontekście danych, albo kluczy syntetycznych, które system tworzy sam, jak na przykład GUID-y. Z mojego doświadczenia, to znajomość tych zasad naprawdę pomaga w lepszym projektowaniu baz danych.

Pytanie 39

W skrypcie PHP należy stworzyć cookie o nazwie "owoce", które przyjmie wartość "jabłko". Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP trzeba zastosować funkcję:

A. cookie("jabłko", "owoce", 3600);
B. setcookie("jabłko", "owoce", time()+3600);
C. setcookie("owoce", "jabłko", time()+3600);
D. cookie("owoce", "jabłko", 3600);
Istnieje kilka istotnych błędów koncepcyjnych w odpowiedziach, które nie są zgodne z poprawnym używaniem funkcji setcookie() w PHP. Zastosowanie cookie() zamiast setcookie() jest fundamentalnym błędem, ponieważ cookie() nie jest zdefiniowaną funkcją w PHP, co prowadzi do sytuacji, w której skrypt nie będzie działał. Dodatkowo, zamiana miejscami nazw cookie i wartości w dwóch odpowiedziach wprowadza w błąd. Właściwa składnia wymaga, aby pierwszym argumentem była nazwa cookie, a drugim jej wartość. Użycie time()+3600 tylko w kontekście konstrukcji wywołania setcookie() jest kluczowe, jako że określa czas wygaśnięcia cookies, co jest istotne dla zarządzania sesjami użytkowników. Utrata tego aspektu w innych opcjach skutkuje brakiem możliwości ograniczenia czasu ważności cookie, co może prowadzić do problemów z bezpieczeństwem i zarządzaniem danymi. Praktyka zarządzania cookies w PHP opiera się na ścisłym przestrzeganiu kolejności i konwencji, co jest niezbędne do poprawnego działania aplikacji internetowych. Niezrozumienie tych zasad może skutkować nieprawidłowym funkcjonowaniem aplikacji oraz potencjalnymi lukami w zabezpieczeniach.

Pytanie 40

W języku JavaScript zdefiniowano obiekt ```obiekt = { q: 1, w: 2, e: 3, r: 4 };``` W jaki sposób można uzyskać wartość właściwości ```w```?

A. obiekt.w
B. obiekt->w
C. obiekt::w
D. obiekt:w
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące składni języka JavaScript. Użycie obiekt:w sugeruje, że istnieje jakiś operator dostępu do właściwości za pomocą dwukropka, co jest niezgodne z zasadami składniowymi JavaScript. W rzeczywistości dwukropek w tym kontekście nie ma znaczenia i jest błędnie interpretowany. Podobnie, obiekt::w użytkuje podwójny dwukropek, co z kolei jest składnią nieznaną w JavaScript i nie ma zastosowania w kontekście odwoływania się do właściwości obiektu. Z kolei obiekt->w sugeruje, że programista próbuje skorzystać z operatora strzałki, który występuje w innych językach programowania, takich jak C++ czy PHP, ale nie jest on używany w JavaScript. W JavaScript stosuje się wyłącznie notację kropkową lub nawiasową do odwoływania się do właściwości obiektów. Chociaż różne języki programowania mogą mieć swoje własne konwencje dotyczące operatorów dostępu do właściwości, JavaScript pozostaje konsekwentny w swojej składni, co ułatwia zrozumienie i naukę. Ważne jest, aby programiści zapoznali się z podstawami składni JavaScript, aby unikać takich błędów i poprawnie wykorzystywać możliwości obiektowego modelu tego języka.