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: 19 czerwca 2026 20:14
  • Data zakończenia: 19 czerwca 2026 20:47

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Dla tablicy n-elementowej o nazwie t[n], algorytm, zapisany w formie kroków, ma za zadanie obliczenie sumy

Ilustracja do pytania
A. n-elementów tablicy
B. co drugiego elementu tablicy
C. sumy wszystkich elementów tablicy
D. sumy tych elementów tablicy, których wartości są nieparzyste
Błędne odpowiedzi, jakie podałeś, wynikają tak naprawdę z niezrozumienia algorytmu. Po pierwsze, suma wszystkich elementów tablicy wymagałaby przechodzenia przez każdy element bez przeskoków, więc musielibyśmy zwiększać indeks i o 1 w każdym kroku, a to odbiega od tego, co robi ten algorytm. Jakbyśmy chcieli sumować elementy nieparzyste, to musielibyśmy dodać warunek, który sprawdza, czy dany element jest parzysty, zanim go dodamy do wyniku. W ogóle nie ma takiego mechanizmu w tym algorytmie. Suma n-elementów tablicy jest błędna, bo algorytm pomija co drugi element, więc nie może być taką odpowiedzią. Typowe błędy, które się pojawiają w takich zadaniach, to niepełne rozumienie działania pętli i tego, jak aktualizowany jest indeks. Tego rodzaju myślenie może prowadzić do błędnych wniosków na temat tego, które elementy są brane pod uwagę. W praktyce ważne jest, żeby na spokojnie analizować, jak działają warunki iteracyjne i jakie mają konsekwencje dla przetwarzanych danych, bo to kluczowe przy projektowaniu algorytmów i ich wdrażaniu w różnych realnych sytuacjach, gdzie efektywność ma ogromne znaczenie.

Pytanie 2

Które znaczniki HTML wyświetlą tekst „Dobre strony mojej strony” w JEDNYM wierszu, jeśli nie zastosowano żadnych reguł CSS?

A.
<p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
B.
<h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
C.
<div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
D.
<span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
Domyślnie (bez CSS) tekst zostanie w jednym wierszu tylko wtedy, gdy użyjemy elementów LINIOWYCH - takim jest <span>, który nie wymusza nowej linii. Dlatego dwa <span> jeden po drugim wyświetlą się obok siebie w tym samym wierszu. Dlatego poprawny jest wariant ze <span>.

Pytanie 3

Fragment kodu w języku HTML zawarty w ramce ilustruje zestawienie

Ilustracja do pytania
A. wypunktowaną.
B. numerowaną.
C. odnośników.
D. skrótów.
Znaczniki HTML <ul> i <ol> są często mylone przez początkujących deweloperów co prowadzi do nieporozumień związanych z prezentacją danych. <ul> reprezentuje listę wypunktowaną używaną gdy kolejność elementów nie ma znaczenia a celem jest po prostu grupowanie powiązanych elementów. Z kolei <ol> tworzy listę numerowaną co jest istotne gdy chronologia lub priorytet poszczególnych elementów są kluczowe. Struktura <ol> jest preferowana w dokumentach gdzie ważne jest zachowanie kolejności jak na przykład w instrukcjach krok po kroku lub w raportach podsumowujących. Mylenie tych dwóch znaczników może prowadzić do zamieszania w zrozumieniu prezentacji danych. Kolejną błędną interpretacją jest uznawanie list za odnośniki co jest domeną znacznika <a> używanego do tworzenia hiperłączy między stronami. Jest to kluczowe w nawigacji strony i budowie struktury sieciowej. Z kolei skróty w HTML są reprezentowane za pomocą <abbr> co pomaga w dostarczaniu pełnych form skrótów przy zachowaniu ich kompaktowej postaci w tekście. Poprawne rozróżnianie i stosowanie tych znaczników jest fundamentem dobrych praktyk w projektowaniu stron internetowych zgodnie z zasadami semantyki i dostępności co jest kluczowe dla tworzenia przejrzystych i przyjaznych użytkownikowi interfejsów. Dodatkowo przekłada się to na lepsze wyniki SEO oraz wyższy poziom użyteczności aplikacji webowych który jest coraz częściej oczekiwany na współczesnym rynku IT. Właściwe wykorzystanie semantycznych znaczników wpływa korzystnie na przyszłą konserwację i rozbudowę kodu co jest nieocenione w długoterminowych projektach informatycznych. Poprawne zrozumienie tych różnic jest zatem kluczowe dla każdego kto aspiruje do profesjonalnego tworzenia stron internetowych i aplikacji webowych zgodnie z nowoczesnymi standardami branżowymi.

Pytanie 4

Ile razy zostanie wykonana pętla przedstawiona w języku PHP, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?
for($i = 0; $i <= 10; $i++) { ...... }

A. 0 razy
B. 10 razy
C. 11 razy
D. Nieskończoność
Odpowiedzi 0, 10 oraz nieskończoność są niepoprawne z kilku powodów. Przyjęcie, że pętla wykona się 0 razy, jest błędne, ponieważ pętla for rozpoczyna swoje działanie od zainicjowania zmiennej $i na 0. Zgodnie z konstrukcją pętli, pierwsze sprawdzenie warunku $i <= 10 jest pozytywne, co implikuje, że blok kodu zostanie wykonany przynajmniej raz. W odniesieniu do odpowiedzi 10, zakłada ona, że pętla zakończy się, gdy $i osiągnie wartość 10, co jest mylące. W rzeczywistości, pętla wykonuje się 11 razy, ponieważ ostatnie wykonanie kodu następuje przy $i równym 10, a następnie następuje inkrementacja, co sprawia, że $i osiąga 11 i przerywa działanie pętli. Wreszcie, odpowiedź sugerująca nieskończoną ilość iteracji jest również błędna. Nieskończone pętle często wynikają z braku modyfikacji zmiennej sterującej, jednak w tym przypadku pętla for ma zdefiniowaną inkrementację, co zapewnia, że po pewnym czasie pętla zakończy swoje działanie, nie generując nieskończoności. Każda z tych błędnych odpowiedzi pokazuje różne nieporozumienia dotyczące działania pętli for oraz logiki programistycznej w PHP.

Pytanie 5

Co robi w JavaScript zapis var napis1 = new napisy();?

A. tworzy nową KLASĘ napis1
B. wywołuje metodę obiektu napisy
C. tworzy obiekt napis1 klasy napisy
D. deklaruje zmienną i wywołuje funkcję z argumentem napis1
Pozostałe interpretacje mylą rolę new. Operator nie tworzy KLASY - klasę definiuje się osobno (konstruktorem lub słowem class), a new tylko robi z niej obiekt. Nie jest też zwykłym wywołaniem metody istniejącego obiektu - przeciwnie, dopiero POWOŁUJE obiekt do życia. Tu napis1 to nowy obiekt klasy napisy.

Pytanie 6

Której właściwości CSS użyć, aby uzyskać kursywę (pochylenie tekstu)?

A.
font-size
B.
font-style
C.
font-family
D.
font-variant
Pochylenie tekstu (kursywę) uzyskuje się właściwością font-style z wartością italic, czyli font-style: italic;. Dlatego kursywę daje font-style.

Pytanie 7

Która funkcja PHP ZWRACA jako wynik połowę kwadratu przekazanej wartości $a?

A.
function licz($a) { echo $a/2; }
B.
function licz($a) { echo $a*$a/2; }
C.
function licz($a) { return $a/2; }
D.
function licz($a) { return $a*$a/2; }
Pozostałe funkcje nie spełniają obu warunków naraz. Warianty z echo tylko WYPISUJĄ wartość na ekran - nie zwracają jej, więc nie da się jej dalej użyć. return $a/2 zwraca poprawnie, ale liczy połowę WARTOŚCI, a nie połowę KWADRATU. Trzeba połączyć return z formułą $a*$a/2.

Pytanie 8

Znacznik <strong> tekst</strong> w HTML będzie ukazywany przez przeglądarkę w identyczny sposób, jak znacznik

A. <b>tekst</b>
B. <h1>tekst</h1>
C. <big>tekst</big>
D. <sub>tekst</sub>
Znacznik <strong> w języku HTML jest używany do oznaczania tekstu, który ma być wyświetlany w sposób wyróżniony, co sugeruje jego większe znaczenie, natomiast znacznik <b> jest używany tylko do pogrubienia tekstu, bez dodatkowego kontekstu semantycznego. Oba znaczniki są wizualnie identyczne w większości przeglądarek, co powoduje, że można je stosować zamiennie w niektórych przypadkach. Jednakże, zgodnie z najnowszymi standardami HTML, zaleca się używanie <strong> dla tekstu, który ma większe znaczenie, ponieważ to pomaga w SEO i dostępności. Na przykład, tekst umieszczony w znaczniku <strong> może być lepiej interpretowany przez technologie wspomagające, takie jak czytniki ekranu, co czyni go bardziej dostępnym dla osób z niepełnosprawnościami. Przykład użycia: <strong>ważne informacje</strong> w odróżnieniu od <b>ważne informacje</b>, gdzie znaczenie semantyczne jest pominięte. Dlatego, mimo że wizualnie nie widać różnicy, semantyka HTML jest kluczowym aspektem, który wpływa na sposób, w jaki treść jest interpretowana i przetwarzana przez różnorodne systemy.

Pytanie 9

Zamieszczony kod HTML formularza zostanie wyświetlony przez przeglądarkę w sposób:

<form>
stanowisko: <input type="text"> <br>
obowiązki: <br>
<input type="checkbox" name="obowiazki1" value="1" disabled checked> sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazki2" value="2" checked>pisanie kodu<br>
<input type="checkbox" name="obowiazki3" value="3">testy oprogramowania<br>
</form>
Ilustracja do pytania
A. A
B. B
C. C
D. D
Poprawna odpowiedź to forma, w której przeglądarka wyświetli treść formularza, uwzględniając zarówno etykiety, jak i wszystkie zaznaczone opcje. W tym przypadku, po wypełnieniu formularza, użytkownik zobaczy: "stanowisko: obowiązki: sporządzanie dokumentacji pisanie kodu testy oprogramowania". Kluczowym aspektem jest to, że w formularzu użyto atrybutu 'disabled' dla pierwszego checkboxa, co oznacza, że nie będzie on mógł zostać odznaczony przez użytkownika, ale mimo to jego etykieta zostanie wyświetlona. Przeglądarki internetowe renderują formularze na podstawie struktury HTML, a to, co jest niewidoczne dla użytkownika (checkboxy, które są odznaczone lub zablokowane), nie wpływa na wyświetlanie tekstowych etykiet. Zgodnie z zasadami dostępności i użyteczności, ważne jest, aby użytkownik miał pełny wgląd w dostępne opcje, co poprawia interakcję z formularzem. To podejście jest zgodne z dobrymi praktykami projektowania interfejsów użytkownika, które promują przezroczystość i jasność w komunikacji z użytkownikiem.

Pytanie 10

Definicja formularza została użyta na stronie internetowej, która przesyła dane do pliku napisanego w języku PHP. W jakiej tablicy będą dostępne dane z tego formularza?

Ilustracja do pytania
A. $_GET
B. $_POST
C. $_COOKIE
D. $_ACTION
Tablica $_POST w PHP służy do przechwytywania danych przesyłanych za pomocą metody POST. Jest to standardowa praktyka w przypadku formularzy, które zawierają dane wrażliwe lub dużą ilość informacji. Metoda POST przesyła dane w treści żądania HTTP, co oznacza, że nie są one widoczne w adresie URL, co zwiększa bezpieczeństwo w porównaniu do metody GET. Przykładem zastosowania mogą być formularze logowania czy przesyłania plików. W PHP dostęp do danych z formularza można uzyskać poprzez prostą składnię, na przykład $_POST['nazwa_pola']. Ważne jest, aby zawsze walidować i filtrować dane wejściowe, aby zabezpieczyć aplikację przed atakami typu SQL Injection czy XSS. Zastosowanie metody POST jest zgodne z ogólnymi zasadami bezpieczeństwa i standardami projektowania aplikacji webowych, które zalecają ograniczanie widoczności danych przesyłanych przez użytkownika. Dobre praktyki obejmują również stosowanie HTTPS, aby dodatkowo zaszyfrować dane przesyłane pomiędzy klientem a serwerem.

Pytanie 11

W SQL, aby zmienić dane w tabeli, wykorzystuje się instrukcję

A. CREATE
B. UPDATE
C. SELECT
D. JOIN
Odpowiedź 'UPDATE' jest poprawna, ponieważ w języku SQL polecenie to służy do modyfikacji danych w istniejących rekordach tabeli. Umożliwia aktualizację wartości w jednym lub więcej polach w wybranych wierszach, których identyfikacja może być dokonana poprzez zastosowanie klauzuli WHERE. Na przykład, aby zaktualizować nazwisko użytkownika w tabeli 'Użytkownicy', można użyć polecenia: 'UPDATE Użytkownicy SET nazwisko = 'NoweNazwisko' WHERE id = 1;'. Dobrą praktyką jest zawsze uwzględnienie klauzuli WHERE, aby uniknąć przypadkowego zaktualizowania wszystkich rekordów w tabeli. Polecenie UPDATE jest częścią standardu SQL i szeroko stosowane w codziennej pracy z bazami danych, co czyni je kluczowym narzędziem w zarządzaniu danymi. Warto również pamiętać, że przed wykonaniem aktualizacji zaleca się wykonanie kopii zapasowej danych, aby zabezpieczyć się przed niezamierzonymi zmianami.

Pytanie 12

Aby w jezyku CSS ustawic czerwony kolor dla tekstu, mozna uzyc stylu:

A.
color: rgb(255,0,0);
B.
color: rgb(#FF0000);
C.
text-color: rgb(255,0,0);
D.
text-color: rgb(#FF0000);
Latwo tu wpasc w dwie rozne pulapki. Pierwsza dotyczy nazwy wlasciwosci: text-color brzmi sensownie, ale taka wlasciwosc w CSS nie istnieje, wiec przegladarka po prostu zignoruje cala deklaracje i kolor tekstu sie nie zmieni. Barwe znakow ustawia wlasciwosc color. Druga pulapka to mieszanie zapisow koloru: rgb(#FF0000) laczy funkcje rgb() z zapisem szesnastkowym. Znak # rozpoczyna kolor w formacie hex (np. #FF0000), ktory podaje sie samodzielnie, bez rgb(). Funkcja rgb() oczekuje natomiast trzech liczb dziesietnych 0-255 oddzielonych przecinkami. Poprawnie laczy obie rzeczy tylko color: rgb(255,0,0); - wlasciwa wlasciwosc i prawidlowo zapisana funkcja rgb, gdzie 255 to pelna czerwien, a oba zera to brak zieleni i blekitu.

Pytanie 13

Ile razy należy użyć instrukcji warunkowej, aby wdrożyć w danym języku programowania przedstawiony algorytm?

Ilustracja do pytania
A. Jednokrotnie
B. Dwukrotnie
C. Trzykrotnie
D. Czterokrotnie
Aby prawidłowo zaimplementować algorytm przedstawiony na diagramie, musisz zrozumieć jego strukturę. Diagram pokazuje dwa punkty decyzyjne, co wskazuje na konieczność użycia dwóch instrukcji warunkowych w kodzie. Każda instrukcja warunkowa odpowiada jednemu z tych punktów decyzyjnych. W praktyce, instrukcje warunkowe są kluczowe w programowaniu, pozwalając na podejmowanie decyzji i wykonywanie różnych działań w zależności od spełnienia określonych warunków. Można to zobrazować za pomocą języków programowania takich jak Python czy C++, gdzie 'if', 'else if' oraz 'else' są standardowymi konstrukcjami używanymi do tego celu. Warto zauważyć, że implementując algorytm, należy również zwrócić uwagę na poprawne użycie bloków kodu zagnieżdżonych w instrukcjach warunkowych, co jest dobrą praktyką programistyczną. Dzięki temu kod jest bardziej czytelny i łatwiejszy w utrzymaniu, co jest zgodne z zasadami czystego kodu i standardami branżowymi.

Pytanie 14

Tworzenie struktury logicznej strony internetowej polega na

A. stworzonym zestawie grafik dla strony
B. określeniu adresów URL dla podstron serwisu
C. umiejscowieniu elementów w wyznaczonych lokalizacjach witryny
D. określeniu zawartości witryny
Projektowanie układu strony internetowej to naprawdę ważny krok, który warto dobrze przemyśleć. Chodzi o to, żeby elementy były umieszczone w sensownych miejscach, co z kolei pomaga użytkownikom lepiej się po niej poruszać. Trzeba pamiętać o zasadach UX i UI, bo dzięki nim można stworzyć coś, co będzie intuicyjne i przyjazne. Dobrze jest odpowiednio poukładać tekst, zdjęcia, linki i formularze, żeby wszystko działało sprawnie. Fajnie jest korzystać z siatki do rozmieszczania elementów, bo to pomaga utrzymać ład i równowagę wizualną. Na przykład zasada F-layout świetnie sprawdza się, bo układ przypomina literę „F” i to odpowiada temu, jak ludzie przeglądają treści. Z mojego doświadczenia, ważne jest też, żeby zrozumieć hierarchię wizualną – dzięki temu można lepiej wyróżnić istotne informacje i zaangażować użytkowników.

Pytanie 15

Jak nazywa się proces, w trakcie którego identyfikuje się oraz eliminuje błędy w kodzie źródłowym aplikacji?

A. Kompilacja
B. Debugowanie
C. standaryzacja
D. Normalizacja
Debugowanie to proces, który polega na identyfikacji, analizie i usuwaniu błędów w kodzie źródłowym programów. Jest to kluczowy etap w cyklu życia oprogramowania, który zapewnia, że aplikacje działają zgodnie z zamierzonymi specyfikacjami. W praktyce debugowanie może obejmować różnorodne techniki, takie jak używanie narzędzi do analizy statycznej, wykonanie testów jednostkowych oraz korzystanie z debuggerów, które pozwalają na śledzenie wykonania kodu w czasie rzeczywistym. Dobre praktyki debugowania obejmują dokumentowanie napotkanych błędów, co może ułatwić ich ponowne wystąpienie oraz szybsze ich usunięcie w przyszłości. Debugowanie nie tylko poprawia jakość kodu, ale również ułatwia rozwój i utrzymanie oprogramowania, co jest zgodne z zasadami Agile i DevOps, gdzie ciągła integracja i dostarczanie są kluczowymi elementami procesu. W ten sposób debugowanie stanowi integralną część programowania, która wpływa na wydajność i stabilność tworzonych aplikacji.

Pytanie 16

W CSS, stosowanie poniższego kodu na stronie z kilkoma akapitami, gdzie każdy składa się z kilku linijek, spowoduje, że

p::first-line
{
    font-size: 150%;
}
A. cały tekst w paragrafie zostanie powiększony o 150%
B. pierwsza linia każdego z paragrafów będzie miała mniejszą wielkość czcionki od pozostałych linii
C. pierwsza linia każdego paragrafu będzie miała większą czcionkę niż pozostałe linie
D. pierwszy paragraf na stronie będzie miał powiększoną czcionkę w całości
Zapis CSS p::first-line { font-size: 150%; } używa selektora pseudo-elementu ::first-line który stosuje stylizację do pierwszej linii każdego paragrafu. W tym przypadku zmieniamy rozmiar czcionki pierwszej linii na 150% jej domyślnej wartości co oznacza że będzie ona o 50% większa niż reszta tekstu. Pseudo-element ::first-line jest często stosowany w projektowaniu stron internetowych aby wyróżnić pierwsze zdanie lub akapit co może pomóc w lepszej organizacji treści i zwiększeniu czytelności. Ten sposób formatowania jest zgodny ze standardami CSS i jest wspierany przez większość nowoczesnych przeglądarek internetowych. Takie podejście może być użyteczne w projektach gdzie istotne jest nadanie unikalnego wyglądu nagłówkom sekcji lub wprowadzeniom bez zmieniania struktury HTML. Ważne jest aby pamiętać że ::first-line stosuje się tylko do elementów blokowych takich jak paragrafy co ogranicza jego użycie do tych specyficznych scenariuszy ale jednocześnie pozwala na precyzyjne dostosowanie stylu tekstu w dokumencie.

Pytanie 17

Który typ relacji wymaga utworzenia tabeli POŚREDNIEJ łączącej klucze główne obu tabel?

A. 1..n (jeden-do-wielu)
B. 1..1 (jeden-do-jednego)
C. n..1 (wiele-do-jednego)
D. n..m (wiele-do-wielu)
Relacja WIELE-DO-WIELU (n..m) nie da się zapisać samym kluczem obcym, więc tworzy się TABELĘ POŚREDNIĄ (łączącą), która przechowuje pary kluczy głównych obu tabel - np. studenci i przedmioty łączeni przez tabelę zapisów. Zapamiętaj: n..m zawsze wymaga trzeciej, łączącej tabeli.

Pytanie 18

W przedstawionym kodzie HTML, zaprezentowany styl CSS jest stylem:

<p style="color:red;">To jest przykładowy akapit.</p>
A. zewnętrznym
B. lokalnym
C. nagłówkowym
D. dynamicznym
Styl CSS określony wewnątrz elementu HTML poprzez atrybut style jest przykładem stylu lokalnego. Styl lokalny pozwala na bezpośrednie przypisanie konkretnych własności CSS do pojedynczego elementu co umożliwia szybkie i łatwe testowanie oraz modyfikacje wyglądu bez potrzeby edytowania zewnętrznych plików CSS. Praktyczne zastosowanie stylów lokalnych odnajdujemy w sytuacjach gdy chcemy wprowadzić zmiany dla pojedynczego elementu na stronie nie wpływając na inne elementy. Na przykład jeśli w jednym miejscu chcemy podkreślić wagę tekstu stosując kolor czerwony możemy użyć stylu lokalnego jak pokazano w pytaniu. Jednak styl lokalny nie jest zalecany dla większych projektów czy skomplikowanych stron ze względu na fakt że utrudnia zarządzanie i utrzymywanie spójnego stylu w całym projekcie. W takich przypadkach lepiej korzystać ze stylów zewnętrznych lub nagłówkowych które oferują lepszą organizację i elastyczność. Warto również pamiętać że implementacja stylu lokalnego może nadpisywać inne style co jest istotne przy rozwiązywaniu problemów związanych z dziedziczeniem stylów CSS.

Pytanie 19

Które z pól edycyjnych zostało wystylizowane według poniższego wzoru, zakładając, że pozostałe atrybuty pola mają wartości domyślne, a użytkownik wpisał imię Krzysztof w przeglądarce?

input {
    padding: 10px;
    background-color: Teal;
    color: white;
    border: none;
    border-radius: 7px;
}
Ilustracja do pytania
A. Pole 2
B. Pole 4
C. Pole 1
D. Pole 3
Pole 2 zostało sformatowane zgodnie z podanym stylem CSS Ponieważ właściwość padding została ustawiona na 10px pole tekstowe ma wewnętrzny odstęp wokół zawartości co sprawia że tekst nie dotyka bezpośrednio krawędzi pola Kolor tła ustawiony na Teal odróżnia to pole od innych które mogą mieć domyślne kolory tła Biały kolor tekstu zapewniony przez właściwość color sprawia że tekst jest czytelny na ciemnym tle Brak obramowania dzięki border none powoduje że pole nie ma widocznej linii wokół siebie co nadaje mu czysty wygląd Zaokrąglenie krawędzi ustawione na 7px border-radius daje bardziej nowoczesny wygląd a także ułatwia integrację z różnymi projektami interfejsu użytkownika Takie podejście do stylizacji elementów formularzy jest zgodne z nowoczesnymi trendami projektowania stron internetowych gdzie używane są łagodne zaokrąglenia oraz odpowiednio dobrane kontrasty kolorystyczne W praktyce takie style są nie tylko estetyczne ale także poprawiają użyteczność interfejsu poprzez zwiększenie czytelności i intuicyjności obsługi formularzy Warto również zauważyć że zastosowanie CSS do formatowania elementów pozwala na zachowanie spójności wyglądu na różnych stronach oraz łatwą modyfikację w przyszłości

Pytanie 20

Która z poniższych opcji najlepiej opisuje przedstawioną definicję w JavaScript?

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. zbioru
B. obiektu
C. tablicy
D. klasy
Definicja przedstawiona na obrazku odpowiada tablicy w języku JavaScript. Tablice w JavaScript są typem obiektu, który pozwala na przechowywanie wielu wartości w jednej zmiennej. W tym przypadku zmienna imiona zawiera listę stringów reprezentujących imiona. Tablice w JavaScript są dynamiczne co oznacza że ich rozmiar można zmieniać podczas działania programu. Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksów które zaczynają się od zera. Na przykład pierwszy element tej tablicy to imiona[0] czyli Anna. JavaScript oferuje wiele metod do manipulacji tablicami takich jak push do dodawania elementów na końcu tablicy pop do usuwania ostatniego elementu czy map do tworzenia nowej tablicy na podstawie istniejącej poprzez zastosowanie funkcji do każdego elementu. Zrozumienie działania tablic jest kluczowe dla efektywnego programowania w JavaScript ponieważ są one podstawowym narzędziem do przechowywania i zarządzania danymi.

Pytanie 21

Jaki wynik wyświetli poniższy fragment kodu JavaScript?

x='Powodzenia na egzaminie';
z=x.substring(3,9);
y=z.substring(2,4);
document.write(y);
A. owodzeni
B. wodzenia
C. wo
D. ze
W analizowanym zadaniu błędne odpowiedzi wynikają z nieprawidłowego zrozumienia działania funkcji substring w JavaScript która służy do ekstrakcji fragmentu tekstu z ciągu. Kluczowym elementem jest tutaj zrozumienie że indeksowanie stringów zaczyna się od zera co oznacza że pierwszy znak w ciągu ma indeks 0. W przypadku x.substring(3,9) funkcja ta wyodrębnia znaki od indeksu 3 do 8 ponieważ drugi parametr w tej funkcji jest ekskluzywny co oznacza że nie jest uwzględniany w wyniku. Dlatego daje to fragment wodzen. Kolejna operacja z.substring(2,4) bierze pod uwagę wycinek od indeksu 2 do 3 tego nowego ciągu co skutkuje wynikiem ze. Błędne odpowiedzi mogą wynikać z nieznajomości tego jak działa substr w porównaniu do substring ponieważ substr używa innego podejścia wskazując długość a nie końcowy indeks. Innym częstym błędem jest mylenie indeksów co prowadzi do nieprawidłowych wycinków tekstu. Błędy takie mogą prowadzić do problemów w kodzie zwłaszcza przy przetwarzaniu danych wejściowych czy dynamicznym generowaniu zawartości strony co jest częstym zadaniem w web development. Zrozumienie jak dokładnie działa każdy z tych mechanizmów jest kluczowe dla tworzenia poprawnego i bezpiecznego kodu. Warto także pamiętać o testowaniu kodu aby uniknąć nieprzewidywalnych zachowań wynikających z nieprawidłowych wycinków tekstu co może wpłynąć na całość aplikacji.

Pytanie 22

Wskaż fragment kodu CSS, który odpowiada układowi bloków 2 - 5, zakładając, że są one oparte na poniższym kodzie HTML.

Ilustracja do pytania
A. A
B. B
C. C
D. D
Odpowiedź B jest poprawna, ponieważ skutecznie rozmieszcza bloki 2 5 w zgodzie z przedstawionym układem HTML. Użycie właściwości float pozwala na precyzyjne kontrolowanie położenia elementów w układzie blokowym. W tym przypadku float left dla bloków #drugi i #trzeci oraz float right dla #czwarty sprawiają że bloki są odpowiednio rozstawione. Dodatkowo #piaty z float left zapewnia jego poprawne umiejscowienie poniżej bloku #trzeci. To rozwiązanie jest zgodne z dobrymi praktykami w projektowaniu responsywnych layoutów gdzie float jest używane do budowania elastycznych struktur. Ważne jest także odpowiednie zarządzanie szerokościami elementów aby nie przekraczały 100% szerokości kontenera a także uwzględnienie zastosowania clearfix aby uniknąć problemów z przepływem elementów. Poprawne zrozumienie float oraz szerokości w CSS jest kluczowe w tworzeniu zgodnych z standardami projektów internetowych co pozwala na lepszą skalowalność i utrzymanie strony w przyszłości.

Pytanie 23

Jaki wynik daje poniższy kod PHP?

$dane = array ('imie' => 'Anna', 'nazwisko' => 'Nowak', 'wiek' => 21);
A. określa tablicę zawierającą sześć wartości
B. jest niepoprawny, nieznany operator =>
C. definiuje tablicę z trzema wartościami
D. jest błędny, ponieważ indeksami tablicy mogą być wyłącznie liczby całkowite
Ten kod w PHP pokazuje, jak zdefiniować tablicę asocjacyjną z trzema elementami. To fajna sprawa, bo tablice asocjacyjne pozwalają na użycie kluczy, które nie muszą być tylko liczbami, a mogą być także opisowe, jak w tym przypadku. Klucze to 'imie', 'nazwisko' oraz 'wiek', a ich wartości to odpowiednio 'Anna', 'Nowak' i 21. Operator '=>' służy do przypisywania wartości do klucza - to dość typowa konstrukcja, bo ułatwia organizację danych. Podoba mi się, że tablice asocjacyjne w PHP są przydatne w różnych sytuacjach, na przykład do przechowywania danych użytkowników czy różnych ustawień. W sumie, ważne, żeby dbać o typy danych przypisywanych do kluczy, bo dzięki temu później łatwiej będzie się z nimi pracować. PHP ma dużo funkcji do pracy z tablicami, jak sortowanie czy iteracja, więc na pewno warto to znać.

Pytanie 24

W języku CSS zdefiniowano następujące formatowanie:

 h1 i {color: red;}
Kolorem czerwonym zostanie zapisany
A. tylko tekst pochylony nagłówka pierwszego stopnia.
B. tylko tekst pochylony we wszystkich poziomach nagłówków.
C. cały tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, niezależnie od tego, w którym miejscu strony się znajduje.
D. cały tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu.
Prawidłową odpowiedzią jest, że kolorem czerwonym zostanie zapisany tylko tekst pochylony nagłówka pierwszego stopnia. W CSS, gdy mówimy o selektorach potomków, odnosimy się do elementów, które są bezpośrednio lub niebezpośrednio umieszczone wewnątrz innego elementu. W przedstawionym kodzie CSS: h1 i {color: red;}, selektor pochylonego tekstu (<i>) wewnątrz nagłówka pierwszego stopnia (<h1>) jest selektorem potomka. Oznacza to, że reguła dotyczy tylko tych elementów <i> , które są umieszczone wewnątrz elementu <h1>. Właściwość 'color: red;' zmienia kolor tych elementów na czerwony. Istotne jest zrozumienie, że ta reguła nie wpływa na inne elementy strony, takie jak zwykły tekst w nagłówku h1 czy tekst pochylony w innych miejscach dokumentu. W praktyce, nauka zrozumienia i stosowania selektorów potomków w CSS jest kluczowa dla skutecznego i precyzyjnego formatowania elementów na stronie.

Pytanie 25

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

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona[4];
B. Imiona[3];
C. Imiona[Agata];
D. Imiona['Agata'];
Wybór Imiona[4] jest błędny, ponieważ jak wcześniej wspomniano, tablice w JavaScript są indeksowane od zera i tablica Imiona ma cztery elementy, co oznacza, że najwyższy indeks dostępny w tym przypadku to 3. Próba uzyskania dostępu do elementu o indeksie 4 zwróci undefined, co jest powszechnym źródłem błędów podczas programowania. Kolejna nieprawidłowa odpowiedź, Imiona[Agata], również nie jest poprawna, gdyż nie możemy używać wartości zmiennych (takich jak 'Agata') jako indeksów w tablicach bez wcześniejszej deklaracji. W JavaScript zmienne muszą być zdefiniowane, aby można było ich użyć. Imiona['Agata'] to kolejny przykład błędnego podejścia. Chociaż JavaScript pozwala na uzyskiwanie dostępu do właściwości obiektów za pomocą notacji z kropką lub bracket notation, w przypadku tablic nie można używać nazw elementów, które nie są ich indeksami. Tego rodzaju błędy są często wynikiem niepełnego zrozumienia różnicy między tablicami a obiektami w JavaScript. Zrozumienie tych różnic oraz praktykowanie poprawnego indeksowania tablic jest kluczowe dla każdego programisty, aby uniknąć trudności w kodowaniu oraz zapewnić, że aplikacje działają zgodnie z zamierzeniem.

Pytanie 26

W języku JavaScript funkcja matematyczna Math.pow() jest wykorzystywana do obliczania

A. przybliżonej wartości liczby
B. potęgi liczby
C. bezwzględnej wartości liczby
D. pierwiastka kwadratowego z liczby
Funkcja Math.pow() w języku JavaScript służy do obliczania potęgi liczby, co oznacza, że zwraca wynik mnożenia danej liczby przez siebie określoną liczbę razy. Jej składnia to Math.pow(base, exponent), gdzie 'base' to liczba, którą chcemy podnieść do potęgi, a 'exponent' to wykładnik potęgi. Przykładowo, Math.pow(2, 3) zwróci 8, ponieważ 2^3=2*2*2=8. Użycie tej funkcji jest niezwykle powszechne w programowaniu, zwłaszcza w obliczeniach matematycznych, grafice komputerowej oraz w algorytmach naukowych. Zastosowanie Math.pow() jest zgodne z najlepszymi praktykami, ponieważ pozwala na klarowność i czytelność kodu. Warto dodać, że w ES6 możemy również używać operatora potęgowania **, co jest syntaktycznie prostsze i bardziej intuicyjne, np. 2 ** 3 również da nam 8.

Pytanie 27

W języku PHP stwórz warunek, który będzie prawdziwy, gdy zmienna

$a 
będzie jakąkolwiek liczbą całkowitą mniejszą niż -10 lub gdy zmienna
$b 
będzie liczbą z zakresu (25, 75). Wyrażenie logiczne w tym warunku powinno mieć postać
A. ($a < -10) and (($b > 25) and ($b < 75))
B. ($a < -10) or (($b > 25) or ($b < 75))
C. ($a < -10) and (($b > 25) or ($b < 75))
D. ($a < -10) or (($b > 25) and ($b < 75))
Wyrażenie logiczne ($a < -10) or (($b > 25) and ($b < 75)) jest poprawne, ponieważ spełnia warunki określone w treści zadania. Warunek ten sprawdza, czy zmienna $a jest mniejsza od -10 lub czy zmienna $b mieści się w przedziale od 25 do 75, co oznacza, że musi być większa niż 25 oraz mniejsza niż 75 jednocześnie. Takie podejście jest zgodne z zasadami logiki i jest typowe w programowaniu w PHP. Praktycznym zastosowaniem tego typu warunków może być filtrowanie danych użytkowników na podstawie wieku lub kwot transakcji, gdzie istotne jest spełnienie kilku kryteriów. Warto również zauważyć, że użycie operatora 'or' w tym przypadku jest kluczowe, gdyż pozwala na spełnienie przynajmniej jednego z warunków, co jest istotne w kontekście przyjmowania danych. Dobre praktyki w programowaniu sugerują, aby zawsze dokładnie definiować warunki logiczne oraz unikać nadmiarowych złożoności, co czyni kod bardziej czytelnym i łatwiejszym w utrzymaniu.

Pytanie 28

W języku JavaScript rezultat wykonania polecenia

zmienna1 -= 1;
będzie tożsamy z wynikiem polecenia
A. zmienna1--;
B. zmienna1++;
C. zmienna1 === zmienna1 - 1;
D. zmienna1 = zmienna1 - 0;
Istnieje wiele koncepcji, które mogą prowadzić do błędnych wniosków dotyczących działania przypisania i operatorów w JavaScript. Zaczynając od zmienna1++, jest to operator inkrementacji, który zwiększa wartość zmiennej o jeden, a nie ją zmniejsza. W związku z tym, ta odpowiedź jest zasadniczo błędna, ponieważ zmienia wartość w przeciwnym kierunku. Kolejna odpowiedź, zmienna1 === zmienna1 - 1;, wyraża porównanie logiczne, które sprawdza, czy zmienna1 jest równa zmiennej zmniejszonej o jeden. Nie jest to tożsame z wykonaniem dekrementacji i wprowadza dodatkowe zamieszanie, gdyż nie zmienia wartości zmiennej, a jedynie zwraca wartość logiczną (true lub false). Natomiast zmienna1 = zmienna1 - 0; jest także błędna, gdyż ta instrukcja nie wpływa na wartość zmiennej, jedynie przypisuje jej tę samą wartość, co również nie jest zgodne z celem dekrementacji. Takie nieporozumienia mogą wynikać z braku znajomości podstawowych operatorów i ich zastosowania, co jest kluczowe w programowaniu. Ważne jest, aby zrozumieć, że operatorzy wpływają na zmiany wartości, a nie tylko na ich porównania. Warto także pamiętać, że efektywne pisanie kodu powinno opierać się na zrozumieniu działania operatorów, co przyczyni się do tworzenia kodu, który jest zarówno funkcjonalny, jak i łatwy do zrozumienia w kontekście współpracy w zespole programistycznym.

Pytanie 29

Z przedstawionych tabel Klienci i Uslugi należy wybrać jedynie imiona klientów oraz odpowiadające im nazwy usług, które są droższe niż 10 zł. Kwerenda wybierająca te dane ma postać

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10;
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id;
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id;
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10;
Dobra robota, wybrałeś sprawdzoną odpowiedź! To zapytanie SQL, które zaznaczyłeś, łączy tabele 'Klienci' i 'Usługi' przy pomocy klucza obcego 'uslugi_id'. To, co robią takie JOINy, to po prostu łączenie tabel na podstawie wspólnych elementów. W tym przypadku 'uslugi_id' to ten wspólny element, który pozwala na powiązanie obu tabel. A ten warunek 'WHERE cena > 10'? To świetny sposób na to, żeby z ograniczać wyniki do tych, które są droższe niż 10 zł. Fajnie jest mieć pod ręką tylko te informacje, które są dla nas najistotniejsze, szczególnie w większych bazach danych. Pamiętaj, że umiejętność pisania zapytań SQL, jak to, jest naprawdę przydatna, gdy pracujemy z relacyjnymi bazami danych.

Pytanie 30

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 0; x++; x = x + 9;
B. x = 0; x--; x *= 9;
C. x = 10; x = 0;
D. x = 10; x = x + 10;
Doskonale! Wybrałeś prawidłową odpowiedź, która jest zgodna z przykładem kodu przedstawionym na zdjęciu. W JavaScript, zapis 'x = 0; x++; x = x + 9;' działa w następujący sposób: najpierw zmienna 'x' jest inicjalizowana wartością 0. Następnie, operator inkrementacji '++', zwiększa wartość zmiennej 'x' o 1. Końcowa instrukcja dodaje 9 do obecnej wartości zmiennej 'x', która wynosi 1. W rezultacie końcowa wartość zmiennej 'x' wynosi 10, co jest zgodne z kodem przedstawionym na zdjęciu. To jest praktyczne zastosowanie operatorów inkrementacji oraz dodawania w JavaScript, umożliwiające manipulację wartościami zmiennych. To jest ważne w kontekście algorytmów i operacji matematycznych. Warto zwrócić uwagę, że operator '++' jest skrótem dla 'x = x + 1', co jest zgodne ze standardami JavaScript.

Pytanie 31

Funkcja PHP var_dump() wyświetla informację na temat zmiennej: jej typ i wartość. Wynikiem dla przedstawionego fragmentu kodu jest:

$x = 59.85;
var_dump($x);
A. int(59)
B. float(59.85)
C. string(5) "59.85"
D. array(2) { [0]=> int(59) [1]=> int(85) }
Gratulacje, Twoja odpowiedź jest poprawna! W poprawnej odpowiedzi, wartość zmiennej $x była 59.85, co jest liczbą zmiennoprzecinkową, a więc typem tej zmiennej jest float. Funkcja PHP var_dump() służy do wyświetlania informacji o zmiennej, w tym jej typu i wartości. Zatem wynikiem jej wykonania dla zmiennej $x inicjowanej wartością 59.85 jest float(59.85). To jest jeden z przykładów, gdzie rozumienie typów danych w PHP jest kluczowe. Zrozumienie typu float pozwoli Ci na prawidłową manipulację danymi, co jest niezwykle ważne w programowaniu. Jest to szczególnie istotne, gdy porównujesz różne wartości lub przekształcasz jedne typy danych w inne. Pamiętaj, że PHP jest językiem o słabej typizacji, co oznacza, że konwersja typów może nastąpić automatycznie w niektórych kontekstach, więc zawsze warto wiedzieć, jakiego typu jest dana zmienna.

Pytanie 32

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

echo date("Y-m");
A. dzień oraz rok
B. tylko 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 33

Tabela Pracownicy zawiera informacje o zatrudnionych w różnych działach, co jest określone przez pole liczbowe dzial. Z uwagi na to, że zazwyczaj wykonuje się kwerendy jedynie dla działu równego 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2
B. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
C. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2
D. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
Pozostałe odpowiedzi są błędne z różnych powodów. Przede wszystkim, brak słowa kluczowego 'AS' w odpowiedziach, które twierdzą, że mają na celu stworzenie widoku, skutkuje nieprawidłową składnią. W SQL, podczas definiowania widoku, kluczowe jest użycie 'AS' po nazwie widoku, aby określić, że następujące zapytanie jest definicją źródła danych tego widoku. Ponadto, użycie słowa kluczowego 'VIEW' bez 'CREATE' jest niepoprawne, ponieważ struktura SQL wymaga, aby przed utworzeniem widoku zawsze były używane polecenia 'CREATE VIEW'. Również pominięcie 'SELECT *' w kontekście tworzenia widoku ogranicza elastyczność, ponieważ pozwala na wybranie tylko niektórych kolumn z tabeli, co nie jest zgodne z wymaganiami przedstawionymi w pytaniu. Zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w pracy z SQL, a także pozwala na tworzenie bardziej złożonych i wydajnych strukturyzacji danych. Użycie nieprawidłowej składni może prowadzić do błędów wykonania, co w praktyce może skutkować zamieszaniem i wydłużonym czasem reakcji na wyciąganie danych. Dlatego kluczowe jest przestrzeganie standardów i dobrych praktyk w pisaniu zapytań SQL.

Pytanie 34

Który atrybut należy zapisać w miejscu trzech kropek w znaczniku HTML5 <blockquote>, aby zdefiniować źródło cytatu?

<blockquote ...="https://pl.wikipedia.org">
Pokojowa Nagroda Nobla jest przyznawana kandydatom, którzy wykonali największą lub najlepszą pracę na rzecz braterstwa między narodami
</blockquote>
A. src
B. alt
C. cite
D. href
Odpowiedź 'cite' jest prawidłowa, ponieważ atrybut ten służy do wskazania źródła cytatu w znaczniku <blockquote>. Atrybut cite pozwala dostarczyć dodatkowych informacji o autorze lub miejscu pochodzenia cytatu, co jest zgodne z zasadami semantycznego HTML5. Użycie atrybutu cite jest ważne dla poprawnej interpretacji treści przez przeglądarki oraz narzędzia przetwarzające dane, takie jak wyszukiwarki internetowe. Przykład zastosowania: <blockquote cite="https://pl.wikipedia.org">...cytat...</blockquote>. Dzięki temu można łatwo zidentyfikować źródło, co zwiększa wiarygodność prezentowanych informacji. W praktyce, dokumenty HTML powinny być tak przygotowane, aby były zarówno przyjazne dla użytkowników, jak i zgodne z wytycznymi standardów W3C, co ma kluczowe znaczenie w kontekście dostępności i SEO.

Pytanie 35

Jakie skutki przynosi wielokrotne uruchomienie poniższego kodu PHP?

if (!isset($_COOKIE["ciastko"]) 
 $zm = 1; 
 else 
 $zm = intval($_COOKIE["ciastko"]) + 1; 
setcookie("ciastko", $zm);
A. Liczenie liczby wejść na stronę.
B. Pokazanie ciasteczka z wartością zmiennej.
C. Zapisywanie wartości 1 w ciasteczku przy każdym odświeżeniu strony.
D. Przechowywanie informacji w ciasteczku tylko przy pierwszym otwarciu strony.
Błędne odpowiedzi wskazują na zrozumienie podstawowych operacji związanych z ciasteczkami, ale nie uchwycają ich rzeczywistego zastosowania w kontekście analizy odwiedzin. Pierwsza z niepoprawnych opcji, dotycząca wyświetlenia ciasteczka z zapisaną zmienną, myli pojęcie z jego funkcją. Kod nie posiada żadnych instrukcji wyświetlania, a jedynie operuje na danych, które są zapisywane w ciasteczkach. Takie nieporozumienie jest powszechne wśród początkujących programistów, którzy mogą sądzić, że operacje na ciasteczkach automatycznie wiążą się z ich prezentacją użytkownikowi. Druga z opcji sugeruje, że ciasteczko jest ustawiane na wartość 1 przy każdym odświeżeniu strony, co jest nieprawidłowe. W rzeczywistości, wartość ciasteczka jest zwiększana z każdym odwiedzeniem, co oznacza, że wartość 1 jest przypisywana tylko przy pierwszym wejściu. To błędne zrozumienie działania ciasteczek prowadzi do mylnych konkluzji na temat ich zastosowania. Ostatnia propozycja sugeruje, że dane są zapisywane jedynie przy pierwszym uruchomieniu strony, co jest fałszywe, ponieważ aktualizacja ciasteczka zachodzi przy każdym nowym odczycie, a nie tylko przy pierwszym dostępie. Zrozumienie, jak działa mechanizm ciasteczek, jest kluczowe dla prawidłowego ich wykorzystania i analizy interakcji użytkownika z witryną.

Pytanie 36

W kodzie HTML stworzono link do strony internetowej. Aby otworzyć tę stronę w nowym oknie lub zakładce przeglądarki, należy dodać do definicji linku atrybut

<a href="http://google.com" >strona Google</a>
A. rel = "next"
B. rel = "external"
C. target = "_blank"
D. target = "_parent"
Atrybut target w języku HTML służy do określenia, w jaki sposób ma otworzyć się dokument, do którego prowadzi odnośnik. Użycie wartości '_blank' dla atrybutu target jest standardowym sposobem na otwarcie nowej strony w nowym oknie lub zakładce przeglądarki. Przykład zastosowania to: <a href="http://google.com" target="_blank">strona Google</a>. Jest to niezwykle przydatne w kontekście UX, ponieważ pozwala użytkownikom na łatwe porównanie informacji bez utraty dostępu do oryginalnej strony. Warto również zauważyć, że użycie tego atrybutu jest zgodne z najlepszymi praktykami w tworzeniu stron internetowych, gdyż umożliwia użytkownikom zachowanie kontekstu przeglądania. W HTML5 atrybut target pozostaje wspierany, co czyni go istotnym elementem w projektowaniu interfejsów użytkownika. Oprócz '_blank' istnieją inne wartości, takie jak '_self', '_parent' i '_top', które również spełniają różne funkcje w zależności od potrzeb nawigacyjnych w aplikacji webowej.

Pytanie 37

Cookie stworzony za pomocą polecenia PHP

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po dobie od momentu jego utworzenia
B. wygaśnie po jednej godzinie od momentu jego utworzenia
C. będzie przechowywany na serwerze przez 24 godziny
D. będzie przechowywany na serwerze przez jedną godzinę
Wybór odpowiedzi, że ciasteczko wygaśnie po jednej godzinie od jego utworzenia, jest błędny, ponieważ czas wygaśnięcia ciasteczka jest jasno określony w wywołaniu funkcji setcookie(). Przypisanie wartości time() + (3600 * 24) oznacza, że ciasteczko będzie ważne przez 24 godziny, a nie jedną. Pojęcia związane z czasem życia ciasteczek są kluczowe w kontekście zarządzania sesjami i stanami użytkowników w aplikacjach webowych. Wiele osób myli jednostki czasu, co prowadzi do nieprawidłowych założeń dotyczących działania ich aplikacji. Kolejny błąd polega na przeświadczeniu, że ciasteczka są przechowywane na serwerze, gdy w rzeczywistości są one zapisywane na komputerze użytkownika. Serwer ustala zasady dotyczące ciasteczek, ale ich fizyczne miejsce przechowywania to urządzenie klienckie. Często zdarza się również, że użytkownicy nie są świadomi, jak długo ciasteczka mogą pozostać aktywne, co wpływa na ich doświadczenia i może prowadzić do nieporozumień w kontekście logowania czy ustawień prywatności. W związku z tym właściwe zrozumienie działania i życia ciasteczek jest kluczowe dla zapewnienia prawidłowego funkcjonowania aplikacji oraz ochrony danych użytkowników.

Pytanie 38

Plik cookie utworzony przedstawionym poleceniem PHP:

setcookie("osoba", "Anna Kowalska", time() + (3600 * 24));
A. wygaśnie po jednej dobie od jego utworzenia.
B. wygaśnie po jednej godzinie od jego utworzenia.
C. będzie przechowywany na serwerze przez jedną dobę.
D. będzie przechowywany na serwerze przez jedną godzinę.
Kod z funkcją setcookie() w PHP bardzo często myli się z mechanizmami przechowywania danych po stronie serwera, dlatego łatwo tu o błędne skojarzenia. W tym przykładzie kluczowe są dwie rzeczy: po pierwsze, gdzie fizycznie przechowywane jest cookie, a po drugie, w jakiej jednostce podajemy czas. Ciasteczka HTTP są zawsze przechowywane po stronie klienta, czyli w przeglądarce użytkownika, w jej lokalnym magazynie. Serwer jedynie informuje przeglądarkę, jaki ma być czas życia takiego wpisu, wysyłając odpowiedni nagłówek Set-Cookie z datą wygaśnięcia. Stąd pomysł, że cookie „będzie przechowywane na serwerze” jest po prostu nietrafiony – serwer nie ma osobnego magazynu na ciasteczka użytkowników, on tylko je odczytuje z nagłówków przychodzących żądań i ewentualnie ustawia nowe. Druga częsta pomyłka dotyczy samego czasu. Funkcja time() zwraca aktualny timestamp w sekundach od 1.01.1970, a w wyrażeniu 3600 * 24 wyliczana jest liczba sekund w jednej dobie. Jeśli ktoś pobieżnie spojrzy na zapis, może skojarzyć 3600 z godziną i założyć, że cookie jest ważne tylko godzinę, ignorując mnożenie przez 24. To typowy błąd „czytania po łebkach” kodu. Tymczasem przeglądarka dostaje konkretny moment w przyszłości, przesunięty o 86400 sekund, i do tej chwili będzie wysyłać cookie przy każdym żądaniu do odpowiedniej domeny i ścieżki. Warto też pamiętać, że samo istnienie cookie nie oznacza trwałego przechowywania danych po stronie serwera. Dane z ciasteczka trafiają na serwer dopiero, gdy przeglądarka wyśle je w nagłówku HTTP. Dlatego planując logikę aplikacji, trzeba jasno rozróżniać dane sesyjne na serwerze (np. w $_SESSION) od danych w cookie, które użytkownik może modyfikować po swojej stronie i które wygasają dokładnie według tego timestampu, jaki podamy w setcookie().

Pytanie 39

Który znacznik umieszcza się w sekcji <body> dokumentu HTML?

A.
<h2>
B.
<link>
C.
<title>
D.
<meta>
Znacznik <h2> to widoczna TREŚĆ strony (nagłówek drugiego poziomu), więc umieszcza się go w sekcji <body>. Dlatego do <body> należy <h2>.

Pytanie 40

Który ze sposobów komentowania kodu nie jest stosowany w kodzie jako komentarz PHP?

A. # komentarz
B. // komentarz
C. /* komentarz */
D. <!-- komentarz -->
W tym pytaniu kluczowe jest odróżnienie komentarzy w samym języku PHP od komentarzy w otaczającym go kodzie HTML. Wiele osób myli te dwie warstwy, bo pliki .php bardzo często zawierają jednocześnie kod HTML i PHP, i wtedy łatwo założyć, że skoro coś wygląda jak komentarz w przeglądarce, to na pewno jest też komentarzem dla interpretera PHP. To jest właśnie podstawowy błąd myślowy. W PHP obowiązuje składnia komentarzy przejęta głównie z języka C i powiązanych z nim technologii. Znak # oraz podwójny ukośnik // oznaczają komentarz jednolinijkowy – wszystko od tego znaku do końca linii jest ignorowane przez interpreter. Z kolei konstrukcja /* ... */ tworzy komentarz blokowy, który może obejmować wiele linii i jest bardzo wygodny do opisywania większych fragmentów kodu, np. funkcji, klas czy bardziej skomplikowanych algorytmów. Te trzy formy są pełnoprawnymi komentarzami PHP i są dokładnie opisane w oficjalnej dokumentacji języka. Problem pojawia się, gdy ktoś uzna, że <!-- komentarz --> też jest komentarzem PHP, bo „przecież używa się go w plikach .php”. Ten zapis jest jednak komentarzem HTML, rozumianym przez przeglądarkę internetową, a nie przez interpreter PHP. Działa on tylko w części dokumentu, którą przeglądarka widzi jako czysty HTML. Jeżeli taki komentarz wstawimy wewnątrz bloku <?php ... ?>, to PHP nie potraktuje go jako komentarz, tylko jako nieznane znaki, co w praktyce skończy się błędem składni. Z mojego doświadczenia wynika, że zamieszanie bierze się z tego, że w jednym pliku mieszają się dwa światy: serwerowy (PHP) i kliencki (HTML). Dobrą praktyką jest więc świadome rozdzielanie: w sekcjach PHP używamy wyłącznie #, // i /* */, a w czystym HTML – tylko <!-- -->. Pozwala to uniknąć trudnych do wykrycia błędów i sprawia, że kod jest czytelniejszy dla innych programistów, którzy od razu widzą, co jest komentarzem dla serwera, a co tylko dla frontendu.