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: 30 kwietnia 2026 11:43
  • Data zakończenia: 30 kwietnia 2026 11:51

Egzamin niezdany

Wynik: 9/40 punktów (22,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

Formatem grafiki wektorowej jest

A. SVG
B. PNG
C. JPG
D. GIF
Poprawnie – format SVG to grafika wektorowa. SVG (Scalable Vector Graphics) jest oparty na XML i opisuje obraz za pomocą figur geometrycznych: linii, krzywych, prostokątów, okręgów, wielokątów oraz tekstu. Dzięki temu obraz nie składa się z pikseli, tylko z równań matematycznych, więc można go dowolnie skalować bez utraty jakości – logo w SVG będzie równie ostre na wizytówce, jak i na ogromnym billboardzie czy ekranie 4K. To jest właśnie główna przewaga grafiki wektorowej nad rastrową. Moim zdaniem w świecie webowym SVG to dzisiaj standard dla ikon, logotypów, prostych ilustracji, wykresów czy schematów. Przeglądarki traktują SVG jako natywny format wspierany przez specyfikację W3C, można go osadzać bezpośrednio w kodzie HTML (inline) albo jako zewnętrzny plik. Co ważne, elementy SVG da się stylować za pomocą CSS i animować przy użyciu CSS lub JavaScript, co daje ogromne możliwości w interfejsach użytkownika i nowoczesnych stronach WWW. W praktyce dobrym podejściem jest używanie SVG wszędzie tam, gdzie grafika ma być skalowalna, lekka i ostra na różnych urządzeniach: responsywne ikony menu, grafiki w interfejsie aplikacji webowych, piktogramy, infografiki. Dodatkowo SVG często ma mniejszy rozmiar pliku niż odpowiednik PNG w wysokiej rozdzielczości, zwłaszcza gdy obraz składa się głównie z prostych kształtów. Z mojego doświadczenia to jeden z kluczowych formatów, które warto dobrze ogarnąć, jeśli myśli się poważnie o grafice komputerowej i front-endzie.

Pytanie 2

W SQL polecenie ALTER TABLE służy do

A. dodawania tabeli do bazy danych
B. zmiany kolumn w tabeli
C. usuwania tabeli z bazy danych
D. zmiany danych w rekordach tabeli
Zrozumienie działania polecenia ALTER TABLE jest kluczowe w kontekście zarządzania bazami danych, ponieważ jego zastosowanie jest znacznie szersze niż sugerują to błędne odpowiedzi. Modyfikowanie danych rekordów w tabeli nie jest zadaniem ALTER TABLE; do tego celu używa się polecenia UPDATE, które pozwala na zmianę wartości w konkretnych kolumnach rekordów. Ponadto, usuwanie tabeli z bazy danych realizuje się za pomocą polecenia DROP TABLE, natomiast dodawanie nowych tabel wymaga użycia polecenia CREATE TABLE. Takie rozróżnienie jest podstawowe dla prawidłowego zarządzania bazą danych. Zrozumienie, że ALTER TABLE dotyczy struktury tabeli, a nie danych w nich zawartych, jest kluczowe dla unikania błędów w projektowaniu systemów baz danych. Często pomijanym aspektem jest również to, że zmiany wprowadzane przez ALTER TABLE mogą wpływać na integralność danych oraz wydajność operacji bazodanowych, dlatego praktyka dobrego zarządzania schematem bazy danych wymaga staranności i przemyślenia przed wykonaniem jakichkolwiek operacji zmieniających strukturę tabeli. Z tego powodu, użytkownicy powinni być świadomi, jakie polecenia są przeznaczone do konkretnych zadań, aby uniknąć nieporozumień i błędów w ich pracy.

Pytanie 3

W HTML-u znacznik tekst będzie prezentowany przez przeglądarkę w sposób identyczny do znacznika

A. <h1>tekst</h1>
B. <sub>tekst</sub>
C. <big>tekst</big>
D. <b>tekst</b>
Znacznik <strong> w HTML jest używany do oznaczania tekstu, który ma być wyróżniony jako ważny. Jego domyślne stylizowanie w przeglądarkach polega na pogrubieniu tekstu, co jest również funkcją znacznika <b>. Oba znaczniki mają podobne zastosowanie, ale <strong> niesie dodatkowe znaczenie semantyczne, co oznacza, że informuje przeglądarki i maszyny o tym, że dany tekst jest istotny. Przykładem może być użycie <strong> w nagłówkach lub w miejscach, gdzie chcemy zwrócić uwagę na kluczowe informacje, jak np. 'Zamówienie <strong>pilne</strong> musi być dostarczone do jutra.' W kontekście dobrych praktyk zaleca się używanie znaku <strong> zamiast <b>, gdyż wspiera to dostępność i SEO - wyszukiwarki lepiej interpretują semantykę treści, co może wpłynąć na pozycjonowanie strony. Warto również pamiętać, że zgodnie z W3C, semantyka HTML ma kluczowe znaczenie dla strukturyzacji dokumentów oraz ich dostępności.

Pytanie 4

W pliku CSS znajdują się poniższe style. Kiedy klikniemy na hiperłącze i wrócimy na stronę, jego kolor zmieni się na

a { color: Brown; }
a:link { color: Green; }
a:visited { color: Red; }
a:hover { color: Yellow; }
A. żółty
B. brązowy
C. zielony
D. czerwony
W zrozumieniu działania stylów CSS dla hiperłączy kluczowe jest poznanie zastosowania pseudoklas takich jak a:link a:visited i a:hover. Każda z tych pseudoklas odpowiada za inny stan linku. Pseudoklasa a:link stosuje się do linków które użytkownik jeszcze nie odwiedził dlatego kolor zielony przypisany do tej pseudoklasy oznaczałby nieodwiedzony link co w tym przypadku jest nieprawidłowe. Pseudoklasa a:hover zmienia kolor podczas najechania myszką i tutaj ustalono kolor żółty który jest tylko tymczasowy. Błędne byłoby uznawanie że kolor żółty pozostanie po odwiedzeniu linku ponieważ dotyczy on jedynie stanu przejściowego. Pseudoklasa a:visited która definiuje kolor po odwiedzeniu jest tu kluczowa ponieważ określa właśnie kolor po powrocie na stronę. Zastosowanie odpowiednich stylów pomaga w nawigacji i poprawia dostępność. Typowe błędy związane z rozumieniem pseudoklas wynikają z braku znajomości ich specyfiki działania oraz priorytetu jaki mają w kaskadowym modelu stylów. Dlatego zrozumienie i prawidłowe stosowanie tych zasad jest fundamentalne w projektowaniu intuicyjnych i przyjaznych dla użytkownika stron internetowych co jest zgodne z najlepszymi praktykami branżowymi i standardami WCAG.

Pytanie 5

Aplikacja o nazwie FileZilla umożliwia

A. sprawdzanie poprawności plików HTML i CSS
B. publikację strony internetowej na zdalnym serwerze
C. importowanie bazy danych do systemu CMS Joomla!
D. przeprowadzanie testów aplikacji
Niektóre z wymienionych odpowiedzi zawierają powszechne nieporozumienia dotyczące funkcji i zastosowania programu FileZilla. Na przykład, uruchamianie testów aplikacji to zadanie, które zazwyczaj wykonuje się za pomocą środowisk programistycznych czy frameworków testowych, a nie klientów FTP jak FileZilla. Klient FTP koncentruje się na transferze plików, a nie na testowaniu kodu. Również walidacja plików HTML i CSS to proces związany z zapewnieniem poprawności kodu, często realizowany za pomocą dedykowanych narzędzi jak W3C Validator, a nie przez klienta FTP, który nie zajmuje się analizą poprawności kodu. Co więcej, załadowanie bazy danych do systemu zarządzania treścią (CMS) takiego jak Joomla! wymaga użycia innych narzędzi, takich jak phpMyAdmin, które są specjalnie zaprojektowane do zarządzania bazami danych. FileZilla nie jest odpowiednie do tego celu, ponieważ jego funkcjonalność ogranicza się do przesyłania plików, a nie interakcji z bazą danych. Często mylenie tych funkcji wynika z niepełnego zrozumienia roli, jaką różne narzędzia odgrywają w procesie tworzenia i zarządzania stronami internetowymi. Kluczowe jest zrozumienie, że każdy program ma swoje przeznaczenie i zastosowanie, a skuteczne zarządzanie projektami internetowymi wymaga używania odpowiednich narzędzi do konkretnych zadań.

Pytanie 6

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

A. grupowania.
B. wykluczenia.
C. części wspólnej.
D. sumy.
W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.

Pytanie 7

Relacja opisana jako: "Rekord z tabeli A może odpowiadać wielu rekordom z tabeli B. Każdemu rekordowi z tabeli B przyporządkowany jest dokładnie jeden rekord z tabeli A" jest relacją

A. wiele do wielu
B. nieoznaczoną
C. jeden do jednego
D. jeden do wielu
Podejście pojmujące relację jako nieoznaczoną jest mylne, ponieważ nie uwzględnia struktury i powiązań między rekordami w tabelach. Nieoznaczona relacja nie definiuje w żaden sposób, jakie są zależności między danymi, co sprawia, że analizy przeprowadzane na takich danych mogą prowadzić do błędnych wniosków. Natomiast koncepcja relacji wiele do wielu, choć może wydawać się pasująca, nie odzwierciedla opisanego scenariusza, w którym z jednego rekordu w tabeli A wychodzi wiele rekordów w tabeli B, ale z każdego rekordu w tabeli B wychodzi dokładnie jeden rekord w tabeli A. Tego typu podejście prowadzi do błędnych wizji organizacji danych i często do skomplikowanych operacji przy próbie wyodrębnienia potrzebnych informacji. Również zrozumienie relacji jeden do jednego w tym kontekście jest niewłaściwe, ponieważ zakłada, że każdemu rekordowi z tabeli A odpowiada dokładnie jeden rekord w tabeli B, co nie jest zgodne z przedstawionym opisem. Zatem istotne jest, aby podczas projektowania baz danych i definiowania relacji między tabelami stosować klarowne i uzasadnione zasady, które umożliwią prawidłowe zarządzanie danymi i ich analizę. Właściwe zrozumienie tych relacji jest fundamentem dobrych praktyk w inżynierii danych i projektowaniu baz danych.

Pytanie 8

Które z poniższych twierdzeń o zasadach programowania w PHP jest poprawne?

A. Deklaracja zmiennych odbywa się po słowie kluczowym var
B. Nazwy zmiennych zaczynają się od znaku !
C. W nazwach zmiennych nie rozróżnia się wielkości liter
D. Jest to język o słabej kontroli typów
Deklaracja zmiennych w PHP odbywa się za pomocą znaku dolara ($), a nie słowa kluczowego 'var'. W przeciwieństwie do niektórych innych języków programowania, takich jak JavaScript, gdzie 'var' jest używane do deklarowania zmiennych, PHP przyjmuje inny sposób. Również w kontekście nazw zmiennych, w PHP wielkość liter ma znaczenie; zmienna $zmienna i $Zmienna są różnymi zmiennymi. To oznacza, że programiści muszą być szczególnie ostrożni przy pisaniu kodu, aby uniknąć niezamierzonych błędów. Ponadto, w PHP niektóre typy zmiennych są ściśle określone przez ich wartości, co może prowadzić do nieporozumień na temat 'słabej kontroli typów'. Ostatecznie, PHP nie jest językiem o ścisłej kontroli typów, lecz dzięki swojej słabej kontroli typów umożliwia programistom większą elastyczność w pracy z danymi. Zrozumienie tych różnic jest kluczowe dla każdego programisty PHP, aby uniknąć typowych pułapek, które mogą prowadzić do błędów w kodzie i trudności w utrzymaniu aplikacji. W praktyce, warto korzystać z dobrych praktyk, takich jak stosowanie typów w PHP 7 i nowszych, które wprowadzają możliwość określania typów dla argumentów funkcji i wartości zwracanych, co zwiększa stabilność i przewidywalność kodu.

Pytanie 9

Który z modyfikatorów określa opisany w ramce przypadek? Metoda i zmienna są dostępne wyłącznie dla innych metod tej samej klasy

A. protected
B. private
C. static
D. public
Modyfikatory dostępu mają kluczowe znaczenie dla organizacji i bezpieczeństwa kodu. Odpowiedzi wskazujące na 'static', 'public' oraz 'protected' są nieprawidłowe w kontekście podanego opisu. Modyfikator 'static' oznacza, że metoda lub zmienna należy do klasy, a nie do instancji klasy, co pozwala na dostęp do niej bez tworzenia obiektu. Jest to użyteczne w przypadku narzędzi lub metod pomocniczych, ale nie odpowiada na wymaganie dotyczące ograniczenia dostępu. Modyfikator 'public' z kolei pozwala na dostęp do elementów z każdego miejsca w kodzie, co jest sprzeczne z definicją zawężającego dostępu do innych metod klasy. Użycie 'public' w tym kontekście prowadzi do sytuacji, w której inne klasy mogą niebezpiecznie zmieniać stan obiektów, co jest sprzeczne z zasadami dobrego projektowania. Modyfikator 'protected' umożliwia dostęp do elementów dla klas dziedziczących oraz dla tych, które znajdują się w tej samej paczce, co również nie spełnia wymogu ograniczenia dostępu wyłącznie do metod własnej klasy. Typowe błędy myślowe, prowadzące do wyboru niewłaściwych odpowiedzi, często wynikają z braku zrozumienia zasad projektowania obiektowego oraz niewłaściwego kojarzenia modyfikatorów z poziomem dostępu. Dlatego kluczowe jest zrozumienie, że 'private' jest jedynym modyfikatorem, który w pełni spełnia wymagania opisane w pytaniu.

Pytanie 10

Wskaż sposób, w jaki należy odwołać się do pliku default.css, jeśli index.html znajduje się bezpośrednio w katalogu Strona?

Ilustracja do pytania
A. <link rel="stylesheet" type="text/css" href="c:/style/default.css" />
B. <link rel="stylesheet" type="text/css" href="./style/default.css" />
C. <link rel="stylesheet" type="text/css" href="c:\style/default.css" />
D. <link rel="stylesheet" type="text/css" href="...\style\default.css" />
Błędne odpowiedzi w tym pytaniu wynikają z niewłaściwego użycia ścieżek do plików. Dwie z błędnych odpowiedzi sugerują użycie ścieżki bezwzględnej do pliku (rozpoczynającej się od 'c:/' lub 'c:\'), co nie jest zalecane, ponieważ takie ścieżki są specyficzne dla konkretnego systemu plików i mogą nie działać w innych środowiskach. Ponadto jedna z błędnych odpowiedzi sugeruje użycie nieprawidłowej składni ('...\') do odwołania się do pliku. Dobrą praktyką jest zawsze korzystanie ze ścieżek względnych podczas odwoływania się do plików w HTML, ponieważ są one uniwersalne i niezależne od systemu plików. Pamiętaj, że właściwe zarządzanie ścieżkami do plików i organizacja plików w strukturze katalogu to klucz do skutecznego i efektywnego kodowania.

Pytanie 11

Aby uzyskać przezroczyste tło w obrazie formatu JPG, należy wykonać

A. korekcję nasycenia kolorów
B. użycie filtru Gaussa
C. dodanie kanału alfa
D. właściwe przycięcie
Dodanie kanału alfa do obrazu JPG jest kluczowym krokiem, aby uzyskać przezroczystość tła. Format JPG, z definicji, nie obsługuje przezroczystości, dlatego konieczne jest przekształcenie obrazu do formatu, który to umożliwia, takiego jak PNG. Kanał alfa to dodatkowa warstwa, która przechowuje informacje o przezroczystości dla każdego piksela obrazu, pozwalając na uzyskanie efektu przezroczystości. Aby dodać kanał alfa, można skorzystać z programów graficznych takich jak Adobe Photoshop, GIMP czy Affinity Photo. Przykładowo, w Photoshopie można użyć funkcji 'Zaznaczenie i maska', aby wyodrębnić obiekt z tła, a następnie zapisać go z kanałem alfa jako PNG. Użycie kanału alfa jest standardową praktyką w edytowaniu grafiki, szczególnie w kontekście tworzenia logo, grafik do stron internetowych i zasobów do gier wideo, gdzie przezroczystość odgrywa kluczową rolę w integracji elementów wizualnych.

Pytanie 12

Określ na podstawie diagramu, jaką liczebność należy zdefiniować przy związku pomiędzy encjami Podręcznik i Wydawnictwo zakładając, że dane dotyczące różnych podręczników odpowiadają jednemu wydawnictwu.

Ilustracja do pytania
A. M-N (M przy encji Podręcznik, N przy encji Wydawnictwo)
B. N-1 (N przy encji Podręcznik, 1 przy encji Wydawnictwo)
C. 1-N (1 przy encji Podręcznik, N przy encji Wydawnictwo)
D. 1-1 (1 przy encji Podręcznik, 1 przy encji Wydawnictwo)
Opisany w pytaniu związek jasno sugeruje sytuację, w której wiele różnych podręczników jest powiązanych z jednym wydawnictwem. To typowy przypadek relacji N–1, czyli wiele‑do‑jednego z punktu widzenia encji Podręcznik. Błędne odpowiedzi wynikają zwykle z pomylenia kierunku patrzenia na relację albo z prób „uogólnienia” modelu ponad to, co naprawdę wynika z założeń. Relacja 1–1 między Podręcznik a Wydawnictwo oznaczałaby, że każdemu wydawnictwu odpowiada dokładnie jeden podręcznik i odwrotnie. To kompletnie nie pasuje do realnego świata, gdzie wydawnictwa mają całe katalogi książek. W modelowaniu danych 1–1 stosuje się rzadko, raczej do technicznego dzielenia tabeli, a nie do takich typowo biznesowych bytów jak książka i wydawnictwo. Odpowiedź 1–N jest myląca, bo odwraca kierunek: oznaczałaby, że pojedynczy podręcznik jest powiązany z wieloma wydawnictwami. To byłby przypadek, gdzie ten sam egzemplarz podręcznika ma kilku wydawców jednocześnie, co jest sprzeczne z treścią zadania. Czasem ktoś myli tu pojęcie „wiele wydań w różnych wydawnictwach”, ale wtedy relacja i tak jest między wydaniem a wydawnictwem, a nie między jednym podręcznikiem a wieloma wydawnictwami w tym samym modelu. Z kolei M–N (lub M–N/M–N w różnych notacjach) opisuje sytuację, w której wiele podręczników może być powiązanych z wieloma wydawnictwami i wymagałaby dodatkowej tabeli asocjacyjnej. To podejście jest stosowane np. przy relacji Student–Przedmiot, ale tutaj zadanie wyraźnie mówi, że różne podręczniki „odpowiadają jednemu wydawnictwu”, więc nie ma podstaw do wprowadzania związku wiele‑do‑wielu. Typowy błąd myślowy polega na tym, że ktoś próbuje projektować „na zapas” i zakłada wszystkie możliwe warianty, zamiast trzymać się dokładnie specyfikacji i odróżniać kierunek relacji: z perspektywy podręcznika jest jeden wydawca, z perspektywy wydawnictwa jest wiele podręczników, stąd poprawne N–1.

Pytanie 13

Fragment kodu w języku PHP ma następującą postać: Zakładając, że zmienne: a, b, c przechowują wartości numeryczne, wynikiem działania warunku będzie wypisanie liczby

if ($a > $b && $a > $c)   echo $a;
else if ($b > $c)   echo $b;
else   echo $c;
A. parzystej.
B. nieparzystej.
C. największej.
D. najmniejszej.
Wybór innej odpowiedzi niż 'największa' sugeruje, że nie do końca rozumiesz logikę warunków logicznych w kodzie PHP. Fragment kodu na zdjęciu analizuje wartości trzech zmiennych i wypisuje największą z nich, nie mając nic wspólnego z tym, czy liczba jest parzysta czy nieparzysta. Tego typu warunki byłyby realizowane przy użyciu operatorów matematycznych, takich jak modulo (%). Również wybór 'najmniejsza' jako odpowiedzi sugeruje niezrozumienie, ponieważ kod wyraźnie porównuje zmienne i wypisuje największą, a nie najmniejszą. Jest to częsty błąd, powodowany przez niezrozumienie zasady działania warunków w językach programowania. Zrozumienie, jak porównywane są zmienne i jakie są rezultaty tych porównań, jest kluczowe dla efektywnego tworzenia kodu i rozwiązywania problemów programistycznych.

Pytanie 14

Polecenie serwera MySQL postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
sprawi, że użytkownikowi tKowal zostaną
A. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy
B. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy
C. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy
D. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy
Wszystkie niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania uprawnieniami w MySQL, ale nie odzwierciedlają skutków działania polecenia REVOKE. W pierwszej z nieprawidłowych odpowiedzi stwierdza się, że użytkownik otrzymuje prawa do usuwania i aktualizowania danych w tabeli 'pracownicy'. Jest to nieprawda, ponieważ komenda REVOKE ma na celu odebranie, a nie przydzielenie jakichkolwiek uprawnień. Kolejna odpowiedź sugeruje, że użytkownik traci prawa do usuwania i dodawania rekordów w tabeli. Chociaż uprawnienie do usuwania jest słuszne, dodawanie rekordów (INSERT) nie zostało wymienione w poleceniu REVOKE, więc ta odpowiedź jest myląca. Ostatnia niepoprawna opcja wskazuje, że użytkownik zyskuje prawa do zmiany struktury tabeli 'pracownicy'. W rzeczywistości REVOKE nie ma nic wspólnego z uprawnieniami związanymi ze strukturą tabeli, takimi jak ALTER czy CREATE. Właściwe zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe dla zapewnienia bezpieczeństwa danych oraz skutecznego zarządzania bazą danych w MySQL.

Pytanie 15

Jakie skutki przyniesie zastosowanie przedstawionego formatowania CSS dla nagłówka trzeciego stopnia?

<style> h3 { background-color: grey; } </style> ... <h3 style="background-color: orange;"> Rozdział 1.2.2. </h3>
A. kolor tekstu będzie szary
B. tło będzie szare
C. tło będzie pomarańczowe
D. kolor tekstu będzie pomarańczowy
W tym przykładzie pokazano dwa różne sposoby stylizacji za pomocą CSS: styl wbudowany i styl zewnętrzny. Styl wbudowany ma wyższy priorytet, bo jest przypisany bezpośrednio do elementu HTML, a to oznacza, że w nagłówku trzeciego stopnia kolor tła będzie pomarańczowy. To ma sens, bo czasem musimy przeskoczyć ogólne reguły stylizacji, żeby wprowadzić jakieś szczególne zmiany. Używanie stylów wbudowanych może być jednak ryzykowne, bo jak się ich nagromadzi, to ciężko się potem w tym połapać. Dlatego lepiej korzystać z zewnętrznych stylów – są bardziej uporządkowane i pozwalają na łatwe powtarzanie kodu CSS. Ważne jest też, żeby nie łączyć HTML z CSS w sposób, który wprowadza zamęt, bo to ułatwia życie i sprawia, że kod jest bardziej zrozumiały. Wiedza na temat priorytetów w CSS jest kluczowa dla każdego, kto chce dobrze projektować strony i mieć wszystko ładnie poukładane.

Pytanie 16

Który z przedstawionych kodów HTML sformatuje tekst według wzoru?
(uwaga: słowo "stacji" jest zapisane większą czcionką niż reszta słów w tej linii)

Lokomotywa

Stoi na stacji lokomotywa ...

A.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji lokomotywa ...</p>

B.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

C.
<h1>Lokomotywa</p>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

D.
<p><small>Lokomotywa</small></p>
<p>Stoi na <big>stacji<big> lokomotywa ...</p>
A. A.
B. D.
C. B.
D. C.
Wybrana odpowiedź nie jest poprawna. Kluczowym elementem tego pytania było zrozumienie, jak konkretny kod HTML wpływa na formatowanie tekstu. Znacznik <big> jest używany do powiększania czcionki, ale musi być poprawnie umieszczony w kodzie, aby efekt był zgodny z oczekiwaniami. Odpowiedzi A, C i D, mimo że używają tego znacznika, nie spełniają tego kryterium. W odpowiedzi A, znacznik <big> jest używany do powiększenia całego tekstu, a nie tylko słowa 'stacji'. W odpowiedzi C, znacznik <big> jest używany w niewłaściwym miejscu. W odpowiedzi D, zastosowano znacznik <small>, który w rzeczywistości zmniejsza rozmiar czcionki. To pytanie pokazuje, jak ważne jest zrozumienie struktury kodu HTML i umiejętność poprawnego stosowania znaczników formatujących. Warto również pamiętać, że znacznik <big> jest przestarzały i zaleca się stosowanie CSS do manipulowania rozmiarem czcionki.

Pytanie 17

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. String (ciąg znaków)
B. Logicznego
C. Liczbowego
D. Nieokreślonego (undefined)
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 18

Wskaż, jaki błąd walidacyjny zawiera przedstawiony fragment kodu w języku HTML 5.

<h6>CSS</h6>
<p>Kaskadowe arkusze stylów (<b>ang. <i>Cascading Style Sheets</b></i>)<br>to język służący ...</p>
A. Znacznik br nie został prawidłowo zamknięty
B. Znacznik h6 nie jest używany w HTML5
C. Znacznik br nie powinien znajdować się wewnątrz znacznika p
D. Znacznik zamykający /b jest niezgodny z zasadą zagnieżdżania
W analizowanym fragmencie kodu HTML, znacznik zamykający /b jest niezgodny z zasadą zagnieżdżania. W prawidłowej konstrukcji HTML, znaczniki powinny być zamykane w odwrotnej kolejności do ich otwierania — nazywa się to zasadą LIFO (Last In, First Out). W przedstawionym kodzie, znacznik <b> jest otwierany przed znacznikiem <i>, ale zamykany po nim, co jest błędem strukturalnym. Poprawny zapis powinien wyglądać tak: <b><i>Cascading Style Sheets</i></b>. Ważne jest, aby zawsze pamiętać o poprawnej strukturze dokumentu HTML, ponieważ nieprzestrzeganie tej zasady może prowadzić do nieprzewidywalnych wyników renderowania na różnych przeglądarkach. Zasada ta jest kluczowa w zapewnieniu, że znaczniki są zagnieżdżone poprawnie i że style oraz skrypty działają zgodnie z oczekiwaniami. Tego rodzaju błędy mogą również negatywnie wpływać na dostępność strony dla użytkowników korzystających z czytników ekranowych.

Pytanie 19

Aby stworzyć tabelę, należy wykorzystać polecenie

A. INSERT INTO
B. CREATE DATABASE
C. ALTER TABLE
D. CREATE TABLE
Wybór polecenia INSERT INTO jest trochę nietrafiony, bo to polecenie służy do dodawania nowych rekordów do istniejącej tabeli, a nie do tworzenia nowej. Często ludzie myślą, że można użyć INSERT INTO do zrobienia struktury bazy danych, ale to nie jest prawda, bo wymaga, żeby tabela już była. Z kolei ALTER TABLE używamy, gdy chcemy coś zmienić w już istniejącej tabeli, więc też nie da się tym stworzyć nowej tabeli. Czasem użytkownicy mylą ALTER TABLE z CREATE TABLE i myślą, że jedno może robić to, co drugie, a to zupełnie błędne podejście do zarządzania bazą danych. CREATE DATABASE to polecenie do tworzenia nowych baz danych, a nie tabel w już istniejącej bazie. Często osoby uczące się SQL nie rozróżniają tych terminów, co prowadzi do różnych nieporozumień i błędów. Zrozumienie różnicy między tymi poleceniami jest kluczowe, żeby dobrze wykorzystać SQL w praktyce. Dlatego warto przed rozpoczęciem pracy z bazami danych zapoznać się z ich podstawowymi elementami i tym, jak to działa w kontekście zarządzania danymi.

Pytanie 20

W jakim bloku powinien być umieszczony warunek pętli?

Ilustracja do pytania
A. Opcja B
B. Opcja A
C. Opcja D
D. Opcja C
Wybór innego bloku niż romb dla warunku pętli jest niezgodny z ogólnie przyjętymi standardami w modelowaniu procesów Rysunek schematu blokowego powinien wyraźnie przedstawiać logikę algorytmu aby zwiększyć jego przejrzystość i zrozumienie przez innych programistów lub analityków Wybór prostokąta jako bloku warunku jak w przypadku opcji A jest błędny ponieważ prostokąt jest typowo używany do reprezentacji operacji przetwarzania czyli bloków kodu które wykonują instrukcje bez decyzyjności Wybór elipsy z opcji B także jest nieodpowiedni ponieważ elipsa służy do oznaczania początku i końca procesu w schematach blokowych nie do przedstawiania warunków decyzyjnych Blok D jest symbolem dla danych wejściowych lub wyjściowych co nie ma związku z kontrolą przepływu w pętli Stosowanie nieodpowiednich symboli dla warunków decyzyjnych może prowadzić do błędnego zrozumienia i interpretacji schematu co w konsekwencji może wpłynąć na błąd w implementacji algorytmu Dlatego ważne jest aby stosować się do uznanych standardów i dobrych praktyk w modelowaniu procesów co ułatwia współpracę i komunikację w zespołach projektowych

Pytanie 21

Jeżeli zmienna $x zawiera dowolną dodatnią liczbę naturalną, to przedstawiony kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. liczb wprowadzanych z klawiatury, aż do momentu wprowadzenia wartości x
B. kolejnych liczb od x do 0
C. losowych liczb z zakresu (0, x)
D. kolejnych liczb od 0 do x-1
Odpowiedzi błędne wynikają z niepoprawnej interpretacji działania pętli i warunku zakończenia. Pierwszym błędnym rozumowaniem jest wniosek że pętla wyświetla kolejne liczby wstecz od x do 0. W kodzie $licznik jest inkrementowany co oznacza że wartości rosną a nie maleją. To często spotykany błąd gdyż może się wydawać że warunek różności sugeruje zbliżanie się do zera zamiast do wartości $x. Kolejnym błędnym założeniem jest błędne zrozumienie że kod wczytuje wartości z wejścia aż do osiągnięcia $x. Kod nie używa funkcji do wczytywania danych od użytkownika takich jak np. fgets() w związku z czym nie można tutaj mówić o interakcji z użytkownikiem. Ostatnia błędna odpowiedź sugeruje losowanie liczb co jest nieprawidłowe gdyż w kodzie nie występuje żaden mechanizm generowania liczb losowych np. poprzez rand(). Warto tutaj zauważyć że pętla while jest jedną z podstawowych struktur sterujących i zrozumienie jej poprawnego działania jest kluczowe dla programowania w każdym języku. Dobór odpowiedniego warunku zakończenia i modyfikacji zmiennej kontrolnej to podstawy które pomagają uniknąć błędów logicznych w kodzie.

Pytanie 22

Jaki znacznik z sekcji head dokumentu HTML w wersji 5 jest wymagany przez walidator HTML i jego brak skutkuje zgłoszeniem błędu error?

A. meta
B. link
C. title
D. style
Znaczniki <link>, <meta> oraz <style> również pełnią ważne funkcje w sekcji <head>, jednak nie są one wymagane do poprawnej walidacji dokumentu HTML5. Znacznik <link> jest używany głównie do łączenia zewnętrznych arkuszy stylów oraz innych zasobów, a jego pominięcie w wielu przypadkach nie wpłynie na to, czy strona będzie poprawnie wyświetlana. Z kolei <meta> służy do definiowania metadanych, takich jak kodowanie znaków czy opis strony, ale również nie jest obowiązkowy. Znacznik <style> umożliwia wstawienie kodu CSS bezpośrednio do dokumentu HTML, jednak jego brak także nie skutkuje błędem walidacyjnym. Powszechnym błędem jest mylenie wymagań dla poszczególnych znaczników; niektórzy mogą sądzić, że wszystkie składniki sekcji <head> są równie istotne, co prowadzi do nieporozumień. Kluczowym aspektem jest zrozumienie, że standardy HTML określają, które elementy są niezbędne dla prawidłowego działania strony. Niezrozumienie tej różnicy może skutkować pominięciem ważnych elementów w procesie projektowania stron, co w konsekwencji obniża jakość i użyteczność tworzonej witryny. Ważne jest, aby przed rozpoczęciem pracy z HTML5 zapoznać się z dokumentacją oraz najlepszymi praktykami w tej dziedzinie.

Pytanie 23

W SQL klauzula DISTINCT w poleceniu SELECT zapewnia, że zwrócone wyniki

A. będą spełniały dany warunek.
B. będą zgrupowane według wskazanego pola.
C. nie zawiera będą duplikatów.
D. będą uporządkowane.
Niepoprawność pierwszej odpowiedzi wynika z nieporozumienia dotyczącego funkcji DISTINCT. Klauzula ta nie ma na celu sortowania danych, a jedynie eliminację powtórzeń. Wyniki zapytania mogą być posortowane, ale jest to realizowane za pomocą osobnej klauzuli ORDER BY, a nie DISTINCT. Drugą odpowiedzią, która jest błędna, jest twierdzenie, że DISTINCT wymusza spełnienie określonego warunku. Klauzula DISTINCT nie jest używana do filtrowania danych na podstawie warunków; aby to osiągnąć, zwykle stosuje się klauzulę WHERE, która określa konkretne kryteria, jakie muszą być spełnione przez zwracane rekordy. Ostatnia błędna odpowiedź sugeruje, że wyniki będą pogrupowane według określonego pola, co jest mylące, ponieważ grupowanie osiąga się za pomocą klauzuli GROUP BY. Ta klauzula agreguje wiersze w grupy opierając się na wartościach w określonych kolumnach, a następnie umożliwia wykonywanie operacji agregujących, takich jak COUNT, SUM czy AVG, co jest zupełnie inną funkcjonalnością niż ta oferowana przez DISTINCT. W skrócie, klauzula DISTINCT koncentruje się na eliminacji duplikatów, podczas gdy sortowanie, warunki i grupowanie to odrębne aspekty zapytań SQL.

Pytanie 24

Jaką funkcję pełni CONCAT w języku SQL?

A. określenie podłańcucha znaków z tekstu wejściowego
B. łączenie tekstu do wyświetlenia
C. przycinanie wyświetlanego tekstu
D. usuniecie określonego tekstu
Chociaż usunięcie wskazanego tekstu, przycięcie wyświetlanego tekstu oraz wyznaczenie podłańcucha znaków są funkcjami, które mogą być użyteczne w operacjach na danych, nie są one związane z funkcjonalnością CONCAT. Usunięcie wskazanego tekstu jest realizowane przez funkcje takie jak REPLACE, które zastępują określone fragmenty tekstu innymi wartościami, a nie przez łączenie ich w jeden ciąg. Przycięcie wyświetlanego tekstu, na przykład przy użyciu funkcji TRIM, dotyczy usuwania białych znaków z początku i końca łańcucha, co również nie ma związku z łączeniem tekstów. Wyznaczenie z wejściowego tekstu podłańcucha znaków można zrealizować przez funkcję SUBSTRING, która pozwala na wydobycie określonego fragmentu z długiego tekstu. Każda z tych operacji ma swoje zastosowanie i jest bardzo przydatna w kontekście przetwarzania danych, jednak nie przynależą do funkcji CONCAT, której głównym celem jest łączenie tekstów, a nie ich modyfikacja w inny sposób.

Pytanie 25

Aby stworzyć stronę internetową, która będzie odpowiadać załączonej ilustracji, konieczne jest użycie semantycznych znaczników sekcji w języku HTML5. Jakim znacznikiem należy określić sekcję menu?

A. aside
B. div
C. header
D. nav
Znacznik <div> jest często używany do ogólnego grupowania elementów w HTML, ale nie niesie ze sobą semantycznego znaczenia, co oznacza, że nie informuje technologii wspomagających ani wyszukiwarek o roli, jaką pełni zawartość. W kontekście semantycznego HTML5, poleganie na znaczniku <div> nie wykorzystuje potencjału nowych standardów, które poprawiają dostępność i strukturę dokumentów. Znacznik <aside> jest zwykle używany do grupowania treści pobocznej, takiej jak reklamy czy linki powiązane, dlatego nie jest on odpowiedni do definiowania sekcji menu. <header> jest z kolei stosowany do elementów nagłówkowych, takich jak tytuły stron czy sekcje wstępne, co również nie pasuje do kontekstu sekcji nawigacyjnej. Właściwe wykorzystanie semantycznych znaczników pomaga nie tylko w lepszej organizacji kodu, ale także wspiera dostępność oraz optymalizację SEO, co jest kluczowe w nowoczesnym projektowaniu stron internetowych.

Pytanie 26

W HTML, aby utworzyć poziomą linię, należy zastosować znacznik

A. <br>
B. <hl>
C. <hr>
D. <line>
Znacznik <line> nie jest standardowym elementem HTML i nie istnieje w specyfikacji tego języka. Z tego powodu nie może być użyty do tworzenia poziomej linii. Użytkownicy mogą mylić go z innymi terminami związanymi z grafiką wektorową, gdzie pojawia się pojęcie 'linia', jednak HTML nie przewiduje takiego znacznika. Kolejnym błędnym rozwiązaniem jest znacznik <br>, który jest używany do łamania linii w tekście. Umożliwia on przejście do nowej linii, ale nie daje efektu poziomej linii oddzielającej sekcje treści. Jest to element samodzielny, jednak jego funkcjonalność jest zupełnie inna. Z kolei znacznik <hl> nie istnieje w standardach HTML. Użytkownicy mogą go pomylić z innymi znacznikami, ale <hl> nie jest zdefiniowany w żadnym z wersji HTML, co oznacza, że przeglądarki go nie rozpoznałyby, co skutkowałoby brakiem jakiegokolwiek wizualnego efektu. Użycie niepoprawnych znaczników może prowadzić do problemów z interpretacją dokumentów HTML i ich wyświetlaniem w przeglądarkach, co negatywnie wpłynie na użytkowników oraz SEO strony.

Pytanie 27

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

A. UNIQUE
B. NO REPEAT
C. NOT NULL
D. SINGLE
W bazach danych bardzo łatwo pomylić różne typy ograniczeń, bo wszystkie „coś ograniczają”, ale robią to w zupełnie inny sposób. W tym pytaniu chodzi konkretnie o to, żeby wartości w kolumnie się nie powtarzały – czyli o klasyczną unikalność danych. Do tego służy constraint UNIQUE, który jest standardowym mechanizmem w SQL do wymuszania niepowtarzalnych wartości w obrębie danej kolumny lub kombinacji kolumn. Pojawia się czasem intuicja, że może istnieje coś takiego jak SINGLE albo NO REPEAT, bo nazwa brzmi sensownie po angielsku. W specyfikacji SQL i w popularnych systemach baz danych takie słowa kluczowe jednak po prostu nie występują jako constrainty. SINGLE i NO REPEAT nie są standardowymi ograniczeniami, więc żadna poważna baza danych ich nie zrozumie. To typowy błąd: kierowanie się „ładnie brzmiącą nazwą”, a nie faktycznymi słowami kluczowymi języka SQL. Z kolei NOT NULL jest jak najbardziej prawdziwym ograniczeniem, ale rozwiązuje zupełnie inny problem. NOT NULL mówi tylko tyle, że w danej kolumnie nie wolno przechowywać wartości pustych (NULL). Możesz mieć tabelę, w której kolumna ma NOT NULL i jednocześnie wiele identycznych wartości, np. same zera albo ten sam tekst w każdym wierszu – baza nie będzie protestować, bo nie zabrania powtórek, tylko zabrania braku wartości. To ograniczenie często łączy się z innymi, np. PRIMARY KEY czy UNIQUE, ale samo w sobie nie zapewnia żadnej unikalności. Z mojego doświadczenia przy projektowaniu schematów baz danych najczęstszy błąd myślowy wygląda tak: ktoś zakłada, że skoro pole nie może być puste (NOT NULL), to „jakoś przy okazji” jest traktowane specjalnie i może nawet unikalnie. Niestety tak to nie działa. Dopiero dodanie UNIQUE albo zdefiniowanie PRIMARY KEY wymusza, że dana wartość nie pojawi się drugi raz. Dlatego przy każdej kolumnie, która ma pełnić rolę identyfikatora biznesowego (np. email, numer dokumentu, NIP), trzeba świadomie dobrać właściwy constraint, a nie liczyć na samo NOT NULL czy jakieś „domyślne” zachowanie bazy.

Pytanie 28

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. DELETE FROM `uczniowie` WHERE data_ur LIKE "?-06-?"
B. DROP FROM `uczniowie` WHERE data_ur LIKE "06"
C. DROP FROM `uczniowie` WHERE data_ur == #-06-#
D. DELETE FROM `uczniowie` WHERE data_ur LIKE "%-06-%"
W tym zadaniu kluczowe jest zrozumienie trzech rzeczy: poprawnej składni SQL, sposobu zapisu daty w bazie oraz działania operatora LIKE. Jeśli któryś z tych elementów „siądzie”, to całe zapytanie przestaje mieć sens. Nie można na przykład używać słowa kluczowego DROP zamiast DELETE. DROP służy do usuwania całych obiektów bazodanowych, takich jak tabele czy bazy danych (np. DROP TABLE uczniowie;), a nie pojedynczych rekordów. Użycie DROP z klauzulą WHERE jest po prostu niepoprawne składniowo i w MySQL takie zapytanie się nie wykona. To jest dość typowy błąd: pomylenie operacji na strukturze bazy danych z operacjami na danych. Druga sprawa to porównywanie daty. W SQL nie stosujemy operatora „==”, to nie jest JavaScript ani C++. Standardowy operator porównania to pojedynczy znak równości „=”. Dodatkowo zapis typu #-06-# nie ma żadnego sensu w MySQL, wygląda raczej jak składnia z innych środowisk (np. Access). MySQL oczekuje albo literalnej wartości daty w formacie 'YYYY-MM-DD', albo użycia funkcji, albo poprawnego wzorca tekstowego. Kolejny częsty błąd to używanie LIKE z nieprawidłowym wzorcem. W MySQL wildcardami są „%” (dowolny ciąg znaków, także pusty) oraz „_” (dokładnie jeden dowolny znak). Znaki „?” nie pełnią roli symbolu zastępczego w standardowym SQL, więc wzorzec "?-06-?" po prostu nie zadziała tak, jak ktoś mógłby się spodziewać. Trzeba też pamiętać, że data jest zapisana w formacie 'RRRR-MM-DD', więc dopasowanie po samym „06” bez myślników jest ryzykowne – mogłoby trafić w inne fragmenty ciągu, a nie w sam miesiąc. Z mojego doświadczenia wynika, że najlepszym nawykiem jest zawsze myślenie: jaki dokładnie ciąg znaków stoi w kolumnie i jakim wzorcem LIKE mogę go jednoznacznie złapać, zamiast zgadywać składnię czy mieszać składnie z różnych technologii.

Pytanie 29

Która z definicji tablicy asocjacyjnej w PHP jest składniowo poprawna?

A. $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});
B. $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);
C. $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);
D. $wiek = array("Anna"=>"35", "Ewa"=>"37", "Oliwia"=>"43");
W analizowanych odpowiedziach można zauważyć kilka istotnych błędów składniowych, które uniemożliwiają prawidłowe zdefiniowanie tablicy asocjacyjnej w PHP. Pierwsza opcja, $wiek = array("Anna"=35, "Ewa"=37, "Oliwia"=43);, myli operator przypisania z operatorem asocjacyjnym. Użycie znaku = zamiast => jest kluczowe, ponieważ PHP wymaga użycia operatora => do parowania kluczy z wartościami. W drugiej opcji, $wiek = array([Anna, 35], [Ewa, 37], [Oliwia, 43]);, zastosowano niepoprawną składnię tablicy, gdzie zewnętrzne nawiasy kwadratowe powinny być zastąpione funkcją array() lub nawiasami klamrowymi, a także brakuje kluczy. Trzecia odpowiedź, $wiek = array({"Anna", "35"}, {"Ewa", "37"}, {"Oliwia", "43"});, również jest niepoprawna, ponieważ użyto nawiasów klamrowych, które nie są stosowane w definicji tablic asocjacyjnych w PHP. Nawiasy klamrowe mogą być używane do tworzenia tablic wielowymiarowych, ale w tym kontekście są nieodpowiednie. Typowe błędy myślowe, które prowadzą do takich pomyłek, to mylenie różnych typów struktur danych oraz niewłaściwe zrozumienie zasad parowania kluczy i wartości, co w rezultacie skutkuje błędami w składni i logice kodu.

Pytanie 30

Jakim zapisem w dokumencie HTML można stworzyć element, który wyświetli obraz kotek.jpg oraz tekst alternatywny "obrazek kotka"?

A. <img src="kotek.jpg" alt="obrazek kotka">
B. <img src="kotek.jpg" title="obrazek kotka">
C. <img href="kotek.jpg" title="obrazek kotka">
D. <img href="kotek.jpg" alt="obrazek kotka">
Wszystkie odpowiedzi, które nie odpowiadają poprawnemu zapisowi, zawierają błędy związane z użyciem atrybutów w tagu <img>. W pierwszej odpowiedzi użyto atrybutu href, który nie jest właściwie stosowany w kontekście obrazów; zamiast tego, do osadzania linków należy używać tagu <a>. Druga odpowiedź również zawiera niepoprawny atrybut href, co sprawia, że obraz nie zostanie poprawnie załadowany. W trzeciej opcji atrybut title jest użyty, jednak jego funkcja jest inna niż atrybutu alt. Atrybut title dostarcza dodatkowych informacji o elemencie w formie podpowiedzi, ale nie jest wyświetlany w przypadku, gdy obraz nie może być załadowany, co czyni go niewystarczającym do celów dostępności. Taki błąd myślowy prowadzi do pominięcia istoty atrybutu alt, który jest niezbędny do opisania zawartości obrazu. Ponadto, nieprawidłowe atrybuty mogą powodować problemy z dostępnością, co jest sprzeczne z najlepszymi praktykami webowymi, mającymi na celu stworzenie ogólnodostępnych treści. Użycie niewłaściwych atrybutów może również negatywnie wpłynąć na doświadczenia użytkowników oraz potencjalnie na pozycjonowanie w wyszukiwarkach, dlatego ważne jest stosowanie zalecanych standardów przy tworzeniu stron internetowych.

Pytanie 31

Wywoływanie funkcji przez samą siebie to

A. iteracja
B. dziedziczenie
C. hermetyzacja
D. rekurencja
Rekurencja to technika programistyczna, w której funkcja wywołuje samą siebie w celu rozwiązania problemu. Jest to potężne narzędzie, które pozwala na rozwiązywanie złożonych problemów przez ich dzielenie na mniejsze, bardziej przystępne podproblemy. Przykładem zastosowania rekurencji może być obliczanie silni liczby naturalnej, gdzie silnia n (n!) jest definiowana jako n * (n-1)! dla n > 0, a 1! = 1. W praktyce, rekurencja jest często wykorzystywana w algorytmach związanych z przeszukiwaniem struktur danych, takich jak drzewa czy grafy, gdzie takie podejście pozwala na eleganckie i czytelne rozwiązania. Dobrą praktyką w programowaniu rekurencyjnym jest zawsze definiowanie warunku zakończenia, aby uniknąć niekończących się wywołań, co mogłoby prowadzić do przepełnienia stosu. Rekurencja jest zgodna z zasadami programowania funkcyjnego, które promuje czystość i modularność kodu, co sprzyja jego testowalności i ponownemu wykorzystaniu.

Pytanie 32

W JavaScript stworzono funkcję o nazwie licz_pitagoras, która oblicza długość przeciwprostokątnej w trójkącie prostokątnym, zgodnie z twierdzeniem Pitagorasa. Funkcja przyjmuje dwa parametry wejściowe i zwraca wynik. Poprawne wywołanie tej funkcji, wraz z uzyskaniem zwróconej wartości, będzie miało formę

A. c = licz_pitagoras(a, b);
B. licz_pitagoras(a, b) = c;
C. licz_pitagoras(a, b);
D. licz_pitagoras(a, b, c);
Wywołanie funkcji w JavaScript wymaga przestrzegania określonych zasad, które nie zostały spełnione w pozostałych odpowiedziach. Odpowiedź 'licz_pitagoras(a, b);' jest niekompletna, ponieważ pomija przypisanie wyniku do zmiennej. Funkcja może być wywołana, ale bez możliwości dalszego wykorzystania jej wyniku, co ogranicza jej użyteczność. Z kolei 'licz_pitagoras(a, b) = c;' sugeruje, że przypisanie wyniku może być wykonane w odwrotny sposób, co jest niezgodne z zasadami przypisywania wartości w JavaScript. Warto pamiętać, że w tym języku nie możemy przypisywać do wyniku funkcji, gdyż funkcje zwracają wartości, a nie są same w sobie zmiennymi. Natomiast 'licz_pitagoras(a, b, c);' sugeruje, że funkcja oczekuje trzech argumentów, co jest nieprawidłowe, ponieważ funkcja została zdefiniowana do przyjmowania tylko dwóch parametrów. Tego typu błędne założenia mogą prowadzić do frustracji podczas programowania, gdyż przydzielanie niewłaściwych argumentów do funkcji może skutkować błędami runtime. Dobrą praktyką jest zrozumienie definicji funkcji i jej parametrów przed jej wywołaniem, co pozwala na efektywne korzystanie z możliwości oferowanych przez JavaScript.

Pytanie 33

Do ilu pól edycyjnych zostanie przypisane tło Teal dla przedstawionego fragmentu dokumentu HTML i stylu CSS?

<input type="text">
<input type="number">
<input type="email">
<input type="number">
<input>

input[type="number"] {
    background-color: Teal;
}
A. Do żadnego.
B. Do wszystkich.
C. Do trzech.
D. Do dwóch.
Bardzo dobrze! Wybrałeś prawidłową odpowiedź, mówiącą, że tło Teal zostanie przypisane do dwóch pól edycyjnych. W przedstawionym fragmencie dokumentu HTML mamy pięć pól edycyjnych (input), z których tylko dwa mają typ 'number'. Tło Teal jest zdefiniowane w stylu CSS i ma być zastosowane tylko do pól typu 'number'. Jest to zgodne z dobrymi praktykami stosowania selektorów atrybutów w CSS, które pozwalają na precyzyjne określenie, do jakich elementów strony internetowej powinien być zastosowany dany styl. Dzięki temu możemy na przykład zastosować różne style dla różnych typów pól wejściowych, jak to jest w tym przypadku. To jest przykład, jak możemy wykorzystać moc CSS do kontroli wyglądu różnych elementów na naszej stronie.

Pytanie 34

Która z reguł dotyczących sekcji w HTML jest właściwa?

A. W sekcji <head> można definiować szablon strony przy użyciu znaczników <div>
B. W sekcji <head> nie można umieszczać kodu CSS, tylko odwołanie do pliku CSS
C. W sekcji <head> znajduje się sekcja <body>
D. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
Poprawnie wskazana zasada dotyczy tego, co zgodnie ze specyfikacją HTML powinno znajdować się w sekcji <head>. Ta część dokumentu przechowuje tzw. metadane, czyli informacje o stronie, a nie samą treść widoczną dla użytkownika. Właśnie dlatego typowe i jak najbardziej prawidłowe elementy w <head> to <meta>, <title> oraz <link>. Znacznik <title> ustawia tytuł strony wyświetlany na karcie przeglądarki i używany np. przez wyszukiwarki. Znaczniki <meta> służą m.in. do określenia kodowania znaków (np. <meta charset="UTF-8">), opisu strony, słów kluczowych, informacji dla robotów indeksujących czy ustawienia viewportu na urządzeniach mobilnych. Z kolei <link> pozwala podpiąć zewnętrzne zasoby, najczęściej arkusze stylów CSS (rel="stylesheet"), ale też np. ikony favicon. W praktyce w dobrze napisanym dokumencie HTML w <head> znajdziesz zwykle: deklarację <meta charset>, <meta name="viewport">, tytuł strony w <title>, link do pliku CSS przez <link rel="stylesheet" href="style.css"> oraz czasem dodatkowe meta tagi dla SEO czy integracji z social media (Open Graph, Twitter Cards). Z mojego doświadczenia warto pilnować porządku w <head>, bo przejrzysta i poprawna struktura ułatwia późniejsze utrzymanie projektu, poprawia dostępność, pozycjonowanie i ogólnie jest zgodna z dobrymi praktykami rekomendowanymi przez W3C i społeczność front‑endową. Moim zdaniem dobrze opanowana sekcja <head> to taki fundament profesjonalnej strony WWW, nawet jeśli użytkownik jej bezpośrednio nie widzi.

Pytanie 35

Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
B. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
C. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
D. zwrócenie liczb z przedziału a .. 99
Wybrane przez Ciebie odpowiedzi są niepoprawne, gdyż nie odzwierciedlają w pełni działania pętli for w JavaScript. Pętla for jest używana do iterowania tyle razy, ile wynosi różnica między 100 a wartością argumentu a, wypisując każdą iterację. Następnie funkcja zwraca wartość o 1 większą niż warunek kończący pętlę (100), co wynosi 101. Błędem było zakładanie, że funkcja zwraca wartości w inny sposób. Przykładowo, jedna z nieprawidłowych odpowiedzi sugerowała, że funkcja zwraca liczby z przedziału a do 99 - jednakże zwracana jest liczba 101. Inna błędna odpowiedź sugerowała, że funkcja wypisuje wartość zmiennej a i zwraca wartość zmiennej n - jednakże wypisywane są liczby od a do 100, a zwracana jest wartość 101. Kolejnym błędem było zakładanie, że funkcja zwraca wartość 100 - co jest nieprawdą, gdyż funkcja zwraca wartość 101. Zrozumienie działania pętli for i funkcji zwracających wartości jest kluczowe dla programowania w JavaScript, dlatego warto poświęcić więcej czasu na praktykę i naukę tych konceptów.

Pytanie 36

W języku PHP przypisano zmiennej $a wartość 1. Porównanie $a === $b zwraca true, gdy zmienna $b ma przypisaną wartość

A. 1 lub '1'
B. *1
C. '1'
D. '1' lub "1"
Zmienna $a, zainicjowana wartością 1, jest typu integer i porównując ją z inną zmienną $b za pomocą operatora identyczności (===), należy zwrócić szczególną uwagę na typ i wartość obu zmiennych. Wiele osób myli operator porównania identyczności z operatorem równości (==), który nie wymaga, aby typy były zgodne. Z tego powodu odpowiedzi takie jak 1 lub '1' mogą wydawać się poprawne, jednak w przypadku porównania identyczności, istotne jest, aby zmienne były tego samego typu. Odpowiedź, która sugeruje wartość 1, jest błędna, ponieważ porównuje wartość integer z potencjalnie innym typem bez uwzględnienia konwersji typów, co prowadzi do niejednoznaczności. Z kolei odpowiedź sugerująca wartość '1' nie do końca zdaje sobie sprawę, że chociaż string '1' jest zgodny w kontekście równości, nie spełnia warunków identyczności w dosłownym sensie, gdyż typy są różne. Typowe błędy myślowe prowadzące do takich nieprawidłowych wniosków często wynikają z założenia, że PHP automatycznie wykonuje konwersje typów, co nie zawsze jest pożądane. Dla programistów istotne jest zrozumienie różnic między typami oraz kiedy stosować odpowiednie operatory, aby zapewnić poprawność logiki aplikacji i uniknąć potencjalnych błędów, które mogą prowadzić do trudnych do zdiagnozowania problemów w przyszłości.

Pytanie 37

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w przedziale jednostronnie domkniętym <-5, 10)?

A. $zmienna1 >= -5 && $zmienna1 < 10
B. $zmienna1 <= -5 && $zmienna1 < 10
C. $zmienna1 >= -5 || $zmienna1 < 10
D. $zmienna1 <= -5 || $zmienna1 < 10
Błędne odpowiedzi opierają się na niewłaściwym zrozumieniu pojęcia przedziału oraz operatorów logicznych w języku PHP. W przypadku wyrażenia $zmienna1 >= -5 || $zmienna1 < 10, użycie operatora || (lub) oznacza, że wystarczy, aby jedna z warunków była spełniona, co prowadzi do sytuacji, w której każde zmienne, które są mniejsze od 10, również zostaną uznane za poprawne, nawet jeśli są mniejsze niż -5. Takie podejście nie odzwierciedla założonego przedziału. Kolejna niepoprawna koncepcja to wyrażenie $zmienna1 <= -5 || $zmienna1 < 10, które również wprowadza w błąd, ponieważ pozwala na wartości mniejsze lub równe -5, a także na wartości mniejsze od 10, co całkowicie wykracza poza założony przedział. Wyrażenie $zmienna1 <= -5 && $zmienna1 < 10 również jest błędne, ponieważ sugeruje, że zmienna1 musi być jednocześnie mniejsza lub równa -5 oraz mniejsza od 10, co jest logicznie sprzeczne z definicją przedziału. W praktyce, takie błędne podejścia mogą prowadzić do nieprawidłowych wyników i trudności w diagnostyce błędów, dlatego kluczowe jest zrozumienie i poprawne stosowanie operatorów oraz warunków w kodzie. Zastosowanie błędnych wyrażeń może prowadzić do wprowadzenia poważnych błędów w logice programu, co jest niepożądane w kontekście dobrej praktyki programistycznej.

Pytanie 38

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. mysqlduplicate –u root biblioteka > kopia.sql
B. copymysql –u root biblioteka kopia.sql
C. backupmysql -u root biblioteka kopia.sql
D. mysqldump -u root biblioteka > kopia.sql
W poleceniu do wykonywania kopii bazy danych MySQL kluczowe jest użycie właściwego narzędzia oraz poprawnej składni. W systemach z MySQL standardowym, oficjalnym narzędziem do tworzenia logicznych kopii zapasowych jest program mysqldump. Nazwy takie jak „copymysql”, „backupmysql” czy „mysqlduplicate” po prostu nie istnieją w standardowej dystrybucji MySQL i wynikają raczej z intuicyjnego myślenia typu: skoro chcę skopiować bazę, to pewnie będzie jakaś komenda „copy” albo „backup”. To naturalne skojarzenie, ale niestety oderwane od rzeczywistych narzędzi dostępnych w praktyce administracji bazami danych. MySQL dostarcza konkretny zestaw binariów: mysql (klient), mysqld (serwer), mysqldump (backup), mysqladmin, mysqlimport itd. Nazwa mysqldump jest trochę mało oczywista, ale to właśnie ona jest właściwa do wykonywania zrzutów baz danych. Błędne odpowiedzi sugerują istnienie narzędzi, które brzmieniem przypominają operacje typu „backup” czy „duplicate”, jednak w profesjonalnym środowisku trzymamy się dokładnych nazw binariów i składni opisanej w dokumentacji. W praktyce administracyjnej takie pomyłki kończą się po prostu komunikatem „command not found” w konsoli. Drugi aspekt to samo przekierowanie do pliku. W poprawnym poleceniu używa się znaku „>”, który jest elementem powłoki systemowej, a nie MySQL. To przekierowanie bierze standardowe wyjście programu mysqldump i zapisuje je do wskazanego pliku tekstowego, np. kopia.sql. Jeżeli ktoś pominie to przekierowanie, zobaczy cały zrzut bazy na ekranie, co jest kompletnie niepraktyczne. Jeżeli natomiast spróbuje używać nieistniejących poleceń typu „copymysql … kopia.sql” bez znaku „>”, to ani nie wywoła prawidłowego narzędzia, ani nie zapisze danych we właściwy sposób. Z mojego doświadczenia typowy błąd myślowy polega na traktowaniu MySQL jakby miał wbudowane jakieś „magiczne” polecenie backupu, na wzór prostych programów typu „kopiuj plik”. Baza danych to jednak usługa sieciowa działająca w tle, a kopie wykonuje się przez specjalistyczne narzędzia, które rozumieją jej strukturę, zależności, typy danych i potrafią wygenerować poprawne instrukcje SQL do późniejszego odtworzenia. Dlatego tak ważne jest, żeby zapamiętać nie tylko poprawną odpowiedź, ale i samą ideę: do backupu MySQL używamy mysqldump, z odpowiednimi opcjami, a wynik zapisujemy do pliku przez przekierowanie. To jest zgodne z dokumentacją MySQL i ogólnie przyjętymi dobrymi praktykami w administracji serwerami i bezpieczeństwie danych.

Pytanie 39

Aby skorzystać z relacji w zapytaniu, trzeba użyć słowa kluczowego

A. UNION
B. IN
C. GROUP BY
D. JOIN
Słowo kluczowe JOIN jest niezbędne do łączenia danych z różnych tabel w bazach danych relacyjnych. Umożliwia ono wykonanie zapytań, które wykorzystują powiązania między tabelami na podstawie wspólnych kolumn. Istnieje kilka rodzajów JOIN, w tym INNER JOIN, LEFT JOIN, RIGHT JOIN oraz FULL JOIN, z których każdy ma swoje specyficzne zastosowanie. Na przykład, używając INNER JOIN, można uzyskać tylko te rekordy, które mają odpowiadające wartości w obu tabelach. To podejście jest zgodne z zasadami normalizacji baz danych, które zalecają przechowywanie danych w sposób zminimalizowany, a relacje między danymi powinny być zarządzane przy użyciu kluczy obcych. Praktyczne zastosowanie JOIN jest kluczowe w analizie danych, gdzie często niezbędne jest zestawienie informacji z różnych źródeł, co pozwala na uzyskanie pełniejszego obrazu analizowanego problemu. Wiedza o tym, jak prawidłowo stosować JOIN, jest fundamentem pracy z bazami danych, a jej znajomość jest również wymagana w standardach branżowych związanych z zarządzaniem danymi.

Pytanie 40

Przy edytowaniu obrazu w programie graficznym rastrowym należy usunąć kolory z obrazu, aby uzyskać jego wersję w skali szarości. Jaką funkcję można zastosować, aby osiągnąć ten efekt?

A. desaturacji
B. kadrowania
C. szumu RGB
D. filtru rozmycia
Filtr rozmycia, szum RGB oraz kadrowanie to techniki, które nie służą do usuwania kolorów z obrazu, co czyni je nieodpowiednimi w kontekście uzyskiwania odcieni szarości. Rozmycie, które jest często stosowane do wygładzania krawędzi i redukcji szumów w obrazach, nie wpływa na kolorystykę, a jedynie na ostrość detali. Stosowanie filtru rozmycia w nadmiarze może prowadzić do utraty ważnych informacji wizualnych, co w kontekście edycji nie jest pożądane. Szum RGB jest techniką wprowadzania losowych danych kolorystycznych, która może być użyta do generowania efektów specjalnych, ale nie ma zastosowania w procesie desaturacji, gdyż zamiast eliminować kolory, może je wprowadzać. Kadrowanie jest natomiast procesem przycinania obrazu do wybranego formatu, co również nie ma związku z usuwaniem kolorów, a bardziej z kompozycją wizualną. Typowym błędem myślowym jest założenie, że każdy proces edycji obrazu może być użyty zamiennie. Kluczowe jest zrozumienie, że różne techniki służą różnym celom i wybór odpowiedniej metody powinien być oparty na zamierzeniach artystycznych oraz technicznych wymogach projektu.