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: 14 maja 2026 16:16
  • Data zakończenia: 14 maja 2026 17:02

Egzamin zdany!

Wynik: 31/40 punktów (77,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 języku JavaScript następujący zapis: var napis1 = new napisy); ma na celu

A. stworzenie instancji obiektu napis1 klasy napisy
B. wywołanie metody dla obiektu napisy
C. stworzenie nowej klasy napis1
D. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
W podanym kodzie JavaScript mamy do czynienia z próbą utworzenia obiektu klasy 'napisy'. Operacja 'new' w JavaScript jest używana do instancjowania obiektów z funkcji konstrukcyjnych, które pełnią rolę klas. Przykład działania: jeśli mamy zdefiniowaną funkcję konstrukcyjną 'function napisy() { this.text = ''; }', to użycie 'var napis1 = new napisy();' stworzy nowy obiekt 'napis1', który będzie posiadał właściwość 'text'. Warto zwrócić uwagę, że 'napisy' musi być zdefiniowane jako funkcja konstrukcyjna, aby mogło być użyte w kontekście 'new'. Zrozumienie tego mechanizmu jest kluczowe w programowaniu obiektowym w JavaScript, gdzie klasy i obiekty odgrywają fundamentalną rolę w organizacji kodu. Aby lepiej zrozumieć działanie tego fragmentu, warto zapoznać się z dokumentacją dotyczącą obiektów i funkcji w JavaScript, co znajduje się w standardzie ECMAScript. Przykładowy kod ilustrujący tworzenie obiektu mógłby wyglądać tak: 'var napis1 = new napisy(); console.log(napis1.text);'.

Pytanie 2

W relacyjnych systemach baz danych, gdy dwie tabele są powiązane przez ich klucze główne, mamy do czynienia z relacją

A. 1..1
B. 1..n
C. n..1
D. n..n
W relacyjnych bazach danych, relacja 1..1 oznacza, że każdemu rekordowi w pierwszej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli, a odwrotnie. Gdy tabele są połączone kluczem głównym, zapewnia to unikalność powiązań między nimi. Przykładami takich relacji mogą być tabele 'Pracownicy' i 'Konta', gdzie każdy pracownik ma jedno konto, a każde konto należy do jednego pracownika. Relacja 1..1 jest typowa w sytuacjach, gdy jedna tabela zawiera szczegółowe informacje o obiektach reprezentowanych w drugiej tabeli. Z perspektywy projektowania baz danych, stosowanie relacji 1..1 pomaga w minimalizowaniu redundancji danych oraz zwiększa spójność informacji. Praktyczne podejście do projektowania bazy danych sugeruje, aby relacje 1..1 były wykorzystywane tam, gdzie konieczne jest zapewnienie jednoznacznego powiązania danych, co wspiera integralność danych zgodnie z normami ACID (Atomicity, Consistency, Isolation, Durability).

Pytanie 3

Zaprezentowano poniżej obsługę

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

Pytanie 4

Deklaracja z właściwością background-attachment: scroll sprawia, że

A. tło strony zostanie zamocowane, a tekst będzie się poruszał
B. tło strony będzie przesuwane razem z zawartością tekstową
C. grafika tła będzie się powtarzać (kafelki)
D. grafika tła będzie widoczna w prawym górnym rogu strony
Właściwość CSS 'background-attachment: scroll' oznacza, że tło elementu będzie przewijane w równym tempie z treścią na stronie. Kiedy użytkownik przegląda stronę i przewija ją w dół lub w górę, tło przesuwa się razem z zawartością, co tworzy wrażenie głębokości i dynamiki. Przykładem zastosowania tej właściwości może być strona internetowa z długim tekstem, gdzie tło, takie jak kolor lub obraz, jest częścią estetyki projektu, ale nie powinno być statyczne. Warto zauważyć, że można to osiągnąć, ustawiając 'background-attachment' na 'scroll', co jest najczęściej stosowanym ustawieniem. W standardach CSS3 'background-attachment' ma cztery możliwe wartości: 'scroll', 'fixed', 'local', oraz 'inherit'. Stosowanie 'scroll' jest najbardziej intuicyjne i wspiera responsywność, ponieważ zmienia się w zależności od interakcji użytkownika z zawartością. To podejście jest zgodne z praktykami projektowania stron internetowych, które kładą nacisk na użytkownika i interaktywność.

Pytanie 5

W PHP zmienna $_GET stanowi zmienną

A. zwykłą, utworzoną przez autora strony
B. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
C. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
D. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
Zmienna $_GET w języku PHP jest predefiniowaną superglobalną tablicą, która służy do zbierania danych przesyłanych metodą GET, co oznacza, że dane te są dołączane do adresu URL po znaku zapytania. Umożliwia to łatwe przekazywanie informacji, takich jak wartości z formularzy, parametry zapytań czy identyfikatory produktów, w sposób czytelny dla użytkowników. Przykładowo, gdy użytkownik wypełnia formularz na stronie, a następnie klika przycisk przesyłania, dane są przesyłane do skryptu PHP, co można zobaczyć w adresie URL: `example.com/index.php?name=John&age=30`. Wartości te można następnie odczytać w skrypcie za pomocą $_GET['name'] i $_GET['age']. Warto dodać, że korzystanie z metody GET ma swoje ograniczenia, takie jak maksymalna długość adresu URL oraz możliwość przesyłania tylko danych tekstowych. W standardach bezpieczeństwa warto również pamiętać o sanitizacji i walidacji danych wejściowych, aby zapobiec atakom typu injection czy cross-site scripting (XSS).

Pytanie 6

Który z linków ma prawidłową budowę?

A. <a href='http://adres'> tekst </a>
B. <a href="mailto:adres"> tekst </a>
C. <a href="http://adres"> tekst <a>
D. <a href='mailto:adres'> tekst </a>
Odpowiedź <a href="mailto:adres"> tekst </a> jest poprawna, ponieważ stosuje odpowiednie cudzysłowy dla atrybutu href oraz przestrzega standardów HTML. W HTML5 zaleca się użycie podwójnych cudzysłowów dla wartości atrybutów, co czyni tę konstrukcję zgodną z najlepszymi praktykami. Oto przykład zastosowania: klikając w ten odsyłacz, użytkownik uruchomi aplikację pocztową, co jest przydatne w kontekście kontaktu z użytkownikami czy klientami. Przykłady zastosowania obejmują formularze kontaktowe na stronach internetowych, gdzie użytkownicy mogą łatwo skontaktować się z właścicielem strony. Warto też pamiętać o stosowaniu odpowiednich adresów e-mail, aby uniknąć problemów związanych z korespondencją, oraz o używaniu przyjaznych dla użytkownika tekstów odsyłaczy, które jednoznacznie informują, dokąd prowadzi link. Przestrzeganie tych zasad nie tylko zwiększa użyteczność strony, ale także poprawia jej dostępność.

Pytanie 7

W języku HTML, aby uzyskać efekt taki jak na przykładzie, należy zastosować konstrukcję

Duży tekst zwykły tekst

A. <p><big>Duży tekst</p> zwykły tekst
B. <p><strike>Duży tekst zwykły tekst</p>
C. <p><strike>Duży tekst</strike> zwykły tekst</p>
D. <p><big>Duży tekst</big> zwykły tekst</p>
W języku HTML, użycie znacznika <big> jest właściwym sposobem na zwiększenie rozmiaru tekstu, co w efekcie pozwala na wyróżnienie go w kontekście pozostałej treści. Znacznik ten jest jednak przestarzały i niezalecany w nowoczesnych praktykach, ponieważ CSS oferuje bardziej elastyczne i zaawansowane metody stylizacji. Przykładowo, zamiast stosować <big>, można wykorzystać stylizację CSS, aby uzyskać podobny efekt, co zwiększa kontrolę nad wyglądem elementów. Ponadto, zastosowanie znacznika <p> jako kontenera dla tekstu zapewnia semantyczną strukturę dokumentu, co jest zgodne z wytycznymi W3C i poprawia dostępność. Przykładowo, użycie CSS może wyglądać tak: <p style='font-size: 1.5em;'>Duży tekst</p>zwykły tekst, co jest bardziej zalecane dla zachowania zgodności ze standardami. Warto pamiętać, że unikanie przestarzałych znaczników i stosowanie CSS zwiększa elastyczność i estetykę projektów HTML.

Pytanie 8

W PHP tablice asocjacyjne to struktury, w których

A. w każdej pozycji tablicy znajduje się inna tablica
B. są co najmniej dwa wymiary
C. elementy tablicy są zawsze numerowane od zera
D. indeks może być dowolnym ciągiem znaków
Tablice asocjacyjne w języku PHP są strukturami danych, które łączą unikalne klucze (indeksy) z wartościami. Klucze mogą być dowolnymi napisami, co oznacza, że programista ma dużą swobodę w definiowaniu, jak będą wyglądały indeksy. Na przykład, można używać nazw użytkowników jako kluczy, co pozwala na łatwe odwoływanie się do powiązanych danych. Przykład zastosowania tablic asocjacyjnych to przechowywanie informacji o użytkownikach w formacie: $użytkownicy = array('jan' => 'Jan Kowalski', 'ania' => 'Anna Nowak'). W praktyce, tablice asocjacyjne są niezwykle użyteczne, gdyż pozwalają na bardziej intuicyjny dostęp do danych, a także umożliwiają organizowanie danych w sposób, który jest zrozumiały dla programisty oraz osób współpracujących z kodem. Dobrą praktyką jest stosowanie nazw kluczy, które jednoznacznie opisują przechowywane dane, co zwiększa czytelność i ułatwia późniejsze modyfikacje w kodzie. Warto również dodać, że tablice asocjacyjne w PHP są implementowane jako hashe, co zapewnia szybki dostęp do wartości na podstawie kluczy. To czyni je efektywnym narzędziem w codziennej pracy programisty, szczególnie przy pracy z dużymi zbiorami danych.

Pytanie 9

Specjalna funkcja danej klasy stosowana w programowaniu obiektowym, która jest wywoływana automatycznie w momencie tworzenia obiektu, a jej głównym celem jest zazwyczaj inicjalizacja pól, to

A. specyfikator dostępu
B. konstruktor
C. destruktor
D. obiekt
Konstruktor jest specjalną metodą, która jest wywoływana automatycznie w momencie tworzenia obiektu danej klasy. Jego głównym zadaniem jest zainicjowanie pól obiektu, co jest kluczowe dla zapewnienia, że obiekt będzie w pełni gotowy do użycia zaraz po swoim utworzeniu. Konstruktor może przyjmować argumenty, co pozwala na elastyczne i dynamiczne przypisywanie wartości do pól obiektu. Na przykład, w języku Python konstruktor jest definiowany za pomocą metody __init__(), co pozwala na inicjowanie atrybutów obiektów. W praktyce, przy tworzeniu klasy 'Samochód', konstruktor może być użyty do przypisania wartości takich jak marka, model czy rok produkcji. Dobrym podejściem jest również implementacja konstruktorów z wartościami domyślnymi, co zwiększa uniwersalność i łatwość użycia klasy. Użycie konstruktorów jest zgodne z zasadami programowania obiektowego i wspomaga tworzenie bardziej modularnych i łatwiejszych w utrzymaniu aplikacji.

Pytanie 10

Co oznacza skrót SQL?

A. Simple Query Logic
B. Standard Quality Language
C. Sequential Question Language
D. Structured Query Language
SQL, czyli <em>Structured Query Language</em>, to bardzo istotny język w świecie baz danych. Pozwala na tworzenie, modyfikowanie i zarządzanie danymi w relacyjnych bazach danych. Język ten umożliwia użytkownikom definiowanie struktury bazy danych poprzez tworzenie tabel oraz określanie relacji między nimi. Ponadto, SQL jest kluczowy do manipulacji danymi, oferując szeroki wachlarz komend do selekcji, wstawiania, aktualizacji i usuwania danych. Dzięki SQL można także kontrolować dostęp do danych, definiując uprawnienia użytkowników. W praktyce, SQL jest używany w wielu narzędziach i systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL, Microsoft SQL Server czy Oracle Database. Jego standaryzacja przez ANSI i ISO zapewnia, że podstawowe komendy są zrozumiałe i spójne w wielu systemach. Dla programistów i administratorów baz danych znajomość SQL jest kluczowa, ponieważ pozwala na efektywne zarządzanie i analizę danych, co jest podstawą w podejmowaniu decyzji biznesowych.

Pytanie 11

Obraz o rozdzielczości 72 PPI oznacza, że ma 72 piksele na

A. centymetr.
B. milimetr.
C. megabajt.
D. cal.
Rozbieżność w tym pytaniu wynika głównie z nieporozumień związanych z jednostkami miary i z tym, jak opisujemy rozdzielczość w grafice komputerowej. Skrót PPI oznacza „pixels per inch”, czyli dosłownie „piksele na cal”. Kluczowy jest tutaj właśnie cal, a nie milimetr, centymetr czy – tym bardziej – megabajt. W grafice i przy specyfikacjach monitorów, tabletów graficznych czy ekranów smartfonów od lat stosuje się jednostki anglosaskie, więc standardem stał się cal. Dlatego rozdzielczość 72 PPI oznacza 72 piksele upakowane w jednym calu długości. Częsty błąd polega na próbie „uładnienia” tego do systemu metrycznego i intuicyjnym założeniu, że skoro w Polsce używamy milimetrów i centymetrów, to PPI też mogłoby się do nich odnosić. Technicznie można przeliczyć, ile to będzie pikseli na centymetr, ale wtedy zmienia się jednostka i powinniśmy używać innego zapisu, np. „ppcm” (pixels per centimeter), a nie PPI. Myślenie typu „72 PPI to 72 piksele na centymetr” jest więc błędne, bo ignoruje definicję samego skrótu. Jeszcze dalej od prawdy jest skojarzenie z megabajtami. Megabajt to jednostka pojemności danych, a nie gęstości pikseli w przestrzeni fizycznej. Rozmiar pliku w MB zależy od liczby pikseli, głębi koloru, kompresji i formatu, ale nie jest bezpośrednią jednostką rozdzielczości w sensie przestrzennym. PPI opisuje, jak gęsto piksele są rozmieszczone na fizycznej długości (calu), natomiast megabajty opisują, ile danych potrzeba do zapisania obrazu w pamięci. Typowy błąd myślowy to wrzucanie do jednego worka pojęć: rozdzielczość w pikselach (np. 1920×1080), gęstość PPI oraz wielkość pliku w MB. To są trzy różne parametry. Dobra praktyka w branży graficznej to trzymanie się poprawnych definicji: PPI zawsze odnosi się do cala, a jeśli chcemy pracować w centymetrach lub milimetrach, używamy przeliczeń, ale nie zmieniamy znaczenia skrótu.

Pytanie 12

Który atrybut pozwala na wskazanie lokalizacji pliku graficznego w znaczniku <img>?

A. alt
B. link
C. href
D. src
Atrybut 'src' w znaczniku <img> jest kluczowy, ponieważ określa lokalizację pliku graficznego, który ma być wyświetlany na stronie. Oznacza to, że wartość tego atrybutu to URL (Uniform Resource Locator), który wskazuje na lokalizację obrazu w internecie lub na lokalnym serwerze. Przykładowo, jeśli chcemy wyświetlić obrazek o nazwie 'zdjecie.jpg' znajdujący się w folderze 'obrazy', użyjemy: <img src='obrazy/zdjecie.jpg' alt='Opis obrazka'>. Zastosowanie odpowiedniego atrybutu 'src' jest zgodne z najlepszymi praktykami HTML, co zapewnia, że przeglądarki internetowe prawidłowo interpretują nasze zamierzenia co do wyświetlania treści wizualnych. Nieprawidłowe określenie lokalizacji obrazu może prowadzić do błędów '404 Not Found', co negatywnie wpływa na doświadczenie użytkownika. Dobrze zaprojektowane strony internetowe powinny również uwzględniać atrybut 'alt', który zapewnia dostępność oraz opisuje zawartość obrazu osobom korzystającym z czytników ekranu, ale to 'src' jest odpowiedzialny za wyświetlanie samego obrazu.

Pytanie 13

Jak można zweryfikować spójność danych w bazie MySQL?

A. REPAIR TABLE
B. mysql
C. mysqldump
D. CHECK TABLE
Polecenie CHECK TABLE w MySQL służy do sprawdzania integralności danych w tabeli. Umożliwia to identyfikację problemów, takich jak zduplikowane klucze, uszkodzone wskaźniki lub nieprawidłowe struktury danych. Przykładem zastosowania tego polecenia jest sytuacja, gdy administrator bazy danych podejrzewa, że tabela mogła ulec uszkodzeniu na skutek błędów systemowych lub nieprawidłowych operacji użytkownika. W takim przypadku używając CHECK TABLE, można szybko zdiagnozować problemy i podjąć odpowiednie działania, takie jak naprawa za pomocą polecenia REPAIR TABLE, jeśli to konieczne. Dobre praktyki w zakresie zarządzania bazami danych sugerują regularne sprawdzanie integralności tabel, co pozwala na szybsze wykrywanie problemów oraz minimalizację ryzyka utraty danych. Warto również pamiętać, że CHECK TABLE dostarcza szczegółowych informacji o stanie tabeli, co jest szczególnie przydatne w kontekście monitorowania wydajności i stabilności bazy danych. Z tego względu to polecenie jest kluczowym narzędziem w arsenale każdego administratora MySQL.

Pytanie 14

GRANT SELECT, INSERT, UPDATE ON klienci TO anna; Przy założeniu, że użytkownik nie miał wcześniej przyznanych żadnych uprawnień, to polecenie SQL przypisuje użytkownikowi anna wyłącznie prawa do

A. wybierania, wstawiania oraz aktualizacji danych w tabeli o nazwie klienci
B. wybierania, dodawania kolumn oraz zmiany struktury tabeli o nazwie klienci
C. wybierania, dodawania kolumn oraz zmiany struktury wszystkich tabel w bazie o nazwie klienci
D. wybierania, wstawiania oraz aktualizacji danych w każdej tabeli w bazie o nazwie klienci
Polecenie SQL GRANT SELECT, INSERT, UPDATE ON klienci TO anna przyznaje użytkownikowi anna określone prawa do tabeli klienci. W ramach tego polecenia użytkownik zyskuje możliwość wykonywania trzech podstawowych operacji: wybierania danych (SELECT), dodawania nowych rekordów (INSERT) oraz aktualizacji istniejących danych (UPDATE). Jest to zgodne z zasadą minimalnych uprawnień, co oznacza, że użytkownik otrzymuje jedynie te prawa, które są niezbędne do wykonania swoich zadań. Przykładowo, jeśli anna jest analitykiem danych, może potrzebować dostępu do danych klientów w celu generowania raportów, a tym samym przyznanie jej takich praw jest uzasadnione. Ważne jest, aby zawsze nadawać prawa w sposób świadomy i zgodny z polityką bezpieczeństwa organizacji, aby zminimalizować ryzyko nieautoryzowanego dostępu do danych. Tego typu operacje są standardem zarówno w administracji bazami danych, jak i w codziennym zarządzaniu użytkownikami w systemach informacyjnych.

Pytanie 15

Zakładając, że użytkownik nie miał wcześniej żadnych uprawnień, polecenie SQL przyzna użytkownikowi anna jedynie uprawnienia do

GRANT SELECT, INSERT, UPDATE ON klienci TO anna;
A. wybierania, dodawania pól oraz modyfikacji struktury tabeli o nazwie klienci
B. wybierania, wstawiania oraz aktualizacji danych tabeli o nazwie klienci
C. wybierania, wstawiania oraz modyfikacji danych w wszystkich tabelach w bazie o nazwie klienci
D. wybierania, dodawania pól oraz modyfikacji struktury wszystkich tabel w bazie o nazwie klienci
To polecenie SQL, które widzisz, czyli GRANT SELECT INSERT UPDATE ON klienci TO anna, po prostu przyznaje użytkownikowi anna konkretne uprawnienia do tabeli klienci. Dzięki temu, ona może odczytywać dane z tej tabeli, co jest naprawdę ważne, zwłaszcza przy robieniu różnych zapytań czy raportów. A jakbyś chciał dodać nowe rekordy, to właśnie INSERT na to pozwala. To mega istotne, bo w bazach danych często coś się zmienia! Natomiast UPDATE daje możliwość zmieniania już istniejących danych, co jest bardzo przydatne, żeby utrzymać wszystko w porządku i aktualności. To jakby standard w zarządzaniu bazami danych. Przyznawanie uprawnień do konkretnej tabeli, a nie całej bazy, zmniejsza ryzyko, że ktoś dostanie dostęp do danych, które nie są dla niego przeznaczone. To wszystko działa zgodnie z zasadą minimalnych uprawnień, co jest super ważne! Można też lepiej kontrolować, kto i jakie operacje może robić na danych, co zapewnia bezpieczeństwo i integralność danych w firmie.

Pytanie 16

Zaprezentowano tabelę stworzoną przy użyciu kodu HTML, bez zastosowania stylów CSS. Która część kodu HTML odnosi się do pierwszego wiersza tabeli?

Ilustracja do pytania
A. Rys. A
B. Rys. C
C. Rys. D
D. Rys. B
Pierwszy wiersz tabeli HTML zazwyczaj zawiera nagłówki kolumn i jest oznaczony za pomocą znaczników <th> (table header). Zgodnie z dobrymi praktykami tworzenia tabel w HTML, nagłówki powinny być oddzielone od danych, aby poprawić zarówno estetykę, jak i funkcjonalność tabeli. W odpowiedzi Rys. D użyto znaczników <th> co poprawnie definiuje nagłówki kolumn. W ten sposób przeglądarki potrafią wyróżnić nagłówki, np. poprzez pogrubienie tekstu, co jest domyślnym zachowaniem. Zastosowanie <th> poprawia również dostępność tabel, ponieważ technologie asystujące lepiej interpretują strukturę danych w tabelach, co jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines). Korzystając z <th>, można dodatkowo określić atrybut scope, który jeszcze bardziej precyzuje relacje w tabeli, co jest szczególnie przydatne w bardziej złożonych strukturach. W praktyce, kiedy projektujemy strony internetowe, stosowanie prawidłowych znaczników semantycznych jest kluczowe dla tworzenia zrozumiałego i dostępnego interfejsu użytkownika. Dlatego też wybór fragmentu z <th> jako reprezentującego pierwszy wiersz tabeli jest zgodny z zaleceniami i standardami nowoczesnego front-endu.

Pytanie 17

Jakie imiona spełniają warunek klauzuli LIKE w poniższym zapytaniu: SELECT imię FROM mieszkańcy WHERE imię LIKE '_r%';?

A. Rafał, Rebeka, Renata, Roksana
B. Gerald, Jarosław, Marek, Tamara
C. Arieta, Krzysztof, Krystyna, Tristan
D. Krzysztof, Krystyna, Romuald
Odpowiedź "Arieta, Krzysztof, Krystyna, Tristan" jest prawidłowa, ponieważ wszystkie te imiona spełniają warunki klauzuli LIKE w zapytaniu SQL. Klauzula LIKE z wzorcem '_r%' oznacza, że imię musi mieć na drugiej pozycji literę 'r' oraz może zawierać dowolne znaki po tej literze. Przykładowo, imię 'Krzysztof' ma 'r' na drugiej pozycji, tak samo jak 'Krystyna', a 'Tristan' również spełnia ten warunek. Imię 'Arieta' również odpowiada, ponieważ 'r' występuje na drugiej pozycji. W praktyce, zastosowanie klauzuli LIKE jest typowe przy wyszukiwaniu wzorców w bazach danych, co jest nieocenione przy tworzeniu systemów informacyjnych, w których istotna jest elastyczność w wyszukiwaniu. Dobra praktyka sugeruje również stosowanie operatora LIKE w połączeniu z innymi warunkami, aby zwiększyć precyzję zapytań, co z kolei przyczynia się do efektywności systemów bazodanowych.

Pytanie 18

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

A. sumy.
B. części wspólnej.
C. grupowania.
D. wykluczenia.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno. Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji. Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 19

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

Ilustracja do pytania
A. numerowaną.
B. wypunktowaną.
C. odnośników.
D. skrótów.
Kod HTML zawierający znaczniki <ol> oraz <li> tworzy listę numerowaną ponieważ <ol> oznacza ordered list czyli listę uporządkowaną co skutkuje automatycznym numerowaniem każdego elementu w przeglądarkach internetowych. Znaczniki <li> reprezentują pojedyncze elementy listy zapewniając organizację danych w czytelnej formie. Taki sposób przedstawiania informacji jest powszechnie stosowany w tworzeniu dokumentów HTML i stron internetowych gdzie hierarchia i kolejność elementów ma kluczowe znaczenie. Za pomocą CSS można dodatkowo dostosować styl numerowania oraz wizualne aspekty listy co pozwala na większą elastyczność w projektowaniu interfejsu użytkownika. Standardy internetowe takie jak te rekomendowane przez W3C zachęcają do stosowania semantycznych znaczników co poprawia dostępność i SEO strony. Ponadto listy numerowane są użyteczne w sytuacjach gdy wymagana jest jasna kolejność wykonywania zadań lub prezentacja kroków w procesie co czyni je idealnym narzędziem zarówno w dokumentacji technicznej jak i w interaktywnych przewodnikach online.

Pytanie 20

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

A. is_float(334)
B. is_float('3,34')
C. is_float(NULL)
D. is_float(3.34)
Funkcja is_float() w PHP to coś, co naprawdę warto znać, bo sprawdza, czy dana wartość jest liczbą zmiennoprzecinkową. Na przykład, jak wywołasz is_float(3.34), to dostaniesz true, bo 3.34 to faktycznie float. W programowaniu ważne jest, żeby poprawnie rozróżniać różne typy danych, bo inaczej mogą być problemy przy obliczeniach. W finansach czy modelowaniu danych, dobór typów danych to kluczowa sprawa, bo chcemy, żeby nasze obliczenia były precyzyjne. Warto wiedzieć, że w PHP liczby zmiennoprzecinkowe działają według standardu IEEE 754, co czasem może powodować zaskoczenia przy dużych albo bardzo małych liczbach. Dlatego lepiej używać funkcji is_float() do sprawdzania danych wprowadzanych przez użytkowników, żeby nie wkradały się błędy, które mogą popsuć nasze obliczenia.

Pytanie 21

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. tworzenia tabeli klienci oraz wprowadzania do niej danych
B. usunięcia tabeli lub jej danych
C. przeglądania tabeli klienci i dodawania do niej rekordów
D. aktualizowania danych oraz przeglądania tabeli klienci
Użytkownik adam po wykonaniu poleceń GRANT i REVOKE nie będzie miał wszystkich przywilejów na tabeli klienci, co wymaga szczegółowej analizy. Gdy polecenie GRANT ALL PRIVILEGES ON klienci TO adam zostało wykonane, użytkownik zyskał pełne prawa do tabeli klienci, w tym usuwania, aktualizowania, wstawiania, a także przeglądania danych. Następnie, polecenie REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam odebrało mu możliwość przeglądania (SELECT), wstawiania (INSERT) oraz aktualizowania (UPDATE) danych w tej tabeli. Jednakże, usunięcie (DELETE) nie zostało wymienione w poleceniu REVOKE, co oznacza, że użytkownik adam wciąż ma prawo do usunięcia rekordów w tabeli klienci. To zjawisko jest zgodne z zasadami zarządzania uprawnieniami w systemach baz danych SQL, gdzie uprawnienia mogą być przyznawane i odbierane niezależnie, co pozwala na precyzyjne zarządzanie dostępem do danych. W praktyce, sytuacja ta może prowadzić do niebezpieczeństw związanych z bezpieczeństwem danych, dlatego ważne jest, aby administratorzy baz danych dokładnie analizowali przyznawane i odbierane uprawnienia.

Pytanie 22

Aby włączyć zewnętrzny skrypt JavaScript o nazwie skrypt.js, konieczne jest umieszczenie w kodzie HTML

A. <link rel="script" href="/skrypt.js" />
B. <link rel="JavaScript" type="js" href="/skrypt.js" />
C. <script src="/skrypt.js"></script>
D. <script> skrypt.js </script>
Poprawna odpowiedź to <script src="/skrypt.js"></script>. Wykorzystanie atrybutu src w tagu <script> to standardowa metoda do ładowania zewnętrznych skryptów JavaScript w HTML. Dzięki temu przeglądarka wie, żeby pobrać i uruchomić kod z pliku skrypt.js. To z kolei pozwala na lepszą organizację, bo możemy używać tego samego skryptu w różnych miejscach projektu. No i w praktyce, to przynosi dużo korzyści, jak łatwiejsze utrzymanie czy debugowanie aplikacji. Jak mamy porządnie zorganizowany kod, to strona się szybciej ładuje, a przeglądarka może buforować te skrypty. Na koniec warto dodać, że dobrze osadzone skrypty wpływają też pozytywnie na SEO, bo wyszukiwarki lubią strony, które są zorganizowane i zoptymalizowane. Warto pamiętać, żeby umieszczać tagi <script> na końcu dokumentu HTML, zaraz przed zamknięciem tagu </body>, bo to pozwala na szybsze wyświetlanie zawartości.

Pytanie 23

W języku HTML zdefiniowano znacznik ```link``` Wartość nofollow atrybutu rel

A. oznacza, że kliknięcie na link nie przeniesie do strony website.com.
B. oznacza, że kliknięcie na link otworzy go w osobnej karcie przeglądarki.
C. jest informacją dla przeglądarki internetowej, aby nie formatowała słowa "link" jako odnośnika.
D. jest informacją dla robota wyszukiwarki Google, aby nie podążał za tym linkiem.
Dobrze, że to wybrałeś! Atrybut rel='nofollow' w tagu <a> w HTML mówi robotom wyszukiwarek, jak Google, żeby nie śledziły tego linku. Często używa się go w SEO, czyli w optymalizacji stron. Dzięki temu możemy zdecydować, które linki na naszej stronie są ważne, a które nie. Jeśli mamy na myśli, żeby dana strona była mniej widoczna w wyszukiwarkach, to ten atrybut się przyda. Tylko musisz pamiętać, że zbyt wiele linków z 'nofollow' może sprawić, że wyszukiwarki nie będą patrzyły na naszą stronę za dobrze. Moim zdaniem, warto to dobrze przemyśleć!

Pytanie 24

Model fizyczny replikacji bazy danych pokazany na ilustracji to model

Ilustracja do pytania
A. rozproszony
B. równorzędny
C. centralnego subskrybenta
D. centralnego wydawcy
Równorzędny model replikacji zakłada że wszystkie serwery w sieci mają taką samą rolę i mogą zarówno publikować jak i subskrybować dane co prowadzi do bardziej skomplikowanego zarządzania danymi ze względu na konieczność rozwiązywania konfliktów i synchronizacji zmian w różnych lokalizacjach W przeciwieństwie do modelu centralnego wydawcy ten model nie oferuje centralnego punktu kontroli co może prowadzić do problemów z jednolitością danych W modelu rozproszonym natomiast dane są dzielone między różnymi serwerami co może być przydatne w systemach o dużej skali ale wymaga bardziej złożonej architektury sieci oraz zaawansowanych mechanizmów synchronizacji i redundancji danych Model centralnego subskrybenta z kolei działa odwrotnie do centralnego wydawcy gdzie wiele serwerów publikuje dane do jednego subskrybenta co nie jest praktyczne w większości scenariuszy biznesowych ponieważ ogranicza przepływ informacji i może prowadzić do wąskich gardeł Decyzja o wyborze odpowiedniego modelu replikacji powinna opierać się na potrzebach organizacji oraz specyfice infrastruktury technicznej zastosowanej w firmie błędne zrozumienie tej koncepcji może prowadzić do nieefektywnego działania systemu oraz problemów z dostępnością i bezpieczeństwem danych

Pytanie 25

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 3 razy
B. 26 razy
C. 2 razy
D. 27 razy
Analizując podane odpowiedzi, warto zrozumieć, jak działa pętla do-while w JavaScript. Pętla ta różni się od tradycyjnych pętli for oraz while tym, że warunek jest sprawdzany na końcu każdej iteracji. Oznacza to, że ciało pętli wykona się przynajmniej raz, niezależnie od tego, czy warunek jest prawdziwy na początku. W analizowanej konstrukcji mamy zmienną x początkowo ustawioną na 1, która w każdej iteracji jest mnożona przez 3, oraz zmienną i zliczającą liczbę iteracji. Pętla kontynuuje, dopóki x nie osiągnie wartości 27. W obliczeniach x przyjmuje wartości 1, 3, 9, i na koniec 27. Dopiero po osiągnięciu 27 warunek x!=27 staje się fałszem, zatrzymując pętlę po trzeciej iteracji. Częstym błędem przy analizie takich pętli jest pomijanie faktu, że wykonają się one przynajmniej raz, co może prowadzić do błędnej oceny liczby iteracji. Rozumienie tej mechaniki jest kluczowe w projektowaniu algorytmów, które muszą zagwarantować wykonanie kodu niezależnie od początkowego stanu zmiennych.

Pytanie 26

W aplikacji internetowej komunikat powinien pojawiać się tylko wtedy, gdy dany użytkownik jest na stronie po raz pierwszy. Którą funkcję PHP należy w tym celu zastosować?

A. mysqli_change_user
B. setcookie
C. session_destroy
D. define
Prawidłowo – w tym zadaniu kluczowa jest funkcja setcookie(), bo to właśnie ciasteczka są standardowym mechanizmem do rozpoznawania, czy użytkownik był już wcześniej na danej stronie. W praktyce robi się to tak: przy pierwszym wejściu na stronę sprawdzasz, czy istnieje określone cookie, np. $_COOKIE['first_visit']. Jeśli go nie ma, wyświetlasz komunikat powitalny i ustawiasz ciasteczko za pomocą setcookie('first_visit', '1', time()+3600*24*365). Przy kolejnych wejściach cookie już będzie istniało, więc komunikat się nie pojawi. To jest bardzo typowy wzorzec np. dla banerów informujących o ciasteczkach, komunikatów onboardingowych czy jednorazowych podpowiedzi dla nowych użytkowników. Z mojego doświadczenia w webdevie to najprostsze i najbardziej przenośne rozwiązanie, bo działa niezależnie od sesji i logowania użytkownika – wystarczy przeglądarka z włączonymi cookies. Ważne jest też, żeby pamiętać o tym, że setcookie() musi być wywołane przed wysłaniem jakiegokolwiek outputu (czyli przed jakimkolwiek HTML, echo, BOM itd.), bo ciasteczka są wysyłane w nagłówkach HTTP. W bardziej rozbudowanych projektach często łączy się cookies z innymi mechanizmami (np. sesją czy bazą danych), ale do prostego sprawdzenia „czy użytkownik jest tu pierwszy raz” ciasteczko ustawiane setcookie() to według dobrych praktyk w zupełności wystarcza. Warto też dbać o parametry bezpieczeństwa ciastek (secure, httponly, samesite), szczególnie gdy później używamy tego mechanizmu do czegoś ważniejszego niż zwykły komunikat informacyjny.

Pytanie 27

W kodzie HTML zamieszczono link do strony internetowej:

<a href="http://google.com">strona Google</a>
Jakie dodatkowe zmiany należy wprowadzić, aby link otwierał się w nowym oknie lub zakładce przeglądarki, dodając do definicji linku odpowiedni atrybut?
A. rel = "next"
B. target = "_blank"
C. rel = "external"
D. target = "_parent"
Atrybut target w HTML ma na celu określenie, w jaki sposób ma być otwierany odnośnik. Wartość _blank wskazuje przeglądarkę, że nowa strona powinna zostać otwarta w nowym oknie lub zakładce. Jest to istotne dla poprawy użyteczności strony internetowej, gdyż użytkownicy mogą łatwo wrócić do oryginalnej strony po otwarciu nowego linku. W kontekście dobrych praktyk w projektowaniu stron internetowych, otwieranie odnośników w nowym oknie jest zalecane w przypadku linków zewnętrznych, aby użytkownik nie opuścił aktualnej witryny. Przykładem zastosowania jest link do dokumentacji czy zasobów zewnętrznych, gdzie ma to na celu zachowanie kontekstu przeglądania. Stosując ten atrybut, warto jednak pamiętać o tym, aby nie nadużywać go, ponieważ może to być irytujące dla użytkowników, którzy wolą kontrolować, kiedy nowe okno jest otwierane. Warto również pamiętać, że w nowoczesnych standardach HTML5 atrybut target jest często stosowany w połączeniu z atrybutem rel, aby określić, czy link jest zaufany czy nie. Umożliwia to jeszcze lepsze zarządzanie bezpieczeństwem użytkowników.

Pytanie 28

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
B. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
D. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
Pierwszym istotnym problemem w niepoprawnych zapytaniach jest brak prawidłowego połączenia tabel na właściwych kluczach. W relacyjnych bazach danych, aby sensownie połączyć dane z różnych tabel, należy wykorzystać klucze główne i obce, które jasno definiują powiązania między obiektami. Jeśli zapomni się o warunku JOIN albo połączy się tabele po błędnych kolumnach (na przykład próbując połączyć idStudenta z idZajecia lub pomijając warunek ON), baza zwróci błędne wyniki lub wręcz nie pozwoli wykonać zapytania. To typowy błąd początkujących, którzy nie zawsze rozumieją, jak bardzo ważne jest precyzyjne określenie relacji – w rzeczywistych bazach danych relacji jest wiele, a niewłaściwe powiązanie może prowadzić do powstawania kartuzjańskiego iloczynu, czyli powielania danych bez rzeczywistego sensu. Brak filtru WHERE grupa = 15 skutkuje wyciągnięciem danych dla wszystkich studentów, co może być ogromnym problemem przy dużych bazach i całkowicie rozmija się z celem kwerendy. Moim zdaniem, wiele osób zapomina, że filtrowanie to podstawa – bez tego, szczególnie przy produkcyjnych bazach, można zarówno błędnie interpretować wyniki, jak i mocno przeciążyć system niepotrzebnym ruchem. Takie błędy wynikają często z braku systematycznego podejścia do projektowania zapytań i nieuważnego czytania struktury tabel. Warto od razu przyzwyczajać się do pracy zgodnie z konwencjami, bo to przekłada się na bezpieczeństwo, wydajność i poprawność działania całego systemu. W praktyce – nawet drobny błąd w składni JOIN lub brak filtrowania na kluczowej kolumnie może wywołać lawinę problemów, zwłaszcza gdy kwerenda staje się częścią większej aplikacji biznesowej lub raportu dla zarządu.

Pytanie 29

W przypadku podanego fragmentu kodu walidator HTML zgłosi błąd, ponieważ <img src="kwiat.jpg alt="kwiat">

A. nie zamknięto cudzysłowu
B. użyto niewłaściwego znacznika do wyświetlenia obrazu
C. zastosowano nieznany atrybut alt
D. brak obrazu kwiat.jpg
W przedstawionym kodzie HTML występuje błąd związany z niedomknięciem cudzysłowu dla atrybutu 'src'. Prawidłowa składnia powinna wyglądać następująco: <img src="kwiat.jpg" alt="kwiat">. Brak cudzysłowu po 'kwiat.jpg' uniemożliwia poprawne zinterpretowanie kodu przez przeglądarki, co skutkuje błędem walidacji. Zasady walidacji kodu HTML są zgodne z wytycznymi W3C, które zalecają, aby każdy atrybut był zamknięty cudzysłowem. Poprawność kodu nie tylko wpływa na jego działanie, ale również na dostępność strony oraz SEO. Użytkownicy, którzy poruszają się po stronach bez pełnej obsługi HTML, mogą napotkać problemy z wyświetlaniem obrazów. W praktyce, zawsze warto stosować dobregi praktyki kodowania, takie jak użycie linterów do sprawdzania poprawności kodu przed jego publikacją, aby uniknąć takich błędów.

Pytanie 30

W jaki sposób funkcjonuje instrukcja do łączenia wyników zapytań INTERSECT w SQL?

A. Zwraca część wspólną wyników dwóch zapytań
B. Zwraca te wiersze, które wystąpiły w wyniku drugiego zapytania, natomiast nie było ich w wyniku pierwszego zapytania
C. Zwraca te wiersze, które wystąpiły w wyniku pierwszego zapytania, jednak nie były obecne w wyniku drugiego zapytania
D. Zwraca zbiór wyników z pierwszego zapytania oraz zbiór wyników z drugiego zapytania, automatycznie eliminując powtarzające się wiersze
Wszystkie niepoprawne odpowiedzi nie oddają istoty działania instrukcji INTERSECT. Opis dotyczący zwracania listy wyników z obu zapytań oraz usuwania powtarzających się wierszy jest mylący, ponieważ INTERSECT nie łączy wyników, lecz filtruje je, ograniczając się tylko do wspólnych wierszy. Ponadto wskazanie, że instrukcja ta zwraca wiersze z pierwszego zapytania, które nie znajdują się w drugim, jest błędne, ponieważ dotyczy to operatora EXCEPT, który działa na zasadzie różnicy zbiorów. Również stwierdzenie, że INTERSECT zwraca wiersze z drugiego zapytania, które nie występują w pierwszym, również jest mylące i nie ma podstaw w rzeczywistości działania tej instrukcji. W rzeczywistości, INTERSECT nie operuje na zasadzie różnic, lecz na zasadzie przecięcia zbiorów, co oznacza, że korzysta z logiki logicznego AND, a nie OR. Podsumowując, kluczowym elementem użycia INTERSECT jest zrozumienie, że jego zadaniem jest wyodrębnienie wspólnych elementów, co czyni go narzędziem do porównywania i analizy danych, a nie do łączenia ich czy analizy różnic.

Pytanie 31

Metainformacja "Description" umieszczona w pliku HTML powinna zawierać

<head>
    <meta name="Description" content="...">
</head>
A. opis treści znajdującej się na stronie
B. informację na temat autora strony
C. spis słów kluczowych, które są wykorzystywane przez wyszukiwarki internetowe
D. nazwę aplikacji, za pomocą której stworzono stronę
Meta tag Description w HTML służy do dostarczenia krótkiego streszczenia zawartości strony internetowej Jest to jeden z kluczowych elementów optymalizacji pod kątem wyszukiwarek internetowych SEO który pomaga wyszukiwarkom i użytkownikom zrozumieć tematykę strony choć nie jest bezpośrednim czynnikiem rankingowym wyszukiwarek może wpływać na wskaźnik klikalności CTR w wynikach wyszukiwania Dzięki dobrze skonstruowanemu opisowi użytkownicy mogą szybko ocenić czy strona spełnia ich potrzeby co z kolei może zwiększyć ruch na stronie Praktyką branżową jest aby opis był zwięzły i zawierał najważniejsze informacje dotyczące zawartości strony zazwyczaj nie przekraczając 160 znaków Ponadto opis ten może być wyświetlany jako fragment w wynikach wyszukiwania co czyni go istotnym elementem strategii marketingowej strony Dobre praktyki obejmują stosowanie unikalnych i precyzyjnych opisów dla każdej podstrony co przyczynia się do lepszego zrozumienia i klasyfikacji strony przez wyszukiwarki

Pytanie 32

W kontekście CSS atrybut font-size może przyjmować wartości zgodnie z nazwami kluczowymi

A. tylko small, smaller, large, larger
B. wyłącznie small, medium, large
C. z zestawu xx-small, x-small, small, medium, large, x-large, xx-large
D. jedynie big oraz small
W CSS mamy właściwość font-size, która przyjmuje różne wartości, takie jak xx-small, x-small, small, medium, large, x-large i xx-large. Te wszystkie opcje pozwalają na ładne i elastyczne projektowanie stron. Dzięki nim tekst będzie wyglądał dobrze na różnych urządzeniach i przeglądarkach. Na przykład, jak użyjesz 'large' dla nagłówka, to masz pewność, że będzie czytelny w każdej sytuacji. Warto też pamiętać, że korzystanie z jednostek względnych, jak em czy rem, w połączeniu z tymi słownikowymi to dobra praktyka, bo to ułatwi skalowanie i dostępność tekstu. Tak jak w tym przykładzie: h1 { font-size: large; }, gdzie nagłówek h1 będzie odpowiednio duży w porównaniu do reszty tekstu na stronie. Generalnie, te jednostki są zgodne z tym, co zaleca W3C, szczególnie jeśli chodzi o dostępność i responsywność stron internetowych.

Pytanie 33

Hermetyzacja to zasada programowania obiektowego, która mówi, że

A. klasy/obiekty mogą dzielić się funkcjonalnością
B. pola i metody dostępne tylko dla konkretnej klasy/obiektu mają zasięg ograniczony do private lub protected
C. typy pól w klasach/obiektach mogą być zmieniane w sposób dynamiczny w zależności od przypisywanych danych
D. klasy/obiekty mogą definiować metody wirtualne, które są realizowane w klasach/obiektach pochodnych
Odpowiedzi sugerujące różne interpretacje hermetyzacji w programowaniu obiektowym zakładają błędne zrozumienie tej zasady. Wskazanie, że klasy mogą mieć metody wirtualne, które są implementowane w pochodnych klasach, odnosi się do polimorfizmu, a nie hermetyzacji. Polimorfizm pozwala na zdefiniowanie metod w klasie bazowej, które mogą być nadpisywane w klasach pochodnych, ale nie ma związku z ograniczeniem dostępu do danych. Z kolei twierdzenie, że typy pól w klasach mogą być dynamicznie zmieniane, wskazuje na nieporozumienie dotyczące typów statycznych i dynamicznych w kontekście języków programowania, gdzie typy pól są zazwyczaj ustalane w momencie kompilacji. Ponadto, stwierdzenie, że klasy mogą współdzielić ze sobą funkcjonalność, odnosi się do dziedziczenia oraz kompozycji, które są osobnymi konceptami w programowaniu obiektowym. W rzeczywistości, hermetyzacja jest bardziej związana z ochroną danych i zapewnieniem, że wewnętrzna logika klasy pozostaje nietknięta przez nieautoryzowane modyfikacje. Te nieporozumienia mogą prowadzić do istotnych problemów w architekturze aplikacji, gdzie niezrozumienie hermetyzacji skutkuje nadmiernym uzależnieniem od zewnętrznych interakcji oraz zwiększoną złożonością kodu. Zrozumienie hermetyzacji jest kluczowe, aby tworzyć kod, który jest nie tylko bardziej odporny na błędy, ale również łatwiejszy do utrzymania i rozwijania.

Pytanie 34

Algorytm przedstawiony dla tablicy n-elementowej t[n] ma na celu obliczenie sumy:

// K1
i = 0; wynik = 0;
// K2
while i < n do
// K3
wynik = wynik + t[i];
// K4
i = i + 2;
// K5
wypisz(wynik);
A. co drugi element tablicy.
B. wszystkie elementy tablicy.
C. n-elementów tablicy.
D. elementów tablicy, których wartości są nieparzyste.
To właśnie jest sedno tego algorytmu – on faktycznie sumuje co drugi element tablicy. Spójrz na ten fragment: „i = i + 2;”. To kluczowa linia! Po każdym dodaniu elementu do sumy, indeks zwiększa się o dwa, a nie o jeden, jak bywa w klasycznym przeglądaniu tablicy. W praktyce oznacza to, że najpierw bierzemy element t[0], potem t[2], potem t[4] i tak dalej, aż do końca tablicy. Taki sposób iteracji często spotyka się w zadaniach, gdzie zależy nam na analizie tylko parzystych indeksów, np. kiedy chcemy oddzielić wartości z pozycji parzystych od nieparzystych albo przy optymalizacjach związanych z przetwarzaniem dużych zbiorów danych. Co ciekawe, podobna konstrukcja pojawia się w algorytmach, gdzie trzeba obrobić strumień danych fragmentami, np. podczas przeglądania jednej połowy tablicy lub w algorytmach filtrujących sygnały. Z mojego doświadczenia wynika, że taki schemat jest nie tylko szybki, ale też czytelny dla innych programistów. Dobre praktyki zalecają zawsze wyraźnie pokazywać, które elementy są brane pod uwagę w pętli – tutaj jest to bardzo klarowne. Można byłoby to jeszcze rozwinąć, np. obsługując sytuacje, gdzie tablica ma nieparzystą liczbę elementów, ale generalnie, jeśli potrzebujesz sumy co drugiego elementu – taki algorytm jest idealny.

Pytanie 35

W HTML-u utworzono formularz. Jaki efekt działania poniższego kodu zostanie pokazany przez przeglądarkę, jeśli w drugie pole użytkownik wprowadził tekst "ala ma kota"?

<form>
    <select>
        <option value="v1">Kraków</option>
        <option value="v2">Poznań</option>
        <option value="v3">Szczecin</option>
    </select><br>
    <input type="password" />
</form>
Ilustracja do pytania
A. A
B. B
C. D
D. C
Odpowiedź B jest prawidłowa, ponieważ pokazuje typowy sposób renderowania formularza HTML z elementem wyboru i polem hasła w przeglądarce. W kodzie HTML widzimy element select z trzema opcjami wyboru. Po zaznaczeniu jednej z opcji, jak Kraków, tworzy się rozwijane menu, które jest widoczne na obrazie jako pole z wybraną wartością. Drugim elementem formularza jest pole input typu password. Ten typ pola zamienia wpisany tekst na znaki maskujące, takie jak kropki lub gwiazdki, co widzimy na obrazie w odpowiedzi B. To jest standardowe zachowanie przeglądarek w przypadku pól hasła, mające na celu ochronę prywatności. W kodzie HTML nie ma elementów typu checkbox ani radio, co eliminowałoby inne prezentacje danych, takie jak checkboxy czy przyciski radiowe. Dobrą praktyką jest używanie pól hasła w formularzach tam, gdzie wymagane jest wprowadzenie danych, które powinny być chronione. Odpowiednie użycie elementów HTML zwiększa użyteczność i bezpieczeństwo aplikacji internetowej i jest zgodne z konwencjami projektowania UI.

Pytanie 36

Sprawdzenie poprawności pól formularza polega na weryfikacji

A. czy użytkownik jest zalogowany
B. czy wprowadzone dane spełniają określone reguły
C. czy istnieje plik PHP, który przetworzy dane
D. który użytkownik wprowadził informacje
Wiele osób myli walidację pól formularza z innymi procesami związanymi z obsługą danych wejściowych. Przykładowo, założenie, że walidacja dotyczy wyłącznie sprawdzania, czy użytkownik jest zalogowany, jest mylne. Choć logowanie to ważny proces zabezpieczający, nie ma bezpośredniego związku z tym, czy wprowadzone dane są poprawne. Podobnie, twierdzenie, że walidacja polega na identyfikacji użytkownika, jest niepoprawne. Takie pytanie odnosi się do kontroli dostępu i autoryzacji, a nie do samej jakości danych. Identyfikacja użytkownika nie wpływa na to, czy dane są zgodne z wymaganiami formularza. Kolejny błąd polega na myśleniu, że walidacja jest związana z obecnością pliku PHP, który przetwarza dane; jednakże walidacja dotyczy tylko jakości danych, a nie technologii, która je obsługuje. Ponadto, wiele osób nie zdaje sobie sprawy z tego, że walidacja jest istotnym elementem ochrony przed atakami, takimi jak SQL Injection czy Cross-Site Scripting (XSS). Dlatego podstawowe podejścia do walidacji powinny skupiać się na definicji reguł, które dane muszą spełniać, a nie na kontekście użytkownika czy technologii przetwarzającej dane. Zastosowanie właściwych technik walidacji nie tylko zwiększa jakość danych, ale również wzmacnia bezpieczeństwo aplikacji, co jest zgodne z najlepszymi praktykami w obszarze tworzenia oprogramowania.

Pytanie 37

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

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

Pytanie 38

Który z elementów HTML ma charakter bloku?

A. p
B. strong
C. span
D. img
Czasami ludzie mają problemy z rozumieniem znaczenia <img>, <span> i <strong>, co może prowadzić do nieporozumień. Znacznik <img> to element inline, który służy do wstawiania obrazków do dokumentów HTML. Elementy inline nie zaczynają nowej linii, więc obrazek dodany przez <img> wpasowuje się w tekst i nie wywołuje żadnej przerwy. Dlatego <img> nie jest elementem blokowym i nie nadaje się do dzielenia treści akapitów, co jest istotne w kontekście struktury dokumentu. Z kolei <span> też jest inline i głównie służy do stylizacji konkretnego fragmentu tekstu, bez zmiany jego ogólnej struktury. To przydatne, gdy chcesz zastosować CSS do wybranych części, ale nie pomoże w budowaniu większych sekcji treści. A znacznik <strong>? No cóż, jest używany do podkreślenia ważności tekstu, co zazwyczaj oznacza pogrubienie, ale i tak nie wpływa na układ strony w sensie blokowym. Elementy inline, jak <img>, <span> i <strong>, nie tworzą widocznych sekcji w treści, co ogranicza ich zastosowanie przy budowaniu struktury dokumentu. Żeby stworzyć logiczne bloki tekstowe i sekcje na stronie, warto korzystać z elementów blokowych, jak <p>, by zapewnić lepszą czytelność i spełniać zasady semantyczne HTML.

Pytanie 39

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. reaload();
B. replace();
C. open();
D. close();
Metoda replace() obiektu location w JavaScript jest kluczowym narzędziem umożliwiającym zastąpienie bieżącego dokumentu nowym dokumentem wskazywanym przez zdefiniowany adres URL. Kiedy używamy location.replace(url), przeglądarka ładuje nowy dokument z podanego adresu, a bieżąca strona nie pozostaje w historii przeglądania, co oznacza, że użytkownik nie może wrócić do niej za pomocą przycisku "wstecz". Jest to szczególnie użyteczne w scenariuszach, gdy chcemy uniknąć zbędnego gromadzenia historii, na przykład w aplikacjach jednoskalowych (SPA), gdzie nawigacja pomiędzy różnymi widokami powinna być płynna. Przykładowo, po zalogowaniu użytkownika, można przekierować go na stronę główną aplikacji, używając location.replace('/home'). Warto również wspomnieć, że stosowanie tej metody jest zgodne z najlepszymi praktykami w zakresie UX, gdyż pozwala na lepsze zarządzanie historią przeglądarki, co może poprawić doświadczenia użytkownika.

Pytanie 40

Na stronie internetowej zdefiniowano styl, który ma być stosowany tylko do określonych znaczników (takich jak niektóre nagłówki i wybrane akapity). W takim kontekście, aby przypisać styl do konkretnych elementów, najlepiej jest użyć

{ text-align: right; }
A. pseudoklasy
B. klasy
C. identyfikatora
D. seletora akapitu
Użycie selektora akapitu nie jest odpowiednie w sytuacji gdy chcemy przypisać styl tylko do niektórych znaczników tego typu ponieważ selektory takie jak p stylizują wszystkie elementy danego typu na stronie bez rozróżnienia Jeżeli chcemy stylizować tylko określone akapity musielibyśmy użyć klas lub identyfikatorów Identyfikator z kolei charakteryzuje się tym że powinien być unikalny dla każdego elementu na stronie Stosowanie identyfikatora do stylizowania grupy elementów naruszałoby zasadę unikalności co może prowadzić do problemów z walidacją HTML oraz trudności w przyszłej modyfikacji kodu Pseudoklasy są używane do stylizowania elementów w konkretnych stanach takich jak hover focus czy active i nie nadają się do przypisywania ogólnych stylów do grupy elementów Ich głównym przeznaczeniem jest reagowanie na interakcje użytkownika a nie stylizacja stała W kontekście pytania najlepszym podejściem jest użycie klas które pozwalają na przypisanie stylów dokładnie tam gdzie są potrzebne bez konieczności nadmiernego komplikowania kodu i naruszania dobrych praktyk Kod staje się bardziej elastyczny i łatwiejszy w zarządzaniu co jest kluczowe dla długoterminowego utrzymania projektu Krótko mówiąc klasy oferują najskuteczniejszy sposób na przypisanie stylu do określonych grup elementów zapewniając przy tym zgodność ze standardami i najlepsze praktyki w tworzeniu stron internetowych