Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 11 maja 2026 09:41
  • Data zakończenia: 11 maja 2026 10:07

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

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

W HTML formularzu użyto elementu <input>. Pole, które się pojawi, ma pozwalać na wprowadzenie maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które będą widoczne w trakcie wprowadzania
B. 30 znaków, które nie będą widoczne w polu tekstowym
C. 20 znaków, które nie będą widoczne w polu tekstowym
D. 30 znaków, które będą widoczne podczas wpisywania
Jeśli mówimy o znaczniku <input> w HTML, to dobrze jest wiedzieć, jak działają atrybuty typu maxlength i type. Atrybut maxlength pozwala ustawić maksymalną liczbę znaków w polu tekstowym. W polu typu password użytkownik może wpisać max 20 znaków, ale to, co widzisz, może być inne. Często myli się atrybut size z ograniczeniem liczby wprowadzanych znaków, ale tak naprawdę chodzi tylko o to, jak szerokie jest pole, więc nie zmienia jego funkcjonalności. Pole typu password ma na celu ukrycie wpisywanych znaków, co zazwyczaj oznacza, że to, co wpisujesz, zastąpione jest gwiazdkami lub kropkami, by nie było widać tego, co piszesz. Te rzeczy są ważne dla bezpieczeństwa aplikacji webowych. Ostatnio zauważyłem, że niektórzy mają problemy z rozumieniem tych atrybutów, co może prowadzić do błędów w obsłudze danych użytkowników i problemów z bezpieczeństwem.

Pytanie 2

Na tabeli 'dania', której wiersze zostały pokazane, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 13
B. 2
C. 5
D. 8
Wybór błędnych odpowiedzi często wynika z nieprawidłowego zrozumienia warunków filtracji danych w zapytaniach SQL. Odpowiedzi takie jak 5, 8 oraz 13 mogą sugerować, że osoba udzielająca odpowiedzi nie dostrzega kluczowych ograniczeń nałożonych przez zapytanie. Po pierwsze, kwerenda ogranicza wynik do tych pozycji, które mają typ mniejszy niż 3 oraz cenę mniejszą niż 30. W odpowiedzi 5, na przykład, można błędnie założyć, że więcej pozycji spełnia te warunki, jednak po dokładnej analizie danych z tabeli tylko dwie pozycje (Gazpacho i Krem z warzyw) są zgodne z tymi kryteriami. Kolejna odpowiedź sugerująca 8 również popełnia błąd w ocenie, ponieważ nie uwzględnia dodatkowych ograniczeń dotyczących ceny. Ostatecznie odpowiedź 13, wskazująca na bezpośrednią liczbę wszystkich wierszy w tabeli, jest całkowicie mylna, ponieważ nie uwzględnia żadnych filtrów. W praktyce, kluczowym krokiem w efektywnym korzystaniu z SQL jest umiejętność precyzyjnego określania warunków, co pozwala na uzyskanie tylko tych danych, które są naprawdę potrzebne. Warto zwrócić uwagę na to, że prawidłowe zrozumienie tych zasad jest podstawą do analizy danych i podejmowania decyzji opartych na rzeczywistych informacjach.

Pytanie 3

W CSS, aby ustalić nietypowe odległości między słowami, używa się właściwości

A. word-spacing
B. line-spacing
C. letter-space
D. white-space
Właściwość line-spacing nie istnieje w CSS. W celu kontrolowania odstępów między liniami tekstu, programiści używają właściwości line-height. Ta właściwość określa wysokość linii, co bezpośrednio wpływa na odstęp między poszczególnymi wierszami tekstu, a nie między samymi wyrazami. Właściwość white-space ma zupełnie inne zastosowanie, ponieważ służy do określania, jak białe znaki, takie jak spacje i nowe linie, są traktowane w danym elemencie. Działa ona na poziomie całego tekstu, a nie na odstępach między wyrazami. Umożliwia kontrolowanie zawijania tekstu, mnożenia białych znaków oraz innych aspektów prezentacji tekstu. Z kolei letter-space nie jest standardową właściwością CSS. Odpowiednikiem tej funkcji jest właściwość letter-spacing, która kontroluje odstęp między poszczególnymi literami w słowie. Użycie letter-spacing pozwala na uzyskanie efektów typograficznych, takich jak zwiększenie przestrzeni między literami dla lepszej czytelności lub estetyki, ale nie może być używane do manipulacji odstępami między całymi wyrazami.

Pytanie 4

W języku C++ funkcja, która zwraca rezultat potęgowania i operuje na dwóch argumentach: liczbie x oraz wykładniku w, powinna mieć taką deklarację

A. int potega(int x);
B. int potega(int x, int w);
C. void potega(int x, int w, int wynik);
D. void potega(int x, int w);
Przyjrzyjmy się tym nieprawidłowym odpowiedziom. 'int potega(int x);' to trochę za mało, bo brakuje drugiego argumentu, czyli wykładnika, który jest niezbędny do potęgowania. Potęgowanie potrzebuje obu elementów: podstawy i wykładnika, więc jeżeli jeden z nich wypadnie, to funkcja będzie niekompletna. Odpowiedź 'void potega(int x, int w);' również jest błędna, bo mówi, że funkcja nie zwraca żadnej wartości. W kontekście potęgowania, każdy by oczekiwał uzyskać konkretny wynik. Jak funkcja nic nie zwraca, to można mieć spore problemy z dalszym przetwarzaniem. Co do 'void potega(int x, int w, int wynik);' - dodawanie dodatkowego argumentu niepotrzebnie komplikuje sprawę. Bywa, że można przekazywać argumenty przez referencję, ale w prostym potęgowaniu to po prostu zbędne. Dużo osób nie zdaje sobie sprawy, jak ważne jest, żeby funkcje miały jasno określony interfejs. Dobre funkcje powinny dokładnie określać, co biorą i co zwracają, wtedy łatwiej je używać i integrować w innych częściach programów.

Pytanie 5

Jakie polecenie wydane w terminalu systemu operacyjnego, które zawiera w swojej składni opcję --repair, pozwala na naprawę bazy danych?

A. mysqlcheck
B. truncate
C. create
D. mysqldump
Odpowiedź "mysqlcheck" jest prawidłowa, ponieważ polecenie to jest częścią systemu zarządzania bazą danych MySQL i służy do sprawdzania oraz naprawy tabel w bazach danych. Użycie opcji <b>--repair</b> pozwala na automatyczne naprawienie uszkodzonych tabel, co jest kluczowe w przypadku wystąpienia błędów spowodowanych awarią systemu czy błędami w aplikacjach. Przykładowe użycie polecenia: "mysqlcheck --repair --databases nazwa_bazy". Warto podkreślić, że regularne sprawdzanie i naprawa tabel są elementami dobrych praktyk zarządzania bazą danych, które pomagają w utrzymaniu integralności danych i dostępności systemu. Oprócz opcji naprawy, mysqlcheck oferuje także inne funkcje, takie jak optymalizacja tabel, co przyczynia się do poprawy wydajności bazy. W przypadku dużych baz danych, efektywne zarządzanie i konserwacja są kluczowe dla zapewnienia wysokiej dostępności oraz niezawodności systemu. Używanie mysqlcheck zgodnie z dokumentacją MySQL pozwala na skuteczne zajmowanie się problemami, które mogą się pojawić.

Pytanie 6

W języku SOL komenda INSERT INTO

A. wprowadza pola do tabeli
B. tworzy tabelę
C. modyfikuje rekordy ustaloną wartością
D. wprowadza dane do tabeli
Polecenie INSERT INTO w języku SQL (Structured Query Language) jest kluczowym komponentem do wprowadzania danych do tabeli w bazie danych. Używając tego polecenia, użytkownicy mogą dodać nowe rekordy, co jest podstawowym zadaniem w zarządzaniu informacjami w systemach zarządzania bazą danych (DBMS). Przykładowo, jeśli mamy tabelę 'Użytkownicy', możemy dodać nowego użytkownika za pomocą: INSERT INTO Użytkownicy (Imię, Nazwisko) VALUES ('Jan', 'Kowalski'). Warto zauważyć, że wprowadzanie danych powinno być zgodne z definicją tabeli, co oznacza, że typy danych w wartości muszą odpowiadać typom zdefiniowanym w tabeli. Dobrą praktyką jest również walidacja danych przed ich wprowadzeniem, aby zapewnić spójność i integralność danych. W przypadku pracy z dużymi zbiorami danych, warto rozważyć użycie transakcji, aby zapewnić, że operacje wprowadzania są atomowe i nie wprowadzą niezgodności w bazie danych, co jest zgodne ze standardami ACID (Atomicity, Consistency, Isolation, Durability).

Pytanie 7

Uprawnienia obiektowe przyznawane użytkownikom serwera bazy danych mogą umożliwiać lub ograniczać

A. przechodzić uprawnienia
B. wykonywać polecenia, takie jak tworzenie kopii zapasowej
C. realizować operacje na bazie, takie jak wstawianie lub modyfikowanie danych
D. zmieniać role i konta użytkowników
Uprawnienia obiektowe w kontekście baz danych pozwalają na kontrolowanie dostępu do różnych zasobów, takich jak tabele, widoki czy procedury składowane. Odpowiedź dotycząca wykonywania operacji na bazie, takich jak wstawianie czy modyfikowanie danych, jest prawidłowa, ponieważ uprawnienia te bezpośrednio wpływają na możliwości użytkownika w zakresie manipulacji danymi. Przykładowo, jeśli użytkownik posiada uprawnienie do INSERT, może dodawać nowe rekordy do tabeli, natomiast uprawnienie UPDATE pozwala na zmianę istniejących danych. Takie zarządzanie uprawnieniami jest kluczowe w kontekście bezpieczeństwa danych oraz zapewnienia integralności systemu, ponieważ pozwala na ograniczenie dostępu tylko do tych operacji, które są niezbędne dla danego użytkownika. W praktyce administratorzy baz danych stosują zasady minimalnych uprawnień, przyznając użytkownikom tylko te uprawnienia, które są niezbędne do wykonywania ich pracy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bezpieczeństwem baz danych.

Pytanie 8

Aby dodać wpis do tabeli Pracownicy, konieczne jest użycie polecenia SQL

A. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
B. INSERT (Jan), (Kowalski) INTO TABLE Pracownicy;
C. INSERT VALUES (Jan; Kowalski) INTO Pracownicy;
D. INSERT INTO Pracownicy VALUES ("Jan", "Kowalski");
Odpowiedź "INSERT INTO Pracownicy VALUES ("Jan", "Kowalski");" jest poprawna, ponieważ jest zgodna z podstawową składnią języka SQL służącego do dodawania nowych rekordów do tabeli. Polecenie INSERT INTO jest używane w celu wstawienia nowych danych do określonej tabeli w bazie danych, a wartości, które mają zostać dodane, umieszczane są w nawiasach, oddzielone przecinkami. W tym przypadku dodajemy dwa pola: imię oraz nazwisko pracownika. Wartości są otoczone cudzysłowami, co jest wymagane dla typów danych tekstowych. Taki zapis jest zgodny z normami SQL i jest najlepszą praktyką, gdyż zapewnia jasność i jednoznaczność operacji. Przykładowo, w rzeczywistych aplikacjach zarządzania danymi w firmach, często spotykamy się z sytuacjami, gdzie dodawanie nowych pracowników do bazy danych jest rutynowym zadaniem, a zrozumienie poprawnej składni SQL jest kluczowe dla efektywnej pracy. Warto również pamiętać, że korzystanie z parametrów w zapytaniach SQL w aplikacjach produkcyjnych zwiększa bezpieczeństwo danych i minimalizuje ryzyko ataków typu SQL Injection.

Pytanie 9

Technika projektowania algorytmów, która polega na dzieleniu problemu na dwa lub więcej mniejszych podproblemów, aż do momentu gdy fragmenty staną się na tyle proste, że można je rozwiązać bezpośrednio, to

A. sito Eratostenesa
B. sortowanie przez wybór
C. słowa Fibonacciego
D. dziel i zwyciężaj
Metoda "dziel i zwyciężaj" jest jedną z podstawowych technik projektowania algorytmów, która polega na rozwiązywaniu problemów poprzez dzielenie ich na mniejsze, bardziej zarządzalne podproblemy. Proces ten można opisać w trzech krokach: dzielenie, rozwiązywanie i łączenie wyniku. W praktyce oznacza to, że algorytm najpierw dzieli dany problem na dwa lub więcej podproblemów, następnie rozwiązuje każdy z nich osobno, a na końcu łączy zebrane rozwiązania, aby uzyskać odpowiedź na pierwotny problem. Przykładem może być algorytm sortowania szybkim (Quicksort), który wykorzystuje tę metodę poprzez wybór pivota, podział zbioru na mniejsze części i rekurencyjne sortowanie. Kolejnym przykładem jest algorytm mnożenia dużych liczb, taki jak algorytm Karatsuby. Dziel i zwyciężaj jest również stosowane w zaawansowanych technikach optymalizacji i w algorytmach wyszukiwania, co czyni tę metodę niezwykle uniwersalną i efektywną w wielu dziedzinach informatyki.

Pytanie 10

Aby włączyć kaskadowy arkusz stylów zapisany w oddzielnym pliku, należy zastosować poniższy fragment kodu HTML

A. <option value="styl.css" type="text/css" />
B. <link rel="stylesheet" type="text/css" href= "styl.css" />
C. <div id="styl.css" relation="css" />
D. <meta charset="styl.css" />
Aby dołączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, poprawnie używamy tagu <link>. Ten tag pozwala na powiązanie zewnętrznego pliku CSS z dokumentem HTML, co jest kluczowe dla zarządzania stylem witryny internetowej. W atrybucie 'rel' określamy, że jest to arkusz stylów ('stylesheet'), a w atrybucie 'type' informujemy przeglądarkę, że plik jest typu 'text/css'. Atrybut 'href' wskazuje lokalizację pliku CSS. To podejście jest zgodne z zaleceniami W3C, co zapewnia kompatybilność z różnymi przeglądarkami. Przykładowe użycie wygląda następująco: <link rel='stylesheet' type='text/css' href='styl.css'>. Dzięki temu możemy oddzielić strukturę dokumentu HTML od jego stylizacji, co ułatwia zarządzanie kodem oraz poprawia efektywność ładowania stron. Praktyczne zastosowanie tego rozwiązania pozwala na łatwe wprowadzanie globalnych zmian w stylach, co jest szczególnie przydatne w dużych projektach, gdzie wiele stron korzysta z tego samego pliku CSS.

Pytanie 11

Głównym zadaniem systemu CMS jest

A. ułatwienie zarządzania treścią na stronie internetowej.
B. ujednolicenie tematyczne zawartości stron internetowych.
C. konwersja obiektowego języka programowania na strukturalny.
D. przyspieszenie projektowania aplikacji desktopowych.
Poprawnie wskazana odpowiedź dobrze oddaje istotę systemów CMS (Content Management System). Głównym zadaniem CMS-a jest właśnie ułatwienie zarządzania treścią na stronie internetowej bez konieczności ciągłego grzebania w kodzie HTML, PHP czy JavaScript. W praktyce oznacza to, że redaktor, nauczyciel, pracownik biura czy nawet właściciel małej firmy może samodzielnie dodawać newsy, edytować teksty, podmieniać zdjęcia, tworzyć nowe podstrony, a czasem nawet zarządzać menu – wszystko z poziomu przeglądarki, przez panel administracyjny. Z mojego doświadczenia w szkole i w pracy wynika, że to właśnie CMS sprawia, że strona żyje, bo ktoś nietechniczny może ją na bieżąco aktualizować. Typowe systemy CMS, jak WordPress, Joomla czy Drupal, oferują edytor WYSIWYG (podobny do Worda), zarządzanie mediami, wersjonowanie treści, role i uprawnienia użytkowników (np. redaktor, administrator), a także szablony i wtyczki. Z punktu widzenia dobrych praktyk w branży webowej, CMS oddziela warstwę prezentacji (szablony, motywy) od warstwy treści (artykuły, strony, wpisy). To jest zgodne z zasadą separacji logiki, treści i wyglądu, co ułatwia rozwój i utrzymanie serwisu. W nowoczesnych projektach często stosuje się tzw. headless CMS, gdzie treść jest zarządzana w panelu, a następnie udostępniana przez API do różnych front-endów (strona WWW, aplikacja mobilna). Niezależnie jednak od technologii, główna idea jest ta sama: CMS ma usprawnić i uporządkować cały proces tworzenia, edycji, publikacji oraz archiwizacji treści. Dzięki temu programista nie musi za każdym razem zmieniać kodu, gdy ktoś chce poprawić przecinek w artykule, a firma ma kontrolę nad tym, kto co może opublikować, kiedy i w jakiej formie.

Pytanie 12

Które ograniczenie w bazach danych, należy przypisać kolumnie tabeli, aby wartości wpisywane do niej nie powtarzały się?

A. SINGLE
B. NO REPEAT
C. NOT NULL
D. UNIQUE
Poprawnie – w relacyjnych bazach danych to właśnie ograniczenie UNIQUE zapewnia, że wartości w danej kolumnie nie będą się powtarzały. Technicznie rzecz biorąc, UNIQUE to constraint integralności, który wymusza unikalność danych w obrębie wskazanej kolumny lub zestawu kolumn. Jeżeli spróbujesz wstawić rekord z wartością, która już istnieje w tej kolumnie, silnik bazy (np. MySQL, PostgreSQL, SQL Server) zgłosi błąd naruszenia ograniczenia unikalności. Można to zobaczyć na prostym przykładzie: CREATE TABLE uzytkownicy ( id INT PRIMARY KEY, email VARCHAR(255) UNIQUE, login VARCHAR(50) UNIQUE ); Tutaj zarówno email, jak i login nie mogą się duplikować. W praktyce to jest standardowa dobra praktyka: na polach takich jak email, numer PESEL, NIP, numer indeksu, numer seryjny urządzenia czy nawet nazwa użytkownika bardzo często zakłada się UNIQUE, żeby w systemie nie pojawiły się dwa różne konta z tym samym identyfikatorem. Moim zdaniem, przy projektowaniu bazy danych warto od razu zastanowić się, które pola mają pełnić rolę „identyfikatorów biznesowych” i od razu nadać im ograniczenie UNIQUE. Warto też wiedzieć, że UNIQUE nie oznacza „klucz główny”. PRIMARY KEY automatycznie jest unikalny i nie może być NULL, natomiast UNIQUE pozwala na NULL (zależnie od silnika bazy, ale zazwyczaj wiele NULL-i jest dozwolonych). To pozwala projektować tabele bardziej elastycznie, np. kolumna może być opcjonalna, ale jeśli już ktoś poda wartość, to musi być ona niepowtarzalna. W praktyce UNIQUE często łączy się z indeksami – większość systemów bazodanowych automatycznie zakłada indeks unikalny na takiej kolumnie, co przyspiesza wyszukiwanie i walidację danych. To rozwiązanie jest zgodne z dobrymi praktykami normalizacji i kontroli spójności danych w systemach produkcyjnych.

Pytanie 13

Model reprezentacji kolorów z parametrami: hue, saturation i value, to

A. CMY
B. CMYK
C. HSV
D. RGB
Odpowiedź HSV (Hue, Saturation, Value) jest poprawna, ponieważ ten model opisu przestrzeni barw koncentruje się na trzech kluczowych parametrach: odcieniu, nasyceniu i jasności. Odcień odnosi się do rzeczywistego koloru, nasycenie informuje o intensywności koloru, a jasność wskazuje na jego jasność. Model HSV jest szczególnie użyteczny w aplikacjach graficznych oraz podczas pracy z grafiką komputerową, ponieważ jest bardziej intuicyjny dla ludzi, niż inne modele, takie jak RGB czy CMYK. Przykładem zastosowania modelu HSV jest edytor graficzny, gdzie użytkownik może łatwo dostosować kolor, manipulując tymi trzema parametrami. Standardy branżowe, takie jak Adobe Photoshop, implementują ten model, co pozwala na efektywne tworzenie i edytowanie kolorów. Dodatkowo, model HSV jest używany w programowaniu komputerowym do tworzenia efektów wizualnych, gdzie precyzyjne dostosowanie kolorów jest kluczowe.

Pytanie 14

Aby zdefiniować pole w klasie, do którego dostęp mają jedynie metody tej klasy, a które jest niedostępne dla klas dziedziczących, konieczne jest zastosowanie kwalifikatora dostępu

A. publiczny
B. prywatny
C. publikowany
D. chroniony
Wybór odpowiedzi 'public' jest niewłaściwy, ponieważ modyfikator ten pozwala na dostęp do pola klasy z dowolnego miejsca w programie, co jest sprzeczne z celem ukrywania danych i ochrony ich integralności. Zastosowanie 'public' do pola, które powinno być chronione, może prowadzić do trudnych do wykrycia błędów, gdy inne klasy mogą modyfikować jego wartość w nieprzewidziany sposób. Analogicznie, wybór odpowiedzi 'protected' również jest błędny, ponieważ ten modyfikator umożliwia dostęp do pola nie tylko z metod tej klasy, ale również z klas pochodnych, co oznacza, że pole nie jest rzeczywiście ukryte. Klasy pochodne mogą nieświadomie zmieniać stan obiektu, co prowadzi do problemów związanych z dziedziczeniem. Odpowiedź 'published' jest typowa dla niektórych języków programowania, jak Delphi, ale nie jest standardowym modyfikatorem w wielu popularnych językach obiektowych, jak Java czy C#. Wybierając niewłaściwe modyfikatory dostępu, programiści mogą narazić swoje aplikacje na poważne problemy z bezpieczeństwem oraz błędami w logice. Dlatego ważne jest, aby zrozumieć różnice pomiędzy modyfikatorami dostępu i stosować je zgodnie z ich zamierzonymi funkcjami, co jest kluczowe w tworzeniu solidnych i bezpiecznych aplikacji.

Pytanie 15

Przedstawiona ikona funkcji edytora grafiki rastrowej o nazwie "kubełek" umożliwia

Ilustracja do pytania
A. zmianę aktywnych kolorów.
B. zaznaczenie obszaru o takim samym kolorze.
C. wypełnienie zaznaczonego obszaru kolorem.
D. pobranie wskazanej barwy i ustawienie jej, jako aktywnej.
Gratulacje, odpowiedź jest poprawna. Ikona 'kubełek farby' w edytorach grafiki rastrowej jest narzędziem umożliwiającym wypełnienie zaznaczonego obszaru wybranym kolorem. Działanie tego narzędzia jest podobne do rozlewania farby - kolor wypełnia ciągły obszar aż do napotkania krawędzi lub pikseli o innym kolorze. Ta funkcja pozwala na szybkie i efektywne kolorowanie większych powierzchni obrazu. W praktyce, jest to niezwykle przydatne narzędzie, szczególnie gdy potrzebujesz szybko zmienić tło obrazu lub wypełnić obszar jednolitym kolorem. Warto również zauważyć, że różne edytory mogą mieć dodatkowe opcje dla tego narzędzia, takie jak możliwość wyboru tolerancji (która decyduje, jak bardzo podobny kolor musi być, aby został wypełniony) czy wypełnianie według warstwy czy według obrazu.

Pytanie 16

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return dodaj()">dodaj</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onselect="return dodaj()">oblicz</button>
D. <button onclick="return oblicz()">dodaj</button>
Gratulacje, wybrałeś poprawną odpowiedź. Przycisk w JavaScript jest aktywowany poprzez zdarzenie onclick, które jest wyzwalane po kliknięciu przycisku. Właściwość onclick jest jednym z wielu zdarzeń w JavaScript, które są używane do obsługi interakcji użytkownika. Kiedy użytkownik kliknie przycisk, zdarzenie onclick jest wywoływane i kod zawarty w tym zdarzeniu jest wykonany. W tym przypadku, kod to 'return dodaj()', co oznacza, że funkcja 'dodaj' jest wywoływana. Ta funkcja została zdefiniowana w skrypcie JavaScript i realizuje dodawanie dwóch liczb. Zdarzenie onclick jest często używane w praktycznych zastosowaniach, takich jak przyciski subskrybcji, przyciski do logowania czy przyciski do przesyłania formularzy. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają utrzymanie interakcji użytkownika w kodzie JavaScript zamiast HTML.

Pytanie 17

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr { 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 18

Jakie zdarzenie umożliwia uruchomienie kodu w języku JavaScript w momencie przesyłania formularza HTML oraz kontrolowanie tego, czy ma on zostać wysłany?

A. onChange
B. onSubmit
C. onClick
D. onEnter
Odpowiedź onSubmit jest rzeczywiście na miejscu, bo to zdarzenie uruchamia się, gdy wysyłasz formularz HTML. Dzięki temu można wprowadzić kod JavaScript, który pozwoli na przeprowadzenie dodatkowych walidacji przed wysłaniem danych na serwer. To super sprawa, bo jeśli coś jest nie tak, to można zablokować wysłanie formularza. Można też zrobić inne rzeczy, na przykład zapisać dane lokalnie albo pokazać jakiś komunikat użytkownikowi. Weźmy na przykład formularz logowania – sprawdzamy, czy hasło i login są odpowiednie przed wysłaniem. Takie podejście to norma w branży, bo walidacja danych po stronie klienta naprawdę poprawia doświadczenia użytkownika i zmniejsza obciążenie serwera. Fajnie jest też korzystać z metod asynchronicznych, jak AJAX, żeby przetwarzać formularze bez potrzeby przeładowywania strony, co naprawdę dodaje interaktywności aplikacjom webowym.

Pytanie 19

Zaprezentowano rezultat zastosowania CSS oraz odpowiadający mu kod HTML. W jaki sposób trzeba zdefiniować styl, aby uzyskać takie formatowanie?

Ilustracja do pytania
A. #first-letter { font-size: 400%; color: blue; }
B. .first-letter { font-size: 400%; color: blue; }
C. p.first-letter { font-size: 400%; color: blue; }
D. p::first-letter { font-size: 400%; color: blue; }
Odpowiedź jest prawidłowa, ponieważ selektor CSS p::first-letter precyzyjnie określa, że stylizacja ma być zastosowana do pierwszej litery każdego akapitu, który jest oznaczony tagiem p. Jest to pseudo-element CSS, który umożliwia dostęp do pierwszej litery bloku tekstu w celu nadania jej unikalnego wyglądu. W tym przypadku zmieniono jej rozmiar na 400% oraz kolor na niebieski. Użycie ::first-letter jest zgodne z najlepszymi praktykami, gdyż pozwala na zachowanie semantyczności HTML i oddzielenie warstwy prezentacyjnej od treści, co jest kluczowe w responsywnym projektowaniu stron internetowych. Pseudo-elementy jak ::first-letter są niezwykle przydatne w tworzeniu estetycznych i czytelnych interfejsów użytkownika, zwłaszcza w przypadku publikacji zawierających dużo tekstu. Dobrą praktyką jest stosowanie pseudo-elementów w połączeniu z klasami i identyfikatorami, aby stylizacja była elastyczna i mogła być łatwo dostosowywana zgodnie z potrzebami projektu.

Pytanie 20

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
B. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
C. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
D. operację arytmetyczną, a zawartość zmiennej była tekstem
W JavaScript, wartość NaN (Not-a-Number) jest wynikiem nieudanej operacji arytmetycznej, szczególnie gdy jedna z operandów jest napisem, a nie liczbą. Przykładem może być sytuacja, gdy próbujemy dodać liczbę do napisu: let result = 5 + 'abc';. W tym przypadku, JavaScript nie może przeprowadzić operacji arytmetycznej na liczbie i napisie, co skutkuje wartością NaN. Konwersja napisu na liczbę w kontekście arytmetyki jest kluczowa; funkcje takie jak parseFloat lub parseInt mogą być użyte do uzyskania liczby z napisu. Dobre praktyki sugerują, aby zawsze sprawdzać typ danych przed wykonaniem operacji arytmetycznych, co można osiągnąć za pomocą operatora typeof lub funkcji Number.isNaN(). W ten sposób unika się nieprzewidzianych rezultatów i poprawia się stabilność kodu. Zrozumienie, jak JavaScript radzi sobie z różnymi typami danych, jest fundamentalne dla każdego programisty, ponieważ błędy związane z typami danych mogą prowadzić do poważnych problemów w aplikacjach.

Pytanie 21

Która z zasad walidacji strony internetowej jest nieprawidłowa?

A. Wyłączanie tagów musi następować w odwrotnej sekwencji do ich włączenia, np. ```<p> ... <big>...</big></p>```
B. W tagach nie jest brana pod uwagę różnica między dużymi a małymi literami, np. ```<p>``` i ```<P>``` to ten sam tag.
C. Tagi, poza samozamykającymi się, funkcjonują do momentu ich wyłączenia znakiem "/", np. ```<p> ..</p>```
D. Jeżeli w poleceniu występuje kilka atrybutów, ich kolejność powinna być uporządkowana alfabetycznie np. ```<img alt="..." src="/.."/>```
Koncepcje zawarte w niepoprawnych odpowiedziach są oparte na błędnym zrozumieniu zasad działania znaczników HTML. W kontekście wyłączania znaczników, ważne jest, aby pamiętać, że znacznik startowy powinien być zawsze zamknięty odpowiednim znacznikiem końcowym, co oznacza, że struktura dokumentu musi być prawidłowo zagnieżdżona. Zasada dotycząca wyłączania znaczników w odwrotnej kolejności jest nieprawidłowa, ponieważ znaczniki nie są stosowane w taki sposób, a ich zamykanie powinno być zgodne z ich zagnieżdżeniem. Rozumienie tej zasady jest kluczowe dla tworzenia poprawnej struktury dokumentu HTML. Warto również zauważyć, że HTML nie rozróżnia wielkich i małych liter w znacznikach, co jest istotnym uproszczeniem, ale nie oznacza, że można je mieszać w sposób dowolny. Zastosowanie spójnych konwencji nazewnictwa, takich jak używanie małych liter, jest wskazane dla zachowania czytelności kodu. Rozumienie tych zasad jest kluczowe dla efektywnego projektowania stron internetowych oraz dla utrzymania wysokiej jakości kodu. W przypadku, gdy znacznik nie jest poprawnie zamknięty, może to prowadzić do błędów w renderowaniu strony oraz problemów z jej dostępnością. Dlatego kluczowe jest stosowanie się do zasad poprawności kodu i jego semantyki.

Pytanie 22

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

A. /* treść komentarza*/
B. / treść komentarza/
C. // treść komentarza
D. <!-- treść komentarza -->
W PHP składnia komentarzy jest bardzo konkretna i dość ściśle określona, więc drobna pomyłka w znakach powoduje, że interpreter nie potraktuje fragmentu jako komentarza, tylko jako zwykły tekst kodu – co zwykle kończy się błędem składni. Wiele osób myli pojęcia z innych technologii, np. z HTML albo z ogólnego zapisu tekstowego, i stąd biorą się nietrafione odpowiedzi. Znak // w PHP oznacza komentarz, ale tylko jednowierszowy. Oznacza to, że wszystko od // do końca danej linii jest ignorowane, ale już kolejna linia jest znowu normalnym kodem. To jest bardzo wygodne do krótkich dopisków obok instrukcji, np. $x = 5; // liczba elementów. Nie można jednak w ten sposób w prosty sposób opisać większego bloku, który zajmuje kilka wierszy, bo każdy z nich musiałby zaczynać się od //. Technicznie da się, ale jest to nieczytelne i w większych projektach wygląda zwyczajnie słabo. Zapis / treść komentarza/ wygląda trochę jak intuicyjna próba „otoczenia” tekstu ukośnikami, ale w składni PHP nie ma takiej konstrukcji. Pierwszy ukośnik jest traktowany jako początek operatora dzielenia, a dalsza część jako coś zupełnie innego, więc interpreter zgłosi błąd. To typowy błąd: ktoś kojarzy, że są jakieś ukośniki przy komentarzach, ale nie pamięta dokładnej kolejności i ilości znaków. Z kolei <!-- treść komentarza --> to składnia komentarza z języka HTML, a nie z PHP. W plikach .php często mieszamy kod PHP z kodem HTML i wtedy łatwo się pomylić, ale warto to rozdzielać w głowie: gdy jesteśmy „w środku” PHP, czyli pomiędzy znacznikami <?php i ?>, obowiązują zasady komentarzy z PHP: //, # oraz /* */. Natomiast gdy piszemy czysty HTML (poza blokiem PHP), wtedy używamy komentarza <!-- -->. Przenoszenie składni HTML do PHP po prostu nie zadziała, bo interpreter PHP tego nie rozumie. Dobra praktyka jest taka, żeby świadomie wybierać rodzaj komentarza: // lub # do krótkich, jednowierszowych uwag oraz /* */ do dłuższych opisów, dokumentacji funkcji i klas. Mieszanie składni z różnych technologii albo wymyślanie własnych „ozdobnych” wariantów kończy się błędami i trudnym do utrzymania kodem. W programowaniu webowym, szczególnie w PHP, precyzyjna składnia komentarzy to drobiazg, ale bez niej szybko pojawiają się trudne do zlokalizowania problemy, więc warto mieć to dobrze poukładane.

Pytanie 23

Co się stanie po kliknięciu w link z HTML zawierający znak #?

<a href="#dane">
A. Zostanie uruchomiony skrypt o nazwie dane
B. Strona przeskoczy do elementu o identyfikatorze równym dane
C. Zostanie wybrany względny adres URL o nazwie dane
D. Otworzy się nowa karta w przeglądarce zatytułowana dane
Odpowiedź, że kliknięcie odnośnika ze znakiem # w href spowoduje wywołanie skryptu o nazwie dane, jest błędna, ponieważ atrybut href służy do określania celu hiperłącza, a nie wywoływania skryptów. Skrypty mogą być wykonywane za pomocą JavaScript, np. poprzez onclick, ale nie przez sam atrybut href z identyfikatorem. Stwierdzenie, że otworzy się osobna karta przeglądarki o nazwie dane, również jest nieprawidłowe. Atrybut href z wartością zaczynającą się od # nie otwiera nowej karty, lecz wskazuje na fragment aktualnej strony. Otwieranie nowej karty można osiągnąć przez ustawienie target="_blank", ale to wymaga pełnego URL lub ścieżki względnej bez #. Twierdzenie, że zostanie wybrany adres względny URL o nazwie dane, jest mylnym zrozumieniem nawigacji wewnętrznej. Nawigacja z użyciem # kieruje do elementu na tej samej stronie, a nie do pliku czy zewnętrznej lokalizacji. Takie błędne przekonania mogą wynikać z braku zrozumienia specyfiki nawigacji wewnętrznej w HTML i różnicy między kotwicami a tradycyjnymi linkami URL. Zrozumienie tych różnic jest kluczowe dla poprawnego tworzenia stron zgodnych ze standardami sieciowymi oraz dostępnych i przyjaznych dla użytkowników.

Pytanie 24

Do naprawy i optymalizacji bazy danych w MySQL stosuje się polecenie:

A. mysqlcheck
B. mysqldump
C. mysqladmin
D. mysqlslap
Poprawnie wskazujesz mysqlcheck – to właśnie to narzędzie w świecie MySQL służy do sprawdzania, naprawy i optymalizacji tabel oraz całych baz danych. mysqlcheck działa na poziomie serwera MySQL i pozwala wykonywać operacje typu CHECK TABLE, REPAIR TABLE, ANALYZE TABLE i OPTIMIZE TABLE bez konieczności ręcznego wpisywania tych poleceń SQL dla każdej tabeli z osobna. W praktyce administrator lub programista uruchamia mysqlcheck z linii poleceń, podając nazwę bazy lub używając opcji pozwalających przejść po wszystkich bazach, i narzędzie automatycznie sprawdza struktury danych, indeksy oraz próbuje naprawić drobne uszkodzenia. Z mojego doświadczenia jest to jedno z podstawowych narzędzi do bieżącego utrzymania MySQL, szczególnie przy tabelach MyISAM, ale bywa też używane przy InnoDB (głównie do analizowania i optymalizowania). Dobrą praktyką jest okresowe uruchamianie mysqlcheck na środowiskach produkcyjnych poza godzinami szczytu, aby wykryć ewentualne problemy z tabelami, zreorganizować indeksy i poprawić wydajność zapytań. Można je też zintegrować ze skryptami cron, żeby automatycznie raz na jakiś czas robić check/optimize. Ważne jest też używanie odpowiednich opcji, np. --auto-repair, --optimize lub --all-databases, żeby dokładnie sterować tym, co ma być zrobione. W odróżnieniu od narzędzi backupowych mysqlcheck nie służy do kopiowania danych, tylko do utrzymania ich spójności i efektywnej pracy silnika bazodanowego. Takie podejście jest zgodne z dobrymi praktykami administracji bazami danych, gdzie rozdziela się zadania: osobno narzędzia do kopii zapasowych, osobno do testów wydajności, a osobno do napraw i optymalizacji struktur.

Pytanie 25

Do którego akapitu przypisano podaną właściwość stylu CSS?
border-radius: 20%;

Ilustracja do pytania
A. Rys. D
B. Rys. B
C. Rys. C
D. Rys. A
Właściwość border-radius ma specyficzne zastosowanie do zaokrąglania rogów elementów HTML i w tym kontekście inne odpowiedzi jak Rys. A Rys. C i Rys. D nie wykazują cech związanych z tą właściwością. Rys. A ma ostre krawędzie co sugeruje brak użycia zaokrągleń. To pokazuje że border-radius nie został tam zastosowany co jest często spotykanym błędem w przypadku gdy nie rozumie się działania tej właściwości. Rys. C z kolei ma przerywaną linię obramowania co może wskazywać na użycie innej właściwości CSS np. border-style a nie border-radius. Stylizacja taka jest przydatna do wizualnego oddzielenia sekcji ale nie dotyczy bezpośrednio zaokrąglania rogów. Z kolei Rys. D ma efekt cienia co sugeruje raczej użycie właściwości box-shadow niż border-radius. Często myli się te dwie właściwości ponieważ obie wpływają na wygląd ramki jednak działają na zupełnie innych zasadach. Rozpoznanie użycia właściwej właściwości CSS jest kluczowe w projektowaniu intuicyjnych i estetycznych interfejsów co wymaga zrozumienia jak i kiedy każda z nich powinna być zastosowana. Właściwe wykorzystanie border-radius jako elementu stylizacji jest istotnym aspektem profesjonalnego projektowania stron internetowych co wymaga dokładnego zrozumienia jego wpływu na wygląd i funkcjonalność strony.

Pytanie 26

Jakie mechanizmy są kluczowe dla Systemu Zarządzania Bazą Danych?

A. Narzędzia do generowania statystyk
B. Wielodostępność do danych
C. Moduł do wizualizacji diagramów encji
D. System do zarządzania wersjami bazy danych
System zarządzania wersjami bazy danych, choć może być użyteczny w kontekście rozwoju aplikacji, nie jest niezbędnym mechanizmem dla systemu zarządzania bazą danych. Służy on przede wszystkim do śledzenia zmian w strukturze bazy oraz w danych, co jest istotne w kontekście kontroli wersji. W praktyce, takie systemy są bardziej związane z procesem deweloperskim niż z podstawowymi funkcjami samego DBMS. Pakiety do tworzenia statystyk również nie są kluczowe dla działania systemu zarządzania bazą. Ich główną rolą jest pomoc w analizie danych oraz optymalizacji zapytań, co jest elementem dodatkowym, a nie wymaganym do prawidłowego funkcjonowania bazy danych. Z kolei przystawka do wizualizacji diagramów encji jest narzędziem wspierającym projektowanie baz danych, ale nie jest niezbędna dla samego systemu zarządzania bazą danych. Wybór odpowiednich narzędzi i mechanizmów w obszarze zarządzania bazami danych powinien być oparty na ich specyficznych zastosowaniach oraz potrzebach użytkowników. Często pojawia się mylne przekonanie, że funkcjonalności dodatkowe są równie istotne jak te podstawowe, co prowadzi do zrozumienia, że kluczowe dla funkcjonowania systemu są te elementy, które zapewniają jego podstawową operacyjność i niezawodność.

Pytanie 27

Aby w PHP uzyskać dostęp do danych formularza przesyłanych w sposób bezpieczny, należy użyć tablicy

A. $_SESSION
B. $_SERVER
C. $_POST
D. $_FILES
Wybór niewłaściwej tablicy do odwoływania się do danych formularza może prowadzić do wielu nieporozumień w praktyce programistycznej. Tablica $_SERVER zawiera informacje o nagłówkach, ścieżkach i skryptach, które zostały uruchomione na serwerze, co czyni ją nieodpowiednią do bezpośredniego odczytu danych formularza. Z kolei $_FILES jest używana do obsługi plików przesyłanych przez formularze, co dotyczy wyłącznie sytuacji, gdy formularz zawiera pole typu 'file'. Tablica $_SESSION natomiast jest używana do przechowywania danych sesyjnych, co ma zastosowanie w kontekście przechowywania informacji o użytkownikach między różnymi stronami aplikacji. Typowym błędem jest założenie, że te tablice mogą pełnić funkcję $_POST, co prowadzi do niedokładnego przetwarzania danych. Niepoprawne podejścia są często wynikiem braku zrozumienia działania metod przesyłania danych w HTTP oraz różnicy między rodzajami tablic w PHP. Kluczowe jest zrozumienie, że każdy z tych elementów ma swoje specyficzne zastosowanie i wybór niewłaściwego narzędzia do zadań związanych z przesyłaniem danych może prowadzić do poważnych błędów w aplikacji, w tym braku możliwości prawidłowego przetworzenia danych użytkownika.

Pytanie 28

Jednoznacznym identyfikatorem rekordu w bazie danych jest pole

A. wyłącznie typu logicznego.
B. wyłącznie typu tekstowego.
C. klucza głównego.
D. klucza obcego.
Poprawna jest odpowiedź dotycząca klucza głównego, bo to właśnie pole (lub zestaw pól) oznaczone jako PRIMARY KEY w tabeli pełni rolę jednoznacznego identyfikatora rekordu. W praktyce oznacza to, że dla każdej krotki (wiersza) w tabeli wartość klucza głównego musi być unikalna i nie może być pusta (NULL). Systemy baz danych, takie jak MySQL, PostgreSQL, SQL Server czy Oracle, egzekwują te zasady automatycznie – jeśli spróbujesz wstawić drugi rekord z tą samą wartością klucza głównego, dostaniesz błąd naruszenia unikalności. Moim zdaniem to jedna z kluczowych zasad normalnego projektowania baz danych: zawsze projektujemy tabelę zaczynając od przemyślania klucza głównego. W aplikacjach webowych bardzo często używa się prostego klucza głównego typu liczbowego (np. INT AUTO_INCREMENT lub SERIAL), który jest technicznym identyfikatorem rekordu. Dzięki temu łatwo się odwołać do konkretnego użytkownika, zamówienia czy produktu po jego ID. Klucz główny jest też podstawą do definiowania kluczy obcych w innych tabelach – relacje typu 1:N czy N:M opierają się właśnie na odwołaniach do wartości PRIMARY KEY. Z mojego doświadczenia wynika, że stosowanie sztucznych (surrogate) kluczy głównych, zamiast kombinowania z wieloma polami naturalnymi, upraszcza później zapytania SQL, modyfikacje struktury i integrację z kodem w PHP czy JavaScript. W dobrze zaprojektowanej bazie danych każda tabela relacyjna powinna mieć jasno zdefiniowany klucz główny, bo bez tego trudno mówić o porządnym zarządzaniu danymi, spójności referencyjnej i wydajnym indeksowaniu.

Pytanie 29

Który z protokołów umożliwia publikację strony internetowej na serwerze?

A. FTP
B. ICMP
C. NNTP
D. SMTP
To, że wybrałeś FTP, to strzał w dziesiątkę! Ten protokół jest super przydatny do przesyłania plików między komputerami, zwłaszcza kiedy chcemy wrzucić naszą stronę na serwer. Działa tak, że logujesz się zdalnie na serwer, przeglądasz, co tam jest, i możesz łatwo przesyłać, pobierać albo nawet usuwać pliki. Jak twórcy stron chcą się podzielić swoimi plikami, jak HTML czy CSS, to sięgają po programy FTP, takie jak FileZilla. W momencie, kiedy połączysz się z serwerem, praca z plikami staje się naprawdę prosta. Warto pamiętać, że są też bezpieczniejsze wersje tego protokołu, czyli SFTP lub FTPS, które szyfrują dane, co jest ważne, bo zwiększa bezpieczeństwo przesyłanych plików.

Pytanie 30

Aby umieścić plik wideo na stronie internetowej z widocznymi przyciskami sterującymi oraz zapętlonym odtwarzaniem, należy w znaczniku <video> użyć atrybutów

A. autoplay i preload
B. controls i autoplay
C. controls i loop
D. loop i muted
Odpowiedź "controls i loop" jest całkiem dobra, bo te dwa atrybuty są naprawdę istotne, żeby wideo działało jak należy na stronie. Atrybut "controls" dodaje do odtwarzacza przyciski, które pozwalają na zatrzymywanie, odtwarzanie i regulowanie głośności, co jest bardzo wygodne dla ludzi. Z kolei "loop" sprawia, że filmik odtwarza się w kółko, co może być super użyteczne, szczególnie w prezentacjach albo reklamach, które chcemy pokazać kilka razy. Przykładowo, <video src='video.mp4' controls loop> wstawia wideo z przyciskami, które można łatwo obsługiwać, no i od razu się zapętla. W ogóle, korzystanie z tych atrybutów to dobra praktyka, bo sprawia, że strony są bardziej przyjazne dla użytkowników oraz poprawia ich doświadczenia.

Pytanie 31

Który zapis jest selektorem pseudoklasy CSS?

A. td.wyroznienie
B. body
C. a:link
D. p#wyroznienie
Poprawna odpowiedź to „a:link”, ponieważ jest to zapis selektora pseudoklasy w CSS. Dwukropek po nazwie elementu „a” oznacza właśnie pseudoklasę – w tym przypadku chodzi o konkretny stan linku, czyli odnośnik, który jeszcze nie został odwiedzony przez użytkownika. W specyfikacji CSS (np. CSS2.1, CSS Selectors Level 3/4) pseudoklasy opisują stany dynamiczne albo logiczne cechy elementu, których nie da się łatwo zapisać w samym HTML, jak :hover, :active, :visited, :focus, :first-child, :nth-child() i wiele innych. Moim zdaniem warto od razu kojarzyć, że jeżeli widzisz dwukropek po selektorze, a potem słowo-klucz, to prawie na pewno jest to pseudoklasa. Przykładowo: a:hover { text-decoration: underline; } a:visited { color: purple; } input:focus { border-color: #00aaff; } Takie selektory pozwalają stylować elementy w zależności od interakcji użytkownika lub ich położenia w drzewie DOM. W praktyce front-endowej bardzo często używa się zestawu pseudoklas dla linków w kolejności: :link, :visited, :hover, :active (tzw. LVHA), żeby przeglądarka stosowała style w przewidywalny sposób. Dobrą praktyką jest też rozróżnianie kolorów linków odwiedzonych (:visited) i nieodwiedzonych (:link), ale w granicach czytelności interfejsu. W nowoczesnym CSS mamy też pseudoklasy takie jak :not(), :is(), :has(), które bardzo ułatwiają pisanie złożonych selektorów bez nadmiernego kombinowania z klasami w HTML. Jednak fundament pozostaje ten sam: pseudoklasa to coś po dwukropku, co opisuje stan, a nie zwykły typ, klasę czy id elementu. Dlatego w tym pytaniu jedynie „a:link” spełnia definicję selektora pseudoklasy.

Pytanie 32

Które z poniższych poleceń JavaScript zmieni kolor tekstu na niebieski w paragrafie oznaczonym w HTML?

<p id="jeden">Kwalifikacja EE.01</p>
A. document.getElementById("jeden").color = "blue";
B. document.getElementById("jeden").style.background-color = "blue";
C. document.getElementById("jeden").background-color = "blue";
D. document.getElementById("jeden").style.color = "blue";
W analizowanym pytaniu tylko jedna odpowiedź poprawnie odnosi się do zmiany koloru tekstu w elemencie HTML. Wielu początkujących programistów popełnia błędy związane z nieznajomością struktury obiektowej Document Object Model czyli DOM. Użycie właściwości background-color w odpowiedzi pierwszej i czwartej wskazuje na próbę zmiany tła a nie koloru tekstu. Właściwość style.backgroundColor jest stosowana do zmiany tła elementu a nie tekstu w nim zawartego. Rozróżnienie tych dwóch właściwości jest kluczowe w stylowaniu elementów HTML. Odpowiedź trzecia document.getElementById("jeden").color = "blue"; błędnie zakłada że property color jest bezpośrednio dostępne na poziomie elementu co nie jest prawdą. Właściwości stylów CSS są dostępne w obiekcie style związanym z elementem. Typowym błędem myślowym jest założenie że właściwości CSS można stosować bezpośrednio jako właściwości obiektów DOM co prowadzi do niespójności i błędów w kodzie. Zrozumienie jak obiekt style działa w kontekście DOM pozwala uniknąć takich pomyłek. Ważne jest aby pamiętać że JavaScript umożliwia dynamiczne manipulowanie stylami ale wymaga to poprawnego odwołania się do właściwości stylu poprzez obiekt style co jest często mylone przez początkujących. Poprawne użycie składni JavaScript w kontekście DOM jest kluczowe dla dynamicznego i responsywnego programowania webowego. Przy projektowaniu aplikacji webowych kluczowe jest również przestrzeganie zasad oddzielania logiki biznesowej od prezentacji co zapewnia lepszą czytelność i utrzymanie kodu. Stąd wiedza o poprawnym użyciu stylów w JavaScript jest nie tylko przydatna ale również konieczna dla efektywnego tworzenia aplikacji.

Pytanie 33

W relacyjnym modelu danych, krotki definiuje się jako

A. wiersze tabeli wyłączając wiersz nagłówkowy, w którym znajdują się nazwy kolumn
B. liczbę rekordów w tabeli
C. wszystkie wiersze w tabeli łącznie z wierszem nagłówkowym
D. wszystkie kolumny tabeli, które reprezentują atrybuty obiektu
W relacyjnych bazach danych ważne jest, żeby wiedzieć, czym różnią się wiersze od kolumn. Jak ktoś twierdzi, że krotkami są wszystkie wiersze tabeli razem z nagłówkiem, to nie do końca tak jest. Wiersz nagłówkowy ma znaczenie, bo pokazuje strukturę danych, ale nie wchodzi w skład krotek. Z kolei określanie krotek jako liczby rekordów w tabeli jest mało precyzyjne, bo to nie oddaje tego, co naprawdę oznaczają krotki. Kolejna błędna odpowiedź, która mówi, że krotkami są wszystkie kolumny, może wprowadzać w błąd, bo kolumny definiują atrybuty, ale same w sobie nie przechowują danych. W kontekście baz danych, krotki są kluczowe dla zrozumienia, jak te dane są poukładane, a ich dobre zdefiniowanie sprawia, że zarządzanie informacjami staje się łatwiejsze. Żeby unikać błędów przy projektowaniu baz danych, trzeba pamiętać, że krotki to zestawy wartości atrybutów, które można porównywać i obrabiać w SQL. Takie podejście jest ważne, żeby poprawnie tworzyć zapytania i zarządzać danymi w różnych systemach baz danych.

Pytanie 34

W CSS należy ustawić tło dokumentu na obrazek rys.png. Obrazek powinien się powtarzać tylko w poziomej osi. Jaką definicję powinien mieć selektor body?

A. {background-image: url("rys.png"); background-repeat: repeat-x;}
B. {background-image: url("rys.png"); background-repeat: repeat;}
C. {background-image: url("rys.png"); background-repeat: repeat-y;}
D. {background-image: url("rys.png"); background-repeat: round;}
Wybrana odpowiedź {background-image: url("rys.png"); background-repeat: repeat-x;} jest poprawna, ponieważ precyzyjnie definiuje tło dokumentu jako obrazek 'rys.png', który ma się powtarzać wyłącznie w poziomie. W CSS, właściwość 'background-image' pozwala na ustawienie obrazu jako tła, a 'background-repeat' kontroluje, w jaki sposób tło się powtarza. Użycie wartości 'repeat-x' oznacza, że obrazek będzie powtarzany tylko w osi poziomej, co jest idealne dla wzorów, które powinny być rozciągnięte na całej szerokości ekranu, ale nie na wysokości. Przykładem zastosowania może być stworzenie tła z deseniem, które ma być widoczne w poziomie, np. paski lub linie, co jest powszechnie stosowane w projektowaniu stron internetowych. Zgodnie z dobrymi praktykami, warto również pamiętać, aby dostosować rozmiar obrazka do wymagań responsywności, aby zapewnić optymalne wyświetlanie na różnych urządzeniach.

Pytanie 35

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

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

Pytanie 36

Do czego można wykorzystać program FileZilla?

A. do interpretacji kodu PHP
B. do publikowania strony internetowej
C. do weryfikacji strony internetowej
D. do testowania prędkości ładowania strony
FileZilla to dosyć popularny program, który służy do przesyłania plików za pomocą FTP. W dużym skrócie, jest to narzędzie, które umożliwia publikację stron internetowych. Dzięki niemu można łatwo wrzucać różne pliki, takie jak HTML, CSS czy JavaScript, na serwer. Jego obsługa jest naprawdę prosta – można tworzyć foldery, przenosić, kopiować czy usuwać pliki, co jest bardzo ważne, kiedy zarządza się stroną. Na przykład, jeżeli projektujesz stronę na swoim komputerze i chcesz, żeby była dostępna w Internecie, wystarczy, że skonfigurujesz połączenie FTP w FileZilla, wpiszesz dane logowania do serwera i przeciągniesz pliki do odpowiedniego folderu. Używanie FTP do publikacji to standard w branży, bo jest to bezpieczny i skuteczny sposób na zarządzanie swoimi stronami.

Pytanie 37

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

Ilustracja do pytania
A. <button onclick="return dodaj()">dodaj</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onclick="return obliczj()">dodaj</button>
D. <button onselect="return dodaj()">oblicz</button>
Odpowiedź jest prawidłowa, ponieważ w języku JavaScript zdarzenie onclick jest standardowym sposobem uruchamiania funkcji w odpowiedzi na kliknięcie przycisku. W tym przypadku funkcja dodaj() zostanie wywołana, gdy użytkownik kliknie przycisk z napisem "dodaj". Jest to zgodne z powszechnymi praktykami w tworzeniu interfejsów użytkownika dla aplikacji webowych, gdzie zdarzenia są przypisywane do elementów HTML za pomocą atrybutów takich jak onclick czy onsubmit. Takie podejście pozwala na bezpośrednią interakcję użytkownika z elementami strony, co jest kluczowe dla dynamicznych aplikacji internetowych. Przy tworzeniu stron internetowych ważne jest, aby zdarzenia były jednoznacznie przypisane do odpowiednich funkcji, co ułatwia zarządzanie logiką aplikacji. Dodatkowo takie rozwiązanie zwiększa czytelność kodu i ułatwia jego dalsze utrzymanie i rozwój. W przypadku bardziej skomplikowanych projektów można również rozważyć oddzielanie logiki JavaScript od struktury HTML, używając zewnętrznych plików skryptów i bibliotek, takich jak jQuery czy React, co sprzyja lepszej organizacji kodu.

Pytanie 38

Która z poniższych grup znaczników HTML zawiera tagi używane do grupowania elementów oraz organizacji struktury dokumentu?

A. table, tr, td
B. br, img, hr
C. div, article, header
D. span, strong, em
Odpowiedź z <div>, <article> i <header> jest naprawdę trafna. Te znaczniki HTML są super ważne, bo pomagają w sensownym grupowaniu treści. <div> to taki uniwersalny kontener, który świetnie nadaje się do organizowania elementów, a zwłaszcza przy stylach CSS. Można nim łatwo zarządzać całymi sekcjami, co jest spoko. <article> z kolei to coś jak kawałek treści, który może działać samodzielnie, na przykład artykuł czy post na blogu. A <header>? On zdefiniuje nagłówki dla różnych sekcji, co ułatwia nawigację po stronie. To nie tylko pomaga użytkownikom, ale też robotom indeksującym. Fajnie też pamiętać, że korzystając z odpowiednich znaczników, nie tylko sprawiamy, że strona jest bardziej dostępna, ale też poprawiamy SEO, co jest kluczowe, żeby nasza witryna była widoczna w sieci.

Pytanie 39

Domyślna CAPTCHA
CAPTCHA - reCAPTCHA

W CMS Joomla! opcja konfiguracji globalnej, pokazana na ilustracji, służy do
A. wyświetlenia okna umożliwiającego wyszukiwanie tekstu na stronie.
B. dopuszczenia do przesyłania danych z formularzy wypełnionych tylko przez człowieka.
C. zapobiegania atakom typu SQL Injection.
D. wyświetlania okna informującego o zgodzie użytkownika na pliki cookie.
Opcja pokazana na zrzucie w Joomla! dotyczy domyślnej CAPTCHA, czyli mechanizmu weryfikującego, czy formularz wypełnia człowiek, a nie automat (bot). W praktyce, gdy w konfiguracji globalnej wybierzesz np. „CAPTCHA – reCAPTCHA”, Joomla! będzie mogła używać tego mechanizmu we wszystkich formularzach, które potrafią z CAPTCHA współpracować, np. formularz rejestracji użytkownika, formularz kontaktowy, czasem logowanie czy dodawanie komentarzy w rozszerzeniach. CAPTCHA działa tak, że dodaje do formularza dodatkowy krok: użytkownik musi zaznaczyć odpowiednie pole („Nie jestem robotem”) albo rozwiązać proste zadanie typu rozpoznanie obrazków. Po stronie serwera (tu: Joomla! + Google reCAPTCHA) sprawdzany jest specjalny token. Jeżeli token jest poprawny, dane z formularza są przyjmowane. Jeżeli nie – formularz jest odrzucany. Dzięki temu znacząco ogranicza się spam, masowe rejestracje fałszywych kont i automatyczne wysyłki z formularzy. Moim zdaniem w każdym publicznym formularzu, szczególnie na stronach firmowych czy szkolnych, warto mieć poprawnie skonfigurowaną CAPTCHA. To jest jeden z podstawowych elementów dobrych praktyk bezpieczeństwa aplikacji webowych – obok filtrowania danych, ograniczania liczby żądań czy stosowania firewalli aplikacyjnych (WAF). Sama CAPTCHA nie zastąpi innych zabezpieczeń, ale bardzo skutecznie zmniejsza liczbę automatycznych ataków i spamu. W Joomla! konfiguracja globalna jest o tyle wygodna, że ustawiasz raz domyślny typ CAPTCHA, a potem w poszczególnych komponentach (np. „Użytkownicy”, „Kontakty”) tylko zaznaczasz, że chcesz jej używać. W praktyce oznacza to, że formularze będą przyjmować dane tylko wtedy, gdy człowiek poprawnie przejdzie test CAPTCHA – dokładnie tak, jak opisuje poprawna odpowiedź.

Pytanie 40

W języku HTML sposób na zdefiniowanie kodowania polskich znaków to

A. atrybut znacznika <meta>
B. atrybut znacznika <p>
C. znacznik <title>
D. znacznik <charset>
Poprawna odpowiedź to atrybut znacznika <meta>, który pozwala na określenie kodowania znaków w dokumencie HTML. Użycie znacznika <meta> w sekcji <head> dokumentu jest standardową praktyką, aby zapewnić prawidłowe wyświetlanie polskich znaków, takich jak ą, ć, ę, ł, ń, ó, ś, ź, ż. Przykładowa linia kodu, która definiuje kodowanie UTF-8, wygląda następująco: <meta charset="UTF-8">. Kodowanie UTF-8 jest zalecane, ponieważ obsługuje wszystkie znaki w standardzie Unicode, co jest szczególnie ważne w kontekście wielojęzycznych stron internetowych. W praktyce, jeśli nie zdefiniujemy odpowiedniego kodowania, przeglądarki mogą niepoprawnie interpretować znaki, co prowadzi do ich zniekształcenia. Zgodnie z W3C, przypisywanie kodowania w metadanych jest kluczowe dla zapewnienia dostępności oraz poprawności wyświetlania treści, co w konsekwencji wpływa na doświadczenia użytkowników przeglądających strony internetowe.