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: 24 czerwca 2026 16:54
  • Data zakończenia: 24 czerwca 2026 17:07

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Sklep online używa tabeli faktury. W trakcie generowania faktury pole dataPlatnosci nie zawsze zostaje uzupełnione. Aby to skorygować, na zakończenie dnia trzeba wpisać bieżącą datę do rekordów, w których to pole nie jest wypełnione. Można to osiągnąć za pomocą kwerendy

A. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataplatnosci = '0000-00-00';
B. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE id = 3;
C. UPDATE faktury SET dataPlatnosci=CURTIME() WHERE dataPlatnosci IS NOT NULL;
D. UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL;
Wybór innych opcji jest nieco problematyczny. Kwerenda, która ustawia dataPlatnosci na CURTIME() w wierszach, gdzie id = 3, nie jest zbyt sensowna, bo odnosi się tylko do jednego rekordu. Poza tym, CURTIME() zwraca czas, a nie datę, a w kontekście faktur to nie ma sensu, bo powinny mieć datę płatności, a nie tylko czas. Kolejna sprawa to aktualizacja dat w wierszach, gdzie dataPlatnosci IS NOT NULL, co prowadzi do utraty ważnych informacji. Tego typu podejście jest sprzeczne z zasadami ochrony danych i może narobić bałaganu przy audytach. I ostatnia opcja, która ustawia datę na '0000-00-00', to kompletna katastrofa. Takie coś wprowadza błędne dane, które mogą wywołać problemy później. Użycie '0000-00-00' jako znacznika braku daty jest do bani i może prowadzić do nieporozumień. Lepiej używać NULL, bo to standard w SQL. Wybierając złe opcje, nie tylko ograniczasz funkcjonalność, ale także łamiesz zasady dobrego zarządzania danymi.

Pytanie 2

Którego formatu użyć do zapisu ZDJĘCIA z kompresją STRATNĄ?

A. JPEG
B. GIF
C. PCX
D. PNG
Do zapisu ZDJĘĆ z kompresją stratną najlepszy jest JPEG - mocno zmniejsza plik kosztem niewidocznych dla oka detali, co przy fotografiach jest akceptowalne. Dlatego do zdjęcia ze stratną kompresją wybiera się JPEG.

Pytanie 3

Kod CSS można włączyć do dokumentu HTML, używając znacznika

A. <style>
B. <body>
C. <meta>
D. <head>
Wybór znaczników <head>, <meta> lub <body> jako miejsca do umieszczania kodu CSS jest nieprawidłowy z kilku powodów. Znacznik <head> jest przestrzenią przeznaczoną do przechowywania metadanych i odniesień do zasobów zewnętrznych, takich jak pliki CSS, a nie do bezpośredniego osadzania stylów. Chociaż można w nim umieszczać inne znaczniki, takie jak <style>, nie jest to jego podstawowe przeznaczenie. Znacznik <meta> służy do definiowania metadanych dokumentu, takich jak zestaw znaków, informacje o autorze czy opis strony, co również nie ma związku z osadzaniem stylów CSS. Z tego powodu umieszczanie kodu CSS w <meta> jest nieodpowiednie. Znacznik <body> jest przeznaczony do zawartości strony, która ma być wyświetlana użytkownikowi, a nie do definiowania stylów. Umieszczenie kodu CSS w <body> może prowadzić do chaosu w organizacji kodu oraz obniżenia wydajności, gdyż przeglądarki muszą analizować style po renderowaniu treści. Kluczowe błędy myślowe w takich wyborach wynikają z nieporozumienia na temat funkcji poszczególnych znaczników HTML oraz ich roli w renderowaniu strony internetowej. Właściwe stosowanie znaczników i standardów webowych jest fundamentem efektywnego projektowania stron, co podkreśla znaczenie edukacji w tym zakresie.

Pytanie 4

Który znacznik służy do tworzenia LISTY w HTML?

A.
<td>
B.
<ul>
C.
<tr>
D.
<th>
Listę nieuporządkowaną (punktowaną) tworzy znacznik <ul>, a jej elementy umieszcza się w <li>. Dlatego listę tworzy <ul>.

Pytanie 5

Gdzie w dokumencie HTML można umieścić kod JavaScript?

A. w <head> i <body>, w znaczniku <script>
B. tylko w <head>, w znaczniku <script>
C. tylko w <body>, w znaczniku <java>
D. w <head> i <body>, w znaczniku <java>
JavaScript osadza się w znaczniku <script>, a nie <java> (taki znacznik nie istnieje, a Java to inny język). Nie ogranicza się też tylko do <head> - skrypt może być również w <body>. Poprawnie: <head> i <body>, w <script>.

Pytanie 6

Jeżeli rozmiar pliku graficznego jest zbyt duży do publikacji w sieci, co należy zrobić?

A. zapisać w formacie BMP
B. zmniejszyć jego rozdzielczość
C. zwiększyć jego głębię kolorów
D. dodać kanał alfa
Zmniejszenie rozdzielczości pliku graficznego jest jedną z najskuteczniejszych metod na zmniejszenie jego rozmiaru, co jest niezwykle ważne w kontekście publikacji w Internecie. Rozdzielczość obrazu odnosi się do liczby pikseli, które składają się na dany obraz, wyrażoną zazwyczaj w pikselach na cal (PPI) lub w całkowitej liczbie pikseli w szerokości i wysokości. Zmniejszając rozdzielczość, obniżamy liczbę pikseli, co w efekcie prowadzi do mniejszego rozmiaru pliku. Na przykład, obraz o rozdzielczości 4000x3000 pikseli ma 12 milionów pikseli, podczas gdy obraz o rozdzielczości 2000x1500 pikseli zaledwie 3 miliony pikseli. Oprócz zmniejszenia rozdzielczości, można również zastosować inne techniki kompresji, takie jak zmiana formatu pliku na JPEG, który jest bardziej efektywny w kompresji zdjęć, a także wykorzystanie narzędzi do optymalizacji grafiki, takich jak TinyPNG czy ImageOptim. Zmniejszając rozdzielczość, należy jednak pamiętać o zachowaniu odpowiedniej jakości obrazu, aby nie wpłynęło to negatywnie na jego czytelność i estetykę, co jest kluczowe w kontekście publikacji online.

Pytanie 7

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: right; } section { float: right; }
B. nav { float: right; }
C. aside {float: left; }
D. nav { float: left; } aside { float: left; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi.

Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego.

Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 8

Jakie zapytanie należy użyć, aby wyświetlić tylko imię, nazwisko oraz ulicę wszystkich mieszkańców?

Ilustracja do pytania
A. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
B. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
C. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
D. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
Próbując wybrać tylko konkretne kolumny z powiązanych tabel, ważne jest, żeby poprawnie zastosować składnię SQL. Jak źle podejdziesz do tego, mogą wyjść niepoprawne wyniki albo zapytanie może działać nieefektywnie. Często takie błędy wynikają z tego, że nie do końca rozumiemy relacje między tabelami. Jeśli użyjesz zapytania SELECT * FROM Mieszkancy Adresy ON Mieszkancy.id = Adresy.id, to poległeś, bo nie podałeś poprawnego typu złączenia, a dodatkowo użycie gwiazdki * zwraca wszystkie kolumny, co jest niezgodne z celem tego pytania. Jeszcze gorzej, jeśli napiszesz SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id – mimo, że JOIN jest ok, używanie gwiazdki sprawia, że nie spełniasz warunków dotyczących selekcji kolumn. W obu przypadkach brakuje selektywności, przez co zapytania są mało efektywne i niezgodne z dobrymi praktykami w projektowaniu baz danych. Zapytanie SELECT imie nazwisko ulica FROM Mieszkancy Adresy ON Mieszkancy.Adresy_id = Adresy.id, chociaż wymienia dobre kolumny, stosuje błędną składnię JOIN, więc jest syntaktycznie złe. SQL wymaga precyzji przy złączaniu, żeby dane były spójne i integralne. Rozumienie, jak poprawnie używać JOIN i jak wybierać kolumny, jest kluczowe do tworzenia skutecznych zapytań, co wpływa na optymalizację pracy z bazami danych.

Pytanie 9

Aby wstawić w napisie (zmiennej typu string) złamanie linii, należy użyć znaku:

A.
\n
B.
\b
C.
\t
D.
\\
Każda z tych pozycji to sekwencja sterująca (escape), która zaczyna się od ukośnika wstecznego, ale każda znaczy co innego. \\ służy do zapisania w napisie samego znaku ukośnika - potrzebne, bo pojedynczy backslash ma znaczenie specjalne. \b to backspace, czyli cofnięcie kursora o jeden znak; nie tworzy nowej linii. \t wstawia tabulator - poziome wcięcie używane np. do wyrównywania kolumn, także bez zmiany wiersza. Przejście do nowej linii zapewnia \n, znak newline, dlatego to ta sekwencja jest poprawna.

Pytanie 10

Którego słowa kluczowego w C++ użyć przed typem, aby ograniczyć zakres do liczb NIEUJEMNYCH?

A.
short
B.
long
C.
unsigned
D.
const
Pozostałe słowa nie ograniczają znaku liczby. short i long zmieniają ROZMIAR (zakres) typu, ale nadal dopuszczają wartości ujemne. const czyni zmienną stałą (niezmienną), a nie nieujemną. Liczby nieujemne wymusza unsigned.

Pytanie 11

Jak w CSS ustawić, aby hiperłącze nieodwiedzone było żółte, a odwiedzone zielone?

A.
a:hover { color: yellow; } a:visited { color: green; }
B.
a:hover { color: green; } a:link { color: yellow; }
C.
a:link { color: yellow; } a:visited { color: green; }
D.
a:visited { color: yellow; } a:link { color: green; }
Pozostałe zapisy mylą pseudoklasy lub kolory. Wariant z a:visited { color: yellow; } i a:link { color: green; } zamienia kolory miejscami - nieodwiedzony wyszedłby zielony zamiast żółty. Dwie inne odpowiedzi używają :hover, które reaguje na najechanie kursorem, a nie na to, czy link był odwiedzony, i pomijają regułę dla stanu :link. Stan nieodwiedzony opisuje :link, a odwiedzony :visited, dlatego poprawny jest zapis a:link { color: yellow; } a:visited { color: green; }.

Pytanie 12

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia klienta z serwerem oraz umożliwia wymianę danych bez konieczności przeładowania całej strony WWW?

A. XML
B. PHP
C. VBScript
D. AJAX
Wybór odpowiedzi nieprawidłowych, takich jak PHP, XML czy VBScript, wskazuje na częste nieporozumienia dotyczące funkcji oraz zastosowania tych technologii w kontekście komunikacji klient-serwer. PHP to język skryptowy wykorzystywany głównie do generowania dynamicznej treści na serwerze. Chociaż PHP może być używane do obsługi żądań z AJAX, samo w sobie nie zapewnia asynchroniczności ani nie umożliwia komunikacji bez przeładowania strony. XML, mimo że jest formatem danych, nie jest techniką komunikacyjną. Może być wykorzystywane w AJAX jako format przesyłania danych, ale nie jest to jego główne zastosowanie. VBScript to język skryptowy, który jest przestarzały i nie jest odpowiedni do nowoczesnych aplikacji internetowych. Wybierając te odpowiedzi, można popaść w błąd, sądząc, że różne technologie mają podobne zastosowania, co prowadzi do nieporozumień dotyczących struktury aplikacji internetowych. Ważne jest zrozumienie roli, jaką różne technologie odgrywają w architekturze aplikacji, aby właściwie wykorzystywać ich możliwości w praktyce.

Pytanie 13

Na ilustracji przedstawiono

Ilustracja do pytania
A. testy funkcjonalne strony interenetowej.
B. testy bezpieczeństwa strony.
C. analizę ruchu sieciowego między serwerem a przeglądarką.
D. analizę poprawności kodu strony internetowej.
Na zrzucie ekranu widać kartę „Network” w narzędziach deweloperskich przeglądarki (DevTools). To właśnie tutaj podglądamy, jak wygląda ruch sieciowy pomiędzy przeglądarką a serwerem. Każdy wiersz listy to jedno żądanie HTTP/HTTPS: dokument HTML, arkusz CSS, skrypt JS, grafika, font itp. W kolumnach masz m.in. Name (adres zasobu), Status (kody odpowiedzi HTTP, np. 200, 307), Type (rodzaj zasobu), Size (wielkość odpowiedzi) oraz Time (czas pobierania). U góry widać wykres czasowy, który pokazuje, kiedy poszczególne żądania były wysyłane i jak długo trwało ich obsłużenie. To jest klasyczna analiza ruchu sieciowego między serwerem a przeglądarką, a nie testy funkcjonalne czy bezpieczeństwa. W praktyce takie narzędzie wykorzystuje się do diagnozowania problemów z wydajnością strony (np. które pliki ładują się najdłużej), do sprawdzania, czy wszystkie zasoby ładują się poprawnie (brak błędów 404, 500), do inspekcji nagłówków HTTP (np. cache-control, content-type, CORS), a także do podglądu zapytań AJAX / Fetch/XHR wysyłanych przez skrypty JavaScript. Moim zdaniem znajomość tej zakładki to absolutna podstawa pracy front-end developera i testera, bo pozwala szybko zweryfikować, co naprawdę dzieje się „pod maską” podczas ładowania strony i komunikacji klient–serwer. Dobre praktyki w branży zalecają regularne korzystanie z DevTools przy optymalizacji czasu ładowania, analizie błędów sieciowych oraz przy debugowaniu REST API czy komunikacji z backendem.

Pytanie 14

Przedstawiony fragment kodu ilustruje działanie

Ilustracja do pytania
A. pozyskiwania danych
B. prezentacji danych
C. podjęcia decyzji
D. wykorzystania zdefiniowanej procedury lub funkcji
Blok przedstawiony na rysunku to romb, który w diagramach przepływu danych reprezentuje punkt decyzyjny. W kontekście programowania i modelowania procesów biznesowych, zastosowanie takich punktów jest kluczowe dla podejmowania decyzji na podstawie warunków logicznych. Na przykład, w algorytmach komputerowych romb służy do określenia, którą ścieżką proces powinien się dalej przemieszczać, zależnie od spełnienia określonych warunków. W praktyce, może to być na przykład wybór między dwiema różnymi akcjami, jak wysłanie e-maila lub zapis do bazy danych w zależności od wartości wprowadzonej przez użytkownika. Zastosowanie rombu zgodnie z zasadami BPMN (Business Process Model and Notation) oraz UML (Unified Modeling Language) pozwala na precyzyjne i czytelne modelowanie złożonych procesów, co jest kluczowe w projektowaniu systemów informatycznych i optymalizacji procesów biznesowych.

Pytanie 15

Dostępna jest tabela ksiazki z kolumnami: tytul (typ tekstowy) oraz cena (typ liczbowy). W celu uzyskania z kwerendy SELECT jedynie tytułów, dla których cena jest mniejsza od 50 zł, należy użyć następującego zapisu:

A. SELECT tytul FROM ksiazki WHERE cena>'50 zł';
B. SELECT tytul FROM ksiazki WHERE cena<50;
C. SELECT * FROM ksiazki WHERE cena<50;
D. SELECT ksiazki FROM tytul WHERE cena<'50 zł';
Wybrana odpowiedź jest poprawna, ponieważ zapytanie SQL "SELECT tytul FROM ksiazki WHERE cena<50;" prawidłowo zwraca tylko kolumnę z tytułami książek, gdzie cena jest mniejsza od 50 zł. W kontekście pracy z bazami danych, kluczowe jest umiejętne formułowanie zapytań, które ograniczają zwracane dane do tych istotnych dla użytkownika. Użycie operatora porównania '<' w klauzuli WHERE jest zgodne z typowymi praktykami w SQL, a przy tym umożliwia precyzyjne filtrowanie danych. Warto również zwrócić uwagę, że w SQL nie potrzebujemy podawać jednostki walutowej, dlatego zapis '50 zł' jest błędny. Właściwa analityka zapytań pozwala na efektywne pozyskiwanie informacji, co ma kluczowe znaczenie w aplikacjach bazodanowych. W praktyce, umiejętność selekcji danych za pomocą zapytań jest podstawą pracy analityka danych oraz programisty.

Pytanie 16

Aby za pomocą CSS zdefiniować przedstawione na rysunku opływanie obrazu tekstem należy w stylu obrazu wprowadzić zapis

Ilustracja do pytania
A. table: left;
B. float: right;
C. clear: both;
D. float: left;
Twoja odpowiedź nie jest prawidłowa. Wszystkie podane błędne odpowiedzi są niepoprawne, ponieważ nie tworzą żądanego efektu opływania obrazu przez tekst. 'clear: both;' jest własnością CSS, która służy do zapobiegania opływaniu, a nie jego tworzeniu. Jest używana, gdy nie chcemy, aby dany element był opływany przez inne. 'table: left;' nie jest istniejącą własnością CSS, i nie ma związanego z nią konkretnego efektu. Właściwość 'float: left;' powoduje, że obraz zostaje przesunięty na lewą stronę strony, co powoduje, że tekst opływa go od prawej strony, a nie od lewej, jak to jest wymagane w pytaniu. Pamiętaj, aby zawsze dobrze zrozumieć, jakie efekty daje użycie konkretnych właściwości CSS, zanim zastosujesz je w praktyce.

Pytanie 17

Który z czynników ma negatywny wpływ na efektywną współpracę w zespole?

A. rywalizacja między członkami zespołu
B. efektywna komunikacja
C. jasny podział ról i obowiązków
D. wzajemny szacunek
Efektywna współpraca w zespole opiera się na zaufaniu, wzajemnym szacunku, dobrej komunikacji i jasnym podziale ról. Czynnikiem, który ją osłabia, jest rywalizacja między członkami zespołu - zamiast dążyć do wspólnego celu, ludzie zaczynają konkurować, ukrywać informacje i przypisywać sobie zasługi, co rodzi konflikty. Zdrowa współpraca stawia na wspólny wynik, a nie na pokonanie kolegów. Dlatego negatywny wpływ ma rywalizacja w zespole.

Pytanie 18

idnazwiskoimiedata_urubezpieczony
✏️ Edytuj📋 Kopiuj⛔ Usuń1KowalskiJan2005-12-181
✏️ Edytuj📋 Kopiuj⛔ Usuń2NowakAdam2005-10-101
✏️ Edytuj📋 Kopiuj⛔ Usuń3WisniewskiAntoni2005-06-140
✏️ Edytuj📋 Kopiuj⛔ Usuń4LipskaAnna2006-04-121
✏️ Edytuj📋 Kopiuj⛔ Usuń5TomaszewskiPawel2006-07-110
✏️ Edytuj📋 Kopiuj⛔ Usuń6KostarzJulia2006-03-201
✏️ Edytuj📋 Kopiuj⛔ Usuń7BorewiczPatryk2007-06-211
✏️ Edytuj📋 Kopiuj⛔ Usuń8KoperskiBartlomiej2001-09-100
Które zapytanie w języku MySQL usunie z tabeli uczniowie uczniów urodzonych w czerwcu?
A. DROP FROM `uczniowie` WHERE data_ur == #-06-#
B. DELETE FROM `uczniowie` WHERE data_ur LIKE "%-06-%"
C. DELETE FROM `uczniowie` WHERE data_ur LIKE "?-06-?"
D. DROP FROM `uczniowie` WHERE data_ur LIKE "06"
Poprawnie wskazane zapytanie korzysta z instrukcji DELETE oraz operatora LIKE z odpowiednim wzorcem: "%-06-%". W kolumnie data_ur mamy daty zapisane w standardowym formacie ISO: RRRR-MM-DD, np. 2005-06-14. W takim formacie miesiąc zawsze znajduje się na pozycjach 6–7 i jest zapisany jako dwucyfrowa liczba z wiodącym zerem. Wzorzec "%-06-%" oznacza: dowolny ciąg znaków przed, dokładnie „-06-” w środku, oraz dowolny ciąg znaków po. Dzięki temu trafiamy w wszystkie daty, gdzie miesiąc to 06, czyli czerwiec, niezależnie od roku i dnia. To jest bardzo praktyczne podejście, gdy przechowujemy datę w typie DATE i chcemy filtrować po miesiącu bez dodatkowych funkcji. W MySQL operator LIKE działa na wartościach tekstowych, ale typ DATE jest w takim kontekście automatycznie konwertowany do postaci tekstowej w formacie 'YYYY-MM-DD', więc wzorzec z myślnikami jest jak najbardziej poprawny. W realnych projektach częściej stosuje się funkcje DATE_FORMAT albo MONTH(data_ur) = 6, bo to jest czytelniejsze i mniej podatne na pomyłki w zapisie wzorca. Jednak w tym zadaniu celem jest zrozumienie, jak działa LIKE, wildcard „%” oraz jak wygląda rzeczywisty format przechowywania daty. Dobrą praktyką jest też zawsze używanie pojedynczych cudzysłowów w SQL (np. '%-06-%'), choć MySQL akceptuje też podwójne w pewnych konfiguracjach. Moim zdaniem warto zapamiętać ten sposób myślenia: patrzysz na rzeczywisty zapis danych w kolumnie i dopasowujesz wzorzec tak, żeby trafić dokładnie ten fragment, który Cię interesuje (tu: '-06-').

Pytanie 19

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 20

W programie INKSCAPE / COREL, aby uzyskać efekt przedstawiony w napisie, należy

Ilustracja do pytania
A. posłużyć się funkcją gradientu
B. wykorzystać funkcję sumy z kołem
C. zastosować funkcję wykluczenia z kołem
D. skorzystać z funkcji wstaw / dopasuj tekst do ścieżki
Funkcja wstaw dopasuj tekst do ścieżki w programach takich jak Inkscape czy CorelDraw pozwala na precyzyjne zarządzanie tekstem wzdłuż dowolnie wybranej krzywej lub obiektu ścieżki To narzędzie umożliwia tworzenie estetycznie atrakcyjnych projektów, które wykorzystują nieregularne kształty do formowania tekstu Jest to szczególnie przydatne w projektowaniu graficznym przy tworzeniu logo banerów czy innych materiałów reklamowych gdzie tekst musi podążać za określonym kształtem lub konturem Korzystanie z tej funkcji wymaga zrozumienia podstawowych pojęć takich jak ścieżki krzywe i ich edycja Projektant może stworzyć ścieżkę ręcznie za pomocą narzędzi rysunkowych lub wykorzystać istniejący kształt Następnie funkcja dopasowania automatycznie układa wybrany tekst wzdłuż tej ścieżki jednocześnie pozwalając na dostosowanie jego położenia i orientacji Kluczowe jest zrozumienie że edytowane ścieżki mogą być dowolnie modyfikowane a tekst będzie się dynamicznie dostosowywał co pozwala na kreatywne eksperymentowanie z formą i stylem Tekst zachowuje swoją czytelność i proporcje co jest istotne w kontekście czytelności i estetyki gotowego projektu

Pytanie 21

Jaką formę ma kolor przedstawiony w systemie szesnastkowym jako #11FE07 w formacie RGB?

A. rgb(17,FE,7)
B. rgb(11,127,7)
C. rgb(17,255,7)
D. rgb(17,254,7)
Wszystkie trzy niepoprawne odpowiedzi odzwierciedlają błędne konwersje wartości szesnastkowych na wartości dziesiętne w systemie RGB. Pierwsza z odpowiedzi sugeruje użycie rgb(17, FE, 7), co jest niepoprawne, ponieważ 'FE' nie zostało przekształcone na wartość dziesiętną. W systemie szesnastkowym 'FE' odpowiada wartości 254, więc ta odpowiedź nie oddaje prawidłowej wartości dla koloru. W drugiej odpowiedzi, rgb(11, 127, 7), również występuje nieprawidłowa konwersja - '11' powinno być 17, a '127' nie ma odpowiadającej wartości w kolorze #11FE07, ponieważ powinno to być 254. Ostatnia odpowiedź, rgb(17, 254, 7), jest bliska prawidłowej, ale nie jest uznawana za poprawną, co może budzić wątpliwości. Kluczowe w całym procesie jest zrozumienie, że każda para szesnastkowa musi być konwertowana na odpowiednią wartość dziesiętną, a błędne konwersje prowadzą do nieprawidłowych reprezentacji kolorów. Właściwe rozumienie i precyzyjne stosowanie konwersji jest fundamentalne w pracy z kolorami w różnych projektach graficznych.

Pytanie 22

Aby dołączyć kaskadowy arkusz stylów zapisany w zewnętrznym pliku, należy użyć następującego fragmentu kodu HTML:

A.
<meta charset="styl.css">
B.
<div id="styl.css" relation="css">
C.
<link rel="stylesheet" type="text/css" href="styl.css">
D.
<option value="styl.css" type="text/css">
Poprawny jest znacznik <link rel="stylesheet" type="text/css" href="styl.css">. Zewnętrzny arkusz stylów to osobny plik .css, który dołączasz do strony w sekcji <head> dokumentu HTML właśnie znacznikiem <link>. Atrybut rel="stylesheet" mówi przeglądarce, że powiązany plik to arkusz stylów, href wskazuje jego ścieżkę, a type="text/css" (opcjonalny w HTML5) określa typ zawartości. Taki sposób dołączania CSS oddziela wygląd od treści i pozwala użyć jednego arkusza na wielu podstronach.

Pytanie 23

W bazie danych znajduje się tabela artykuły z kolumnami: nazwa, typ, producent, cena. Jakie polecenie należy użyć, aby wyświetlić wszystkie nazwy artykułów tylko o typie pralka, których cena mieści się w przedziale od 1000 PLN do 1500 PLN?

A. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 AND 1500
B. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena FROM 1000 TO 1500
C. SELECT nazwa FROM artykuły WHERE typ='pralka' AND cena BETWEEN 1000 AND 1500
D. SELECT nazwa FROM artykuły WHERE typ='pralka' OR cena BETWEEN 1000 OR 1500
Pierwsza błędna odpowiedź ma problem z zapisem SQL, bo używa frazy 'cena FROM 1000 TO 1500', co się nie trzyma zasad. Operator 'FROM' nie może być tu użyty, powinno być BETWEEN. Druga odpowiedź korzysta z operatora OR, co sprawia, że można dostać wyniki, które są typu pralka, ale cena może być spoza tego przedziału. To nie jest to, czego szukamy i może zwrócić za dużo wyników. Co do trzeciej odpowiedzi, mimo użycia operatora BETWEEN, to też jest nie tak, bo znów jest OR, co powoduje, że wyciągniesz niechciane wyniki. Kiedy używasz AND i OR w złych miejscach, możesz uzyskać niejasne wyniki i zamącić logikę zapytania. Dlatego ważne jest, żeby trzymać się odpowiednich operatorów, w tej konkretnej sytuacji potrzebujesz AND dla obu warunków.

Pytanie 24

Po uruchomieniu zamieszczonego w ramce skryptu w języku JavaScript, w przeglądarce zostanie wyświetlona wartość:

var a = 5;
var b = a--;
a *= 3;
document.write(a + "," + b);
A. 15,5
B. 12,5
C. 12,4
D. 15,4
W tym skrypcie JavaScript mamy operator dekrementacji a--, gdzie najpierw wartość zmiennej a jest przypisana do zmiennej b, a dekrementacja następuje później. Jeśli tego nie rozumiesz, może to prowadzić do różnych nieporozumień co do wynikowych wartości. Czyli po a-- b przyjmuje pierwotną wartość a, która wynosi 5. Warto zrozumieć kolejność operacji, bo przy operatorze postfix zmiana wartości następuje po przypisaniu. Później, po dekrementacji, a staje się 4, co czasem jest źle interpretowane, bo ludzie myślą, że b też by się zmieniło. Potem jest a *= 3, gdzie 4 mnożymy przez 3 i dostajemy 12. Często ludzie popełniają błąd, zakładając, że operatory działają równocześnie w jednym wierszu kodu. Ważne jest, żeby znać te subtelności, bo pomaga to w lepszym programowaniu i kontrolowaniu, jak zmienne się zmieniają.

Pytanie 25

Prawa CREATE, ALTER, DROP nadane w GRANT dotyczą:

A. pracy z danymi
B. pobierania danych z bazy
C. pracy ze STRUKTURĄ bazy
D. przyznawania uprawnień innym
Pozostałe opcje dotyczą innych grup poleceń. Praca z DANYMI (wstawianie, zmiana, usuwanie rekordów) to DML (INSERT, UPDATE, DELETE), a pobieranie danych to SELECT. Przyznawanie uprawnień innym to DCL (GRANT, REVOKE). CREATE, ALTER i DROP dotyczą struktury bazy.

Pytanie 26

W języku PHP, instrukcja foreach pełni rolę

A. Pętli, niezależnej od typu zmiennej
B. Pętli, przeznaczonej wyłącznie dla elementów tablicy
C. Warunkową, niezależną od typu zmiennej
D. Wyboru, dotyczącej elementów tablicy
Wybierając inne odpowiedzi, można się czasem pogubić w tym, jak naprawdę działa foreach i do czego służy. Te odpowiedzi, które mówią, że foreach jest jakąś instrukcją warunkową albo działa na różnych typach zmiennych, nie pokazują prawdziwego oblicza tej konstrukcji. To jest pętla, która chodzi tylko po elementach tablicy, więc nie da się jej używać do liczb czy stringów. W praktyce mnóstwo osób może myśleć, że to działa jak wybór, co prowadzi do różnych błędów w kodzie. Ważne, żeby zrozumieć, że foreach nie wybiera elementów na podstawie warunków, tylko po prostu przegląda wszystkie elementy tablicy. I mimo że kod w foreach jest zazwyczaj bardziej czytelny, to jeśli użyjesz go w złym kontekście, może być mniej efektywny. Często programiści mylą się, stosując foreach do struktur, które nie są tablicami, co kończy się błędami. Dobrze jest pamiętać, że każda konstrukcja w PHP ma swoje miejsce i trzeba dobrze dobrać pętlę czy instrukcję do potrzeb projektu.

Pytanie 27

Jakie wyrażenie logiczne powinno zostać użyte w języku JavaScript, aby przeprowadzić operacje wyłącznie na dowolnych liczbach ujemnych z zakresu jednostronnie domkniętego <-200, -100)?

A. (liczba >= -200) || (liczba > -100)
B. (liczba <= -200) && (liczba < -100)
C. (liczba >= -200) && (liczba < -100)
D. (liczba <= -200) || (liczba > -100)
Wybór innego wyrażenia logicznego niż (liczba >= -200) && (liczba < -100) prowadzi do nieprawidłowego zakresu liczb, który nie odpowiada zdefiniowanym wymaganiom. Na przykład, użycie (liczba <= -200) && (liczba < -100) ogranicza zakres do wartości mniejszych lub równych -200 oraz mniejszych niż -100, co nie łapie wartości -200 jako dolnej granicy i odrzuca wszystkie liczby między -200 a -100. Podobnie, (liczba >= -200) || (liczba > -100) sprawdza, czy liczba jest większa lub równa -200, co obejmuje wszystkie liczby ujemne, a to nie jest zgodne z oczekiwanym przedziałem. Z kolei (liczba <= -200) || (liczba > -100) również nie pasuje do wymogów, ponieważ akceptuje liczby mniejsze niż -200 oraz te większe niż -100, co znów nie pokrywa się z ustalonym zakresem. Typowe błędy w myśleniu mogą wynikać z nieprecyzyjnego zrozumienia operatorów logicznych oraz sposobu, w jaki dane warunki wpływają na zakres wartości. Zrozumienie działania operatorów oraz ich wpływu na logikę aplikacji jest kluczowe dla skutecznego programowania, a ich niewłaściwe zastosowanie prowadzi do błędów, które mogą być trudne do zdiagnozowania. Ważne jest, aby przy definiowaniu warunków, zwracać szczególną uwagę na znaki porównania i ich dobór do oczekiwanego rezultatu.

Pytanie 28

Jakie jest zadanie poniższej pętli?

int x = 0;
while (x < 10)
{
    mojeKsiazki[x] = new Ksiazka();
    x++;
}
A. Uzupełnienie tablicy mojeKsiazki danymi.
B. Wyświetlenie na ekranie informacji z tabeli Ksiazka.
C. Stworzenie dziesięciu instancji obiektów typu Ksiazka.
D. Stworzenie jednego obiektu typu mojeKsiazki.
Wszystkie pozostałe odpowiedzi zawierają błędne interpretacje działania przedstawionej pętli. Po pierwsze, wypełnienie tabeli Ksiazka danymi nie jest precyzyjnie określone w kodzie. Pętla nie przypisuje żadnych konkretów do utworzonych obiektów, a jedynie je inicjalizuje. Odpowiedź dotycząca wypisania na ekranie danych tabeli Ksiazka również jest błędna. W kodzie nie ma żadnych instrukcji wyświetlających dane obiektów, więc ta interpretacja jest myląca. Kolejną nieprawidłowością jest sugestia, że pętla tworzy tylko jeden obiekt. W rzeczywistości pętla jest zaprojektowana tak, aby utworzyć osiem obiektów, co jest sprzeczne z założeniem, że jedna iteracja odpowiada jednemu obiektowi. Typowe błędy myślowe prowadzące do takich wniosków to brak zrozumienia mechanizmu działania pętli i nieumiejętność analizy kodu krok po kroku. Ważne jest, aby programiści potrafili czytać i analizować kod w kontekście ogólnych zasad programowania obiektowego oraz rozumieli rolę pętli w tworzeniu i zarządzaniu obiektami.

Pytanie 29

Jak zabezpieczyć CREATE USER, aby nie utworzyć konta, gdy już istnieje?

A.
CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'haslo';
B.
CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'haslo';
C.
CREATE USER 'anna'@'localhost' IDENTIFIED BY 'haslo';
D.
CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'haslo';
Aby nie utworzyć konta, które już istnieje (i uniknąć błędu), używa się klauzuli IF NOT EXISTS: CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'haslo';. Gdy użytkownik istnieje, polecenie zostanie pominięte. Dlatego poprawny jest wariant z IF NOT EXISTS.

Pytanie 30

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_SESSION
B. $_FILES
C. $_SERVER
D. $_COOKIE
Wybór $_COOKIE do przechowywania danych logowania to kiepski pomysł z kilku powodów. Ciasteczka są trzymane po stronie klienta, co znaczy, że mogą być łatwo dostępne dla innych, a to stwarza poważne zagrożenie dla bezpieczeństwa. Na przykład, hakerzy mogą wykraść ciasteczka przez różne techniki, takie jak XSS, co mogłoby prowadzić do nieautoryzowanego dostępu do kont. Poza tym, ciasteczka mają ograniczoną pojemność i użytkownik może je modyfikować, co czyni je nieodpowiednim miejscem na wrażliwe dane. Używanie $_FILES także jest nietrafione, bo ta tablica służy do obsługi plików przesyłanych przez użytkowników, a nie zarządzania sesjami. $_SERVER to z kolei tablica, która ma informacje o serwerze oraz zapytaniach, ale nie nadaje się do trzymania danych użytkowników. Typowym błędem przy wyborze $_COOKIE czy $_SERVER jest to, że nie rozumie się ich funkcji, co może prowadzić do niebezpiecznych sytuacji. Żeby dobrze zabezpieczyć dane logowania, najlepiej korzystać z sesji, bo są zaprojektowane właśnie do tego i oferują znacznie lepszą ochronę.

Pytanie 31

W CSS zapis selektora

p > i { color: red;} 
wskazuje, że kolorem czerwonym będzie wyróżniony
A. wszystkie teksty w znaczniku <p> lub każdy tekst w znaczniku <i>
B. tylko ten tekst znacznika <p>, który ma przypisaną klasę o nazwie i
C. jedynie tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
D. każdy tekst w znaczniku <p> z wyjątkiem tych w znaczniku <i>
Odpowiedzi, które nie uznają znaczenia operatora > oraz kontekstu, w jakim elementy <i> są umieszczone, mogą prowadzić do błędnych wniosków. Przykładowo, stwierdzenie, że każdy tekst w znaczniku <p> za wyjątkiem tych w znaczniku <i> zostanie sformatowany, jest niezgodne z zasadami działania CSS, ponieważ selektor ten nie wyklucza jedynie <i>, lecz odnosi się do hierarchii struktury DOM. W praktyce, jeśli <i> nie jest bezpośrednim dzieckiem <p>, to nie będzie objęte regułą. Z kolei pomylenie selektorów może skutkować tym, że nie osiągniemy zamierzonych efektów stylizacji, co jest częstym problemem w projektach webowych. Ponadto, odpowiedzi sugerujące, że selektor dotyczy wszystkich elementów <p> lub że dotyczy on klasy <i>, wynikają z niepełnego zrozumienia podstaw CSS. Należy pamiętać, że klasy są definiowane w osnowie HTML, a nie w kontekście selektorów bezpośrednich. Właściwe zrozumienie selektorów jest kluczowe dla efektywnego stylizowania i organizacji kodu, a także dla osiągnięcia zamierzonych efektów wizualnych na stronach internetowych.

Pytanie 32

W PHP, aby usunąć białe znaki z początku i końca ciągu tekstowego, można skorzystać z funkcji

A. sort()
B. strlen()
C. time()
D. trim()
W kontekście wybranych odpowiedzi, sort() jest funkcją, która służy do sortowania tablic. Użycie tej funkcji w celu usunięcia spacji z ciągu znaków nie ma sensu, ponieważ jej zadaniem jest porządkowanie elementów w tablicy według zdefiniowanej kolejności, a nie manipulowanie zawartością ciągów tekstowych. Prawidłowe przetwarzanie danych wymaga stosowania odpowiednich funkcji, a sort() nie jest jedną z nich. Z kolei funkcja time() jest używana do uzyskiwania bieżącego znacznika czasu w formacie Unix timestamp. Jej zastosowanie w kontekście usuwania spacji jest nieadekwatne, ponieważ time() zwraca wartość liczbową reprezentującą czas, a nie operuje na ciągach znaków. Ostatnia z wymienionych funkcji, strlen(), służy do obliczania długości danego ciągu znaków. Chociaż może być przydatna w kontekście walidacji długości ciągów wejściowych, nie ma żadnej funkcji w usuwaniu spacji. Każda z tych funkcji ma swoje unikalne zastosowanie, ale żadna z nich nie jest odpowiednia do zadania, jakim jest usunięcie zbędnych spacji z początku i końca ciągu. Właściwe użycie funkcji trim() jest kluczowe dla uzyskania oczekiwanych rezultatów w operacjach na tekstach.

Pytanie 33

Którego znacznika używa się do utworzenia listy definicji w kodzie HTML?

A.
<label>
B.
<abbr>
C.
<td>
D.
<dl>
Pozostałe znaczniki nie tworzą listy definicji. <td> to komórka danych w tabeli - występuje wewnątrz wiersza <tr>, a nie w liście. <abbr> oznacza skrót lub akronim i zwykle przez atrybut title podaje jego rozwinięcie, lecz nie buduje listy. <label> to etykieta powiązana z polem formularza, ułatwiająca jego obsługę i dostępność. Strukturę „termin - opis” daje <dl> z <dt> i <dd>, dlatego to on jest poprawny.

Pytanie 34

W podanym fragmencie zapytania w języku SQL, komenda SELECT jest używana do zwrócenia SELECT COUNT(wartosc) FROM …

A. średniej w kolumnie wartosc
B. summy w kolumnie wartosc
C. średniej wartości z tabeli
D. ilości wierszy
Tak, masz rację! To zapytanie zwraca liczbę wierszy. Użycie funkcji COUNT w SQL jest jakby liczeniem, ile jest niepustych wartości w danej kolumnie. Kiedy piszemy coś takiego jak SELECT COUNT(wartosc) FROM ..., to ta funkcja sprawdza, ile wierszy ma coś w kolumnie 'wartosc'. Przykładowo, w tabeli z danymi sprzedażowymi, kolumna 'wartosc' może mieć wszystkie wartości transakcji. To zapytanie pokaże nam, ile transakcji się odbyło, co jest super przydatne, gdy analizujemy biznes. Funkcja COUNT jest szalenie popularna, bo daje nam jasny obraz tego, co się dzieje w naszych danych. A jeśli zamiast COUNT(wartosc) zrobimy COUNT(*), to dostaniemy ogólną liczbę wszystkich wierszy, niezależnie od tego, czy coś w nich jest, co może być też przydatne, gdy chcemy ogarnąć całą tabelę.

Pytanie 35

W języku HTML, atrybut shape w znaczniku area, który definiuje typ obszaru, może mieć wartość

A. rect, poły, circle
B. rect, sąuare, circle
C. style="margin-bottom: 0cm;">poły, square, circle
D. style="margin-bottom: 0cm;">rect, triangle, circle
W przypadku odpowiedzi, które nie są poprawne, należy zwrócić uwagę na kilka kluczowych aspektów. Po pierwsze, wartości 'triangle' oraz 'square' nie są uznawane w atrybucie shape znacznika area w HTML. Zamiast tego, 'triangle' nie ma odpowiedniego wsparcia w standardach, a więc nie może być używane do definiowania obszarów na mapach obrazów. Również 'square', chociaż może przypominać prostokąt, nie ma odrębnej definicji i nie jest akceptowany w specyfikacji. Mapa obrazów ogranicza się do określonych kształtów, takich jak 'rect', 'circle' oraz 'poly', co czyni te odpowiedzi niepoprawnymi. Dodatkowo, wspomnienie o 'sąuare' wskazuje na literówkę, co również podważa poprawność tej opcji. Termin 'poły' nie tylko nie istnieje w kontekście atrybutu shape, ale także nie odnosi się do żadnego znanego kształtu w HTML. Zrozumienie właściwych terminów oraz ich zastosowania w HTML jest kluczowe dla tworzenia funkcjonalnych stron internetowych, a każda niepoprawna odpowiedź może prowadzić do mylących implementacji.

Pytanie 36

W języku SQL, w wyniku wykonania poniższego zapytania:

ALTER TABLE osoba DROP COLUMN grupa;
A. zostanie zmieniona nazwa tabeli na grupa
B. zostanie usunięta kolumna grupa
C. zostanie dodana kolumna grupa
D. zostanie zmieniona nazwa kolumny na grupa
Zapytanie SQL 'ALTER TABLE osoba DROP COLUMN grupa;' jest komendą, która służy do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Komenda ta wykorzystuje instrukcję ALTER TABLE, która jest standardową konstrukcją SQL używaną do modyfikacji struktury istniejącej tabeli. W kontekście baz danych, usunięcie kolumny może być nieodwracalne, co oznacza, że wszystkie dane zawarte w tej kolumnie zostaną trwale usunięte. Przykładem zastosowania tej komendy może być sytuacja, w której kolumna 'grupa' nie jest już potrzebna, na przykład, po zmianie wymagań aplikacji lub po analogicznym przekształceniu modelu danych. Zgodnie z normami SQL, aby uniknąć błędów, przed wykonaniem takiej operacji warto wykonać kopię zapasową bazy danych. Warto również pamiętać, że niektóre systemy zarządzania bazami danych mogą wymagać dodatkowych opcji, aby zrealizować tę operację, na przykład, jeśli kolumna jest kluczem obcym lub jest związana z innymi strukturami. Podsumowując, użycie tej komendy skutkuje trwałym usunięciem kolumny 'grupa' z tabeli 'osoba'.

Pytanie 37

Która zasada użycia semantycznych znaczników HTML5 jest PRAWDZIWA?

A. <aside> służy do GŁÓWNEJ treści strony
B. <nav> jest charakterystyczny dla <article>
C. <footer> powinien być na górze, a <header> na dole
D. <main> może wystąpić tylko RAZ w dokumencie
Znacznik <main> obejmuje GŁÓWNĄ, unikalną treść strony, dlatego może wystąpić w dokumencie tylko RAZ. Dlatego prawdziwa jest ta zasada.

Pytanie 38

Proces normalizacji tabel ma na celu

A. wizualizację bazy
B. weryfikację i poprawę efektywności bazy danych
C. dodanie danych do bazy
D. wyłącznie stworzenie tabel oraz powiązań w bazie
Normalizacja tabel jest procesem, który ma na celu organizację struktury bazy danych w taki sposób, aby zminimalizować redundancję danych oraz zapewnić integralność danych. Proces ten polega na podziale dużych tabel na mniejsze i łączeniu ich za pomocą relacji, co pozwala na efektywniejsze zarządzanie danymi. Przykładem normalizacji może być podział tabeli zawierającej informacje o klientach i ich zamówieniach na dwie oddzielne tabele: jedna do przechowywania danych klientów, a druga do danych zamówień, z relacją między nimi. W praktyce normalizacja, zgodna z metodologią Codd'a, obejmuje kilka poziomych form normalnych, takich jak 1NF, 2NF, i 3NF, z których każda wprowadza dodatkowe ograniczenia i zasady. Przy odpowiedniej normalizacji można uniknąć problemów z aktualizacją danych, takich jak anomalie aktualizacji czy usuwania, co jest kluczowe w utrzymywaniu wysokiej jakości danych w systemach bazodanowych.

Pytanie 39

Aby w języku HTML uzyskać formatowanie paragrafu przedstawione w ramce, należy zastosować kod

Ilustracja do pytania
A. <p>Tekst może być <mark>zaznaczony albo <i>istotny</i> dla autora</mark></p>
B. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
C. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny dla autora</p>
D. <p>Tekst może być <mark>zaznaczony albo <em>istotny</em> dla autora</mark></p>
W tym zadaniu kluczowy problem w niepoprawnych odpowiedziach dotyczy dwóch rzeczy: semantyki znaczników oraz poprawnego zagnieżdżania i domykania tagów HTML. To są niby drobiazgi, ale w realnych projektach potrafią narobić niezłego bałaganu, zwłaszcza przy większych serwisach i integracji z arkuszami CSS czy skryptami JS. Po pierwsze, w części propozycji znaczniki są domykane w złej kolejności albo w ogóle brakuje domknięcia. HTML co prawda bywa tolerancyjny i przeglądarka jakoś to sobie "naprawi", ale z punktu widzenia standardów W3C jest to kod niepoprawny. Jeśli otwierasz <mark>, to najpierw musisz go zamknąć </mark>, zanim zakończysz inne znaczniki albo cały paragraf. Krzyżowe zagnieżdżanie typu: otwieram <mark>, w środku <em>, a zamykam najpierw </mark>, potem </em> – jest po prostu błędne. Walidator HTML od razu to wychwyci. Druga sprawa to obejmowanie znacznikiem <mark> zbyt dużego fragmentu tekstu, łącznie z innymi elementami inline, jak <i> czy <em>. W przykładzie graficznym widać wyraźnie, że podświetlone jest tylko jedno słowo, a kursywa dotyczy innego słowa poza zakreślonym fragmentem. Jeśli więc w kodzie wrzucimy <mark> na większy kawałek, łącznie z tekstem pochyłym, przeglądarka zaznaczy więcej niż powinna i efekt wizualny będzie inny niż na ilustracji. Kolejna kwestia to użycie <i> zamiast <em>. Technicznie <i> też zrobi kursywę, ale jest to element czysto prezentacyjny, bez znaczenia semantycznego. W nowoczesnym HTML5 zaleca się stosowanie <em>, bo podkreśla ono ważność fragmentu z punktu widzenia treści, a nie tylko wygląd. Czytniki ekranu i narzędzia dostępnościowe korzystają z tej informacji. Typowy błąd myślowy polega na tym, że ktoś patrzy wyłącznie na efekt wizualny: "ma być kursywa, to daję <i>" albo "ma się świecić na żółto, to obejmę <mark> wszystko". Tymczasem dobre praktyki frontendu mówią: najpierw semantyka i poprawna struktura, dopiero potem wygląd. Dlatego warto pilnować zarówno właściwego zakresu działania <mark>, jak i domykania tagów w logicznej, zagnieżdżonej kolejności. Dzięki temu kod jest czytelny, łatwiejszy w utrzymaniu i lepiej współpracuje z narzędziami deweloperskimi.

Pytanie 40

Dla przedstawionego fragmentu kodu

<img src="kwiat.jpg alt="kwiat">
walidator HTML zwróci błąd, ponieważ
A. użyto niewłaściwego znacznika do wyświetlenia grafiki
B. nie odnaleziono pliku kwiat.jpg
C. nie zamknięto cudzysłowu
D. użyto nieznanego atrybutu alt
W kodzie HTML zauważyłem mały błąd - brakuje ci domknięcia cudzysłowu dla atrybutu src. Powinno to wyglądać tak: <img src="kwiat.jpg" alt="kwiat">. No, cudzysłów jest ważny, bo bez niego przeglądarka może mieć problem z odczytaniem, gdzie kończy się wartość atrybutu. To może prowadzić do różnych, nieprzewidzianych efektów przy wyświetlaniu strony. Zasady W3C mówią, że każdy atrybut powinien być poprawnie sformatowany, żeby działało to na różnych przeglądarkach i urządzeniach. Pamiętaj też o atrybucie alt - jest kluczowy dla dostępności. Właściwe użycie cudzysłowów i dbałość o format kodu też wpływają na jego czytelność, a my przecież chcemy pisać jak najlepiej.