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: 5 maja 2026 17:54
  • Data zakończenia: 5 maja 2026 18:07

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

Jaką barwę przedstawia kolor określony w modelu RGB (255, 0, 0)?

A. zielona
B. czerwona
C. żółta
D. niebieska
Barwa zapisana w modelu RGB (255, 0, 0) odnosi się do intensywnego koloru czerwonego. Model RGB (Red, Green, Blue) jest standardem używanym w cyfrowym przetwarzaniu obrazu, gdzie natężenie światła w trzech podstawowych kolorach: czerwonym, zielonym i niebieskim, definiuje ostateczny kolor. Wartości w zakresie od 0 do 255 wskazują na poziom intensywności każdego z tych kolorów, gdzie 0 oznacza brak intensywności, a 255 maksymalną intensywność. W przypadku (255, 0, 0) maksymalne natężenie czerwieni (255) i brak zieleni oraz niebieskiego skutkuje czystym kolorem czerwonym. Przykładem zastosowania koloru czerwonego w praktyce są znaki drogowe, sygnały alarmowe oraz elementy graficzne w interfejsach użytkownika, które mają na celu przyciągnięcie uwagi. Standardy związane z kolorem, takie jak sRGB, definiują sposób, w jaki kolory są reprezentowane na różnych urządzeniach, co zapewnia spójność wizualną. Czerwony jest także jednym z kolorów podstawowych w modelu adytywnym, co podkreśla jego fundamentalne znaczenie w szerokim zakresie zastosowań wizualnych.

Pytanie 2

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. var wynik = liczba_max(a, b, c);
B. liczba_max(a, b, c, wynik);
C. liczba_max(a, b, c);
D. liczba_max(a, b, c) = wynik;
Prawidłowe wywołanie funkcji w języku JavaScript wymaga zrozumienia podstawowych zasad dotyczących przekazywania argumentów oraz przypisywania wartości. W kontekście podanych odpowiedzi, wiele z nich nie spełnia tych wymogów. Niewłaściwe przypisanie w postaci 'liczba_max(a, b, c, wynik);' sugeruje, że funkcja oczekuje czterech parametrów, co może być mylące. Funkcje w JavaScript przyjmują argumenty, które są przekazywane poprzez użycie odpowiednich zmiennych, a nie poprzez dodatkowe wartości, co skutkuje błędnym wywołaniem. Również wyrażenie 'liczba_max(a, b, c) = wynik;' jest niezgodne z zasadami składniowymi JavaScript, ponieważ nie można przypisywać wartości do wyniku wywołania funkcji. Takie podejście prowadzi do błędów, ponieważ zwracana wartość funkcji nie jest zmienną, a sposobem na uzyskanie wyników. Kolejna koncepcja do zrozumienia to fakt, że funkcje w JavaScript zwracają wartości, które mogą być przypisywane do zmiennych, a nie ustalane na podstawie wywołania funkcji. Typowe błędy myślowe to nieporozumienie dotyczące tego, jak działa mechanizm zwracania wartości oraz niewłaściwe założenie, że funkcje mogą zmieniać wartości zewnętrznych zmiennych bezpośrednio. Zrozumienie tych zasad jest fundamentalne w programowaniu i kluczowe dla skutecznego wykorzystania funkcji w praktycznych aplikacjach.

Pytanie 3

Zdefiniowanie klucza obcego jest niezbędne do utworzenia

A. relacji 1..n.
B. relacji 1..1.
C. klucza podstawowego.
D. transakcji.
Poprawnie – klucz obcy definiujemy właśnie po to, żeby utworzyć i wymusić relację między tabelami, najczęściej relację 1..n. W praktyce wygląda to tak, że w tabeli „dziecko” (np. ZAMOWIENIA) umieszczamy kolumnę, która odwołuje się do klucza głównego w tabeli „rodzic” (np. KLIENCI). Ta kolumna jest właśnie kluczem obcym. Dzięki temu każde zamówienie musi być powiązane z istniejącym klientem. To jest klasyczny przykład relacji 1 klient – wiele zamówień (1..n). Moim zdaniem to jest jeden z fundamentów relacyjnych baz danych: klucze obce pilnują integralności referencyjnej. Silnik bazy (MySQL, PostgreSQL, SQL Server itd.) sprawdza, czy wartość w kolumnie z kluczem obcym faktycznie istnieje w tabeli nadrzędnej. Jeżeli spróbujesz wstawić zamówienie z nieistniejącym id_klienta, dostaniesz błąd. To jest dokładnie to, co chcemy w dobrze zaprojektowanym systemie – brak „osieroconych” rekordów. W relacjach 1..n stosuje się standardowo schemat: tabela nadrzędna ma klucz podstawowy (PRIMARY KEY), a tabela podrzędna ma kolumnę z kluczem obcym (FOREIGN KEY), który wskazuje na ten klucz podstawowy. W SQL zapisuje się to np.: `FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)`. Dobre praktyki mówią też, żeby na kolumnach kluczy obcych zakładać indeksy, bo to przyspiesza złączenia (JOIN) i operacje kasowania/aktualizacji. Warto też wiedzieć, że klucz obcy może być używany z dodatkowymi opcjami, np. `ON DELETE CASCADE` lub `ON UPDATE RESTRICT`, żeby automatycznie usuwać powiązane rekordy lub blokować operacje łamiące spójność danych. W realnych aplikacjach webowych (np. systemy sklepów internetowych, CRM-y, systemy magazynowe) poprawne zdefiniowanie relacji 1..n przez klucze obce to podstawa stabilności całej bazy – bez tego bardzo szybko robi się bałagan, duplikaty i niespójne dane.

Pytanie 4

Poniższe zapytanie SQL ma na celu:

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. przypisać wartość kolumny id_klasy jako 1 dla wszystkich wpisów w tabeli Uczen
B. zwiększyć o jeden wartość kolumny id_klasy dla wszystkich wpisów w tabeli Uczen
C. zwiększyć o jeden wartość pola Uczen
D. ustawić wartość pola Uczen na 1
Polecenie SQL "UPDATE Uczen SET id_klasy = id_klasy + 1;" jest poprawne, ponieważ wskazuje na aktualizację kolumny 'id_klasy' w tabeli 'Uczen'. Wartość kolumny dla każdego rekordu w tabeli zostanie zwiększona o jeden. Działanie to jest przydatne w sytuacjach, gdy chcemy zaktualizować dane, na przykład po przesunięciu uczniów do wyższej klasy w systemie edukacyjnym. Przy takim podejściu, wszyscy uczniowie w danym roku szkolnym mogą zostać automatycznie przeniesieni do następnej klasy bez konieczności edytowania rekordów pojedynczo, co zwiększa efektywność i zmniejsza ryzyko błędów. Ta praktyka jest zgodna z zasadami optymalizacji baz danych, gdzie operacje masowe są preferowane dla ich wydajności. Ponadto, dobrym nawykiem jest tworzenie kopii zapasowych przed przeprowadzeniem masowych aktualizacji, aby uniknąć nieodwracalnych zmian w przypadku błędów.

Pytanie 5

Który z poniższych znaczników jest częścią sekcji <head> dokumentu HTML?

A. <span>
B. <section>
C. <title>
D. <img>
Znacznik <title> jest fundamentalnym elementem sekcji <head> dokumentu HTML. Jego głównym zadaniem jest określenie tytułu strony, który jest wyświetlany na pasku tytułowym przeglądarki oraz w wynikach wyszukiwania. Dobrze skonstruowany tytuł powinien być zwięzły, ale jednocześnie informacyjny, aby skutecznie przyciągnąć uwagę użytkowników. Zgodnie z wytycznymi W3C, tytuł powinien mieć od 50 do 60 znaków, aby uniknąć obcinania w wynikach wyszukiwania. Przykładem dobrze sformułowanego tytułu może być: „Jak stworzyć responsywną stronę internetową - poradnik krok po kroku”. Ważne jest, aby tytuł był unikalny dla każdej podstrony w witrynie, co nie tylko poprawia SEO, ale również ułatwia użytkownikom nawigację. W kontekście standardów i dobrych praktyk, należy również unikać umieszczania w tytule zbędnych słów kluczowych, co może być uznane za spam przez wyszukiwarki. Dobrze zaprojektowany tytuł jest kluczem do efektywnego pozycjonowania i budowania marki w sieci.

Pytanie 6

Który z formatów plików używa kompresji stratnej?

A. GIF
B. BMP
C. JPEG
D. PNG
W tym pytaniu kluczowe jest rozróżnienie między kompresją stratną a bezstratną oraz zrozumienie charakteru poszczególnych formatów graficznych. Kompresja stratna polega na takim przetworzeniu obrazu, które usuwa część informacji na stałe, w zamian za znaczne zmniejszenie rozmiaru pliku. Po zapisaniu i ponownym odczycie nie da się odtworzyć dokładnie oryginalnych danych. Kompresja bezstratna działa inaczej: dane są tylko „upakowane” w sprytniejszy sposób, ale po rozpakowaniu dostajemy dokładnie to samo, co przed zapisem. To jest bardzo ważne np. przy grafice interfejsu, schematach, ikonach czy plikach źródłowych. Format GIF korzysta z kompresji bezstratnej LZW, choć sam w sobie ma bardzo poważne ograniczenie: paleta maksymalnie 256 kolorów. Przez to wiele osób myli ten brak jakości z kompresją stratną, a to tylko ograniczenie liczby barw, a nie mechanizm usuwania informacji przy każdorazowym zapisie. GIF jest więc bezstratny w obrębie tej swojej ograniczonej palety. BMP z kolei jest formatem w zasadzie nieskompresowanym (albo minimalnie), przechowuje piksele bardzo „topornie”, przez co pliki są ogromne, ale nie tracą informacji – nic tam nie jest celowo usuwane. To typowy przykład formatu, który w nowoczesnych projektach webowych praktycznie się nie stosuje, właśnie ze względu na wagę. PNG używa kompresji bezstratnej (Deflate), a jego główną zaletą jest możliwość zachowania pełnej jakości obrazu, przezroczystości (kanał alfa) i bardzo ostrej grafiki. Jest świetny do logotypów, ikon, elementów UI, wykresów. Jeśli ktoś wybiera PNG jako „stratny”, to zwykle wynika to z prostego skojarzenia: małe pliki = pewnie stratne. A tu odwrotnie – PNG potrafi mieć niezłą kompresję, ale nie poświęca przy tym jakości. Jedynym z podanych formatów, który rzeczywiście stosuje kompresję stratną, jest JPEG. Jego algorytmy są projektowane pod ludzkie oko, odrzucają informacje, które mają najmniejszy wpływ na subiektywnie odbieraną jakość. To dlatego JPEG jest królem zdjęć w Internecie, a GIF i PNG pozostają formatami bezstratnymi (w swoich założeniach), a BMP praktycznie nieużywanym reliktem, jeśli chodzi o nowoczesne strony WWW. Z mojego doświadczenia typowy błąd polega na wrzucaniu wszystkiego jako PNG „bo ładniejsze”, albo traktowaniu GIF-a jako stratnego „bo wygląda gorzej”, zamiast świadomie dobrać format do typu grafiki i mechanizmu kompresji.

Pytanie 7

Jakie zadanie ma funkcja PHP o nazwie mysql_select_db()?

A. wyznaczyć bazę, z której będą pozyskiwane dane
B. wyznaczyć tabelę, z której będą pozyskiwane dane
C. nawiązać połączenie między bazą danych a serwerem SQL
D. uzyskać dane z bazy danych na podstawie zapytania
Funkcja <span>mysql_select_db()</span> w PHP jest naprawdę ważna, bo pozwala nam wybrać konkretną bazę danych, z której chcemy czerpać informacje. Gdy już nawiążemy połączenie z serwerem MySQL przez <span>mysql_connect()</span>, to pierwsze co powinniśmy zrobić, to wybrać bazę danych, na której będziemy działać. To ważny krok, bo w każdej bazie może być sporo tabel, a nasze zapytania muszą iść do odpowiedniej. Na przykład, jeśli mamy bazę danych 'sklep' i potrzebujemy tabeli 'produkty', to musimy wywołać <span>mysql_select_db('sklep')</span>. Dzięki temu MySQL wie, gdzie szukać naszych tabel i informacji. Z mojego doświadczenia, dobrze jest upewnić się, że wybraliśmy odpowiednią bazę danych przed wykonaniem jakichkolwiek zapytań, bo wtedy unikamy różnych problemów z kontekstem danych.

Pytanie 8

Znaczniki HTML <strong> oraz <em>, które mają na celu podkreślenie istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. <i> oraz <mark>
B. <b> oraz <i>
C. <b> oraz <u>
D. <u> oraz <sup>
Znaczniki HTML <strong> oraz <em> mają kluczowe znaczenie w kontekście semantyki i formatowania tekstu w dokumentach HTML. Znacznik <strong> wskazuje na tekst o zwiększonej ważności, co jest zgodne z jego domyślnym formatowaniem, które w większości przeglądarek wyświetla tekst pogrubiony. Z kolei znacznik <em> sugeruje tekst, który powinien być akcentowany w odpowiedni sposób, a jego domyślne formatowanie to kursywa. W związku z tym, ich odpowiednikami pod względem formatowania są znaczniki <b> oraz <i>. Znacznik <b> służy do pogrubienia tekstu, ale nie niesie ze sobą żadnej dodatkowej semantyki, natomiast <i> używany jest do kursywy bez wskazania na ważność. W praktyce, należy używać <strong> i <em> tam, gdzie semantyka jest kluczowa dla zrozumienia treści, a dodatkowe znaczenie przekłada się na lepsze pozycjonowanie w wyszukiwarkach oraz dostępność dla osób korzystających z technologii asystujących. Ważne jest, by przestrzegać dobrych praktyk webowych i stosować znaczniki semantyczne, co pozwoli na efektywne przekazywanie informacji zarówno użytkownikom, jak i robotom indeksującym.

Pytanie 9

Który z poniższych zapisów CSS zmieni tło bloku na odcień niebieskiego?

A. div {background-color:blue;}
B. div {shadow:blue;}
C. div {border-color:blue;}
D. div {color:blue;}
Zapis 'div {background-color:blue;}' jest jak najbardziej na miejscu. Właściwość 'background-color' jest kluczowa, bo ustawia kolor tła dla elementów blokowych w CSS. Kiedy używasz 'blue' jako wartości, to mówisz, że tło ma być niebieskie. Ta właściwość jest częścią tego całego systemu CSS, który decyduje, jak powinny wyglądać elementy HTML. Ustawienie koloru tła jest ważne, bo wpływa na wygląd strony i to, jak kontrastują ze sobą tekst i tło, co jest istotne, by strona była dostępna dla każdego. Jeśli chciałbyś zmienić kolor tła, możesz korzystać z różnych wartości, takich jak kody HEX (np. #0000FF) albo RGB (np. rgb(0, 0, 255)). Możesz to zobaczyć w praktyce, na przykład: <div style='background-color:blue;'>Treść</div>, co ustawi tło 'diva' na niebieskie.

Pytanie 10

W języku CSS określono formatowanie znacznika h1 według wzoru. Zakładając, że żadne inne formatowanie nie jest dodane do znacznika h1, wskaż sposób formatowania tego znacznika

Ilustracja do pytania
A. C
B. D
C. A
D. B
Formatowanie znacznika h1, określone w podanym kodzie CSS, wprowadza kilka charakterystycznych cech stylistycznych. Przede wszystkim, zastosowanie 'font-style: oblique;' zmienia wygląd tekstu, nadając mu ukośny styl. To oznacza, że tekst będzie wyświetlany w wyraźnie przechylonej formie, co jest często używane do podkreślenia ważnych elementów. Dodatkowo, 'font-variant: small-caps;' odpowiedzialne jest za przekształcenie małych liter w małe kapitałki, co nadaje tekstowi elegancki i formalny wygląd. Taki zabieg jest często wykorzystywany w tytułach lub nagłówkach, aby wyróżnić je wśród pozostałego tekstu. Ostatni element, 'text-align: right;', wyrównuje tekst do prawej krawędzi kontenera, co jest mniej powszechnie stosowane w porównaniu do wyrównania do lewej lub wyśrodkowanego, ale może być użyteczne w specyficznych układach strony. W przypadku, gdyby były dodatkowe style CSS przypisane do tego znacznika, mogłyby one wpłynąć na ostateczny wygląd, jednak w tym przypadku zakładamy, że są to jedyne zastosowane style. Standardy CSS jasno określają, jak różne właściwości mogą być używane do stylizacji elementów HTML, co czyni je niezwykle potężnym narzędziem w tworzeniu estetycznych i funkcjonalnych stron internetowych.

Pytanie 11

Jakie formatowanie obramowania jest zgodne ze stylem border-style: dotted solid;?

Ilustracja do pytania
A. Formatowanie 3
B. Formatowanie 2
C. Formatowanie 4
D. Formatowanie 1
Styl obramowania w CSS pozwala na precyzyjne określenie wyglądu krawędzi elementu na stronie internetowej. W przypadku „border-style: dotted solid;” mamy do czynienia z kombinacją dwóch różnych stylów obramowania. Pierwsza wartość „dotted” odnosi się do obramowania o kropkowanej strukturze, co jest często stosowane w celu nadania lekkości i subtelności wizualnej. Druga wartość „solid” oznacza jednolite obramowanie, które jest bardziej wyraźne i stosowane, gdy wymagana jest wyraźna separacja elementów. Formatowanie 2 odpowiada właśnie temu stylowi, ponieważ przedstawia górne i dolne obramowanie jako kropkowane, a boczne jako jednolite. Takie zastosowanie jest typowe w sytuacjach, gdzie potrzebny jest kompromis między estetyką a funkcjonalnością, np. w tabelach danych, gdzie górne i dolne obramowanie może być delikatniejsze, by nie przytłaczać, a boczne wyraźne dla czytelności. Wybór właściwego stylu obramowania jest kluczowy dla użyteczności i estetyki strony, zgodnie z zasadami projektowania zorientowanego na użytkownika.

Pytanie 12

W algorytmie jeden z bloków zawiera akcję „Wypisz liczbę”. Jaki kształt może mieć ta akcja?

Ilustracja do pytania
A. Kształt 3
B. Kształt 1
C. Kształt 4
D. Kształt 2
W algorytmach i schematach blokowych każdy kształt ma swoje specyficzne zastosowanie i znaczenie, co jest kluczowe dla zrozumienia i projektowania schematów przepływu. Użycie nieodpowiedniego kształtu może prowadzić do nieporozumień i błędnej interpretacji działania algorytmu. Prostokąt, często wybierany przez początkujących, jest symbolem operacji obliczeniowej, a nie wypisywania danych. Użycie go zamiast równoległoboku może sugerować, że w danym miejscu algorytm wykonuje przetwarzanie danych, co wprowadza w błąd. Romb, z kolei, jest używany do reprezentowania decyzji, czyli punktu, w którym algorytm wybiera jedną z kilku możliwych ścieżek na podstawie określonego warunku. Użycie rombu do opisania operacji wypisywania mogłoby sugerować, że wybieramy między różnymi możliwościami wyjścia danych, co byłoby błędne. Zastosowanie specjalnych kształtów, takich jak trapez, też jest nietypowe i nie znalazło umocowania w standardach. Właściwe użycie symboli to część dobrych praktyk w projektowaniu schematów, co ułatwia współpracę i zrozumienie pomiędzy programistami oraz ułatwia rozpoznanie błędów we wczesnym etapie projektowania. Zrozumienie tego aspektu pozwala na poprawę jakości tworzonych algorytmów i ich zgodności z ogólnymi standardami branżowymi ISO/IEC 19515:2017.

Pytanie 13

W CSS zdefiniowano styl dla pola edycji. Taki obszar będzie miał jasnozielone tło

input:focus { background-color: LightGreen; }
A. jeśli jest to pierwsze wystąpienie tego elementu w dokumencie
B. po kliknięciu myszą w celu wprowadzenia tekstu
C. gdy zostanie na niego najechane kursorem myszy bez kliknięcia
D. w każdej sytuacji
Pozostałe odpowiedzi opierają się na błędnym zrozumieniu zastosowania pseudoklas w języku CSS. Pseudoklasa :first-of-type, która mogłaby sugerować pierwsze wystąpienie znacznika w dokumencie, nie odnosi się do stanu aktywności pola edycyjnego. Stylizowanie pierwszego wystąpienia nie ma związku z interakcją użytkownika, a jedynie z pozycją elementu w strukturze dokumentu HTML. Kolejny błąd pojawia się przy założeniu, że zmiana koloru tła nastąpi gdy element zostanie wskazany kursorem myszy. W CSS taka interakcja jest obsługiwana przez pseudoklasę :hover, która stosuje się do elementów, nad którymi znajduje się wskaźnik myszy, ale nie obejmuje stanu aktywnego fokusu potrzebnego do edycji. Ostatnia błędna koncepcja dotyczy twierdzenia, że styl jest stosowany w każdym przypadku. To stwierdzenie ignoruje specyfikę selektorów CSS, które wymagają określonych warunków - w tym przypadku aktywnego fokusu elementu. Zrozumienie różnic między pseudoklasami :focus i :hover oraz znajomość ich zastosowań w projektowaniu interaktywnych interfejsów webowych jest kluczowe dla skutecznego stosowania CSS w praktyce. Poprawna wiedza na temat specyficznych zastosowań tych pseudoklas wpływa na jakość doświadczenia użytkownika i integrację funkcjonalności z estetyką projektu.

Pytanie 14

Wskaż, jak wygląda komentarz wieloliniowy w języku PHP?

A. //
B. #
C. <!-- -->
D. /* */
Komentarz wieloliniowy w języku PHP jest oznaczany przez symbole '/*' na początku oraz '*/' na końcu. Tego typu komentarze pozwalają na umieszczanie dłuższych opisów lub wyjaśnień w kodzie, co jest szczególnie przydatne w przypadku bardziej złożonych fragmentów. Przykładowo, jeśli mamy funkcję, która wykonuje skomplikowane obliczenia, można użyć komentarza wieloliniowego, aby szczegółowo opisać, co ta funkcja robi oraz jakie są jej wejścia i wyjścia. W dobie pracy zespołowej i dbałości o dokumentację kodu, stosowanie komentarzy do wyjaśnienia celów, metod i ograniczeń kodu jest dobrą praktyką. Dzięki temu, programiści, którzy będą pracować z danym fragmentem kodu w przyszłości, będą mieli pełniejsze zrozumienie jego działania. Używanie komentarzy wieloliniowych w PHP jest zgodne z najlepszymi praktykami programistycznymi, sprzyja utrzymaniu porządku w kodzie oraz ułatwia jego późniejsze modyfikacje.

Pytanie 15

Znacznik <pre> </pre> służy do wyświetlania

A. znaku skreślenia
B. treści czcionką w języku polskim
C. treści czcionką o stałej szerokości
D. znaku wielokropkowego
Znacznik <pre> </pre> jest używany do wyświetlania treści w formacie, który zachowuje oryginalny układ oraz czcionkę o stałej szerokości. Umożliwia on prezentację tekstu w takiej formie, w jakiej został wprowadzony, co jest szczególnie przydatne w kontekście kodu źródłowego, danych tabelarycznych lub innych elementów, gdzie zachowanie spacji, łamań linii i innych formatów jest istotne. Przykładem zastosowania znacznika <pre> może być wyświetlanie fragmentów kodu w dokumentacji HTML lub na stronach internetowych, gdzie istotne jest, aby użytkownik mógł widzieć dokładnie, jak kod wygląda, bez modyfikacji przestrzeni lub układu, co jest często problematyczne w przypadku standardowego tekstu HTML. Używanie tego znacznika jest zgodne z dobrymi praktykami w tworzeniu przejrzystych i czytelnych interfejsów, zwłaszcza w kontekście tworzenia stron internetowych o charakterze technicznym.

Pytanie 16

Wynikiem działania poniższej pętli for w przedstawionym kodzie PHP jest wyświetlenie liczb:

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 0
B. 1 1
C. 1 0 1 0
D. 1 0 1
Poprawna odpowiedź to 1 1, ponieważ analizując przedstawioną pętlę for, zaczynamy od zmiennej $i, która ma wartość 5. Pętla będzie działać tak długo, jak wartość $i jest większa od 1. W każdym kroku $i jest zmniejszane o 2, co oznacza, że w kolejnych iteracjach przyjmuje wartości 5, 3, a następnie 1. Wartości te są poddawane operacji modulo 2. Operacja modulo zwraca resztę z dzielenia, która dla liczb nieparzystych (5 i 3) wynosi 1 oraz dla liczby parzystej (0) wynosi 0. Zatem, w pierwszej iteracji, $i = 5, 5 % 2 = 1, a w drugiej iteracji, $i = 3, 3 % 2 = 1. Ostatecznie, pętla nie wykonuje się, gdy $i = 1, ponieważ warunek $i > 1 nie jest już spełniony. W rezultacie, poprawnym wynikiem działania tego fragmentu kodu jest wyświetlenie dwóch wartości 1. Przykład zastosowania takiej konstrukcji można znaleźć w sytuacjach, w których chcemy przetworzyć kolekcję liczb i wyodrębnić ich parzystość lub nieparzystość, co jest powszechną operacją w programowaniu.

Pytanie 17

W HTML wprowadzono tag a. Co oznacza wartość nofollow w atrybucie rel?

<a href="http://website.com" rel="nofollow">link</a>
A. jest komunikatem dla robota wyszukiwarki Google, by nie śledził tego linku
B. jest wskazówką dla przeglądarki internetowej, aby nie interpretowała słowa 'link' jako hiperłącza
C. oznacza, że kliknięcie na link nie przekieruje do strony website.com
D. oznacza, że naciśnięcie na link spowoduje jego otwarcie w nowej karcie przeglądarki
Nofollow to nie jest informacja dla przeglądarki, żeby nie pokazywała linka jak normalnego odnośnika. Linki wciąż będą wyglądały jak zwykłe linki HTML. Atrybut nofollow dotyczy tylko tego, jak roboty wyszukiwarek traktują ten link, a nie jak wygląda on na stronie. Jak chcesz, żeby link otwierał się w nowej karcie, to musisz użyć atrybutu target z _blank. Nofollow nie ma wpływu na to, gdzie prowadzi link, więc kliknięcie w niego zawsze przeniesie cię na daną stronę, niezależnie od tego, czy jest tam nofollow czy nie. Jego rola jest tylko w SEO i w tym, jak wpływa na PageRank, a nie w tym, co widzą użytkownicy.

Pytanie 18

Wskaż konstrukcję pętli w języku JavaScript, która wyświetli sześć kolejnych liczb parzystych

A. for(i=2;i<12;i++) {i++; document.write(i);}
B. for(i=2;i<12;i+=2) {document.write(i);}
C. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
D. for(i=2;i<=12;i+=2) {document.write(i);}
Prawidłowe zrozumienie działania pętli for w JavaScript jest kluczowe dla tworzenia efektywnych skryptów. Odpowiedzi, które nie są poprawne, najczęściej wynikają z nieporozumień dotyczących sposobu działania inkrementacji oraz warunków zakończenia pętli. Przykładowo, konstrukcja for(i=2;i<12;i+=2) nie osiągnie ostatniej liczby parzystej 12, co skutkuje wyświetleniem jedynie 2, 4, 6, 8 i 10, a więc pięciu liczb parzystych. Zrozumienie granic pętli jest istotne, aby uzyskać oczekiwane rezultaty. Inne podejście, czyli for(i=2;i<12;i++) {i++; document.write(i);}, wprowadza dodatkowe zwiększenie zmiennej i wewnątrz pętli, co może prowadzić do nieoczekiwanych rezultatów - w tym przypadku, liczenie kończy się na 12, ale tylko wartości nieparzyste będą drukowane, czyli 3, 5, 7, 9, 11, co jest błędne w kontekście zadania. W kontekście innej odpowiedzi, for(i=2;i<=12;i++) {i=i+2; document.write(i);}, również nie działa zgodnie z zamierzeniem, ponieważ zaczyna od 2 i natychmiast zwiększa liczbę do 4, co prowadzi do pominięcia liczby 2 w wyniku końcowym. Dokładne zrozumienie działania pętli i jej konstrukcji jest kluczowe do uniknięcia takich błędów. W programowaniu ważne jest stosowanie jasnych i prostych konstrukcji, które są łatwe do zrozumienia, co pomaga nie tylko w pracy nad bieżącym projektem, ale również w późniejszej konserwacji oraz w pracy zespołowej.

Pytanie 19

Kod umieszczony w ramce tworzy tabelę, która zawiera

Ilustracja do pytania
A. jeden wiersz i jeden słupek
B. dwa wiersze i jeden słupek
C. dwa wiersze i dwa słupki
D. jeden wiersz i dwa słupki
Analizując podane opcje należy zrozumieć że struktura tabeli w HTML opiera się na elementach <tr> które definiują wiersze oraz <td> które definiują komórki czyli kolumny w danym wierszu. Kod HTML zawsze zaczyna się od otwarcia znacznika <table> i kończy znacznikiem </table>. Wewnątrz tego bloku umieszczane są znaczniki <tr> i <td>. Częstym błędem jest mylenie liczby wierszy z liczbą kolumn co prowadzi do błędnych wniosków. Kod przedstawiony w pytaniu zawiera jeden znacznik <tr> co jednoznacznie wskazuje na jeden wiersz tabeli. Wiele osób błędnie zakłada że każda nowa komórka zaczyna nowy wiersz co jednak nie jest prawdą. Istnieją sytuacje w których tabele mogą wydawać się bardziej skomplikowane szczególnie gdy zagnieżdża się tabele lub stosuje colspan i rowspan ale w podstawowym domyślnym układzie każda linia <tr> zaczyna nowy wiersz a każda <td> jest nową komórką w bieżącym wierszu. Analizując dostępne odpowiedzi zauważamy że poprawne rozumienie struktury tabeli HTML wymaga ścisłego przestrzegania jej hierarchii a błędne odpowiedzi wynikają z niepoprawnego przypisania liczby wierszy lub kolumn co często jest wynikiem niedostatecznego zrozumienia budowy kodu HTML i jego renderowania w przeglądarkach. Kluczowe jest aby zawsze weryfikować strukturę poprzez liczenie <tr> i <td> co pozwala uniknąć podstawowych błędów przy tworzeniu i analizie tabel HTML. Takie podejście jest nie tylko poprawne w aspekcie technicznym ale również zgodne ze standardami tworzenia stron internetowych co jednocześnie podkreśla znaczenie solidnej wiedzy o strukturze HTML w pracy profesjonalnego web developera.

Pytanie 20

Aby zobaczyć rezultaty działania skryptu napisanego w PHP, który jest częścią strony internetowej, musi on być

A. skomputeryzowany po stronie serwera
B. zinterpretowany po stronie serwera
C. skomputeryzowany po stronie użytkownika
D. interpretowany po stronie użytkownika
Wybrane odpowiedzi sugerujące, że skrypt PHP musi być "skompilowany po stronie serwera" lub "skompilowany po stronie klienta" są mylące. PHP nie jest językiem kompilowanym w tradycyjnym sensie, jak np. Java czy C++. W PHP kod jest interpretowany, co oznacza, że serwer odczytuje i wykonuje go w czasie rzeczywistym, generując odpowiedni wynik. W przypadku skompilowanych języków, proces kompilacji przekształca kod źródłowy do postaci binarnej, co przynosi różne korzyści, takie jak szybkość działania, ale także wprowadza dodatkowe kroki w cyklu życia aplikacji. Kolejną nieścisłością jest pomysł, że PHP powinno być zinterpretowane po stronie klienta. Przeglądarki internetowe nie mają możliwości wykonania kodu PHP bezpośrednio, ponieważ rozumieją jedynie HTML, CSS oraz JavaScript. Klient ściąga już przetworzony HTML wygenerowany przez PHP, co jest kluczowe dla zrozumienia architektury aplikacji webowych. Szeroko stosowane podejścia do rozwijania aplikacji internetowych powinny uwzględniać te różnice, aby uniknąć typowych błędów myślowych, które mogą prowadzić do nieefektywnego projektowania aplikacji i nieprawidłowego użycia technologii.

Pytanie 21

W każdej iteracji pętli wartość aktualnego elementu tablicy jest przypisywana do zmiennej, a wskaźnik tablicy przesuwa się o jeden, aż do osiągnięcia ostatniego elementu tablicy. To stwierdzenie jest prawdziwe w kontekście instrukcji

A. if
B. next
C. switch
D. foreach
Instrukcja foreach w językach programowania takich jak PHP, Java, C# czy Java jest dedykowana do iteracji po elementach kolekcji, takich jak tablice, listy czy inne struktury danych. Umożliwia ona programiście wygodne przetwarzanie każdego elementu kolekcji bez konieczności ręcznego zarządzania wskaźnikiem lub indeksem. W przypadku foreach, podczas każdej iteracji wartość bieżącego elementu tablicy jest automatycznie przypisywana do zmiennej, co zwiększa czytelność kodu oraz redukuje ryzyko błędów związanych z indeksowaniem. Przykładowo, w języku PHP, zamiast używania tradycyjnej pętli for, możemy użyć: foreach ($array as $value) { // operacje na $value }. Dzięki temu kod jest bardziej zrozumiały i elegancki. Warto zaznaczyć, że foreach nie pozwala na modyfikację samej tablicy w trakcie jej iteracji, co jest istotne dla zachowania integralności danych. Standardy definicji tych instrukcji można znaleźć w dokumentacji każdego z wymienionych języków, co podkreśla ich powszechne zastosowanie oraz zalety w programowaniu.

Pytanie 22

Jednym z atrybutów tabeli ksiazki jest status czyWypozyczona, który może przyjmować dwie wartości: true lub false. Jaki typ danych będzie najbardziej odpowiedni dla tego atrybutu?

A. VARCHAR(5)
B. DOUBLE
C. CHAR
D. BOOLEAN
Wybór CHAR, DOUBLE lub VARCHAR(5) dla pola status czyWypozyczona jest nieoptymalny i prowadzi do różnych problemów związanych z przechowywaniem i przetwarzaniem danych. Typ CHAR jest przeznaczony do przechowywania łańcuchów o stałej długości, co w przypadku danych logicznych jest nieefektywne. Przechowywanie wartości 'true' i 'false' jako łańcuchów znakowych zajmuje więcej miejsca i komplikuje operacje porównywania, co negatywnie wpływa na wydajność zapytań. Z kolei typ DOUBLE jest zaprojektowany do przechowywania liczb zmiennoprzecinkowych, co jest absolutnie nieodpowiednie dla sytuacji, gdy mamy do czynienia z dwiema dychotomicznymi wartościami. Gdybyśmy zastosowali DOUBLE, moglibyśmy nieświadomie wprowadzać wartości, które nie mają sensu w kontekście statusu wypożyczenia, co wprowadzałoby chaos i błędy w danych. Typ VARCHAR(5) również jest nieodpowiedni, ponieważ chociaż umożliwia przechowywanie łańcuchów, nie jest to podejście rekomendowane dla danych logicznych, znów prowadząc do nieefektywności oraz ryzyka błędów typów. Używając niewłaściwych typów danych, można wprowadzać niejednoznaczność i utrudniać interpretację danych, co jest sprzeczne z zasadami projektowania baz danych. W praktyce, najlepsze podejście to stosowanie typów danych, które najlepiej pasują do charakterystyki przechowywanych informacji, co w tym przypadku jasno wskazuje na BOOLEAN jako najodpowiedniejszy wybór.

Pytanie 23

Jakie z wyrażeń logicznych w języku C weryfikuje, czy zmienna o nazwie zm1 znajduje się w zakresie (6, 203)?

A. (zm1 > 6) && (zm1 <= 203)
B. (zm1 > 6) || (zm1 <= 203)
C. (zm1 > 6) && (zm1 != 203)
D. (zm1 > 6) || (zm1 != 203)
Wyrażenie (zm1 > 6) && (zm1 <= 203) jest poprawne, ponieważ warunek ten precyzyjnie sprawdza, czy zmienna zm1 znajduje się w przedziale otwartym (6, 203]. Oznacza to, że zm1 musi być większe od 6 i jednocześnie mniejsze lub równe 203. Taki zapis jest zgodny z typowym podejściem używanym w programowaniu, gdzie ważna jest precyzyjna kontrola wartości zmiennych. W praktyce, takie wyrażenie może być zastosowane w sytuacjach, gdzie potrzebujemy przefiltrować dane, na przykład przy walidacji danych wejściowych w formularzach lub przy definiowaniu zakresu wartości w algorytmach operujących na liczbach. Używanie operatorów logicznych w ten sposób jest zgodne z najlepszymi praktykami programowania, gdzie ważne jest nie tylko uzyskanie oczekiwanego wyniku, ale również czytelność i zrozumiałość kodu. Przykładowo, jeżeli mamy do czynienia z systemem zarządzania użytkownikami, można sprawdzać wiek użytkownika, aby upewnić się, że spełnia określone wymagania wiekowe, jednocześnie unikając sytuacji, w których użytkownicy mogą być nieuprawnieni do korzystania z systemu.

Pytanie 24

Jaką cechę pola w tabeli należy ustalić, aby pole mogło przyjmować wyłącznie dane składające się z cyfr?

Ogólne
Rozmiar pola255
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. Maskę wprowadzania
B. Tagi inteligentne
C. Wartość domyślną
D. Regułę sprawdzania poprawności
Tagi inteligentne to narzędzie, które można znaleźć w dokumentach czy w systemach do zarządzania danymi. Służą do automatycznego rozpoznawania danych, na przykład dat czy adresów, ale nie mają możliwości ograniczania wprowadzanych danych pod kątem ich formatu, jak na przykład cyfry. Reguły sprawdzania poprawności dane na poziomie tabeli, co oznacza, że można sprawdzać, czy spełniają pewne kryteria przy zapisywaniu. To działa, ale jest bardziej ogólne i nie zastąpi maski wprowadzania, bo te działają w czasie rzeczywistym. Z kolei wartość domyślna to coś, co automatycznie wprowadza dane w polu, jeśli użytkownik nic nie poda. To może być przydatne, gdy jakieś pole zawsze powinno mieć określoną wartość, chyba że użytkownik zadecyduje inaczej. Tylko że wartość domyślna nie reguluje, jakie dane mogą być wpisywane, co jest właśnie wymagane w pytaniu o ograniczenie danych do cyfr. Często myślimy, że wartość domyślna lub reguły mogą kontrolować format danych na bieżąco, ale to jest rola maski wprowadzania, która działa w momencie, gdy piszemy, więc chroni integralność już na etapie wprowadzania danych.

Pytanie 25

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

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

Pytanie 26

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

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

Pytanie 27

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. dodawania i modyfikacji danych w tabeli sklep
B. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
C. tworzenia oraz modyfikowania struktury w tabeli sklep
D. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
To, co zaznaczyłeś, jest jak najbardziej na miejscu. W tym SQL-u, 'GRANT CREATE, ALTER ON sklep.* TO adam;' dajesz użytkownikowi, czyli adamowi, możliwości tworzenia i zmieniania struktury wszystkich tabel w bazie 'sklep'. Słowo 'CREATE' pozwala mu na tworzenie nowych tabel, a 'ALTER' umożliwia mu wprowadzanie zmian w tych istniejących, na przykład dodawanie czy usuwanie kolumn. Ważne, żeby ogarnąć, że 'sklep.*' oznacza wszystkie tabele w danej bazie, co jest zgodne z dobrymi praktykami w zarządzaniu bazami danych. No bo jakby adam miał ochotę dodać nową tabelę albo zmodyfikować istniejącą, to musi mieć odpowiednie uprawnienia. Przykładem może być sytuacja, gdy administrator daje programiście dostęp do zmian w strukturze tabel, żeby móc dodać nowe funkcje do aplikacji – to naprawdę ważne dla rozwoju systemu.

Pytanie 28

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
D. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
Odpowiedź, w której użyłeś znaczników <b> i <i> w odpowiednich miejscach, jest całkiem dobra. Znak <b> jest świetny do pogrubiania tekstu, co przydaje się, gdy chcesz podkreślić coś ważnego. Natomiast <i> pozwala na pochylanie tekstu, co dodaje mu charakteru i może sugerować cytaty czy tytuły. Co ciekawe, znacznik <sup> stosujemy, gdy chcemy pokazać górny indeks, np. przy potęgach czy jednostkach miar. Przykład takiego użycia byłby taki: <b>Waga</b> <i>w kilogramach</i> wynosi <sup>2</sup> dla dwóch jednostek. Jak widać, stosowanie HTML w odpowiedni sposób pozwala robić czytelne i estetyczne prezentacje, co jest zgodne z dobrymi praktykami w web designie oraz standardami W3C. Warto też pamiętać, że dobrze dobrane znaczniki mają znaczenie nie tylko wizualne, ale także pomagają w indeksowaniu treści przez wyszukiwarki, co z kolei wpływa na SEO.

Pytanie 29

System informatyczny umożliwiający tworzenie, edycję i publikację treści na stronach internetowych bez konieczności posiadania zaawansowanej wiedzy technicznej, to

A. DBMS
B. CMS
C. ERP
D. RDBMS
Poprawna odpowiedź to CMS, czyli Content Management System – system zarządzania treścią. Jest to specjalne oprogramowanie, które pozwala tworzyć, edytować i publikować treści na stronie WWW bez konieczności pisania kodu w HTML, CSS czy PHP. Z mojego doświadczenia w szkołach i firmach to właśnie CMS-y są najczęściej używane do budowy stron firmowych, blogów, portali informacyjnych czy nawet prostych sklepów internetowych. Typowe przykłady CMS-ów to WordPress, Joomla, Drupal czy TYPO3. W praktyce wygląda to tak, że logujesz się do panelu administracyjnego przez przeglądarkę, masz formularze do dodawania artykułów, edytor WYSIWYG („to co widzisz, to dostajesz”), możliwość wstawiania obrazków, filmów z YouTube, galerii, a nawet zarządzania menu i użytkownikami. Nie trzeba przy tym znać składni HTML ani obsługi bazy danych – system sam zapisuje dane w bazie, generuje strony zgodne z wybranym szablonem i dba o podstawową strukturę. Dobre praktyki w pracy z CMS-em to używanie aktualnych motywów i wtyczek, regularne aktualizacje systemu (ze względów bezpieczeństwa), wykonywanie kopii zapasowych oraz dbanie o przejrzystą strukturę treści (nagłówki H1, H2, H3, sensowne adresy URL, metaopisy). W branży przyjmuje się, że CMS powinien wspierać SEO (np. możliwość ustawiania tytułów stron i opisów), wielojęzyczność, system ról i uprawnień użytkowników (redaktor, autor, administrator) oraz wersjonowanie treści. Moim zdaniem znajomość podstaw obsługi CMS-a to dziś absolutny standard w zawodach związanych z tworzeniem i utrzymaniem stron WWW.

Pytanie 30

Jednym z typów testów jednostkowych jest analiza tras, która polega na

A. określeniu punktu startowego i końcowego oraz badaniu dostępnych ścieżek pomiędzy tymi punktami
B. utworzeniu kilku zbiorów danych o zbliżonym sposobie przetwarzania i wykorzystaniu ich do przeprowadzenia testu
C. testowaniu obiektów pod kątem inicjalizacji oraz zwolnienia zarezerwowanej pamięci
D. testowaniu wartości granicznych zestawu danych
Rozumienie błędów w odpowiedziach może pomóc lepiej ogarnąć, o co chodzi z analizą ścieżek w testach jednostkowych. Testowanie wartości brzegowych, chociaż bardzo ważne dla jakości oprogramowania, skupia się tylko na granicach danych wejściowych i nie pokazuje pełnego obrazu możliwych ścieżek w kodzie. Z kolei sprawdzanie obiektów pod kątem pamięci to temat na inną rozmowę i niekoniecznie ma coś wspólnego z analizą ścieżek; chodzi o to, że to podejście nie dotyka, jak kontrola przepływu działa w kodzie. Robienie kilku zbiorów danych, które się powtarzają w przetwarzaniu, też nie jest tym samym, co badanie ścieżek, a raczej dotyczy testowania z użyciem takich danych. Dużym błędem jest to, że myślimy, iż analiza ścieżek to tylko spojrzenie na dane czy pamięć. W rzeczywistości trzeba patrzeć na całość programu, zarówno na dane, jak i logikę działania, co pokazuje, jak ważna jest analiza ścieżek w znajdowaniu problemów w kodzie.

Pytanie 31

Jaki zapis znacznika <div> może występować w dokumencie HTML tylko raz, a jego ponowne użycie spowoduje pojawienie się błędów podczas walidacji dokumentu?

A. <div>
B. <div class="klasa1 klasa2">
C. <div class="klasa">
D. <div id="identyfikator">
Zapis <div class="klasa1 klasa2"> nie narusza zasad walidacji HTML, ponieważ atrybut class może występować wielokrotnie w obrębie dokumentu. Dzięki temu, można przypisać wiele klas do jednego elementu, co jest przydatne w przypadku stylizacji CSS, gdzie różne klasy mogą być wykorzystywane do różnych celów. Zastosowanie wielu klas umożliwia elastyczne zarządzanie stylami, jednak nie wpływa na unikalność elementów. Z kolei zapis <div class="klasa"> jest również poprawny i pozwala na przypisanie pojedynczej klasy do elementu. Klasy są przydatne w kontekście grupowania elementów lub stosowania do nich wspólnych stylów, co jest zgodne z zasadami modularności w CSS. Natomiast zapis <div> jest ogólnym rozwiązaniem, które nie wprowadza żadnych specyfikacji, ale również nie generuje błędów walidacyjnych. Zrozumienie różnicy między atrybutem id a atrybutem class jest kluczowe w HTML. Na przykład, stosując id, jesteśmy zobowiązani do jego unikalności, co nie jest wymagane dla klas. Dla wielu początkujących programistów mylenie tych dwóch atrybutów może prowadzić do nieporozumień i problemów z walidacją kodu. Przy projektowaniu stron internetowych należy skupić się na ich strukturyzacji oraz semantyce, aby zapewnić łatwiejsze zarządzanie kodem i jego przyszłą rozbudowę.

Pytanie 32

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

A. br, img, hr
B. div, article, header
C. table, tr, td
D. span, strong, em
Wybór znaczników jak <br>, <img> czy <hr> to nie jest najlepszy pomysł, gdy mówimy o strukturze dokumentu. <br> tylko wstawia przerwę w tekście i nie ma tu mowy o jakimkolwiek grupowaniu treści. <img> dodaje obrazy, a <hr> to tylko podział wizualny między sekcjami. To wszystko bardziej estetyka niż sensowna organizacja. Również <table>, <tr> i <td> są do prezentacji danych w tabelach, co jest inną bajką. Przy tabelach trzeba mieć na uwadze, że służą one głównie do pokazywania danych, a nie porządkowania treści. Z kolei <span>, <strong> i <em> też nie dają rady, bo ich głównym zadaniem jest stylizowanie tekstu lub nadawanie mu znaczenia. Jak się te znaczniki używa nie tak jak trzeba, to kończy się na nieczytelnych dokumentach, co jest sprzeczne z dobrymi praktykami w tworzeniu stron. I pamiętaj, nieodpowiednie znaczniki mogą też prowadzić do problemów z dostępnością i obniżać SEO, co jest ważne dla widoczności w internecie.

Pytanie 33

W języku SQL, aby wybrać wszystkie rekordy z tabeli B, w tym część wspólną z tabelą A, należy zastosować typ związku

Ilustracja do pytania
A. A INNER JOIN B
B. A LEFT JOIN B
C. A RIGHT JOIN B
D. A FULL OUTER JOIN B
Poprawnie – w tym zadaniu kluczowe jest zrozumienie, że interesuje nas **wszystko z tabeli B**, a dodatkowo – tam gdzie się da – dokładamy dane z tabeli A. Dokładnie tak działa `RIGHT JOIN` zapisany jako `A RIGHT JOIN B ON ...`. Prawa tabela w zapisie JOIN (czyli B) jest zawsze tą „obowiązkową”: dostajemy wszystkie jej wiersze, a dane z lewej (A) pojawiają się tylko tam, gdzie warunek łączenia jest spełniony. Tam gdzie dopasowania w A nie ma, kolumny z A przyjmują wartość `NULL`. To dokładnie odpowiada zielonemu obszarowi na diagramie – cała B plus część wspólna A∩B. W praktyce taki RIGHT JOIN przydaje się np. gdy tabela B jest tabelą główną (np. `Zamowienia`), a tabela A jest pomocnicza (np. `Klienci_archiwalni`), ale z jakiegoś powodu w zapytaniu chcemy właśnie B mieć „gwarantowaną” – czyli nawet jeśli w A brakuje powiązanego rekordu, zamówienie i tak ma się pojawić w wynikach. Przykładowo: `SELECT * FROM Klienci_archiwalni A RIGHT JOIN Zamowienia B ON A.id_klienta = B.id_klienta;` Dobra praktyka w SQL mówi, że częściej stosuje się `LEFT JOIN`, bo jest czytelniejszy (łatwiej myśleć: „biorę wszystko z lewej”), ale logicznie RIGHT JOIN robi to samo, tylko „odwraca perspektywę”. Wiele zespołów wręcz zaleca, żeby zamiast RIGHT JOIN przepisać zapytanie tak, by użyć LEFT JOIN i zamienić kolejność tabel – ale na egzaminach i w testach warto znać oba. Moim zdaniem dobrze jest też od razu kojarzyć: `LEFT JOIN` – wszystko z lewej, `RIGHT JOIN` – wszystko z prawej, `INNER JOIN` – tylko przecięcie, `FULL OUTER JOIN` – suma zbiorów. Dzięki temu każde zadanie z diagramem Venna w SQL robi się dużo prostsze i mniej mylące.

Pytanie 34

Kolor, który ma odcień niebieski to kolor

A. #EE00EE
B. #EE0000
C. #00EE00
D. #0000EE
Kolor niebieski, który oznaczamy kodem #0000EE, to naprawdę ciekawa sprawa. W systemie hex to oznacza, że składowa niebieska (B) ma najwyższą możliwą wartość, czyli 238, a czerwony (R) i zielony (G) są na poziomie 0. To jest typowy sposób klasyfikacji kolorów w RGB, który jest super przydatny w grafice czy web designie. Niebieski świetnie nadaje się na tła stron czy różne elementy interfejsu, bo przyciąga wzrok i jest dość przejrzysty. Na przykład w CSS możemy napisać: `background-color: #0000EE;`. Fajnie jest znać te kody kolorów, bo ułatwia to komunikację w zespole i realizację pomysłów artystycznych.

Pytanie 35

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

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie mógł przeszukiwać dane w tabeli klienci.
B. Będzie mógł zmieniać strukturę tabeli klienci.
C. Będzie mógł dodawać rekordy do tabeli klienci.
D. Będzie mógł eliminować rekordy z tabeli klienci.
Odpowiedź "Będzie mógł zmienić strukturę tabeli klienci" jest prawidłowa, ponieważ użytkownik jan zyskał pełne uprawnienia do tabeli klienci za pomocą polecenia GRANT ALL PRIVILEGES. Oznacza to, że posiada on wszystkie dostępne uprawnienia w tym zakresie, w tym możliwość modyfikacji struktury tabeli, co obejmuje dodawanie lub usuwanie kolumn, zmienianie typów danych oraz wprowadzanie modyfikacji do indeksów. Jednakże, zastosowane polecenie REVOKE powoduje odebranie wybranych uprawnień, tj. SELECT, INSERT, UPDATE oraz DELETE. W związku z tym, mimo że jan może zmieniać strukturę tabeli, nie ma już możliwości wprowadzania, usuwania ani przeglądania danych. Praktycznie, na przykład, jeżeli jan chciałby dodać nową kolumnę do tabeli klienci, ma taką możliwość, jednak nie będzie mógł dodać nowych rekordów ani ich edytować. To podejście jest zgodne z najlepszymi praktykami zarządzania uprawnieniami w systemach baz danych, gdzie ważne jest precyzyjne określenie, jakie operacje mogą być realizowane przez różnych użytkowników.

Pytanie 36

Tabela Pacjenci ma pola: imie, nazwisko, wiek, lekarz_id. Aby zestawić raport zawierający wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia, którzy zapisani są do lekarza o id równym 6, można posłużyć się kwerendą SQL

A. SELECT imie, nazwisko WHERE wiek < 18 OR lekarz_id = 6;
B. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6;
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 OR lekarz_id = 6;
D. SELECT imie, nazwisko WHERE wiek < 18 AND lekarz_id = 6;
Poprawna kwerenda to: SELECT imie, nazwisko FROM Pacjenci WHERE wiek < 18 AND lekarz_id = 6; i ona dokładnie realizuje założenia zadania. Po pierwsze, część SELECT imie, nazwisko określa, jakie kolumny mają znaleźć się w wyniku – tylko imię i nazwisko, bez wieku czy identyfikatora lekarza. To jest dobra praktyka: wybieramy tylko te dane, które są faktycznie potrzebne w raporcie, zamiast używać SELECT *. Po drugie, FROM Pacjenci wskazuje tabelę źródłową. W standardowym SQL klauzula FROM jest obowiązkowa przy pobieraniu danych z tabel, bez niej serwer bazodanowy po prostu nie wie, skąd ma brać rekordy. Moim zdaniem to jest taki fundament, który warto mieć odruchowo w palcach. Najważniejsza jest jednak klauzula WHERE wiek < 18 AND lekarz_id = 6. Warunek wiek < 18 filtruje wyłącznie pacjentów niepełnoletnich, a lekarz_id = 6 ogranicza wynik do tych osób, które przypisane są do konkretnego lekarza o identyfikatorze 6. Zastosowanie operatora logicznego AND oznacza, że oba warunki muszą być spełnione jednocześnie. To dokładnie odpowiada treści zadania: pacjent musi być jednocześnie poniżej 18 lat i zapisany do lekarza nr 6. W praktyce takie kwerendy są podstawą raportowania w systemach medycznych, CRM-ach, systemach sprzedażowych itd. Na przykład podobną konstrukcję można użyć: SELECT * FROM Zamowienia WHERE status = 'nowe' AND kwota > 1000; – logika jest identyczna. Dobrą praktyką jest też czytelne zapisywanie warunków logicznych i unikanie niejednoznacznych kombinacji AND/OR bez nawiasów. W większych projektach standardem jest również używanie aliasów tabel, ale tu jedna tabela w zupełności wystarcza. Warto zapamiętać ten szablon: SELECT [kolumny] FROM [tabela] WHERE [warunek1] AND [warunek2]; bo pojawia się praktycznie wszędzie w pracy z SQL.

Pytanie 37

Aby obraz umieszczony za pomocą kodu HTML mógł być rozpoznawany przez programy wspierające osoby niewidome, konieczne jest określenie atrybutu

A. src
B. sizes
C. border
D. alt
Atrybut 'alt' (alternatywny tekst) jest kluczowym elementem w kontekście dostępności stron internetowych, szczególnie dla osób niewidzących. Jego głównym celem jest dostarczenie opisowej informacji o obrazie, który nie może być bezpośrednio widziany. W przypadku obrazów, które nie są widoczne z różnych powodów (np. uszkodzenie pliku, brak połączenia internetowego lub korzystanie z czytników ekranu), tekst alternatywny pomaga zrozumieć kontekst i znaczenie danego obrazu. Przykład zastosowania: dla obrazka przedstawiającego logo firmy, można użyć atrybutu alt w następujący sposób: <img src='logo.png' alt='Logo firmy XYZ'>. W ten sposób, jeśli obrazek nie załadowałby się, użytkownik korzystający z czytnika ekranu otrzyma informację o tym, co ten obraz przedstawia. Definiowanie atrybutu 'alt' jest zgodne z wytycznymi WCAG (Web Content Accessibility Guidelines), które zalecają, aby wszystkie obrazki, które pełnią funkcję informacyjną, były opisane w taki sposób, aby zapewnić pełny dostęp do treści wszystkim użytkownikom. W praktyce takie podejście nie tylko poprawia dostępność, ale również pozytywnie wpływa na SEO, ponieważ wyszukiwarki również analizują ten atrybut.

Pytanie 38

W języku SQL, aby usunąć wszystkie rekordy z tabeli, nie eliminując jej samej, można skorzystać z polecenia

A. DROP
B. UPDATE
C. ALTER
D. TRUNCATE
Polecenie TRUNCATE w języku SQL jest używane do usunięcia wszystkich danych z tabeli w sposób szybki i efektywny, bez potrzeby usuwania samej tabeli. TRUNCATE działa na poziomie struktury bazy danych, co oznacza, że nie zapisuje informacji o usuniętych rekordach w dzienniku transakcji, co czyni operację znacznie szybszą w porównaniu do innych metod, takich jak DELETE. W praktyce, gdy chcesz zresetować tabelę do stanu pustego, TRUNCATE jest najlepszym wyborem. Przykładem zastosowania może być sytuacja, gdy tabela tymczasowa zawiera dane, które nie są już potrzebne po zakończeniu procesu przetwarzania. W takim przypadku użycie polecenia TRUNCATE pozwala na szybkie usunięcie wszystkich rekordów, a sama struktura tabeli pozostaje nienaruszona do przyszłego użycia. Dobrą praktyką jest również stosowanie TRUNCATE w sytuacjach, gdzie nie potrzebujemy zachować historii operacji na danych, co zwiększa wydajność bazy danych. Zgodnie z zaleceniami standardów SQL, TRUNCATE jest bardziej odpowiednie do operacji na dużych zbiorach danych, gdyż minimalizuje czas operacji i obciążenie systemu.

Pytanie 39

document.getElementById("napis").innerHTML = Date); // Aby poprawnie skomentować podaną linijkę kodu w języku JavaScript, należy dodać komentarz po znakach //

A. zmiana właściwości atrybutu innerHTML
B. wyświetlenie daty oraz czasu w znaczniku o id = napis
C. niepoprawne informacje
D. wyświetlenie ciągu "Date()" w znaczniku o id = napis
W przedstawionej linii kodu JavaScript, 'document.getElementById("napis").innerHTML = Date;', mamy do czynienia z modyfikacją zawartości elementu HTML o identyfikatorze 'napis'. Funkcja 'getElementById' pozwala na selekcję elementu DOM, a atrybut 'innerHTML' umożliwia przypisanie nowej wartości, która będzie wyświetlana w tym elemencie. Wartością, która zostanie przypisana, jest 'Date', a nie 'Date()'. Przy użyciu 'Date' bez nawiasów, odnosi się do obiektu funkcji, a nie do wyniku wykonania tej funkcji, który zwraca aktualną datę i czas. W poprawnej wersji kodu powinno być 'document.getElementById("napis").innerHTML = new Date();', co spowoduje wyświetlenie bieżącej daty i godziny w elemencie o id 'napis'. Takie podejście jest zgodne z aktualnymi standardami ECMAScript, a także jest często wykorzystywane w aplikacjach webowych do dynamicznej aktualizacji treści na stronach internetowych, co zwiększa ich interaktywność i użytkowalność. Dla lepszego zrozumienia, praktycznym przykładem może być użycie tego kodu w aplikacji, która pokazuje czas rzeczywisty na stronie, co jest popularne w wielu projektach webowych.

Pytanie 40

Czynność, w której identyfikuje się i eliminuje błędy w kodzie źródłowym programów, to

A. kompilowanie
B. normalizacja
C. debugowanie
D. standaryzacja
Debugowanie to kluczowy proces w inżynierii oprogramowania, który polega na identyfikacji, lokalizacji oraz usuwaniu błędów (bugów) w kodzie źródłowym. W trakcie debugowania programista używa różnych narzędzi, takich jak debuggery, które pozwalają na analizę działania programu w czasie rzeczywistym. Przykłady takie jak GDB dla systemów Linux czy Visual Studio Debugger dla aplikacji na Windows ilustrują, jak można krok po kroku monitorować zmienne i wykonanie kodu. Proces ten jest niezbędny do zapewnienia wysokiej jakości oprogramowania, a jego znaczenie podkreślają standardy takie jak ISO/IEC 25010, które definiują jakość oprogramowania w kontekście użyteczności, wydajności oraz niezawodności. Debugowanie nie tylko poprawia działanie aplikacji, ale również przyczynia się do lepszego zrozumienia kodu przez programistów, co jest istotne w kontekście przyszłej konserwacji i rozwoju oprogramowania. Właściwe techniki debugowania, takie jak użycie punktów przerwania czy analizowanie stanu stosu, mogą znacząco przyspieszyć proces rozwoju i redukować liczbę wprowadzanego do produkcji kodu z błędami.