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: 8 czerwca 2026 13:01
  • Data zakończenia: 8 czerwca 2026 13:36

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Która metoda wyświetli w JavaScript komunikat w konsoli przeglądarki?

A.
console.echo("test");
B.
console.print("test");
C.
console.write("test");
D.
console.log("test");
Pozostałe metody nie istnieją w obiekcie console. console.write(), console.print() oraz console.echo() brzmią wiarygodnie (kojarzą się z wypisywaniem w innych językach), ale JavaScript ich nie definiuje - ich wywołanie zakończy się błędem. Do wyświetlania komunikatów w konsoli przeglądarki służy console.log(), dlatego ostatnia odpowiedź jest poprawna.

Pytanie 2

W HTML5 semantycznym znacznikiem, który służy do określenia dwóch sekcji widocznych po prawej stronie na rysunku, zawierających wiadomości oraz aktualności, jest

Ilustracja do pytania
A. <main>
B. <article>
C. <nav>
D. <footer>
Element <article> w HTML5 został stworzony właśnie do oznaczania niezależnych, samodzielnych treści, które mają sens nawet poza kontekstem strony – czyli takich, które można zamieścić np. w RSS, podlinkować czy udostępnić osobno. W praktyce oznacza to np. pojedyncze wpisy na blogu, wiadomości, ogłoszenia czy aktualności – dokładnie tak jak w tym zadaniu. Dzięki użyciu <article>, osoby korzystające z czytników ekranowych czy wyszukiwarek łatwiej rozpoznają strukturę strony, bo semantyka jest czytelna dla maszyn. Z mojego doświadczenia, stosowanie <article> dla wiadomości i aktualności jest też zgodne z dobrą praktyką tworzenia dostępnych stron – Google nawet sugeruje, by tak wyodrębniać własne, kompletne treści. To ma ogromne znaczenie przy pozycjonowaniu (SEO), bo roboty wyszukiwarek potrafią lepiej rozumieć, co jest główną treścią strony. Dodatkowo, używanie odpowiednich znaczników semantycznych poprawia współpracę z różnymi narzędziami, które analizują układ i zawartość strony, a także ułatwia późniejszą przebudowę lub rozwój projektu. Moim zdaniem, nadanie sekcjom z wiadomościami i aktualnościami znacznika <article> to podstawa nowoczesnego kodowania stron internetowych.

Pytanie 3

Dla dowolnego a w zakresie (0,99), celem funkcji napisanej w JavaScript jest:

function fun1(a)
{
    for(n=a; n<=100; n++)
        document.write(n);
    return n;
}
A. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
B. wypisanie wartości z zakresu a...100 i zwrócenie wartości zmiennej n
C. wypisanie wartości z zakresu a..99 i zwrócenie liczby 100
D. zwrócenie wartości z zakresu a..99
Odpowiedź numer trzy jest poprawna ponieważ kod funkcji w języku JavaScript zawiera pętlę for która iteruje od wartości a aż do 100 włącznie. W każdym przebiegu pętli wywoływana jest metoda document.write która wypisuje na ekranie bieżącą wartość zmiennej n. Ponieważ pętla kończy się na 100, ostatnia wartość która zostanie wypisana to 100. Dodatkowo zauważmy że po zakończeniu pętli funkcja zwraca wartość zmiennej n, która po zakończeniu pętli będzie równa 101. Jest to typowy wzorzec używany w JavaScript gdzie pętla jest wykorzystywana do iteracji po zbiorze wartości a po jej zakończeniu zwracana jest ostatnia wartość zmiennej sterującej. Praktyczne zastosowanie tej wiedzy obejmuje rozumienie podstawowych mechanizmów iteracji w JavaScript co jest kluczowe w programowaniu. Dobre praktyki wskazują na wyraźne rozdzielenie logiki wyświetlania od logiki zwracania wartości co ułatwia testowanie i utrzymanie kodu. Zwracanie wartości po pętli może być używane w sytuacjach gdy chcemy uzyskać informację o stanie końcowym iteracji co jest częstym scenariuszem w obliczeniach arytmetycznych lub przetwarzaniu danych.

Pytanie 4

W tabeli psy znajdują się kolumny: imię, rasa, telefon_właściciela, rok_szczepienia. Jakie polecenie SQL należy zastosować, aby znaleźć numery telefonów właścicieli psów, które zostały zaszczepione przed 2015 rokiem?

A. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia < 2015
B. SELECT imię, rasa FROM psy WHERE rok_szczepienia > 2015
C. SELECT telefon_właściciela FROM psy WHERE rok_szczepienia > 2015
D. SELECT psy FROM rok_szczepienia < 2015
Wybrana odpowiedź jest poprawna, ponieważ precyzyjnie określa, jak za pomocą języka SQL można uzyskać telefony właścicieli psów, których szczepienia miały miejsce przed rokiem 2015. W poleceniu SQL używamy klauzuli SELECT, aby wybrać konkretne kolumny z tabeli. W tym przypadku interesuje nas kolumna 'telefon_wlasciciela'. Klauzula WHERE służy do filtrowania danych, co pozwala na zastosowanie warunku, który musi być spełniony, aby rekordy zostały zwrócone. Warunek 'rok_szczepienia < 2015' jest logiczny i zgodny z wymaganiami pytania. Taka konstrukcja zapytania jest zgodna z najlepszymi praktykami, ponieważ jasno określa, co chcemy uzyskać oraz jakie kryteria muszą zostać spełnione. Przykładowe zastosowanie tego typu zapytania może obejmować analizę danych dotyczących zdrowia psów, co jest istotne dla weterynarzy, hodowców czy właścicieli zwierząt. Umożliwia to podejmowanie świadomych decyzji dotyczących opieki zdrowotnej zwierząt.

Pytanie 5

Który znacznik HTML umożliwia DYNAMICZNE generowanie grafiki na stronie (bez dodatkowych plików)?

A.
<img>
B.
<canvas>
C.
<embed>
D.
<object>
Element <canvas> to obszar, na którym JavaScript dynamicznie rysuje grafikę (kształty, wykresy, animacje, gry) bez dołączania zewnętrznych plików obrazu. Sam znacznik jest pustym „płótnem”, a treść powstaje skryptem. Dlatego dynamiczną grafikę umożliwia <canvas>.

Pytanie 6

Jaką rozdzielczość ustawić, aby przygotować film w jakości HD Ready (720p)?

A. 480 × 360
B. 1280 × 720
C. 720 × 480
D. 1920 × 1080
Pozostałe rozdzielczości to inne standardy. 480 × 360 jest poniżej HD, 720 × 480 to jakość SD (np. DVD), a 1920 × 1080 to Full HD (1080p). HD Ready to 1280 × 720.

Pytanie 7

Który z formatów plików dźwiękowych zapewnia największą redukcję rozmiaru pliku?

A. WAV
B. MP3
C. PCM
D. CD-Audio
Pozostałe formaty nie kompresują dźwięku (lub robią to znikomo), więc dają duże pliki. WAV to zwykle kontener z nieskompresowanym sygnałem, podobnie jak PCM, czyli surowy zapis próbek dźwięku - oba zachowują pełną jakość kosztem rozmiaru. CD-Audio odpowiada zapisowi z płyty CD, również nieskompresowanemu. Najmocniej zmniejsza rozmiar pliku kompresja stratna formatu MP3, dlatego ta odpowiedź jest poprawna.

Pytanie 8

Aby umieścić kod JavaScript bezpośrednio w dokumencie HTML, należy użyć znacznika:

A.
<code>
B.
<script>
C.
<js>
D.
<style>
Kod JavaScript osadza się w dokumencie wewnątrz znacznika <script>. Wszystko między <script> a </script> przeglądarka traktuje jako kod do wykonania. Tym samym znacznikiem (z atrybutem src) dołącza się też skrypty zewnętrzne. Dlatego do umieszczenia JS w stronie służy <script>.

Pytanie 9

Którego ograniczenia (constraint) użyć do zdefiniowania klucza OBCEGO?

A.
AUTO_INCREMENT(id)
B.
UNIQUE KEY(id)
C.
FOREIGN KEY(id)
D.
PRIMARY KEY(id)
Klucz obcy definiuje ograniczenie FOREIGN KEY, np. FOREIGN KEY(id) - wiąże kolumnę z kluczem głównym innej tabeli, pilnując spójności powiązań. Dlatego klucz obcy tworzy FOREIGN KEY(id).

Pytanie 10

W stylu CSS utworzono klasę uzytkownik. Na stronie będą wyświetlane czcionką w kolorze niebieskim: p.uzytkownik { color: blue; }

A. jedynie elementy tekstowe takie jak <p>, <h1>.
B. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
C. akapitów, którym przypisano klasę uzytkownik.
D. wszystkie akapity.
Odpowiedź, że paragrafy przypisane do klasy 'uzytkownik' będą miały niebieską czcionkę, jest jak najbardziej trafna. W CSS używamy kropki, żeby zdefiniować klasę, co oznacza, że styl dotyczy tylko tych elementów HTML, które mają tę klasę. Więc jeśli masz coś takiego w HTML jak <p class='uzytkownik'>, to na pewno będzie to wyświetlane z niebieską czcionką, zgodnie z Twoją regułą CSS. Takie podejście super wspiera modularność i możliwość ponownego użycia kodu, co jest naprawdę ważne w tworzeniu stron. Dzięki klasom CSS łatwo da się ogarnąć styl w różnych miejscach w kodzie, a zmieniając kolor czcionki w pliku CSS, zmiana ta natychmiast zaktualizuje wszystkie elementy z tą klasą. Przykładowo, akapit <p class='uzytkownik'> będzie miał niebieski kolor i to fajnie wpływa na spójność wizualną strony. Pamiętaj też, że klasy CSS można stosować nie tylko do akapitów, ale też do innych znaczników, co daje większą swobodę w stylizacji treści.

Pytanie 11

Instrukcją równoważną funkcjonalnie do przedstawionej instrukcji JavaScript jest

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
Kod 1.
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}
Kod 2.
while (i < 100)
  document.write(i + ' ');
Kod 3.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}
Kod 4.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}
A. Kod 3.
B. Kod 4.
C. Kod 1.
D. Kod 2.
Gratulacje! Wybrałeś poprawną odpowiedź, która jest Kodem 3. Pętla for prezentowana na obrazku inicjuje zmienną i na 0, a następnie sprawdza warunek i < 100, wykonuje instrukcje w pętli for i zwiększa i o 10 za każdą iteracją. To jest standardowe zachowanie dla pętli for w języku programowania JavaScript. Kod 3 jest równoważny funkcjonalnie z pętlą for, ponieważ również inicjuje zmienną i na 0, a następnie w pętli while sprawdza warunek (i < 100), wykonuje instrukcje w pętli i zwiększa i o 10 w każdej iteracji. Zrozumienie różnych rodzajów pętli i ich równoważności jest kluczowe dla skutecznego programowania, ponieważ pozwala na optymalizację kodu i poprawę jego czytelności. Dobrą praktyką jest zrozumienie, kiedy używać różnych typów pętli w zależności od specyficznych wymagań danego problemu programistycznego.

Pytanie 12

Do czego służy w JavaScript metoda Math.random()?

A. do zwrócenia liczby po zaokrągleniu
B. do zwrócenia liczby pseudolosowej
C. do zaokrąglenia liczby w górę do całkowitej
D. do porównania dwóch napisów
Metoda Math.random() zwraca liczbę pseudolosową z przedziału od 0 (włącznie) do 1 (wyłącznie). Mnożąc i zaokrąglając wynik, uzyskuje się losowe liczby z dowolnego zakresu. Dlatego Math.random() zwraca liczbę pseudolosową.

Pytanie 13

Mamy tablicę o n elementach o nazwie t[n]. Zadaniem algorytmu, zapisanego w krokach, jest wyliczenie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
  K3: wynik ← wynik + t[i]
  K4: i ← i + 2
K5: wypisz wynik
A. co drugiego elementu tablicy
B. sumy tych elementów tablicy, które mają wartości nieparzyste
C. n-elementów tej tablicy
D. wszystkich elementów tablicy
Pierwsza niepoprawna koncepcja sugeruje zsumowanie wszystkich elementów tablicy, co wymagałoby iteracji przez każdy element bez przeskakiwania indeksów. Taki algorytm miałby strukturę z pętlą stabilnie zwiększającą indeks o 1, co nie jest zgodne z przedstawionym kodem. Druga opcja zakłada sumowanie n-elementów tablicy, co jest mało precyzyjne i może sugerować błędne rozumienie, że n samo w sobie jest wartością sumowaną, a nie indeksem granicznym. Algorytm musiałby dodawać wszystkie elementy od zera do n-1, a w rzeczywistości operuje na co drugim indeksie. Ostatnia propozycja dotycząca sumowania elementów o wartościach nieparzystych wymagałaby dodatkowego warunku sprawdzającego parzystość wartości t[i], czego brak w przedstawionym kodzie. Typowym błędem jest niezrozumienie różnicy między iterowaniem po indeksach a wartościami oraz między warunkiem logicznym a przekształceniem pętli. Wszystkie te błędne odpowiedzi wynikają z nieprecyzyjnego przeanalizowania warunków i struktury pętli, co jest kluczowe w projektowaniu efektywnych algorytmów, zgodnie z zasadami inżynierii oprogramowania.

Pytanie 14

Z uwagi na zaprezentowany styl CSS, plik rysunek.gif jest używany jako tło strony:

body {
    background-image: url("rysunek.gif");
    background-repeat: repeat-y;
}
A. w pionowym kierunku
B. w poziomym kierunku
C. zarówno w pionowym, jak i poziomym kierunku z kadrowaniem
D. zarówno w pionowym, jak i poziomym kierunku ze skalowaniem
Styl CSS określa `background-repeat: repeat-y;`, co oznacza, że obraz tła będzie powtarzany w osi pionowej. Wartość `repeat-y` jest odpowiedzialna za powtarzanie obrazu tylko w pionie, podczas gdy `repeat-x` powtarza w poziomie. Jeśli chcemy, aby obraz powtarzał się w obu kierunkach, używamy `repeat`, co jest domyślną wartością właściwości `background-repeat`. W praktyce zastosowanie tego stylu jest przydatne, gdy chcemy utworzyć efekt pasków lub pionowych wzorów na stronie internetowej, które zmieniają się dynamicznie wraz z wysokością zawartości. Warto zwrócić uwagę, że poprawna implementacja powtarzania tła w pionie może być wykorzystana do oszczędnego zarządzania zasobami, zwłaszcza gdy obraz tła jest niewielki, co wpływa na szybkość ładowania strony. W kontekście standardów, takie podejście jest zgodne z zaleceniami W3C, które promują optymalizację zasobów i efektywne zarządzanie mediami na stronach www.

Pytanie 15

Która kwerenda wybierze z tabeli Uczniowie tylko osoby o imieniu „Aleksandra” urodzone PO 1998 roku?

A.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia > "1998";
B.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia < "1998";
C.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" OR rok_urodzenia < "1998";
D.
SELECT * FROM Uczniowie WHERE imie = "Aleksandra" OR rok_urodzenia > "1998";
Zadanie stawia dwa warunki, które muszą być spełnione JEDNOCZEŚNIE: imię „Aleksandra” oraz urodzenie po 1998 - takie połączenie zapewnia operator AND, a „po roku” to rok_urodzenia > "1998". Daje to SELECT * FROM Uczniowie WHERE imie = "Aleksandra" AND rok_urodzenia > "1998";. Dlatego ta kwerenda jest poprawna.

Pytanie 16

Którego znacznika użyć, aby wstawić na stronę obraz JPG?

A.
<img>
B.
<jpg>
C.
<table>
D.
<src>
Obraz (np. JPG) wstawia się na stronę znacznikiem <img> z atrybutem src wskazującym plik. Dlatego do wstawienia obrazu służy <img>.

Pytanie 17

W języku HTML stworzono odnośnik z symbolem #. Co się wydarzy po kliknięciu na podany link?

<a href="#dane">

A. Zostanie użyty względny adres URL o nazwie dane
B. Uruchomi się skrypt o nazwie dane
C. Otworzy się nowa karta przeglądarki zatytułowana dane
D. Strona przewinie się do elementu z id o nazwie dane
Hiperłącze z użyciem znaku # w języku HTML odnosi się do identyfikatora (id) na tej samej stronie. Gdy użytkownik kliknie ten odsyłacz, przeglądarka przewinie stronę do elementu, który ma przypisany identyfikator 'dane'. To podejście jest powszechnie stosowane w celu ułatwienia nawigacji na długich stronach, gdzie użytkownicy mogą szybko przeskakiwać do interesujących ich sekcji. Przykład praktyczny może obejmować stronę z informacjami o produkcie, gdzie poszczególne sekcje, takie jak 'Specyfikacje', 'Opinie' czy 'FAQ', mają przypisane unikalne identyfikatory. Używając hiperłączy z #, użytkownicy mogą z łatwością dotrzeć do tych sekcji bez przewijania strony manualnie. Tego typu implementacja jest zgodna z zasadami dostępności i ułatwia nawigację, co jest szczególnie ważne w projektowaniu stron przyjaznych dla użytkownika. Ważne jest również, aby identyfikatory były unikalne w obrębie strony, co zapobiega potencjalnym konfliktom i pozwala na prawidłowe przewijanie.

Pytanie 18

Aby strona WWW była responsywna (dostosowana do różnych urządzeń), należy między innymi definiować:

A. tylko znane czcionki, np. Arial
B. rozmiary obrazów wyłącznie w pikselach
C. układ strony wyłącznie za pomocą tabel
D. rozmiary obrazów w procentach
Responsywność polega na tym, że strona dopasowuje się do szerokości ekranu - od dużego monitora po telefon. Aby to osiągnąć, wymiary elementów, w tym obrazów, podaje się w jednostkach względnych, na przykład w procentach szerokości kontenera. Obraz o szerokości 100% skaluje się wtedy razem z układem, zamiast wystawać poza ekran. Dlatego w RWD rozmiary obrazów definiuje się w procentach.

Pytanie 19

Które polecenie SQL zmieni w tabeli tab, w kolumnie kol, wartość „Ania” na „Zosia”?

A.
UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';
B.
UPDATE tab SET kol = 'Ania' WHERE kol = 'Zosia';
C.
ALTER TABLE tab CHANGE kol = 'Zosia' kol = 'Ania';
D.
ALTER TABLE tab CHANGE kol = 'Ania' kol = 'Zosia';
Modyfikację wartości w wierszach wykonuje UPDATE: ustawiamy nową wartość klauzulą SET, a warunkiem WHERE wskazujemy, których rekordów dotyczy. Zamiana „Ania” na „Zosia” to UPDATE tab SET kol = 'Zosia' WHERE kol = 'Ania';. Dlatego ta kwerenda jest poprawna.

Pytanie 20

Strona internetowa została stworzona w języku XHTML. Który z poniższych kodów reprezentuje realizację zaprezentowanego fragmentu strony, jeśli nie zdefiniowano żadnych stylów CSS?

Ilustracja do pytania
A. D
B. C
C. B
D. A
Odpowiedzi nieprawidłowe nie spełniają wymogów semantycznych oraz składniowych XHTML. XHTML wymaga, aby dokumenty były poprawne pod względem składniowym, co oznacza między innymi zamykanie wszystkich znaczników oraz stosowanie poprawnej struktury dokumentu. Warianty odpowiedzi, które używają znacznika <b> zamiast semantycznych nagłówków jak <h1>, nie są zgodne z dobrymi praktykami, ponieważ <h1> nadaje kontekst semantyczny, informując o hierarchii treści. W przypadku XHTML, znaczniki powinny być zamykane, a ich nazwy pisane małymi literami, co jest kluczowe dla zgodności z XML. Brak odpowiedniej struktury, jak w przypadku użycia <b> do nagłówków, może prowadzić do niepoprawnej interpretacji przez przeglądarki oraz problemy z dostępnością dla technologii wspomagających. Ponadto, używanie znaczników inline jak <br> do wizualnego formatowania tekstu nie jest zalecane, gdyż nie oddziela treści od prezentacji, co jest jednym z fundamentalnych założeń nowoczesnego tworzenia stron internetowych. To może prowadzić do problemów z dostępnością oraz negatywnie wpływać na SEO, jako że wyszukiwarki lepiej interpretują treści poprawnie zorganizowane i semantycznie poprawne.

Pytanie 21

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_commit();
B. mysqli_exit();
C. mysqli_rollback();
D. mysqli_close();
Funkcja mysqli_close() jest właściwym sposobem na zakończenie pracy z połączeniem do bazy danych MySQL w języku PHP. Użycie tej funkcji zwalnia zasoby skojarzone z danym połączeniem, co jest kluczowe w kontekście wydajności aplikacji. Po zakończeniu operacji na bazie danych, zwłaszcza w przypadku aplikacji intensywnie korzystających z zasobów, takich jak serwery webowe, ważne jest, aby zamknąć połączenie, aby uniknąć wycieków pamięci oraz ograniczyć liczbę otwartych połączeń. Przykładowo, po wykonaniu zapytań do bazy danych, stosując mysqli_close($connection), gdzie $connection to uchwyt do otwartego połączenia, można skutecznie zakończyć interakcję z bazą. Dobrą praktyką jest zamykanie połączeń w blokach finally, aby upewnić się, że zasoby są zwalniane nawet w przypadku wystąpienia wyjątków. Kiedy zamykasz połączenie, pamiętaj, że nie będziesz w stanie już korzystać z tego uchwytu połączenia, co jest zgodne z filozofią zarządzania zasobami, gdzie każdy otwarty zasób powinien być odpowiednio zamykany po zakończeniu jego użycia.

Pytanie 22

Która z czynności nie wpłynie na objętość zajmowanej pamięci pliku graficznego?

A. Interpolacja
B. Modyfikacja rozdzielczości obrazu
C. Zmiana rozmiaru obrazu przy użyciu atrybutów HTML
D. Kompresja
Skalowanie obrazu za pomocą atrybutów HTML to technika, która pozwala na dostosowanie rozmiaru wyświetlanego obrazu w przeglądarce internetowej bez zmiany jego rzeczywistego rozmiaru pliku. Atrybuty takie jak 'width' i 'height' w tagach <img> wpływają jedynie na to, jak obraz jest prezentowany na stronie, a nie na jego fizyczne właściwości. Przykładem może być użycie <img src='obraz.jpg' width='300' height='200'>, co sprawia, że obraz wyświetla się w określonych wymiarach, ale plik graficzny pozostaje niezmieniony. Takie podejście jest zgodne z dobrymi praktykami w projektowaniu stron internetowych, ponieważ pozwala na utrzymanie jakości obrazu bez dodatkowego obciążania serwera. W sytuacjach, gdy szybkość ładowania strony jest kluczowa, użycie odpowiednich atrybutów HTML może przyczynić się do lepszego doświadczenia użytkownika bez potrzeby modyfikacji oryginalnych plików graficznych. Warto również zaznaczyć, że w przypadku responsywnych stron internetowych stosuje się techniki CSS, które umożliwiają dalsze dostosowanie wielkości obrazów, ale także nie wpływają na ich wagę w pamięci.

Pytanie 23

Jakiej kwerendy w bazie MariaDB należy użyć, aby wybrać artykuły, których ceny mieszczą się w przedziale domkniętym <10, 20>?

A. SELECT * FROM Artykuly WHERE Cena > 10 AND Cena < 20
B. SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20
C. SELECT * FROM Artykuly WHERE Cena LIKE 1%, 2%
D. SELECT * FROM Artykuly WHERE Cena IN (10, 20)
Odpowiedź 'SELECT * FROM Artykuly WHERE Cena BETWEEN 10 AND 20;' jest prawidłowa, ponieważ wykorzystuje operator BETWEEN, który jest idealny do określenia wartości zawartych w obustronnie domkniętym przedziale. W tym przypadku zapytanie zwróci wszystkie artykuły, których cena jest równa 10 lub 20 oraz wszystkie wartości znajdujące się pomiędzy tymi dwoma wartościami. Operator BETWEEN jest standardowym sposobem na łatwe zapisywanie takich warunków w SQL, co czyni kod bardziej czytelnym i zrozumiałym. Przykład zastosowania to sytuacja, gdy chcemy znaleźć produkty w określonym przedziale cenowym na stronie e-commerce. Tego typu kwerendy są bardzo powszechne w analizie danych i zarządzaniu bazami danych, a ich znajomość jest kluczowa dla efektywnego wykonywania zadań związanych z eksploracją danych. Zastosowanie BETWEEN w praktyce pozwala na automatyzację procesów wyszukiwania i filtrowania danych, co jest zgodne z najlepszymi praktykami w zakresie optymalizacji zapytań w bazach danych.

Pytanie 24

Aby wykonać kopię zapasową bazy danych MySQL, można posłużyć się:

A. agregacją danych
B. modyfikacją danych
C. importem bazy
D. eksportem bazy
Kopię zapasową bazy MySQL tworzy się przez eksport - zapis struktury tabel i danych do pliku (najczęściej .sql). Taki plik zawiera polecenia, które pozwalają później odtworzyć bazę w tym samym stanie, np. po awarii lub przy przenoszeniu na inny serwer. Eksport wykonasz w phpMyAdmin (zakładka Eksport) albo narzędziem mysqldump. Odwrotną operacją, przywracającą dane z pliku, jest import. Do zrobienia kopii zapasowej służy więc eksport bazy.

Pytanie 25

Wskaż równoważną metodę dla instrukcji switch zapisaną w języku PHP?

Ilustracja do pytania
A. A
B. C
C. B
D. D
Switch w PHP to narzędzie, które pomaga kierować działaniem programu w zależności od wartości, i często zamienia się to na wiele if-else, żeby kod był bardziej przejrzysty. Czasami jednak pojawiają się błędne interpretacje logiki warunkowej. W odpowiedzi D, użycie operatora and oznacza, że oba warunki muszą być spełnione naraz, co jest trochę mylące, bo dla zmiennej $liczba przy wartościach 10 i 20 to nie jest za bardzo możliwe. W odpowiedzi A jest po prostu porównanie do 10, co nie pokazuje całego potencjału switch, który może radzić sobie z wieloma przypadkami. Odpowiedź C też ma problem, bo chociaż używa or poprawnie, brakuje jej else, który jest ważny w switch, bo pozwala na zrobienie czegoś, gdy żaden z warunków nie pasuje. Często zapomina się o znaczeniu default w switch, a w if-else to w sumie jest to else. Zrozumienie tych rzeczy jest ważne, żeby pisać czytelny i efektywny kod PHP, szczególnie gdy tworzymy większe aplikacje, bo bez jasnej struktury może to być naprawdę wyzwanie.

Pytanie 26

Jak wygląda prawidłowy zapis samozamykającego się znacznika w zgodzie ze standardem języka XHTML, który odpowiada za łamanie linii?

A. </br/>
B. <br />
C. <br> </br>
D. </ br>
Odpowiedź <br /> jest prawidłowym zapisem samozamykającego się znacznika w standardzie XHTML. XHTML, czyli eXtensible HyperText Markup Language, wymaga, aby znaczniki były poprawnie zamknięte. W przypadku znaczników, które nie mają zawartości, jak <br />, stosuje się specjalną składnię. Oznaczenie <br /> wskazuje na przełamanie linii w dokumencie HTML. Ważne jest, aby podać ukośnik przed zakończeniem znacznika, co jest zgodne z zasadami XHTML. Przykładowo, w dokumentach XHTML, prawidłowe użycie <br /> może wyglądać tak: <p>Tekst przed łamaniem linii.<br />Tekst po łamaniu linii.</p>. Przestrzeganie tych zasad zapewnia, że dokumenty będą poprawnie interpretowane przez przeglądarki oraz będą zgodne z standardami W3C, co jest kluczowe dla zachowania wysokiej jakości kodu oraz jego dostępności.

Pytanie 27

Jakiej opcji w edytorze grafiki rastrowej należy użyć, aby przygotować obraz do wyświetlenia na stronie w taki sposób, aby widoczna była tylko część znajdująca się w obrębie ramki?

Ilustracja do pytania
A. Odbicie
B. Skalowanie
C. Kadrowanie
D. Perspektywa
Kadrowanie to proces polegający na usuwaniu niechcianych części obrazu w celu skupienia uwagi na jego istotnych elementach. W kontekście przygotowywania rysunku do wyświetlenia na stronie internetowej, kadrowanie pozwala na wyeksponowanie tylko tych fragmentów grafiki, które mają być widoczne dla odbiorcy, jednocześnie usuwając zbędne tło czy elementy. Jest to technika szeroko stosowana w branży graficznej i fotograficznej, gdzie precyzyjne dostosowanie kompozycji wizualnej ma kluczowe znaczenie dla estetyki oraz komunikacji wizualnej. Kadrowanie wspiera także optymalizację plików graficznych, redukując ich rozmiar i poprawiając czas ładowania strony. W edytorach grafiki rastrowej, takich jak Adobe Photoshop czy GIMP, kadrowanie jest intuicyjnym narzędziem, które pozwala na szybkie i efektywne dostosowanie kadru do wymogów projektu. Dobre praktyki branżowe zalecają regularne kadrowanie w celu zwiększenia czytelności i nadania profesjonalnego wyglądu materiałom wizualnym. Poprawnie wykadrowany obraz nie tylko poprawia estetykę, ale również może wpłynąć na przekaz oraz zaangażowanie użytkowników. Wybór właściwych proporcji i skali podczas kadrowania jest istotny dla uzyskania spójnego i harmonijnego efektu końcowego, który będzie zgodny z założeniami projektu oraz oczekiwaniami odbiorcy.

Pytanie 28

Jakie uprawnienia będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł zmieniać strukturę tabeli klienci.
B. Będzie mógł przeszukiwać dane w tabeli klienci.
C. Będzie mógł dodawać rekordy do tabeli klienci.
D. Będzie mógł eliminować rekordy z tabeli klienci.
Wybór odpowiedzi, że jan będzie mógł usuwać rekordy z tabeli klienci, jest błędny. Polecenie REVOKE SELECT, INSERT, UPDATE, DELETE nałożone na użytkownika jan oznacza, że pozbawiono go możliwości wykonywania operacji, które są kluczowe dla zarządzania danymi w tej tabeli. W praktyce, zasady przyznawania uprawnień w bazach danych wymagają, aby użytkownicy mieli określone uprawnienia do przeprowadzenia operacji na danych. Usuwanie rekordów jest operacją, która wymaga posiadania odpowiednich uprawnień, a ponieważ jan został pozbawiony uprawnienia DELETE, nie może on już usuwać żadnych danych z tabeli klienci. Podobnie, stwierdzenie, że jan będzie mógł wyszukiwać dane, również jest błędne, ponieważ uprawnienie SELECT zostało odjęte. W kontekście administracji bazą danych, kluczowe jest zrozumienie, że przyznawanie lub odbieranie uprawnień powinno być zgodne z zasadą najmniejszych uprawnień, co oznacza, że użytkownicy powinni mieć tylko te uprawnienia, które są niezbędne do wykonywania ich pracy. W tym przypadku jan ma pełne uprawnienia do zmiany struktury tabeli, ale nie ma żadnej możliwości interakcji z danymi. Zatem, odpowiedzi dotyczące możliwości wstawiania rekordów również są błędne, ponieważ uprawnienie INSERT zostało zabrane, co uniemożliwia janowi dodawanie nowych danych do tabeli. W związku z powyższym, wybór odpowiedzi na pytanie egzaminacyjne powinien opierać się na dokładnej analizie przyznanych uprawnień oraz ich wpływu na możliwości działania użytkowników w systemie baz danych.

Pytanie 29

Które z wymienionych stwierdzeń na temat zasad programowania w PHP jest prawdziwe?

A. Deklaracja zmiennych następuje po słowie var
B. W nazwach zmiennych nie rozróżnia się wielkości liter
C. Jest to język o słabej kontroli typów
D. Nazwy zmiennych poprzedza znak !
Deklaracja zmiennych w PHP nie odbywa się za pomocą słowa kluczowego 'var', lecz po prostu przez przypisanie wartości do zmiennej, która musi być poprzedzona znakiem dolara ($). Ten błąd często wynika z przyzwyczajenia do innych języków programowania, takich jak Java czy C#, w których takie deklaracje są powszechne. W PHP, zamiast deklaracji, chodzi o dynamiczne przypisanie wartości, co sprawia, że kod jest bardziej elastyczny, ale i bardziej podatny na błędy typowe dla typów dynamicznych. W kontekście nazw zmiennych, PHP jest językiem rozróżniającym wielkość liter, co oznacza, że '$zmienna' i '$Zmienna' to dwie różne zmienne. Oznacza to, że programiści muszą być szczególnie uważni, aby unikać niezamierzonych błędów przez niewłaściwe użycie wielkości liter. Termin '!', jako znak poprzedzający zmienne, również jest błędny, ponieważ w PHP zmienne zawsze zaczynają się od '$'. Rozważając typy danych, PHP ma słabą kontrolę typów, co oznacza, że programista może zmieniać typy zmiennych w trakcie działania programu, ale nie znaczy to, że jest to język bez kontroli typów. Właściwe zarządzanie typami danych jest kluczowe dla pisania efektywnego i bezpiecznego kodu, a użytkownicy muszą rozumieć konsekwencje dynamicznej typizacji w kontekście debuggingu i przyszłej konserwacji aplikacji.

Pytanie 30

Jak określa się proces przedstawiania informacji zawartych w dokumencie elektronicznym w formie odpowiedniej dla konkretnego środowiska?

A. Mapowanie
B. Teksturowanie
C. Renderowanie
D. Rasteryzacja
Mapowanie to proces związany z przypisywaniem wartości z jednego systemu do innego, często w kontekście baz danych lub geolokalizacji, ale nie odnosi się bezpośrednio do transformacji danych w formę wizualną. Rasteryzacja to technika przekształcania obrazów wektorowych na obrazy rastrowe, co jest jedynie etapem w renderowaniu, a nie samodzielnym procesem. Teksturowanie to proces nakładania tekstur na powierzchnie obiektów 3D, co również jest aspektem renderowania, ale nie obejmuje całości procesu przedstawienia dokumentów elektronicznych. Często zdarza się pomylić te pojęcia, ponieważ wszystkie dotyczą przetwarzania danych, jednak ich zastosowania są różne. Zrozumienie różnic między tymi terminami jest kluczowe dla efektywnej komunikacji w dziedzinie technologii cyfrowych. Wnioskując, kluczowym błędem jest mylenie renderowania z innymi technikami przetwarzania danych, co może prowadzić do nieprawidłowego stosowania technologii w projektach, a także do nieporozumień w zespole projektowym. W związku z tym, właściwe rozpoznawanie i stosowanie terminologii technicznej jest niezbędne do skutecznego zarządzania projektami oraz do osiągania zamierzonych rezultatów w branży IT.

Pytanie 31

Jakie działanie wykonuje poniższy fragment kodu w języku JavaScript? n = "Napis1"; s = n.length;

A. Przypisuje wartość zmiennej n do zmiennej s
B. Przypisuje do zmiennej s część napisu z zmiennej n, o długości określonej przez zmienną length
C. Przypisuje do zmiennej s wartość odpowiadającą długości napisu z zmiennej n
D. Zwraca długość napisu zawartego w zmiennej n
Odpowiedzi, które błędnie interpretują fragment kodu, wskazują na nieporozumienie dotyczące działania właściwości length oraz przypisania wartości w JavaScript. Przypisanie zmiennej n do zmiennej s nie jest możliwe w kontekście omawianego fragmentu, ponieważ zmienna s nie przyjmuje obiektu, a wyłącznie wartość długości napisu. Stwierdzenie, że skrypt wyświetli długość napisu, jest również nieprawidłowe, ponieważ w danym kodzie nie ma operacji wyświetlania - zmienne są jedynie przypisane. Kolejnym błędnym wnioskiem jest przypisanie fragmentu napisu do zmiennej s, co nie ma miejsca, ponieważ length zwraca tylko liczbę, a nie podłańcuch. Podstawowym błędem myślowym jest pomylenie przypisania wartości z operacjami wyświetlania i manipulacji łańcuchami. Warto zrozumieć, że JavaScript, jako język o dynamicznej typizacji, wymaga precyzyjnego rozumienia typów danych, a także właściwości i metod obiektów, co jest kluczowe dla efektywnego programowania. Niezrozumienie tych podstawowych konceptów może prowadzić do wielu błędów w kodzie, które są trudne do zdiagnozowania, a także mogą wpływać na wydajność i stabilność aplikacji.

Pytanie 32

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. td, th { background-color: Pink; }
C. tr:hover { background-color: Pink; }
D. tr:active { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek.

W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony.

Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 33

Jakie zapytanie SQL będzie odpowiednie do odnalezienia w podanej tabeli tylko imion oraz nazwisk pacjentów, którzy przyszli na świat przed rokiem 2002?

Ilustracja do pytania
A. SELECT * FROM Pacjenci WHERE rok_urodzenia <= 2002
B. SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002
C. SELECT imie, nazwisko FROM Pacjenci WHERE data_ostatniej_wizyty < 2002
D. SELECT * FROM Pacjenci WHERE rok_urodzenia LIKE 2002
W tym zapytaniu zastosowałeś składnię SELECT imie, nazwisko FROM Pacjenci WHERE rok_urodzenia < 2002, co jest super, bo pozwala wyciągnąć tylko te imiona i nazwiska pacjentów, którzy urodzili się przed rokiem 2002. Użycie konkretnych kolumn jak imie i nazwisko zamiast znaku * to niezła sprawa, bo ogranicza wyniki do tego, co naprawdę potrzebujesz. To z kolei może znacząco zwiększyć wydajność przesyłania danych. No i to WHERE rok_urodzenia < 2002 – świetny ruch! Fajnie, że potrafisz filtrować dane według konkretnego warunku. Bez tego miałbyś wszystkie osoby, nie tylko te sprzed 2002 roku. To jest właśnie selekcja warunkowa w SQL, a jej znajomość to podstawa przy analizie danych. Zgadzam się również, że uniknięcie znaków wieloznacznych jak LIKE w tej sytuacji to dobre podejście, bo używasz bezpośrednich porównań liczbowych, co generalnie działa lepiej i daje jaśniejsze wyniki.

Pytanie 34

Jakie oprogramowanie jest potrzebne do uruchomienia skryptu JavaScript działającego na stronie?

A. debugger JavaScript
B. serwer MySQL
C. serwer WWW
D. przeglądarka internetowa
Pozostałe oprogramowanie nie jest konieczne do działania JS w przeglądarce. Serwer WWW i serwer MySQL obsługują stronę i bazę po stronie SERWERA, niezależnie od skryptów klienta. Debugger JS pomaga szukać błędów, ale nie jest wymagany do uruchomienia kodu. Wystarczy przeglądarka internetowa.

Pytanie 35

Który z zaprezentowanych kodów HTML sformatuje tekst zgodnie z podanym wzorem?
Uwaga: słowo "stacji" jest napisane większą czcionką niż pozostałe wyrazy w tej linijce)

Lokomotywa

Stoi na stacji lokomotywa ...

A. <h1>Lokomotywa</h1>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>
B. <h1>Lokomotywa</h1>
<p>Stoi na <big>stacji lokomotywa ...</p>
C. <h1>Lokomotywa</h1>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>
D. <p><small>Lokomotywa</small></p>
<p>Stoi na <big>stacji<big> lokomotywa ...</p>
W zaprezentowanych błędnych rozwiązaniach widać kilka typowych problemów z HTML-em: niepełne zamykanie znaczników, obejmowanie tagiem zbyt dużego fragmentu tekstu oraz mylenie roli nagłówków z innymi elementami formatowania. Jeżeli znacznik <big> obejmuje więcej niż powinien, na przykład całe wyrażenie „stacji lokomotywa ...”, to efekt wizualny nie odpowiada wzorcowi – powiększony zostaje nie tylko jeden wyraz, ale cała reszta, co psuje zamierzony wygląd. To jest częsty błąd: zaznaczenie zbyt szerokiego fragmentu tekstu zamiast dokładnie tego słowa, które ma być wyróżnione. Drugi typ problemu to brak zamknięcia znacznika, jak w przypadku użycia <big> bez odpowiadającego mu </big>. Z punktu widzenia specyfikacji HTML takie konstrukcje są niepoprawne, a choć współczesne przeglądarki próbują „naprawiać” kod, skutki bywają nieprzewidywalne: część tekstu może być niechcący powiększona albo cała struktura akapitu zostanie zinterpretowana inaczej. Do tego dochodzi mylenie semantyki: nagłówek <h1> służy do oznaczania tytułu sekcji czy strony, a nie do przypadkowego pomniejszania czy powiększania tekstu. Używanie <small> w miejscu, gdzie w treści powinien wystąpić nagłówek, zaburza hierarchię dokumentu i szkodzi dostępności, bo czytniki ekranu i roboty wyszukiwarek mocno opierają się na strukturze nagłówków. Moim zdaniem warto wyrobić sobie nawyk: najpierw poprawna, logiczna struktura (h1, p, itd.), a dopiero potem delikatne wyróżnianie fragmentów, dokładnie obejmując tagami tylko te słowa, które mają być zmienione. W nowoczesnej praktyce webowej zamiast takich prezentacyjnych tagów jak <big> czy <small> lepiej stosować <span> z klasą i przerzucić całą logikę wyglądu do CSS, ale fundament jest ten sam – precyzyjne zakresy znaczników i poprawnie zamknięte tagi.

Pytanie 36

Które zapytanie języka SQL zlicza wszystkie rekordy w tabeli Zamowienia?

A. SELECT COUNT(*) FROM Zamowienia;
B. COUNT(Zamowienia);
C. SELECT SUM() FROM Zamowienia;
D. SELECT ALL(*) FROM Zamowienia;
Prawidłowe zapytanie to: SELECT COUNT(*) FROM Zamowienia;. Funkcja agregująca COUNT() w SQL służy właśnie do zliczania rekordów, a gwiazdka * oznacza „wszystkie kolumny”, czyli w praktyce każdy wiersz w tabeli. Silnik bazy danych nie patrzy wtedy na konkretne pola, tylko sprawdza ile wierszy spełnia warunek w klauzuli FROM/WHERE. To jest standardowy zapis opisany w dokumentacji większości systemów bazodanowych, takich jak MySQL, PostgreSQL, SQL Server czy Oracle.
Moim zdaniem warto od razu zapamiętać ten wzorzec, bo jest używany dosłownie wszędzie: do paginacji wyników w aplikacjach webowych (np. policzenie ile jest wszystkich zamówień, żeby wyświetlić numer strony), do raportów (ile zamówień w danym miesiącu), do monitoringu (ile rekordów ma tabela po imporcie danych) itd. Bardzo często łączy się COUNT(*) z klauzulą WHERE, np.: SELECT COUNT(*) FROM Zamowienia WHERE status = 'zrealizowane'; – wtedy zliczasz tylko wybrane zamówienia, spełniające warunek.
Dobra praktyka jest też taka, że jeśli chcesz policzyć wszystkie wiersze, to używasz właśnie COUNT(*), a nie COUNT(nazwa_kolumny), bo COUNT(kolumny) pomija wartości NULL. To czasem jest pożądane, ale domyślnie, przy zwykłym „ile jest rekordów w tabeli”, stosuje się COUNT(*). W wielu optymalizacjach baz danych silnik ma specjalne mechanizmy, które potrafią bardzo szybko policzyć COUNT(*) bez czytania całej tabeli, co jest kolejnym powodem, żeby korzystać z tej formy, zgodnie z dobrą praktyką branżową.

Pytanie 37

Według którego parametru oraz dla ilu tabel zostaną zwrócone wiersze na liście w wyniku przedstawionego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
  producent.nr_id = hurtownia.nr_id AND
  producent.wyrob_id = serwis.wyrob_id AND
  hurtownia.nr_id = sklep.nr_id AND
  sklep.nr_id = serwis.nr_id AND
  producent.nr_id = 1;
A. Według parametru nr id wyłącznie dla trzech tabel.
B. Według parametru wyrób id dla wszystkich tabel.
C. Według parametru nr id dla wszystkich tabel.
D. Według parametru wyrób Jd wyłącznie dla trzech tabel.
Brawo! Wybrałeś poprawną odpowiedź, zgodnie z którą parametrem nr id zwraca wiersze dla wszystkich tabel. To zapytanie SQL odnosi się do czterech tabel: producent, hurtownia, sklep i serwis. Zwraca ono wiersze, gdzie wartość kolumny nr_id jest taka sama we wszystkich tych tabelach i równa 1. Dodatkowo, jakość danych jest wspierana przez fakt, że zapytanie sprawdza zgodność wartości kolumny wyrob_id między tabelami producent i serwis. Zrozumienie tego, jak działa to zapytanie i dlaczego to jest ważne, jest kluczowe w praktyce programistycznej. Zapewnia to, że możemy skutecznie i efektywnie manipulować danymi, a także zrozumieć, jak nasze zapytania wpływają na wyniki, które otrzymujemy. Dobra praktyka jest zawsze zrozumienie, jakie dane są zwracane przez nasze zapytanie, zanim zaczniemy z nich korzystać w naszym kodzie. Ostatecznie, zrozumienie, jak korzystać z zapytań SQL do manipulacji i odzyskiwania danych, jest kluczowym elementem dowolnej roli programistycznej.

Pytanie 38

Komunikat ma pojawiać się tylko przy PIERWSZEJ wizycie użytkownika. Którą funkcję PHP wykorzystać?

A.
setcookie
B.
define
C.
session_destroy
D.
mysqli_change_user
Pozostałe funkcje nie zapamiętają faktu wizyty. define() tworzy stałą istniejącą tylko podczas jednego wykonania skryptu. session_destroy() niszczy sesję, a mysqli_change_user() zmienia użytkownika połączenia z bazą. Trwały ślad między wizytami zostawia setcookie().

Pytanie 39

W kodzie HTML5 znajduje się fragment, który zawiera błąd walidacji. Jakiego rodzaju jest to błąd?

<h6>tekst</h6>
<p>pierwsza <b>linia</b><br>
<p>Druga linia</p>
A. Znacznik <br> musi być zamknięty.
B. Znaczniki powinny być zapisane wielkimi literami.
C. Pierwszy znacznik <p> nie został zamknięty.
D. Nagłówek szóstego poziomu nie istnieje.
W tym zadaniu chodziło o rozpoznanie typowego błędu związanego z poprawnym zamykaniem znaczników HTML, a dokładniej – ze znacznikiem <p>. W przedstawionym kodzie rzeczywiście pierwszy znacznik <p> nie został zamknięty przed pojawieniem się kolejnego bloku <p>, co powoduje naruszenie struktury dokumentu. Według specyfikacji HTML5, element <p> nie powinien być zagnieżdżany ani przerwany przez inny blokowy element (w tym przypadku przez drugi <p>). Przeglądarki zwykle próbują automatycznie domykać taki znacznik, ale nie jest to dobra praktyka – takie poleganie na mechanizmach autokorekty może później prowadzić do trudnych do wykrycia błędów wizualnych albo nieprzewidywalnych efektów w stylach CSS. Z mojego doświadczenia wynika, że konsekwentne zamykanie znaczników nie tylko poprawia czytelność kodu, ale i ułatwia pracę zespołową oraz skalowanie projektu. Przykład: jeśli piszesz większy artykuł i zapomnisz zamknąć <p>, cała dalsza część tekstu może zostać potraktowana jako jeden paragraf. To potrafi solidnie namieszać, nawet w prostych stronach! Branża webowa od lat promuje zasadę – pisz zgodnie ze specyfikacją, a będziesz miał mniej problemów później. Zawsze lepiej przejrzeć strukturę dokumentu dwa razy, niż potem szukać błędów na produkcji. Przy pracy z edytorami kodu warto korzystać z funkcji podświetlania składni lub walidatorów HTML, które od razu wyłapują takie potknięcia.

Pytanie 40

Zestawienie dwóch kolorów leżących naprzeciw siebie w kole barw to zestawienie:

A. trójkątne
B. monochromatyczne
C. dopełniające
D. sąsiadujące (analogiczne)
Pozostałe schematy opisują inne układy kolorów na kole barw. Zestawienie trójkątne (triada) to trzy barwy rozmieszczone równomiernie (co 120°), a nie dwie naprzeciw siebie. Kolory sąsiadujące (analogiczne) leżą blisko siebie na kole i dają spokojne, harmonijne zestawienia. Monochromatyczne to różne odcienie i nasycenia jednej barwy. Dwa kolory leżące naprzeciw siebie tworzą zestawienie dopełniające, dlatego ta odpowiedź jest poprawna.