Wyniki egzaminu

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

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

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

Na przedstawionej tabeli samochodów wykonano zapytanie SQL:

SELECT model FROM samochody
WHERE rocznik=2016;

Jakie wartości zostaną zwrócone w wyniku tego zapytania?
idmarkamodelrocznikkolorstan
1FiatPunto2016czerwonybardzo dobry
2FiatPunto2002czerwonydobry
3FiatPunto2007niebieskibardzo dobry
4OpelCorsa2016grafitowybardzo dobry
5OpelAstra2003niebieskiporysowany lakier
6ToyotaCorolla2016czerwonybardzo dobry
7ToyotaCorolla2014szarydobry
8ToyotaYaris2004granatowydobry
A. Punto, Corsa, Astra, Corolla, Yaris
B. Fiat, Opel, Toyota
C. Czerwony, grafitowy
D. Punto, Corsa, Corolla
Zapytanie SQL SELECT model FROM samochody WHERE rocznik=2016; jest skonstruowane w sposób, który filtruje wyniki do wierszy, gdzie kolumna rocznik ma wartość 2016. Następnie zostaje wyświetlona tylko kolumna model z tych wierszy. W przedstawionej tabeli samochodów wiersze o roczniku 2016 mają modele Punto Corsa i Corolla. Dlatego odpowiedź zawiera te konkretne modele. To zapytanie ilustruje podstawową funkcję filtracji danych w SQL co jest kluczowe w zarządzaniu bazami danych. Użycie WHERE pozwala na selektywne pobieranie danych co jest niezbędne w analizie danych. W praktyce takie zapytania mogą być stosowane w systemach zarządzania zasobami np. w branży motoryzacyjnej do śledzenia modeli pojazdów według rocznika. Dobre praktyki obejmują używanie indeksów na kolumnach wykorzystywanych w klauzuli WHERE aby zoptymalizować wydajność zapytań. Indeksy pomagają w szybszym wyszukiwaniu i filtracji danych co jest szczególnie ważne w dużych bazach danych. Konsystencja oraz dokładność zapytań SQL są kluczowe dla efektywnego funkcjonowania systemów opartych na bazach danych.

Pytanie 2

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości lub funkcji
B. wielu wartości tylko tekstowych
C. wielu wartości różnego rodzaju
D. wielu wartości tylko liczbowych
Obiekt typu array w języku JavaScript jest niezwykle elastycznym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu. Arrays mogą zawierać liczby, stringi, obiekty, a nawet inne tablice, w ramach jednego zbioru. Taka struktura danych jest bardzo przydatna w programowaniu, szczególnie w kontekście pracy z danymi, gdyż umożliwia tworzenie kolekcji o zmiennej długości, które można łatwo przetwarzać. Na przykład, w aplikacjach webowych można wykorzystać tablice do grupowania danych z formularzy lub przechowywania wyników zapytań do bazy danych. Dzięki metody takim jak .push(), .pop() czy .map(), programiści mogą łatwo manipulować danymi w tablicach. Ważnym aspektem jest również to, że tablice są obiektami w JavaScript, co oznacza, że można do nich przypisywać dodatkowe właściwości i metody, zwiększając ich funkcjonalność. Przykładem zaawansowanego zastosowania tablic jest wykorzystanie ich do implementacji algorytmów, takich jak sortowanie czy przeszukiwanie danych. Zgodnie z dokumentacją MDN, tablice w JavaScript są dynamiczne, co oznacza, że ich rozmiar może być dostosowywany w czasie działania programu, co czyni je bardzo wszechstronnym narzędziem w pracy programisty.

Pytanie 3

Po zrealizowaniu przedstawionego fragmentu kodu w języku C/C++ do zmiennej o nazwie zmienna2 przypisany zostanie ```int zmienna1 = 158; int *zmienna2 = &zmienna1;```

A. przypisana zamieniona na łańcuch wartość, która jest przechowywana w zmienna1
B. przypisany adres zmiennej o nazwie zmienna1
C. przypisana ta sama wartość, która jest przechowywana w zmienna1
D. przypisana liczba w kodzie binarnym odpowiadająca wartości, która jest przechowywana w zmienna1
W odpowiedzi 1 stwierdzono, że zmiennej zmienna2 zostanie przypisany adres zmiennej zmienna1. To stwierdzenie jest poprawne, ponieważ w kodzie C/C++ operator '&' jest używany do uzyskania adresu zmiennej. W prezentowanym fragmencie kodu zmienna2 jest wskaźnikiem, który przechowuje adres zmiennej zmienna1, co oznacza, że zmienna2 wskazuje na lokalizację w pamięci, w której przechowywana jest wartość zmiennej zmienna1. Takie podejście jest kluczowe w programowaniu niskopoziomowym, gdzie manipulacja adresami pamięci jest często wykorzystywana do efektywnego zarządzania zasobami. Przykład praktyczny to dynamiczna alokacja pamięci, gdzie programista może przydzielać i zwalniać pamięć w trakcie działania programu, co jest możliwe dzięki wskaźnikom. Zrozumienie wskaźników i adresów jest fundamentalne w C/C++, a ich właściwe użycie przyczynia się do optymalizacji kodu oraz umożliwia tworzenie bardziej złożonych struktur danych, takich jak listy, stosy czy kolejki.

Pytanie 4

Zaproponowany blok ilustruje operację

Ilustracja do pytania
A. realizacji zadania w pętli
B. załadowania lub przedstawienia danych
C. wykorzystania wcześniej zdefiniowanej procedury lub funkcji
D. podjęcia decyzji
Podjęcie decyzji w programowaniu jest kluczowym elementem umożliwiającym dynamiczne i warunkowe działania w aplikacjach. Symbolicznie, blok decyzyjny w diagramie przepływu, takim jak przedstawiony na obrazku, oznacza punkt, w którym program sprawdza określony warunek i w zależności od jego wyniku podejmuje różne ścieżki działania. Jest to często implementowane przy użyciu struktur decyzyjnych takich jak instrukcje if-else w wielu językach programowania. Na przykład w języku Python decyzję można wyrazić jako if temperatura > 30: print('Gorąco') else: print('Chłodno'). Decyzje te pozwalają programowi reagować na zmieniające się warunki i dane wejściowe, co jest niezbędne w tworzeniu interaktywnych aplikacji czy systemów sterowania. Zgodnie z dobrymi praktykami w inżynierii oprogramowania, właściwe stosowanie bloków decyzyjnych sprzyja czytelności kodu i efektywności jego działania. Dodatkowo, w większych projektach często stosuje się wzorce projektowe takie jak stan lub strategia, które opierają się na mechanizmach decyzyjnych, pomagając zarządzać złożonością kodu i poprawiać jego skalowalność.

Pytanie 5

Jaki jest cel funkcji napisanej w PHP?

function fun1($liczba)
{
  if($liczba % 2 == 0)
    return 1;

  return 0;
}
A. Zwrócenie wartości 1, gdy liczba jest parzysta
B. Wypisanie liczby parzystej
C. Wypisanie liczby nieparzystej
D. Zwrócenie wartości 0, gdy liczba jest parzysta
Analizując błędne odpowiedzi, należy skupić się na różnicy między funkcją zwracającą wartość a funkcją wypisującą wynik. Wypisanie liczby parzystej sugerowałoby użycie funkcji echo lub print, co w kodzie nie występuje. Funkcja zwraca wartość za pomocą instrukcji return, co jest istotnym rozróżnieniem w kontekście projektowania funkcji. Wypisanie liczby nieparzystej również nie jest zgodne z treścią funkcji, ponieważ nie ma instrukcji ani warunku, który wskazywałby na takie działanie. Funkcja została zaprojektowana do zwracania wartości logicznej (w tym przypadku liczbowej 1 lub 0), które w dalszej części programu mogą być używane do podejmowania decyzji. Typowym błędem jest niezrozumienie różnicy między wypisywaniem a zwracaniem wartości oraz błędna interpretacja operatora modulo, który w tym przypadku jest kluczowy do zrozumienia działania funkcji. Brakującym elementem w niepoprawnych odpowiedziach jest również właściwe odczytanie instrukcji return i jej wpływu na przepływ sterowania w programie, co często prowadzi do nieporozumień w analizie kodu.

Pytanie 6

Jaki selektor stylizuje akapity tekstu z klasą tekst oraz element blokowy z identyfikatorem obrazki?

A. p.tekst + div#obrazki
B. p.tekst, div#obrazki
C. p#tekst, div.obrazki
D. p#tekst + div.obrazki
Poprawna odpowiedź to 'p.tekst, div#obrazki', ponieważ selektor 'p.tekst' odnosi się do wszystkich elementów <p>, które mają klasę 'tekst'. To podejście jest zgodne z zasadami CSS, gdzie '.' oznacza klasę. Z kolei 'div#obrazki' to selektor, który odnosi się do elementu <div> o ID 'obrazki'. W tym przypadku '#' jest używane do wskazania unikalnego identyfikatora. Dzięki temu możemy dostosować style do konkretnych elementów w HTML. Przykład zastosowania: jeżeli chcemy, aby akapity z klasą 'tekst' miały określony kolor tła oraz aby element <div> z ID 'obrazki' był wyśrodkowany na stronie, możemy napisać odpowiednie reguły CSS, które zastosują te style tylko do wskazanych elementów. Praktyka ta zwiększa przejrzystość kodu oraz ułatwia jego późniejsze zarządzanie. Zastosowanie odpowiednich selektorów zgodnych z zasadami CSS to klucz do efektywnego stylizowania stron internetowych oraz dobrych praktyk w zakresie tworzenia responsywnych interfejsów użytkownika.

Pytanie 7

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

Pytanie 8

Jak, wykorzystując język PHP, można zapisać w ciasteczku wartość z zmiennej dane na okres jednego dnia?

A. setcookie("dane", $dane, 0);
B. setcookie("dane", $dane, time());
C. setcookie("dane", "dane", 0);
D. setcookie("dane", $dane, time() + (3600*24));
Odpowiedź setcookie("dane", $dane, time() + (3600*24)); jest prawidłowa, gdyż prawidłowo ustawia ciasteczko o nazwie 'dane' z wartością zmiennej $dane na czas jednego dnia. Funkcja setcookie w PHP wymaga trzech podstawowych argumentów: nazwy ciasteczka, wartości oraz czasu wygaśnięcia. W tym przypadku używamy time() + (3600*24), co oznacza aktualny czas plus 24 godziny (3600 sekund w godzinie pomnożone przez 24). Taki sposób określenia czasu wygaśnięcia jest zgodny z zaleceniami bezpieczeństwa i zarządzania danymi w aplikacjach webowych, ponieważ umożliwia precyzyjne kontrolowanie okresu ważności ciasteczek. Przykładowo, jeśli nasze ciasteczko jest używane do przechowywania sesji użytkownika, wartość 'dane' może zawierać identyfikator sesji, co pozwala na zachowanie stanu użytkownika przez 24 godziny. Ważne jest także, aby przed użyciem setcookie nie było wysyłanych żadnych danych do przeglądarki. Dobrą praktyką jest również ustawianie flagi HttpOnly, aby zwiększyć bezpieczeństwo, oraz SameSite, aby ograniczyć ryzyko ataków CSRF.

Pytanie 9

W PHP, aby stworzyć obiekt pkt dla klasy Punkt, której definicja znajduje się poniżej, należy użyć polecenia

class Punkt {
  public $x;
  public $y;
}
A. pkt = new Punkt();
B. pkt Punkt();
C. pkt Punkt;
D. Punkt() pkt;
W języku PHP tworzenie obiektu z zdefiniowanej klasy wymaga użycia słowa kluczowego new. Poprawna instrukcja to pkt = new Punkt();. Słowo new jest używane do dynamicznego alokowania pamięci na nowy obiekt klasy Punkt. W tym przypadku Punkt jest klasą, która została wcześniej zdefiniowana w kodzie i zawiera właściwości publiczne takie jak $x i $y. Kiedy wykonujemy new Punkt(), wywoływany jest konstruktor klasy, który w tym przypadku jest domyślny, ponieważ klasa Punkt nie definiuje własnego konstruktora. Warto zauważyć, że zgodnie z dobrymi praktykami programowania w PHP, każda deklaracja nowego obiektu powinna być poprzedzona słowem new, co zapewnia czytelność i jednoznaczność kodu. Ten sposób tworzenia obiektów jest zgodny ze standardem PSR-12. Praktyczne zastosowanie tworzenia obiektów w PHP jest szerokie i obejmuje m.in. modelowanie danych w aplikacjach, obsługę struktur danych oraz implementację wzorców projektowych, takich jak singleton czy fabryka. Korzystanie z obiektów pozwala na przejrzyste i zorganizowane zarządzanie kodem oraz łatwą jego rozbudowę o nowe funkcje.

Pytanie 10

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

A. <a href='http://adres'> tekst </a>
B. <a href="mailto:adres"> tekst </a>
C. <a href="http://adres"> tekst <a>
D. <a href='mailto:adres'> tekst </a>
Odpowiedzi, które nie spełniają standardów HTML, prowadzą do niepoprawnych wyników. Na przykład, użycie pojedynczych cudzysłowów w atrybucie href, jak w konstrukcji <a href='mailto:adres'> tekst </a>, choć działa w wielu przeglądarkach, nie jest zgodne z zaleceniami HTML5, które preferują podwójne cudzysłowy. Ten błąd może prowadzić do problemów z interpretacją przez parsery HTML, a w ekstremalnych przypadkach może uniemożliwić poprawne wyświetlanie odsyłaczy. Dodatkowo, ostatnia odpowiedź <a href="http://adres"> tekst <a> jest błędna, ponieważ nie zamyka znacznika <a>, co skutkuje usunięciem semantycznego znaczenia linku i może prowadzić do problemów z dostępnością oraz indeksowaniem przez wyszukiwarki. Tego typu błędy są często wynikiem niedbałości lub braku zrozumienia podstaw HTML. Poprawna konstrukcja odsyłaczy jest kluczowa w budowaniu dostępnych stron internetowych, które są łatwe do nawigacji i interpretacji przez różne urządzenia i technologie asystujące. Przykłady błędów w HTML mogą również prowadzić do frustracji użytkowników, którzy mogą mieć problemy z interakcją z witryną, co w efekcie wpływa na ich postrzeganie jakości i profesjonalizmu danej strony.

Pytanie 11

Jaki styl CSS umożliwi ustawienie tekstu do prawej strony?

A. <p style="align: right">tekst</p>
B. <p style="font: right">tekst</p>
C. <p style="position: right">tekst</p>
D. <p style="text-align: right">tekst</p>
Właściwe wyrównanie tekstu do prawej strony w CSS można osiągnąć za pomocą właściwości 'text-align'. Używając deklaracji 'text-align: right', umożliwiamy umiejscowienie zawartości elementu blokowego, takiego jak <p>, w taki sposób, aby tekst był wyrównany do prawej krawędzi kontenera. Przykładowo, stosując <p style='text-align: right'>Tekst wyrównany do prawej</p>, uzyskujemy efekt, w którym cały tekst w obrębie akapitu zostaje przesunięty do prawej strony. Warto również zaznaczyć, że 'text-align' jest zgodne z W3C CSS Specifications, co oznacza, że jest standardową właściwością CSS uznawaną przez większość przeglądarek. W praktyce, stosowanie 'text-align' jest nie tylko ograniczone do akapitów, ale może być używane także w innych elementach, takich jak nagłówki, divy i inne bloki, co czyni go bardzo wszechstronnym narzędziem w stylizacji stron internetowych. Dodatkowo, właściwość ta jest fundamentalna w kontekście responsywnego projektowania stron, gdzie dopasowanie tekstu do różnych układów jest kluczowe dla odbioru treści.

Pytanie 12

Wskaż, który z poniższych jest poprawnym zapisem zmiennej w języku JavaScript.

A. var 2nameVar = 10;
B. const var-name = 10;
C. let variableName = 10;
D. var $name@ = 10;
W JavaScript istnieje kilka zasad dotyczących nazywania zmiennych, które są kluczowe dla poprawnego działania kodu. Zmienna nie może zaczynać się od cyfry, co jest błędem w przypadku zapisu <code>var 2nameVar = 10;</code>. Numer na początku nazwy zmiennej jest zabroniony, ponieważ może prowadzić do niejednoznaczności w rozumieniu kodu przez interpreter. Z kolei <code>const var-name = 10;</code> jest błędny z powodu użycia znaku minus, który nie jest dozwolony w nazwach zmiennych. Znak minus jest interpretowany jako operator, co powoduje, że taki zapis jest nieprawidłowy. Kolejna niepoprawna opcja to <code>var $name@ = 10;</code>. Chociaż znak dolara jest dozwolony w nazwach zmiennych, to znak <code>@</code> już nie. Użycie niedozwolonych znaków w nazwach zmiennych jest częstym błędem początkujących programistów, którzy nie są zaznajomieni z pełnym zakresem dozwolonych symboli. Moim zdaniem, zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w programowaniu. Dodatkowo, stosowanie się do standardowych konwencji nazewnictwa, takich jak camelCase, poprawia czytelność i zrozumiałość kodu, co jest istotne w pracy zespołowej i podczas utrzymania większych projektów. Warto pamiętać, że przestrzeganie dobrych praktyk programistycznych nie tylko zapobiega błędom, ale również ułatwia rozwój i testowanie aplikacji.

Pytanie 13

Jakie są określenia typowych komend języka SQL, które dotyczą przeprowadzania operacji na danych SQL DML (np.: dodawanie danych do bazy, usuwanie, modyfikowanie danych)?

A. DENY, GRANT, REVOKE
B. ALTER, CREATE, DROP
C. DELETE, INSERT, UPDATE
D. SELECT, SELECT INTO
Odpowiedź DELETE, INSERT, UPDATE jest prawidłowa, ponieważ te polecenia stanowią podstawowe instrukcje języka SQL DML (Data Manipulation Language), które są wykorzystywane do manipulacji danymi w bazie danych. DELETE służy do usuwania rekordów z tabel, co jest niezbędne w sytuacjach, gdy dane są już nieaktualne lub niepotrzebne. INSERT umożliwia dodawanie nowych rekordów, co jest kluczowe w procesie wprowadzania danych, na przykład dodawania nowych klientów do bazy danych. Z kolei UPDATE pozwala na modyfikację już istniejących danych, co jest istotne w przypadku zmiany informacji, takich jak aktualizacja adresu klienta. W praktyce te operacje są niezwykle ważne dla utrzymania spójności i aktualności danych w systemach zarządzania bazami danych. Warto również zauważyć, że stosowanie tych poleceń zgodnie z dobrymi praktykami, takimi jak transakcje, pozwala na zabezpieczenie integralności danych oraz umożliwia łatwe wycofywanie zmian w przypadku błędów.

Pytanie 14

W HTML, aby uzyskać rezultat jak w podanym przykładzie, należy użyć struktury `

Duży tekst zwykły tekst

A. <p><big>Duży tekst</big> zwykły tekst</p>
B. <p><strike>Duży tekst zwykły tekst</p>
C. <p><strike>Duży tekst</strike> zwykły tekst</p>
D. <p><big>Duży tekst</p> zwykły tekst
Odpowiedź <p><big>Duży tekst</big> zwykły tekst</p> jest poprawna, ponieważ wykorzystuje znacznik <big>, który jest zgodny z semantyką HTML i odpowiednio formatuje tekst, zwiększając jego rozmiar. Warto zauważyć, że użycie znacznika <big> jest zgodne z praktykami, które rekomendują wykorzystanie odpowiednich znaczników do modelowania treści w dokumentach HTML. Taki zabieg nie tylko pozwala na lepszą prezentację tekstu, ale także ułatwia dostępność strony, co jest istotne w kontekście WCAG (Web Content Accessibility Guidelines). Przykładem zastosowania może być sytuacja, w której chcemy wyróżnić istotne informacje w tekście, np. nagłówki sekcji lub kluczowe dane. Zastosowanie <big> w tym kontekście zwiększa czytelność oraz zwraca uwagę użytkowników, co jest szczególnie ważne w długich dokumentach. Warto również pamiętać, że stosowanie znaczników odpowiadających ich przeznaczeniu wspiera SEO, gdyż wyszukiwarki lepiej interpretują strukturę treści. Z tego powodu, używanie semantycznych i odpowiednich znaczników, takich jak <big>, jest kluczowe dla tworzenia poprawnych i funkcjonalnych stron internetowych.

Pytanie 15

DOM oferuje funkcje i atrybuty, które w JavaScript umożliwiają

A. wykonywanie operacji na zmiennych przechowujących wartości liczbowe
B. manipulowanie łańcuchami zadeklarowanymi w kodzie
C. pobieranie i modyfikowanie elementów strony załadowanej w przeglądarce
D. przesyłanie danych formularza bezpośrednio do bazy danych
Manipulacja łańcuchami, wysyłanie danych formularzy do baz danych oraz operacje na zmiennych liczbowych to pojęcia, które nie są bezpośrednio związane z funkcjonalnościami DOM. Przykładowo, manipulacja łańcuchami odnosi się do operacji na stringach w JavaScript, takich jak łączenie, dzielenie czy modyfikowanie tekstu, co nie ma związku z strukturą dokumentu HTML. W przypadku formularzy, wysyłanie danych do bazy danych jest zazwyczaj realizowane przez backend, a nie bezpośrednio przez DOM. DOM może jednak wspierać ten proces, umożliwiając zebranie danych w formularzach, ale to skrypty po stronie serwera zajmują się obsługą i przechowywaniem tych danych. Operacje na zmiennych liczbowych również są częścią podstawowej składni JavaScript, ale nie mają związku z manipulowaniem strukturą dokumentu. Często podczas nauki programowania zdarza się mylić koncepcje związane z różnymi warstwami aplikacji, co prowadzi do nieporozumień. Kluczowe jest zrozumienie, że DOM jest narzędziem do interakcji z dokumentem strony w przeglądarkach, a nie do manipulacji danymi czy zmiennymi w ogólnym sensie. Właściwe zrozumienie roli DOM w kontekście aplikacji webowych jest istotne dla efektywnego rozwoju złożonych interfejsów użytkownika.

Pytanie 16

Podczas działania skryptu JavaScript został w konsoli wygenerowany błąd związany z działaniami na atrybucie elementu DOM. Z komunikatu wynika, że próbowano ustawić atrybut dla

Ilustracja do pytania
A. paragrafu.
B. tabeli.
C. obrazu.
D. odnośnika.
Twoja odpowiedź była prawidłowa. Błąd 'Uncaught TypeError: Cannot set property 'src' of null' jest związany z próbą przypisania wartości do atrybutu 'src' nieistniejącego elementu DOM. Atrybut 'src' jest charakterystyczny dla elementów HTML obrazu, czyli <img>, i służy do określenia źródła obrazka. Gdy masz do czynienia z błędem tego typu, najczęściej wynika to z próby manipulacji atrybutem 'src' obrazu, który nie istnieje w strukturze DOM, co może wynikać na przykład z błędu w selektorze. Pamiętaj, że przed przypisaniem wartości atrybutu, warto upewnić się, że dany element DOM faktycznie istnieje. W przeciwnym razie, jak w tym przypadku, JavaScript zwróci błąd. Zrozumienie charakterystyki błędów i potrafiące identyfikowanie ich przyczyn jest kluczowe w procesie programowania.

Pytanie 17

Aby obraz dodany za pomocą kodu HTML był zrozumiały dla programów wspierających osoby niewidome, konieczne jest zdefiniowanie atrybutu

A. src
B. border
C. alt
D. sizes
Atrybut 'alt' w znaczniku <img> jest kluczowy dla dostępności treści internetowych. Jego główną funkcją jest dostarczenie alternatywnego opisu obrazu, który jest odczytywany przez programy wspierające osoby niewidome i niedowidzące, takie jak czytniki ekranu. Dzięki atrybutowi 'alt', użytkownicy, którzy nie mogą zobaczyć obrazu, są w stanie zrozumieć, co on przedstawia. Na przykład, jeśli obrazek przedstawia psa bawiącego się w parku, odpowiednia treść atrybutu 'alt' mogłaby brzmieć: 'Pies bawiący się w parku'. To nie tylko zwiększa dostępność strony, ale również poprawia doświadczenia użytkowników. Zgodnie z wytycznymi WCAG (Web Content Accessibility Guidelines), dostarczenie tekstu alternatywnego dla wszystkich obrazów jest niezbędne do zapewnienia pełnej dostępności treści. Przykład zastosowania: W przypadku strony e-commerce, gdzie obrazy produktów są kluczowe, odpowiednio zdefiniowany atrybut 'alt' pozwala osobom z ograniczeniami wzrokowymi na pełne zrozumienie oferty, co może wpłynąć na ich decyzje zakupowe.

Pytanie 18

Ustalenie w języku CSS wartości background-attachment: scroll oznacza, że

A. obraz tła pojawi się w prawym górnym rogu witryny
B. obrazek tła będzie się powtarzać (kafelki)
C. tło witryny będzie przesuwane wraz z przewijaniem strony
D. tło witryny pozostanie nieruchome i nie będzie się przesuwać podczas przewijania strony
Odpowiedź 2 jest poprawna, ponieważ zdefiniowana przez właściwość CSS 'background-attachment: scroll' oznacza, że tło strony przewija się razem z zawartością strony. W praktyce oznacza to, że gdy użytkownik przewija stronę w dół lub w górę, tło porusza się w tym samym kierunku, co inne elementy na stronie. Ta właściwość jest szczególnie przydatna w sytuacjach, kiedy chcemy, aby tło było bardziej zintegrowane z treścią, dając bardziej dynamiczny efekt wizualny. Zastosowanie 'scroll' jest zgodne z zachowaniem większości stron internetowych, gdzie tło i zawartość poruszają się synchronizacyjnie. Dobrym przykładem może być użycie tła w postaci gradientu lub subtelnego obrazu, który nie odwraca uwagi od treści, a jednocześnie wprowadza estetyczny element do projektu. Warto pamiętać, że w przypadku większych projektów, właściwość ta powinna być używana z rozwagą, aby uniknąć nieczytelności tekstu na tle lub nadmiernego rozpraszania uwagi użytkowników. Dobrą praktyką jest również testowanie różnych ustawień tła na różnych urządzeniach, aby zapewnić spójne doświadczenie użytkownika.

Pytanie 19

Efekt AutoDuck w obróbce dźwięku jest stosowany do

A. eliminacji szumów pochodzących z dźwięków w tle.
B. ściszenia dźwięku w tle, gdy pojawia się dźwięk pierwszoplanowy.
C. ocieplenia głosu i dźwięków pochodzących z tła.
D. wyrównania głośności całej ścieżki dźwiękowej.
W obróbce dźwięku łatwo pomylić różne efekty, bo większość z nich w jakiś sposób wpływa na głośność lub charakter brzmienia. AutoDuck jednak ma bardzo konkretne zastosowanie: automatyczne ściszanie tła, gdy pojawia się dźwięk pierwszoplanowy, najczęściej głos. To nie jest efekt „upiększający” czy „naprawiający” brzmienie, tylko typowo użytkowy mechanizm sterowania poziomem głośności między dwoma ścieżkami. Częsty błąd myślowy polega na tym, że wszystko, co „robi coś z głośnością”, wrzuca się do jednego worka. Ocieplenie głosu kojarzy się raczej z korekcją barwy (equalizer – podbicie niskich i niższych średnich częstotliwości) albo z delikatną kompresją, ewentualnie z efektami typu saturacja czy emulacja lampowa. AutoDuck niczego nie „ociepla”, on tylko zmniejsza poziom innej ścieżki, reagując na sygnał pierwszoplanowy. Podobnie z wyrównywaniem głośności całej ścieżki – od tego są kompresory, limitery, normalizacja czy tzw. loudness matching zgodny z normami EBU R128 lub ITU-R BS.1770. Te narzędzia analizują lub przetwarzają pojedynczą ścieżkę, żeby jej poziom był bardziej równy w czasie. AutoDuck działa relacyjnie: jedna ścieżka kontroluje głośność drugiej. Jeśli chodzi o eliminację szumów, tym zajmują się zupełnie inne algorytmy: redukcja szumów, bramki szumów (noise gate), filtry dolno- lub górnoprzepustowe, narzędzia typu DeNoise. Szum się tam analizuje i usuwa lub tłumi, najczęściej w oparciu o profil szumu albo próg głośności. AutoDuck nie rozpoznaje szumu ani nie czyści nagrania, tylko mechanicznie ścisza tło, gdy pojawia się ważniejszy sygnał. W produkcji multimediów na strony WWW czy do e-learningu dobrą praktyką jest łączenie kilku technik: najpierw oczyszczenie głosu z szumów i ustawienie jego stałego poziomu kompresją, a dopiero potem zastosowanie duckingu na muzyce w tle. Dzięki temu materiał brzmi profesjonalnie, a słuchacz nie musi walczyć z niedosłyszalnym komentarzem przykrytym za głośną muzyką.

Pytanie 20

Na podstawie relacji przedstawionej na ilustracji, można stwierdzić, że jest to relacja

Ilustracja do pytania
A. wiele do wielu pomiędzy kluczami głównymi obu tabel
B. jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra
C. jeden do jednego, gdzie obie tabele mają przypisane klucze obce
D. jeden do wielu, gdzie kluczem obcym jest pole w tabeli uslugi
Odpowiedzi błędne opierają się na niewłaściwym zrozumieniu relacji w bazach danych. Pierwsza z błędnych koncepcji sugeruje relację jeden do wielu, gdzie kluczem obcym jest pole w tabeli kadra, co jest odwrotne do przedstawionej struktury, gdyż w rzeczywistości pole kadra_id znajduje się w tabeli uslugi, wskazując na tabelę kadra. Relacja jeden do jednego, w której obie tabele mają klucze obce, oznaczałoby, że każdy rekord w jednej tabeli jest ściśle powiązany z jednym rekordem w drugiej, co nie jest przypadkiem dla tych danych. Takie podejście zwykle stosuje się, gdy tabele przechowują różne aspekty tego samego podmiotu, co nie jest odzwierciedlone na diagramie. Relacja wiele do wielu między kluczami głównymi obu tabel wymagałaby użycia dodatkowej tabeli łączącej, co umożliwiałoby powiązanie wielu rekordów każdej z tabel z wieloma rekordami drugiej, co również nie jest przedstawione tutaj. Typową pomyłką przy analizie tego typu relacji jest nieuwzględnienie struktury kluczy obcych i ich roli w łączeniu danych poprzez zrozumienie ich jako jedynie strukturalne powiązania, zamiast narzędzi umożliwiających integralność i spójność danych w bazie. Ważne jest, aby zawsze analizować kierunek relacji i rolę kluczowych pól w kontekście aplikacji i modelu danych, co zapobiega błędnym interpretacjom i wspiera prawidłowe projektowanie bazy danych, zgodnie z jej wymaganiami funkcjonalnymi i wydajnościowymi.

Pytanie 21

Gdzie należy umieścić znacznik metajęzyka HTML?

A. w sekcji nagłówkowej witryny internetowej
B. pomiędzy znacznikami <body> ... </body>
C. pomiędzy znacznikami paragrafu
D. w dolnej części witryny internetowej
Znacznik metajęzyka HTML, czyli tag <meta>, jest kluczowym elementem w sekcji nagłówkowej (head) dokumentu HTML. To tutaj umieszczamy informacje dotyczące dokumentu, takie jak jego tytuł, opis, słowa kluczowe oraz dane dotyczące kodowania i viewportu. Na przykład, aby ustawić kodowanie znaków na UTF-8, używamy znacznika <meta charset="UTF-8">. Jest to zgodne z wytycznymi W3C i najlepszymi praktykami SEO, ponieważ odpowiednie metadane pomagają wyszukiwarkom w zrozumieniu treści witryny. Inny przykład to <meta name="viewport" content="width=device-width, initial-scale=1.0">, który zapewnia, że strona jest responsywna na urządzeniach mobilnych. Umieszczając te znaczniki w nagłówku, można poprawić zarówno użyteczność, jak i widoczność witryny w internecie.

Pytanie 22

Aby wyciszyć dźwięk w filmie odtwarzanym w przeglądarce, do podanej definicji znacznika <video> powinien zostać dodany atrybut <video> <source src="film.mp4" type="video/mp4"> </video>

A. controls
B. autoplay
C. muted
D. loop
Atrybut 'muted' w znaczniku <video> jest kluczowy dla zarządzania dźwiękiem w odtwarzanych filmach. Gdy dodamy atrybut 'muted', zapewniamy, że film będzie odtwarzany bez dźwięku, co jest szczególnie istotne w kontekście doświadczenia użytkownika na stronie internetowej. W praktyce, wiele stron korzysta z automatycznego odtwarzania filmów w tle, co jest popularne w serwisach informacyjnych oraz mediach społecznościowych. Bez dźwięku, użytkownicy nie są rozpraszani, a strona nie wpływa negatywnie na ich doświadczenie przeglądania. Zgodnie z najlepszymi praktykami, należy również pamiętać o dostępności – filmy bez dźwięku mogą być łatwiej przyswajalne dla osób z problemami ze słuchem, a także unikamy sytuacji, w której nagłe dźwięki mogłyby wywołać dyskomfort. Atrybut 'muted' jest więc nie tylko funkcjonalny, ale także zgodny z zasadami projektowania stron internetowych, które stawiają na komfort użytkownika.

Pytanie 23

W języku SQL wykonano przedstawione poniżej polecenia GRANT. Kto będzie miał prawo do przeglądania danych oraz ich zmiany?

GRANT ALL ON firmy TO 'adam'@'localhost';
GRANT ALTER, CREATE, DROP ON firmy TO 'anna'@localhost;
GRANT SELECT, INSERT, UPDATE ON firmy TO 'tomasz'@'localhost';
A. Anna i Tomasz
B. Jedynie Tomasz
C. Adam i Anna
D. Tomasz i Adam
Odpowiedź 'Tomasz i Adam' jest poprawna, ponieważ obaj użytkownicy mają przypisane odpowiednie uprawnienia do przeglądania oraz modyfikacji danych w bazie 'firmy'. Adam otrzymał pełne uprawnienia, co oznacza, że może przeglądać (SELECT) oraz modyfikować (INSERT, UPDATE, DELETE) dane, a także zmieniać strukturę tabel (ALTER, CREATE, DROP). Tomasz, z kolei, ma przydzielone szczegółowe uprawnienia do przeglądania danych (SELECT) oraz ich modyfikacji (INSERT, UPDATE). W praktyce, przydzielanie uprawnień w bazach danych odbywa się zgodnie z zasadą minimalnych uprawnień, co oznacza, że każdy użytkownik powinien mieć tylko te uprawnienia, które są mu niezbędne do realizacji przydzielonych zadań. Dobrą praktyką jest regularna weryfikacja przydzielonych uprawnień oraz ich dostosowywanie do zmieniających się potrzeb organizacji.

Pytanie 24

W efekcie wykonania przedstawionego w ramce kodu JavaScript, zmienna x jest równa

Ilustracja do pytania
A. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
B. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
C. 10 i zostanie wypisana w dokumencie HTML.
D. 11 i zostanie wypisana w oknie popup.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript: <script> var x = 10; x++; console.log(x); </script> Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu. Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego. Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 25

Zgodnie z zasadami ACID, odnoszącymi się do realizacji transakcji, wymóg trwałości (ang. durability) oznacza, iż

A. transakcja może, w określonych okolicznościach, zostać podzielona na dwa niezależne etapy
B. dane zatwierdzone przez transakcję powinny być dostępne niezależnie od zdarzeń, które nastąpią po jej zakończeniu
C. w sytuacji naruszenia spójności bazy danych transakcja usuwa tabele z kluczami obcymi
D. podczas realizacji transakcji dane mogą być zmieniane przez inne transakcje
Trwałość (ang. durability) to jedno z kluczowych wymagań modelu ACID, które zapewnia, że dane zatwierdzone przez transakcję pozostają dostępne i chronione przed utratą, nawet w przypadku wystąpienia awarii systemu. Oznacza to, że po pomyślnym zakończeniu transakcji, jej efekty są trwale zapisywane w bazie danych i nie mogą zostać utracone, niezależnie od warunków zewnętrznych, takich jak przerwy w zasilaniu czy błędy systemowe. W praktyce oznacza to, że każda transakcja, która uzyskała status 'zatwierdzonej' (ang. committed), powinna być zapisana w trwały sposób, zazwyczaj z wykorzystaniem mechanizmów takich jak logi transakcyjne. Na przykład, w systemach bazodanowych takich jak PostgreSQL czy Oracle, po zakończeniu transakcji, zmiany są rejestrowane w logach, co pozwala na ich odtworzenie w przypadku awarii. Z perspektywy standardów, wymaganie trwałości jest nieodłącznym elementem zapewnienia integralności danych, które jest kluczowe w systemach obsługujących transakcje finansowe, gdzie możliwość przywrócenia stanu po awarii jest niezbędna.

Pytanie 26

Program debugger służy do

A. interpretacji kodu w wirtualnej maszynie Java.
B. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
C. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
D. analizy wykonywanego programu w celu lokalizacji błędów.
W tym pytaniu łatwo się pomylić, bo kilka pojęć brzmi podobnie, ale dotyczy zupełnie innych narzędzi. Debugger nie służy ani do interpretacji kodu, ani do kompilacji, ani do sprawdzania samej składni. To narzędzie do analizy programu w trakcie jego działania. Czyli nie patrzymy tylko na kod źródłowy, ale na to, jak program faktycznie się wykonuje krok po kroku. Interpretacja kodu w wirtualnej maszynie Java to zadanie interpretera/JVM. Maszyna wirtualna Javy pobiera bajtkod (plik .class) i go wykonuje, optymalizuje, czasem kompiluje JIT-em do kodu maszynowego. To zupełnie inna warstwa niż debugowanie. Debugger może się podłączyć do JVM, ale sam z siebie nie interpretuje kodu. To typowe pomylenie roli środowiska uruchomieniowego z narzędziem diagnostycznym. Analiza kodu źródłowego w celu znalezienia błędów składniowych też nie jest zadaniem debuggera. Błędy składniowe wychwytuje kompilator albo linter, ewentualnie statyczna analiza kodu. Debugger działa dopiero, gdy program się kompiluje i da się go uruchomić. Jeśli są błędy składni, program w ogóle nie wystartuje, więc nie ma co debugować. Częsty błąd myślowy jest taki, że „narzędzie do błędów” musi ogarniać wszystkie rodzaje błędów. W praktyce dzieli się to na: składniowe (kompilator), logiczne i wykonania (debugger), a także problemy jakościowe (analiza statyczna, testy). Tłumaczenie kodu z języka wysokiego poziomu na maszynowy to z kolei klasyczna rola kompilatora. Kompilator generuje kod wynikowy (np. plik .exe czy .class), a debugger ten gotowy program tylko obserwuje i steruje jego wykonaniem. Moim zdaniem warto jasno rozdzielić te pojęcia: kompilator kompiluje, interpreter wykonuje, a debugger pomaga nam zrozumieć i naprawić działający program, śledząc jego zachowanie, zmienne i przepływ sterowania. To pomaga unikać mieszania narzędzi, co później bardzo ułatwia naukę bardziej zaawansowanych technologii.

Pytanie 27

Jakiego znacznika używa się do definiowania listy definicji w kodzie HTML?

A. <label>
B. <abbr>
C. <dl>
D. <td>
Znacznik <dl> w HTML, oznaczający 'definition list', jest używany do tworzenia list definicyjnych, które składają się z pary elementów: definicji i terminów. W skład takiej struktury wchodzą dwa kluczowe znaczniki: <dt>, który definiuje termin, oraz <dd>, który dostarcza jego definicję. Użycie tego znacznika pozwala na semantyczne i czytelne przedstawienie informacji, co jest istotne zarówno dla użytkowników, jak i dla wyszukiwarek internetowych. Dobrze skonstruowana lista definicyjna zwiększa dostępność treści oraz poprawia SEO strony, gdyż ułatwia robotom indeksującym zrozumienie kontekstu informacji. Na przykład, jeśli stworzymy listę definicyjną dla terminów związanych z technologią, możemy użyć <dl> do przedstawienia pojęć jak 'HTML', 'CSS', 'JavaScript' oraz ich opisów. W ten sposób przedstawiamy skomplikowane informacje w zorganizowanej formie, co jest rekomendowane przez W3C w dokumentacji dotyczącej HTML5, gdzie podkreśla się znaczenie semantyki w tworzeniu stron internetowych.

Pytanie 28

W SQL, aby zabezpieczyć kwerendę CREATE USER przed utworzeniem konta, jeżeli ono już istnieje, należy użyć składni

A. CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
B. CREATE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
C. CREATE USER OR DROP 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
D. CREATE OR REPLACE USER 'anna'@'localhost' IDENTIFIED BY 'yu&T%';
Odpowiedź 'CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'yu&T%';' jest poprawna, ponieważ zastosowanie klauzuli 'IF NOT EXISTS' pozwala na utworzenie użytkownika tylko w przypadku, gdy konto o podanej nazwie nie istnieje w systemie. Jest to niezwykle użyteczne w praktyce, ponieważ minimalizuje ryzyko wystąpienia błędów związanych z próbą utworzenia użytkownika, który już został wcześniej zdefiniowany, co mogłoby prowadzić do niepotrzebnych komplikacji w zarządzaniu bazą danych. Dzięki temu podejściu administratorzy mogą tworzyć skrypty, które są bardziej elastyczne i odporne na błędy, co jest zgodne z najlepszymi praktykami w zakresie zarządzania bazami danych. Warto także zaznaczyć, że odpowiednia obsługa błędów oraz unikanie zbędnych operacji wpływa na wydajność systemu, co jest kluczowym aspektem w środowiskach produkcyjnych, gdzie każda operacja ma znaczenie dla dostępności i efektywności aplikacji korzystających z bazy danych.

Pytanie 29

Bitmapa stanowi typ obrazu

A. wektorowym
B. rastrowym
C. analogowym
D. interakcyjnym
Bitmapa, znana również jako obraz rastrowy, jest jednym z najpopularniejszych formatów graficznych używanych w różnych aplikacjach komputerowych, takich jak edytory zdjęć czy programy graficzne. Obrazy rastrowe składają się z siatki pikseli, gdzie każdy piksel ma przypisaną określoną wartość koloru. Przykłady popularnych formatów bitmapowych to JPEG, PNG, oraz BMP. W kontekście praktycznym, bitmapy są idealne do przedstawiania zdjęć i szczegółowych ilustracji, ponieważ mogą zachować bogactwo detali i kolorów. Główne zastosowanie bitmap obejmuje grafikę internetową, projektowanie stron, a także obróbkę zdjęć. W branży graficznej stosuje się standardy, takie jak RGB i CMYK, które definiują, jakie kolory mogą być użyte w obrazach rastrowych. Aby uzyskać najlepszą jakość wizualną, ważne jest, aby dostosować rozdzielczość obrazów do przeznaczenia, co jest kluczowe w profesjonalnych projektach graficznych. Właściwe zrozumienie bitmap jest fundamentem dla każdego, kto zajmuje się grafiką komputerową czy projektowaniem wizualnym.

Pytanie 30

Który standard video cechuje się rozdzielczością 1920 px na 1080 px?

A. Ultra HD 
B. 4K
C. HD Ready
D. Full HD
Prawidłowa odpowiedź to „Full HD”, bo właśnie ten standard oznacza rozdzielczość 1920 × 1080 pikseli w proporcjach 16:9. W praktyce, gdy mówimy o filmach na YouTube, streamach, nagraniach z kamery czy materiałach promocyjnych na stronę WWW, opcja 1080p to właśnie Full HD. Litera „p” oznacza skanowanie progresywne (progressive), czyli wyświetlanie całych klatek po kolei, co daje płynniejszy obraz niż przeplot („i” jak interlaced). W branży webowej Full HD to taki „złoty standard” jakości wideo – pliki mają jeszcze rozsądny rozmiar, a obraz jest już bardzo szczegółowy, więc nadaje się zarówno do odtwarzania w przeglądarce, jak i do osadzania w prezentacjach czy materiałach e‑learningowych. Moim zdaniem, przy projektowaniu serwisu z treściami multimedialnymi, warto domyślnie przygotowywać materiały właśnie w 1920×1080 i ewentualnie generować niższe wersje (np. 1280×720) dla urządzeń mobilnych lub słabszych łączy. W pracy grafika czy twórcy stron WWW dobrze jest też kojarzyć nazwy standardów: HD Ready to 1280×720, Full HD to 1920×1080, a 4K/Ultra HD to okolice 3840×2160. Dzięki temu łatwiej dobrać odpowiedni format eksportu z programów typu Premiere, DaVinci Resolve czy nawet z prostszych edytorów online. Z doświadczenia powiem, że klienci często mówią „chcę film w HD”, a mają na myśli właśnie Full HD, więc świadomość dokładnej rozdzielczości pomaga uniknąć nieporozumień i zbyt niskiej jakości materiałów.

Pytanie 31

Która funkcja języka PHP służy do zapisu danych do pliku?

A. fread()
B. fwrite()
C. fgets()
D. readfile()
Poprawna odpowiedź to fwrite(), ponieważ jest to podstawowa funkcja PHP służąca do zapisu danych do pliku. W typowym scenariuszu najpierw otwierasz plik funkcją fopen(), np. w trybie 'w' (zapis, nadpisanie) albo 'a' (dopisywanie na koniec), a dopiero potem używasz fwrite($uchwyt, $dane). Taki schemat: $fp = fopen('log.txt', 'a'); fwrite($fp, "Nowy wpis\n"); fclose($fp); to w praktyce standardowy wzorzec pracy z plikami w PHP. Moim zdaniem warto od początku wyrabiać sobie nawyk sprawdzania, czy fopen() się udało (czy nie zwróciło false) oraz czy fwrite() nie zwróciło 0 lub false, bo to jedna z podstawowych dobrych praktyk w programowaniu webowym. W kontekście aplikacji internetowych fwrite() często wykorzystuje się do zapisywania logów (np. własny prosty system logowania błędów), przechowywania prostych danych konfiguracyjnych, cache’owania wygenerowanych stron HTML do plików statycznych, a nawet do eksportu danych do plików CSV. W realnych projektach PHP zapis do pliku trzeba łączyć z odpowiednimi uprawnieniami katalogów na serwerze oraz z kontrolą błędów, żeby aplikacja zachowywała się przewidywalnie nawet wtedy, gdy system plików odmawia zapisu. Dobre praktyki mówią też, żeby nie mieszać logiki aplikacji z zapisem do pliku w losowych miejscach kodu, tylko wydzielić osobne funkcje lub klasy (np. Logger, FileStorage). fwrite() jest wtedy używane pod spodem, a reszta aplikacji tylko woła te wyższe warstwy. Warto też pamiętać o kodowaniu znaków (UTF-8) i o tym, żeby przy danych binarnych (np. obrazki, PDF-y) otwierać plik w trybie 'wb' lub 'ab'. To niby drobiazgi, ale w praktyce często decydują o tym, czy program działa stabilnie na różnych serwerach i systemach operacyjnych.

Pytanie 32

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. switch
C. next
D. foreach
Wybór if, next i switch jako odpowiedzi nie jest poprawny w kontekście opisanego działania pętli, ponieważ każda z tych instrukcji ma odmienny cel i zastosowanie. Instrukcja if służy do warunkowego wykonywania bloków kodu, co oznacza, że nie umożliwia iteracji po elementach tablicy. W przypadku używania if, programista musi samodzielnie zarządzać pętlami, co wprowadza dodatkową złożoność oraz możliwość wystąpienia błędów. Z kolei next jest używane w kontekście iteracji w niektórych językach programowania, ale nie funkcjonuje jako samodzielna instrukcja. Zazwyczaj next jest częścią pętli, jak na przykład w pętli while, gdzie służy do przesunięcia wskaźnika lub indeksu, lecz nie pełni roli do iteracji po tablicach w sposób zautomatyzowany. Z kolei switch jest konstrukcją służącą do stosowania wielokrotnych warunków, co pozwala na wybór jednego z wielu możliwych bloków kodu na podstawie wartości danej zmiennej. Nie jest to mechanizm iteracyjny, dlatego nie można go zastosować do przetwarzania elementów tablicy w sposób opisany w pytaniu. Analizując te trzy odpowiedzi, można zauważyć, że żadna z nich nie spełnia kryteriów, które opisuje działanie instrukcji foreach.

Pytanie 33

Element bazy danych, którego podstawowym celem jest generowanie lub prezentowanie zestawień informacji, to

A. moduł
B. raport
C. makro
D. formularz
Raport to taki dokument w bazie danych, który ma za zadanie pokazać dane w przejrzysty i uporządkowany sposób. To jest mega ważne, zwłaszcza kiedy chcemy analizować różne informacje. Można je wykorzystać do robienia zestawień, statystyk, a nawet wykresów, co naprawdę ułatwia podejmowanie decyzji. Zazwyczaj raporty tworzy się na podstawie danych z różnych miejsc, jak tabele czy zapytania. W programach do zarządzania bazami, jak Microsoft Access, można korzystać z kreatora raportów, który pomaga ustawić wszystko tak, jak się chce – wybieramy źródło danych, układ i format. Oczywiście, do pozyskiwania danych często wykorzystuje się SQL, no i potem już te dane można analizować i przedstawiać w raportach. Jak sobie pomyślisz o przykładzie, to taki miesięczny raport sprzedaży to super narzędzie dla menedżerów, bo mogą ocenić, jak im idzie w sprzedaży i podejmować lepsze decyzje strategiczne.

Pytanie 34

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
B. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
C. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
D. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
Odpowiedź, którą wybrałeś, to umowa == 'praca' && (pensja >= 4000 && pensja <= 4500). To jest faktycznie odpowiednia opcja, bo spełnia warunki do wygenerowania raportu. To ważne, żeby oba warunki były spełnione – pracownik musi mieć umowę o pracę i pensja powinna być w zakresie od 4000 do 4500 zł. Na przykład, jeśli ktoś zarabia 4200 zł, to wtedy wszystko gra i raport się pojawi. W programowaniu używanie operatorów logicznych, takich jak '&&', jest kluczowe, bo pozwalają one precyzyjnie ustalić kryteria. Dobrze zrozumiane operatory '&&' i '||' pomagają unikać niejasności i błędów w logice, a to jest podstawa dobrego pisania kodu.

Pytanie 35

Która z wymienionych metod umożliwia wyświetlenie komunikatu w konsoli przeglądarki za pomocą języka JavaScript?

A. console.log("test");
B. console.echo("test");
C. console.write("test");
D. console.print("test");
Metoda console.log() jest standardowym sposobem wypisywania komunikatów w konsoli przeglądarki w języku JavaScript. Umożliwia deweloperom śledzenie działania kodu, debugowanie aplikacji oraz analizowanie wartości zmiennych. Przykładem zastosowania tej metody jest logowanie informacji na temat stanu aplikacji, co jest szczególnie przydatne podczas tworzenia skomplikowanych interakcji użytkownika lub podczas pracy z danymi. Oto prosty przykład: jeśli mamy zmienną let x = 5; i chcemy sprawdzić jej wartość, możemy użyć console.log(x);, co wyświetli w konsoli "5". Metoda ta wspiera także formatowanie tekstu, np. poprzez użycie znaczników takich jak %c, co pozwala na stylizację wypisywanych komunikatów. Zgodnie z dobrymi praktykami, console.log() powinno być wykorzystywane głównie do celów debugowania i nie powinno pozostawać w kodzie produkcyjnym, aby uniknąć zanieczyszczenia konsoli niepotrzebnymi informacjami. Używanie tej metody jest zgodne z najlepszymi standardami, co czyni ją kluczowym narzędziem w arsenale każdego programisty JavaScript.

Pytanie 36

Którego związku selektorów CSS należy użyć w miejscu znaków zapytania, aby zdefiniowany styl został zastosowany tylko do tekstu „paragrafie”?

<!DOCTYPE html>
<html>
  <head>
    <style>
      ???{letter-spacing: 10px; color: red;}
    </style>
  </head>
  <body>
    <p>Styl <b>tekstu</b> w pierwszym <i>paragrafie</i></p>
  </body>
</html>
A. b i
B. p + i
C. p > i
D. b > i
W tym zadaniu kluczowe jest zrozumienie, jak działają różne związki (kombinatory) selektorów w CSS i jak przekładają się one na strukturę drzewa DOM. Cały problem sprowadza się do relacji między znacznikami <p>, <b> i <i>. W kodzie <i> jest bezpośrednim dzieckiem paragrafu, natomiast <b> jest zupełnie osobnym elementem, który nie zawiera w sobie <i>. Jeżeli wybierzemy selektor oparty wyłącznie na listingu nazw znaczników obok siebie, typu „b i”, to w CSS oznacza on: „dowolny element <i> znajdujący się gdziekolwiek wewnątrz elementu <b>”. W naszym HTML nie ma takiej relacji, bo <i> nie jest potomkiem <b>, więc taki selektor zwyczajnie nie trafi w żaden element. To jest dość typowe myślenie: ktoś patrzy na kolejność znaczników w jednej linii i myli ją z hierarchią zagnieżdżenia. Podobny problem występuje przy użyciu selektora „b > i”. Kombinator „>” oznacza dziecko bezpośrednie, więc „b > i” wybiera tylko te elementy <i>, które są jednym poziomem niżej w środku <b>. Ponownie, w naszym drzewie DOM <i> nie jest dzieckiem <b>, więc reguła w ogóle się nie zastosuje. Z mojego doświadczenia to częsty błąd: patrzymy na tekst „tekstu w pierwszym paragrafie” i intuicyjnie kojarzymy słowa, zamiast spojrzeć, jak naprawdę są zagnieżdżone tagi. Jeszcze inna sytuacja dotyczy selektora „p + i”. Znak „+” to tzw. selektor sąsiadującego rodzeństwa (adjacent sibling). Oznacza: „wybierz element <i>, który stoi w DOM bezpośrednio po elemencie <p>, na tym samym poziomie zagnieżdżenia”. W naszym przykładzie <i> nie jest rodzeństwem <p>, tylko jego wnętrzem, więc ten kombinator kompletnie tu nie pasuje. To też jest dość mylące, bo część osób kojarzy „+” z jakimś rodzajem powiązania, ale nie pamięta, że chodzi o dwa znaczniki obok siebie, a nie jeden w środku drugiego. Podsumowując, wszystkie błędne odpowiedzi ignorują faktyczną strukturę HTML i relacje rodzic–dziecko między elementami. Dobra praktyka jest taka, żeby przed wyborem selektora wyobrazić sobie drzewo DOM albo wręcz rozpisać je w formie wcięć. Dopiero potem dobiera się odpowiedni kombinator: spacja dla dowolnego potomka, „>” dla dziecka, „+” dla sąsiada, „~” dla dalszego rodzeństwa. Świadome korzystanie z tych narzędzi pozwala tworzyć precyzyjne, czytelne i łatwe w utrzymaniu arkusze CSS, zgodne z rekomendacjami W3C i dobrymi praktykami front-endowymi.

Pytanie 37

O zmiennej predefiniowanej

$_POST 
w języku PHP można stwierdzić, że
A. zawiera dane bezpośrednio dostarczone do skryptu z ciasteczka
B. jest rozwiniętą wersją tablicy $_SESSION
C. zawiera dane przesłane do skryptu za pośrednictwem formularza
D. jest odwzorowaniem tablicy $_COOKIE
Odpowiedź, że zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z formularza, jest w pełni poprawna. W języku PHP, $_POST to jedna z superglobalnych tablic, która umożliwia dostęp do danych przesyłanych metodą POST. Metoda ta jest powszechnie stosowana w formularzach HTML, gdzie użytkownik może wprowadzać dane, które następnie są wysyłane do serwera. Na przykład, formularz kontaktowy, w którym użytkownik wprowadza swoje imię i adres e-mail, może być przetwarzany za pomocą $_POST, co pozwala na łatwą i bezpieczną obsługę danych. Dobrą praktyką jest również walidacja danych przed ich użyciem, aby zminimalizować ryzyko ataków, takich jak SQL Injection czy XSS. Dzięki zastosowaniu $_POST, programiści mogą przechwytywać i przetwarzać dane użytkowników w bardziej zaawansowany sposób, co pozwala na dynamiczne generowanie treści i interakcję z użytkownikami.

Pytanie 38

Jaką konstrukcją w języku C++ jest double *x;?

A. Zmienna całkowita
B. Wskaźnik
C. Zmienna rzeczywista
D. Formalny argument typu rzeczywistego
Wybór odpowiedzi, która sugeruje, że 'double *x;' jest parametrem formalnym typu rzeczywistego, jest nieprawidłowy, ponieważ wskaźnik nie jest sam w sobie parametrem formalnym. Parametry formalne w C++ są definiowane w nagłówkach funkcji i odnoszą się do zmiennych przekazywanych do funkcji. Wskaźnik, jak 'double *x;', jest po prostu zmienną, która przechowuje adres innej zmiennej, co jest zupełnie inną koncepcją. Z kolei określenie zmiennej całkowitej jest również błędne, ponieważ 'double' wskazuje na typ zmiennoprzecinkowy, a nie całkowity. Zrozumienie różnicy między typami danych jest kluczowe w C++. Ostatnia niepoprawna opcja, mówiąca o zmiennej rzeczywistej, nie odnosi się do wskaźnika, ponieważ wskaźnik nie jest zmienną przechowującą wartość typu 'double', ale adresem, pod którym taka wartość może być przechowywana. Typowe błędy myślowe, które mogą prowadzić do takich niepoprawnych odpowiedzi, obejmują mylenie pojęcia wskaźnika z typem zmiennej, a także brak zrozumienia roli wskaźników w kontekście zarządzania pamięcią i przekazywania danych do funkcji. Właściwe zrozumienie tych podstawowych koncepcji jest niezbędne do skutecznego programowania w C++.

Pytanie 39

Proces zmierzający do osiągnięcia przez stronę internetową jak najwyższych pozycji w rankingach wyszukiwarek internetowych nosi nazwę

A. pozycjonowania.
B. walidacji HTML.
C. optymalizacji wydajności.
D. responsywności.
Prawidłowa odpowiedź to „pozycjonowanie”, bo właśnie tak w branży nazywa się proces działań mających na celu osiąganie jak najwyższych pozycji strony w wynikach wyszukiwarek (głównie Google). W praktyce pozycjonowanie obejmuje zarówno SEO on‑page, jak i SEO off‑page. On‑page to m.in. poprawna struktura HTML, nagłówki H1–H3, sensowne tytuły stron (tag title), opisy meta description, przyjazne adresy URL, szybkość ładowania, mobile‑friendly design. Off‑page to głównie link building, czyli zdobywanie wartościowych odnośników z innych serwisów, obecność w katalogach branżowych, artykuły sponsorowane, a także ogólna reputacja domeny. Z mojego doświadczenia pozycjonowanie to nie jednorazowa akcja, tylko stały proces optymalizacji, analizy słów kluczowych, śledzenia statystyk w Google Search Console i Google Analytics, dopasowywania treści do intencji użytkownika. Dobre praktyki mówią, żeby unikać technik black‑hat SEO (np. kupowanie tysięcy spamowych linków, ukryty tekst, keyword stuffing), bo algorytmy wyszukiwarek szybko to wychwytują i mogą nałożyć filtr lub karę. Moim zdaniem kluczowe w pozycjonowaniu jest połączenie technicznie poprawnej strony (wydajność, responsywność, poprawny HTML) z wartościową treścią i rozsądną strategią linków. To właśnie cały ten zestaw działań nazywamy pozycjonowaniem strony w wyszukiwarkach.

Pytanie 40

Która z funkcji agregujących wbudowanych w język SQL służy do obliczania średniej wartości w określonej kolumnie?

A. SUM
B. COUNT
C. MIN
D. AVG
Funkcja AVG w języku SQL jest jedną z kluczowych funkcji agregujących, która pozwala na obliczenie średniej wartości w określonej kolumnie zestawienia danych. Użycie tej funkcji jest szczególnie istotne w analizie statystycznej, gdyż pozwala uzyskać bardziej reprezentatywny wynik, eliminując wpływ skrajnych wartości, które mogą zniekształcać obraz danych. Na przykład, gdy mamy tabelę "sprzedaż" z kolumną "kwota", można użyć zapytania SELECT AVG(kwota) FROM sprzedaż, aby uzyskać średnią wartość sprzedaży. Funkcja ta jest nie tylko przydatna w kontekście analizy, ale także stanowi standardową praktykę w raportowaniu wyników finansowych, co może pomóc w podejmowaniu decyzji biznesowych. Warto również zauważyć, że AVG jest funkcją, która ignoruje wartości NULL, co jest ważne w kontekście danych, które mogą nie być pełne. Dobre praktyki sugerują, aby zawsze sprawdzać dane wejściowe przed stosowaniem funkcji agregujących, aby zapewnić ich jakość i dokładność wyników.