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: 8 czerwca 2026 12:32
  • Data zakończenia: 8 czerwca 2026 12:44

Egzamin zdany!

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

Które narzędzie edytora grafiki przedstawia rozkład jasności (tonów) pikseli obrazu w postaci wykresu?

A. warstwy
B. kanał alfa
C. kadrowanie
D. histogram
Histogram to wykres rozkładu jasności obrazu: na osi poziomej są poziomy jasności (od czerni do bieli), a na pionowej - liczba pikseli o danej jasności. Pozwala ocenić ekspozycję i kontrast - np. wykres „upchnięty” po lewej oznacza niedoświetlenie. Dlatego rozkład tonów obrazu pokazuje histogram.

Pytanie 2

Jakie będzie wyjście programu napisanego w języku JavaScript, umieszczonego w ramce, po podaniu wartości 5 na wejściu?

Ilustracja do pytania
A. 125
B. 60
C. 120
D. 625
Pytanie dotyczy obliczenia silni liczby podanej przez użytkownika w języku JavaScript. Program przy użyciu pętli for oblicza silnię liczby n, zaczynając od wartości a równej 1. Silnia liczby, oznaczana jako n!, to iloczyn wszystkich liczb naturalnych od 1 do n. W tym przypadku, użytkownik podaje liczbę 5, co oznacza że program oblicza 5! czyli 5 * 4 * 3 * 2 * 1. Wynik tego działania to 120, co jest poprawną odpowiedzią. Silnia jest często wykorzystywana w kombinatoryce i statystyce, a także w algorytmach związanych z analizą permutacji. Wykorzystanie pętli for w tym kontekście jest powszechną praktyką w programowaniu, umożliwiającą iterację poprzez określony zakres liczb oraz wykonywanie logicznych działań w złożonych obliczeniach algorytmicznych. Dobrą praktyką jest zrozumienie, jak działają pętle i jawne przypisywanie wartości początkowych zmiennych, co ułatwia debugowanie i rozwój kodu. Tego typu operacje matematyczne są podstawą wielu zaawansowanych zastosowań, od teoretycznych podstaw algorytmów do praktycznych implementacji w analizach danych.

Pytanie 3

Czego nie należy robić, aby zabezpieczyć serwer bazy danych przed atakami hakerów?

A. aktywacja zapory.
B. używanie skomplikowanych haseł do bazy.
C. blokowanie portów związanych z bazą danych.
D. defragmentacja dysków.
Włączenie zapory sieciowej jest istotnym krokiem w zabezpieczaniu serwera bazy danych. Zapora działa jako filtr, który kontroluje ruch przychodzący i wychodzący, blokując potencjalnie szkodliwe połączenia, co jest kluczowe w kontekście ochrony przed atakami DDoS oraz nieautoryzowanym dostępem. Ponadto stosowanie złożonych haseł jest fundamentalnym elementem bezpieczeństwa, jako że proste hasła mogą być łatwo złamane przez ataki typu brute-force. Wdrożenie polityki silnych haseł, które zawierają kombinacje liter, cyfr oraz symboli, znacząco zwiększa poziom ochrony dostępu do bazy danych. Blokowanie portów to kolejna ważna praktyka; poprzez zamykanie portów, które nie są używane przez serwer bazy danych, znacznie ograniczamy możliwości ataków, ponieważ wiele złośliwych działań opiera się na próbie skanowania otwartych portów w celu znalezienia luk w zabezpieczeniach. Zrozumienie tych aspektów jest kluczowe dla wszystkich administratorów baz danych, którzy muszą dbać o integralność i bezpieczeństwo danych. Ignorowanie tych praktyk w imię nieistotnych działań, takich jak defragmentacja, może prowadzić do poważnych naruszeń bezpieczeństwa, co podkreśla znaczenie stosowania znanych i sprawdzonych metod ochrony w środowisku IT.

Pytanie 4

Jaką rozdzielczość określa jednostka ppi (ang. pixels per inch)?

A. Cyfrowych przyrządów dokonujących pomiarów.
B. Skanujących urządzeń.
C. Obrazów generowanych przez drukarki i plotery
D. Obrazów bitmapowych.
Rozdzielczość wyrażana w jednostkach ppi (pixels per inch) odnosi się do ilości pikseli na cal w obrazach tworzonych przez drukarki i plotery. Wyższa wartość ppi oznacza większą gęstość pikseli, co przekłada się na wyższą jakość druku oraz więcej szczegółów w finalnym obrazie. W praktyce, standardowe wartości ppi dla wysokiej jakości druku to 300 ppi lub więcej, co jest preferowane w przypadku fotografii oraz materiałów reklamowych. Wartości te są zgodne z wytycznymi branżowymi, które sugerują, że dla druku offsetowego zaleca się rozdzielczość minimum 300 ppi, aby zachować szczegóły i ostrość obrazu. Użycie odpowiednich wartości ppi jest kluczowe w procesie prepress, gdzie przygotowuje się materiały do druku. Nieodpowiednia rozdzielczość może prowadzić do rozmycia, pikselizacji i ogólnej utraty jakości w finalnym produkcie, co negatywnie wpływa na wrażenia wizualne odbiorców oraz wizerunek marki.

Pytanie 5

Który z rysunków obrazuje efekt działania przedstawionego fragmentu kodu HTML?

<table border="1">
 <tr><td rowspan="2">pierwszy</td><td>drugi</td></tr>
 <tr><td>trzeci</td></tr>
</table>
Ilustracja do pytania
A. B.
B. A.
C. D.
D. C.
Super, wybrałeś właściwą odpowiedź! To rysunek C. Kod HTML to taki jakby zestaw narzędzi, który pozwala tworzyć różne układy stron internetowych, w tym tabelki. W tym przypadku mamy do czynienia z tabelą, która ma dwa wiersze i dwie kolumny. Zauważ, że pierwsza komórka z tekstem 'pierwszy' zajmuje miejsce aż na dwa wiersze, dzięki atrybutowi rowspan='2'. To oznacza, że można ją rozciągnąć w pionie, co zmienia układ całej tabeli. W pierwszym wierszu obok tej komórki jest komórka z tekstem 'drugi', a w drugim wierszu mamy jedynie 'trzeci', bo obok 'pierwszy' już jest zajęte miejsce. Dzięki temu, rysunek C dokładnie pokazuje, jak to wszystko działa. Pamiętaj, że umiejętność pracy z tabelami w HTML jest naprawdę ważna, jeśli chcesz tworzyć estetyczne i funkcjonalne strony.

Pytanie 6

Aby utworzyć relację wiele do wielu między tabelami A i B, wystarczy, że

A. zostanie zdefiniowana trzecia tabela z kluczami obcymi do tabel A i B
B. połączenie tabeli A z tabelą B nastąpi poprzez określenie kluczy obcych
C. wiele wpisów z tabeli A powtórzy się w tabeli B
D. tabela A będzie miała identyczne pola jak tabela B
Podejścia zaprezentowane w niepoprawnych odpowiedziach są mylące i nie odpowiadają zasadom modelowania baz danych stosowanym w praktyce. Łączenie tabeli A z tabelą B poprzez klucze obce bez użycia tabeli asocjacyjnej prowadzi do trudności w zarządzaniu relacjami, ponieważ w takiej konfiguracji relacja będzie co najwyżej jeden do wielu, co nie odzwierciedla zamierzonej relacji wiele do wielu. Duplicacja rekordów z tabeli A w tabeli B jest nie tylko nieefektywna, ale również narusza zasady normalizacji, prowadząc do redundancji danych i potencjalnych problemów z integralnością. Ponadto, posiadanie tabeli A z takimi samymi polami co tabela B nie ma sensu w kontekście relacji wiele do wielu, ponieważ nie rozwiązuje problemu powiązań między rekordami tych tabel. Ważne jest zrozumienie, że prawidłowe modelowanie baz danych powinno opierać się na zdefiniowanych relacjach i zastosowaniu kluczy obcych w odpowiedni sposób. Niezrozumienie tej koncepcji może prowadzić do błędnych wniosków i niewłaściwego projektowania baz danych, co w dłuższej perspektywie może powodować trudności w przetwarzaniu i analizie danych.

Pytanie 7

SELECT ocena FROM oceny WHERE ocena > 2 ORDER BY ocena;
Załóżmy, że istnieje tabela oceny zawierająca kolumny id, nazwisko, imię oraz ocena. Przykładowe zapytanie ilustruje:
A. sumę.
B. selekcję.
C. łączenie.
D. rekurencję.
Zapytanie SQL przedstawione w pytaniu jest przykładem selekcji ponieważ wykorzystuje klauzulę WHERE do filtrowania danych. Selekcja w kontekście baz danych oznacza wybieranie konkretnych wierszy z tabeli które spełniają określone kryteria. W tym przypadku kryterium to ocena większa niż 2. Takie podejście jest bardzo powszechne i użyteczne w analizie danych pozwalając na uzyskanie tylko istotnych informacji spośród dużych zbiorów danych. Klauzula WHERE jest jednym z podstawowych narzędzi SQL wykorzystywanym w praktycznie każdym systemie zarządzania bazami danych jak MySQL PostgreSQL czy Oracle. Umożliwia ona tworzenie elastycznych i złożonych zapytań które mogą zawierać różnorodne warunki logiczne takie jak porównania czy wyrażenia regularne. Dobre praktyki w zakresie projektowania baz danych zalecają używanie selekcji do ograniczania ilości przetwarzanych danych co zwiększa wydajność systemów. Zrozumienie mechanizmu selekcji jest kluczowe dla skutecznego zarządzania i optymalizacji baz danych szczególnie w projektach o dużej skali.

Pytanie 8

Mamy tabelę firm, która zawiera takie kolumny jak: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie zapytania SQL SELECT spowoduje wyświetlenie

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. wszystkie dane o firmach, które w ostatnim miesiącu miały obrót na poziomie co najmniej 4000 zł
B. tylko nazwę i numer NIP przedsiębiorstw, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
C. wszystkie informacje o firmach, które w minionym miesiącu osiągnęły obrót poniżej 4000 zł
D. tylko nazwę i numer NIP przedsiębiorstw, które w poprzednim miesiącu miały obrót wynoszący przynajmniej 4000 zł
Prawidłowa odpowiedź odwołuje się do kwerendy SQL SELECT która wybiera jedynie kolumny nazwa oraz NIP z tabeli firmy pod warunkiem że kolumna obrot jest mniejsza niż 4000 Kwerenda ta jest przykład zastosowania filtracji danych w celu wyodrębnienia specyficznych informacji z bazy danych co jest kluczowe w analizie biznesowej Dzięki tej operacji można uzyskać listę firm które w ostatnim miesiącu osiągnęły niski obrót co może być istotne dla działów finansowych i marketingowych w celu identyfikacji klientów wymagających dodatkowego wsparcia Tego rodzaju selektywne przetwarzanie danych jest częścią codziennej pracy analityków danych oraz specjalistów od zarządzania relacjami z klientami W praktyce w infrastrukturze bazodanowej tego typu zapytania mogą być stosowane do generowania raportów okresowych lub alertów biznesowych Przy projektowaniu kwerend SQL ważne jest aby precyzyjnie określać które kolumny i wiersze danych są interesujące co nie tylko zwiększa efektywność zapytań ale także pozwala na lepsze zarządzanie zasobami serwera Dobra praktyka polega na optymalizacji zapytań w celu minimalizacji czasów odpowiedzi oraz obciążenia systemów bazodanowych co jest kluczowe dla utrzymania wydajności i niezawodności w dużych systemach informatycznych

Pytanie 9

Które polecenia należą w SQL do grupy DCL (Data Control Language)?

A.
GRANT
i
REVOKE
B.
DELETE
i
UPDATE
C.
CREATE
i
DROP
D.
SELECT
i
INSERT
Do grupy DCL (Data Control Language) należą polecenia sterujące UPRAWNIENIAMI: GRANT (nadaje prawa) i REVOKE (odbiera je). Zarządzają dostępem użytkowników do obiektów bazy. Dlatego DCL to GRANT i REVOKE.

Pytanie 10

Którego polecenia SQL użyć, aby usunąć CAŁĄ tabelę (wraz ze strukturą)?

A.
TRUNCATE TABLE
B.
DELETE
C.
UNIQUE
D.
DROP TABLE
Aby usunąć CAŁĄ tabelę wraz ze strukturą, używa się DROP TABLE - kasuje definicję tabeli i wszystkie dane. Dlatego poprawne jest DROP TABLE.

Pytanie 11

Baza danych MySQL została uszkodzona. Które z poniższych działańnie przyczyni się do jej naprawy?

A. Próba naprawy za pomocą polecenia REPAIR
B. Wykonanie replikacji bazy danych
C. Utworzenie nowej bazy i przeniesienie do niej tabel
D. Odtworzenie bazy z kopii zapasowej
Próba naprawy bazy danych za pomocą polecenia REPAIR, odtwarzanie bazy z kopii bezpieczeństwa czy stworzenie nowej bazy z przeniesieniem tabel mogą być mylnie uznawane za skuteczne rozwiązania w przypadku uszkodzenia bazy danych. Polecenie REPAIR TABLE ma zastosowanie tylko w przypadku tabel, które zostały uszkodzone, a nie w przypadku całej bazy danych. W praktyce, jeśli baza danych jest uszkodzona w sposób, który uniemożliwia jej działanie, to polecenie naprawy nie będzie wystarczające. Odzyskiwanie z kopii zapasowej to bardzo efektywna metoda, jednak wymaga wcześniejszego posiadania aktualnej kopii, a czasami dane mogą być utracone. Stworzenie nowej bazy danych i przeniesienie tabel jest procesem czasochłonnym i może nie zapewnić pełnej integralności danych, szczególnie w przypadku złożonych relacji między tabelami. Często mylone są pojęcia naprawy i odzyskiwania danych, co może prowadzić do błędnych decyzji w sytuacjach kryzysowych. Ważne jest, aby w momencie wystąpienia uszkodzenia bazy danych podejść do tematu z pełną wiedzą na temat dostępnych narzędzi i metod, aby uniknąć dalszych problemów związanych z bezpieczeństwem danych.

Pytanie 12

W języku PHP do zmiennej a przypisano ciąg znaków, w którym wielokrotnie pojawia się słowo Kowalski. Aby jednym poleceniem wymienić w zmiennej a wszystkie wystąpienia słowa Kowalski na słowo Nowak, należy użyć polecenia

A. $a = str_replace('Nowak', 'Kowalski', $a);
B. $a = str_replace('Kowalski', 'Nowak', $a);
C. $a = str_rep('Kowalski', 'Nowak', $a);
D. $a = str_replace('Nowak', 'Kowalski');
Odpowiedź $a = str_replace('Kowalski', 'Nowak', $a); jest jak najbardziej trafna. Funkcja str_replace w PHP działa tak, że zamienia wszystkie wystąpienia jednego ciągu znaków na inny w danym tekście. W tym przypadku zastępujemy 'Kowalski' słowem 'Nowak'. To działa tak, że jak masz tekst 'Jan Kowalski i Anna Kowalski' w zmiennej $a, po wykonaniu tego kodu $a zmieni się na 'Jan Nowak i Anna Nowak'. Tego typu operacje są naprawdę przydatne w PHP, zwłaszcza gdy zajmujemy się danymi, które musimy zmieniać lub aktualizować, na przykład w aplikacjach internetowych. Pamiętaj, żeby używać takich funkcji w odpowiednich miejscach, bo operacje na dużych zbiorach danych mogą być wymagające.

Pytanie 13

Który zapis wyświetli słowo „TEKST” w kolorze czarnym?

A.
<body color="black">TEKST</font>
B.
<font color="#000000">TEKST</font>
C.
<font color="czarny">TEKST</font>
D.
<body bgcolor="black">TEKST</body>
Kolor czarny w zapisie szesnastkowym to #000000, więc poprawny jest <font color="#000000">TEKST</font>. Warto wiedzieć, że <font> jest dziś przestarzały - kolor ustawia się właściwością CSS color. Dlatego czarny tekst daje zapis z color="#000000".

Pytanie 14

Który zapis CSS ustawi punktor listy NUMEROWANEJ na wielkie cyfry rzymskie, a PUNKTOWANEJ na kwadraty?

A.
ol { list-style-type: disc; } ul { list-style-type: upper-alpha; }
B.
ol { list-style-type: upper-roman; } ul { list-style-type: square; }
C.
ol { list-style-type: upper-alpha; } ul { list-style-type: disc; }
D.
ol { list-style-type: square; } ul { list-style-type: upper-roman; }
Rodzaj punktora ustawia list-style-type. Dla listy numerowanej <ol> wielkie cyfry rzymskie to upper-roman, a dla punktowanej <ul> kwadraty to square. Dlatego poprawny jest ol { list-style-type: upper-roman; } ul { list-style-type: square; }.

Pytanie 15

Których funkcji użyć, aby po operacji na bazie uzyskać NUMER błędu oraz jego OPIS?

A. tylko
mysqli_error
B.
mysqli_error
i
mysqli_error_number
C.
mysqli_error
i
mysqli_errno
D.
mysqli_error
i
mysqli_connect_errno
mysqli_connect_errno() dotyczy błędu na etapie POŁĄCZENIA (np. złe hasło), a nie operacji wykonanej już na działającym połączeniu - dlatego nie pasuje do błędu zapytania. mysqli_error_number() brzmi prawidłowo, ale taka funkcja NIE istnieje - właściwa nazwa to mysqli_errno. Sam mysqli_error zwróci tylko opis, bez kodu liczbowego. Komplet numer + opis dają razem mysqli_errno i mysqli_error.

Pytanie 16

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 17

Wyrażenie JavaScript:

document.write(5==='5');
Co zostanie wyświetlone?
A. false
B. 0
C. true
D. 1
Odpowiedź 'false' jest jak najbardziej na miejscu, bo operator '===' w JavaScript sprawdza nie tylko wartość, ale i typ danych. Przykład 'document.write(5 === '5');' pokazuje, że porównujemy liczbę (5) z ciągiem znaków ('5'). To są różne typy, więc nie mogą być równe! Generalnie, lepiej używać '===' w programowaniu, bo to eliminuje niejasności, które mogą się pojawić przy '=='. Ten drugi lubi zamieniać typy, co czasami prowadzi do chaosu. Dobrze jest mieć na uwadze, że w obiektowym programowaniu ważne jest, by typy danych się zgadzały. Używając '===', mamy pewność, że unikniemy niechcianych błędów związanych z typami.

Pytanie 18

Która z poniższych technologii działa po stronie klienta (front-end, w przeglądarce)?

A. CSS
B. Node.js
C. PHP
D. Perl
Technologie front-endowe działają po stronie klienta - w przeglądarce użytkownika. CSS jest właśnie taką technologią: przeglądarka pobiera arkusz stylów i sama renderuje wygląd strony (kolory, czcionki, układ). Razem z HTML i JavaScriptem tworzy „trójkę” front-endu. Choć CSS to język opisu wyglądu, a nie pełny język programowania, jego przetwarzanie odbywa się u klienta. Przeciwieństwem są technologie serwerowe, gdzie kod wykonuje się na serwerze przed wysłaniem strony. Dlatego po stronie klienta działa CSS.

Pytanie 19

Co stanie się z polem, dla którego w CREATE TABLE użyto klauzuli PRIMARY KEY?

A. stanie się kluczem obcym
B. stanie się indeksem klucza
C. stanie się indeksem unikalnym
D. stanie się kluczem podstawowym (głównym)
Klauzula PRIMARY KEY w CREATE TABLE sprawia, że dane pole staje się kluczem PODSTAWOWYM (głównym) tabeli - jednoznacznie identyfikuje każdy wiersz, więc musi być unikalne i niepuste. Przy okazji baza tworzy dla niego unikalny indeks. Zapamiętaj: PRIMARY KEY = „to pole identyfikuje rekord”.

Pytanie 20

Zawarta baza danych składa się z trzech tabel oraz dwóch relacji. Aby uzyskać informacje o wszystkich lekarzach przypisanych do wybranego pacjenta, konieczne jest porównanie kluczy

Ilustracja do pytania
A. Lekarze.id = Pacjenci.Lekarze_id
B. Lekarze.id = Pacjenci.Recepty_id
C. Lekarze.id = Pacjenci.id
D. Lekarze.id = Recepty.id
Odpowiedź Lekarze.id = Pacjenci.Lekarze_id jest poprawna, ponieważ w bazach danych relacyjne połączenie między tabelami jest realizowane przez klucze obce. Tabela Pacjenci zawiera kolumnę Lekarze_id, która jest kluczem obcym odnoszącym się do kolumny id w tabeli Lekarze. Dzięki temu połączeniu możemy określić, który lekarz jest przypisany do danego pacjenta. W praktyce oznacza to, że możemy wykonywać zapytania SQL, które łączą te tabele i wyświetlają dane wszystkich lekarzy przypisanych do konkretnego pacjenta. Przykładowe zapytanie SELECT może wyglądać tak SELECT Lekarze.imie Lekarze.nazwisko FROM Pacjenci INNER JOIN Lekarze ON Pacjenci.Lekarze_id = Lekarze.id WHERE Pacjenci.id = [id_pacjenta]. Takie podejście jest zgodne z dobrymi praktykami projektowania baz danych zgodnie z zasadami normalizacji co zwiększa spójność i integralność danych. Poprawne użycie kluczy obcych jest fundamentalne w kontekście zarządzania relacjami między danymi oraz umożliwia przeprowadzanie bardziej złożonych analiz danych z różnych tabel w sposób wydajny i bezpieczny.

Pytanie 21

<source src="plik.mp4" type="video/mp4">
Aby osadzić plik wideo na stronie WWW, przedstawiony kod HTML5 należy umieścić wewnątrz znaczników:
A. <div> </div>
B. <section> </section>
C. <video> </video>
D. <embed> </embed>
Poprawna odpowiedź to umieszczenie znacznika `<source>` wewnątrz `<video>...</video>`. W HTML5 to właśnie element `<video>` jest kontenerem odpowiedzialnym za osadzanie plików wideo na stronie WWW. Atrybuty takie jak `controls`, `autoplay`, `loop`, `muted`, `width` czy `height` przypisujemy właśnie do `<video>`, a nie do `<source>`. Znacznik `<source>` służy głównie do wskazania konkretnego pliku multimedialnego i jego typu MIME, np.: `<video controls width="640" height="360"><source src="film.mp4" type="video/mp4"><source src="film.webm" type="video/webm">Twoja przeglądarka nie obsługuje elementu video.</video>`. Przeglądarka przechodzi po kolei po elementach `<source>` i wybiera pierwszy format, który potrafi odtworzyć. To jest zgodne ze specyfikacją HTML Living Standard (WHATWG) oraz zaleceniami W3C dotyczącymi multimediów w sieci. W praktyce, w projektach komercyjnych, często dodaje się kilka formatów (np. MP4, WebM), właśnie po to, by zapewnić maksymalną kompatybilność między różnymi przeglądarkami i systemami. Moim zdaniem warto od razu wyrabiać sobie nawyk pisania pełnej, semantycznie poprawnej struktury: `<video>` jako główny element odtwarzacza, w środku jeden lub więcej `<source>` i ewentualnie tekst alternatywny. Dzięki temu kod jest czytelny, łatwiej go stylować w CSS, a także lepiej zachowuje się w kontekście dostępności (np. czytniki ekranu widzą, że to element wideo). Dodatkowo, `<video>` można łatwo obsługiwać z poziomu JavaScript, korzystając z jego API (play, pause, currentTime, volume itd.), co w praktyce daje sporą kontrolę nad odtwarzaniem multimediów na stronie.

Pytanie 22

W języku PHP, podczas pracy z bazą danych MySQL, aby zakończyć sesję z bazą, powinno się użyć

A. mysqli_rollback()
B. mysqli_close()
C. mysqli_exit( )
D. mysqli_commit()
Odpowiedź 'mysqli_close()' jest poprawna, ponieważ ta funkcja służy do zamykania połączenia z bazą danych MySQL w PHP. Po zakończeniu operacji na bazie danych ważne jest, aby zwolnić zasoby, zwłaszcza w aplikacjach, które mogą otwierać wiele połączeń. Funkcja ta nie przyjmuje żadnych argumentów i jest niezwykle istotna, aby uniknąć wycieków pamięci oraz zapewnić, że wszystkie zasoby są odpowiednio zarządzane. Przykładowo, po zakończeniu wykonywania skryptu, który pobiera dane z bazy, można użyć mysqli_close($connection), gdzie $connection jest wcześniej utworzonym połączeniem. Zgodnie z najlepszymi praktykami programistycznymi, powinno się zamykać połączenia w momencie, gdy nie są już potrzebne. Należy również pamiętać, że pozostawienie otwartego połączenia może prowadzić do ograniczenia liczby dostępnych połączeń w serwerze MySQL, co w dłuższej perspektywie może wpływać na wydajność aplikacji.

Pytanie 23

Co spowoduje

DELETE FROM mieszkania WHERE status = 1;
?
A. usunięcie całej tabeli mieszkania
B. usunięcie pola status z tabeli
C. usunięcie tabel z bazy mieszkania
D. usunięcie rekordów z status = 1 z tabeli mieszkania
DELETE FROM mieszkania WHERE status = 1; usuwa z tabeli mieszkania tylko te WIERSZE, w których pole status ma wartość 1. Struktura tabeli i pozostałe rekordy zostają nienaruszone. Dlatego polecenie usunie rekordy ze status = 1.

Pytanie 24

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. nazwa bazy danych
B. hasło dla użytkownika
C. adres serwera bazy danych
D. nazwa użytkownika
Odpowiedź 'nazwa użytkownika' jest na pewno właściwa, bo w konstruktorze klasy mysqli w PHP musimy podać nazwę użytkownika jako drugi argument. To ważne, bo bez tych danych, czyli nazwy użytkownika i hasła, nie da się połączyć z bazą danych. Używanie mysqli to dobra praktyka, zwłaszcza jeśli chodzi o bezpieczeństwo przed atakami SQL injection. Jak chcemy się połączyć, to zapisujemy to tak: $a = new mysqli('localhost', 'nazwa_użytkownika', 'hasło', 'nazwa_bazy'). Dzięki temu możemy na przykład ściągnąć dane z tabeli 'użytkownicy'. Warto też pamiętać o walidacji danych wejściowych i korzystaniu z przygotowanych zapytań, bo to naprawdę podnosi poziom bezpieczeństwa naszej aplikacji. I nie zapominaj, żeby zamknąć połączenie po zakończonej pracy, używając metody close().

Pytanie 25

W języku JavaScript zapis

x = przedmiot.nazwa();
oznacza, że
A. zmienna x będzie przechowywać wynik działania metody nazwa.
B. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
C. nazwa jest właściwością obiektu przedmiot.
D. nazwa jest polem klasy przedmiot.
Twoja odpowiedź jest niepoprawna. Wybierając opcję, że 'nazwa jest właściwością obiektu przedmiot' możesz mylić funkcje i właściwości. Właściwości to wartości przechowywane w obiekcie, natomiast metody to funkcje związane z obiektem. Jeśli zapis jest w formie 'przedmiot.nazwa();', to 'nazwa' jest metodą, a nie właściwością obiektu. Druga niepoprawna odpowiedź, 'nazwa jest polem klasy przedmiot', sugeruje, że JavaScript jest językiem typu klasowego, jak Java czy C#. W rzeczywistości, JavaScript jest językiem prototypowym, co oznacza, że nie ma klas. Zamiast tego, obiekty dziedziczą bezpośrednio od innych obiektów. Ostatnia niepoprawna odpowiedź, 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', prawdopodobnie wynika z niezrozumienia różnicy między metodami a wolno stojącymi funkcjami. W JavaScript, funkcje są 'wolno stojące', co oznacza, że nie są związane z żadnym obiektem, podczas gdy metody są funkcjami zdefiniowanymi na obiekcie.

Pytanie 26

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. td, th { background-color: Pink; }
B. tr { background-color: Pink; }
C. tr:active { background-color: Pink; }
D. tr:hover { background-color: Pink; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek.

W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony.

Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.

Pytanie 27

Kwalifikatory dostępu private, protected i public definiują mechanizm

A. polimorfizmu
B. rekurencji
C. hermetyzacji
D. przeładowania
Słowa private, protected i public określają, kto ma dostęp do składowych klasy - to mechanizm HERMETYZACJI, czyli ukrywania wewnętrznych danych obiektu. Dlatego definiują hermetyzację.

Pytanie 28

W kodzie CSS użyto stylizacji dla elementu listy, a żadne inne reguły CSS nie zostały ustalone. To zastosowane formatowanie spowoduje, że

Ilustracja do pytania
A. tekst wszystkich elementów listy będzie miał kolor Maroon
B. kolor Maroon obejmie co drugi element listy
C. tekst wszystkich elementów, którym nadano id „hover”, będzie w kolorze Maroon
D. po najechaniu myszką na element listy, kolor tekstu zmieni się na Maroon
Odpowiedź jest poprawna, ponieważ selektor CSS li:hover odnosi się do elementów listy, które zmieniają swój styl po najechaniu kursorem. W tym przypadku zmiana dotyczy koloru tekstu, który stanie się maroon. Selektor :hover jest pseudoklasą w CSS, która odpowiada za zmiany stylu elementu, gdy użytkownik umieści nad nim kursor. Jest to powszechnie stosowana technika w projektowaniu interaktywnych i przyjaznych dla użytkownika stron internetowych, umożliwiająca na przykład wizualne podkreślenie linków lub elementów menu. Dzięki zastosowaniu takiego selektora, projektanci mogą tworzyć dynamiczne efekty, które reagują na działania użytkownika, co zwiększa atrakcyjność wizualną i funkcjonalność strony. Dobre praktyki zalecają używanie pseudoklas jak :hover do poprawy interakcji użytkownika z interfejsem, a także do zapewnienia spójności z innymi elementami strony, które mogą również reagować na najechanie kursorem. Warto także pamiętać o dostępności, zapewniając alternatywne sposoby na interakcję z elementami, np. dla urządzeń dotykowych.

Pytanie 29

Którą właściwość CSS należy zastosować, aby ustawić rozmiar (wielkość) tekstu?

A.
text-size
B.
font-size
C.
font-weight
D.
font-style
Rozmiar tekstu ustawia w CSS właściwość font-size, w której podaje się wartość z jednostką, np. font-size: 16px albo font-size: 1.2em. Im większa wartość, tym większe litery. Dla responsywności często używa się jednostek względnych (em, rem, %). Dlatego do ustawienia wielkości tekstu służy font-size.

Pytanie 30

Na stronie www znajduje się formularz, do którego należy stworzyć następujące funkcje: walidacja: w czasie wypełniania formularza na bieżąco kontrolowana jest poprawność danych, przesyłanie danych: po zrealizowaniu formularza i jego zatwierdzeniu, dane są przekazywane do bazy danych na serwerze. Aby zrealizować tę funkcjonalność w jak najprostszy sposób, należy zapisać

A. walidację oraz przesyłanie danych w języku JavaScript
B. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
C. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
D. walidację oraz przesyłanie danych w języku PHP
Wybór walidacji oraz przesyłania danych wyłącznie w PHP nie tylko nie jest optymalny, ale również niezgodny z dobrymi praktykami. Walidacja po stronie serwera, bez wcześniejszego sprawdzenia danych po stronie klienta, prowadzi do gorszego doświadczenia użytkownika, ponieważ każde błędne dane są wysyłane na serwer przed zwróceniem błędu do użytkownika. Taki proces zwiększa obciążenie serwera, ponieważ każde błędne żądanie wiąże się z niepotrzebnym przetwarzaniem, co jest szczególnie nieefektywne w przypadku formularzy często używanych przez użytkowników. W przypadku przesyłania danych w JavaScript, istnieje ryzyko, że dane mogą być manipulowane po drodze, co prowadzi do problemów z bezpieczeństwem, takich jak ataki typu Cross-Site Scripting (XSS). Oprócz tego, nie jest właściwe korzystanie z PHP do walidacji rzeczywistych danych wejściowych w interfejsie użytkownika, gdyż PHP jest językiem działającym po stronie serwera i nie ma dostępu do stanu interfejsu. Przykładem błędnego myślenia może być założenie, że serwer może efektywnie obsłużyć wszystkie błędy walidacji na etapie zapisu danych w bazie, co jest nieefektywne w praktyce. W związku z tym każda aplikacja internetowa powinna implementować walidację danych po stronie klienta i serwera, aby zminimalizować problemy z użytkownikami oraz zapewnić bezpieczeństwo aplikacji.

Pytanie 31

W systemie MySQL przyznanie roli o nazwie DBManager umożliwia użytkownikowi wykonywanie

A. wszystkie operacje na bazach danych serwera
B. wszystkie operacje związane z bazami danych oraz użytkownikami serwera
C. nadzór nad serwerem
D. zakładanie użytkowników serwera oraz definiowanie ich haseł
Odpowiedź wskazująca na to, że rola DBManager przyznaje użytkownikowi prawa do wszelkich operacji na bazach danych serwera jest poprawna, ponieważ rola ta umożliwia pełen zakres działań związanych z zarządzaniem bazami danych. Użytkownik z tą rolą ma możliwość tworzenia, modyfikowania i usuwania baz danych, a także wykonywania zapytań na tych bazach. W praktyce oznacza to, że osoba z rolą DBManager może na przykład zarządzać strukturą tabel, definiować relacje między danymi oraz optymalizować wydajność zapytań. Tego rodzaju uprawnienia są kluczowe dla administratorów baz danych, którzy muszą zapewnić, że dane są przechowywane, przetwarzane i zabezpieczone zgodnie z najlepszymi praktykami branżowymi. Ponadto, rola DBManager wspiera standardy bezpieczeństwa i integralności danych, pozwalając na stosowanie zasad dotyczących dostępu i uprawnień do danych w sposób zgodny z regulacjami prawnymi i wewnętrznymi politykami organizacji.

Pytanie 32

Które z wymienionych oprogramowań NIE jest systemem zarządzania treścią (CMS)?

A. Mambo
B. Apache
C. WordPress
D. Joomla
Apache (Apache HTTP Server) to serwer WWW - oprogramowanie, które odbiera żądania przeglądarek i odsyła im strony; stanowi część infrastruktury, na której działają witryny. Nie służy do zarządzania treścią. Systemy CMS (Content Management System), takie jak WordPress, Joomla! czy Mambo, pozwalają natomiast tworzyć i edytować zawartość strony bez programowania - i często działają właśnie na serwerze Apache. Dlatego to Apache nie jest CMS-em.

Pytanie 33

W języku Javascript obiekt typu array jest używany do przechowywania

A. wielu wartości jedynie liczbowych
B. wielu wartości różnych typów
C. wielu wartości jedynie tekstowych
D. wielu wartości lub metod
Obiekt typu array w języku JavaScript jest niezwykle potężnym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu w jednej zmiennej. W przeciwieństwie do niektórych innych języków programowania, JavaScript pozwala na umieszczanie w tablicach zarówno liczb, jak i stringów, obiektów, a nawet funkcji. Dzięki temu programiści mogą tworzyć złożone struktury danych, które są elastyczne i dopasowane do ich potrzeb. Przykładem praktycznego zastosowania tablicy może być tworzenie listy użytkowników, gdzie każdy element tablicy może być obiektem użytkownika zawierającym różne właściwości, takie jak imię, nazwisko, adres e-mail itd. Dobrymi praktykami przy korzystaniu z tablic w JavaScript są stosowanie metod takich jak map, filter, reduce, które ułatwiają manipulację danymi oraz dbałość o czytelność kodu, co sprzyja jego późniejszej konserwacji. Warto także pamiętać o tym, że tablice są dynamiczne, co oznacza, że można je modyfikować w trakcie działania programu, co daje dodatkową elastyczność.

Pytanie 34

W CSS zapis w formie: p{background-image: url"rysunek.jpg")} spowoduje, że rysunek.png stanie się

A. tłem każdego bloku tekstowego
B. pokazany, jeśli w kodzie użyty będzie znacznik img
C. wyświetlany obok każdego bloku tekstowego
D. tłem całej witryny
Zapis p{background-image: url('rysunek.jpg')} oznacza, że każdy <p>, czyli paragraf, dostanie jako tło obrazek o nazwie rysunek.jpg. To jest po prostu sposób, żeby nadać każdyemu paragrafowi ten sam wygląd. Działa to świetnie, gdy chcesz, żeby cały tekst miał spójny styl czy dodać coś wizualnego do treści. Ważne, żeby ten plik rysunek.jpg był w dobrym miejscu, bo jak go nie znajdziesz, to przeglądarka go nie wczyta. Można to wykorzystać, żeby strona wyglądała bardziej estetycznie i przyciągała wzrok – każdy paragraf z własnym tłem na pewno sprawi, że będzie się lepiej czytało. Możesz też bawić się dodatkowymi właściwościami w CSS, jak background-repeat czy background-size, bo to otwiera drzwi do jeszcze ciekawszych efektów wizualnych.

Pytanie 35

W bazie danych istnieje tabela ksiazki, która posiada pola: tytul, id_autora, data_wypoz, id_czytelnika. Codziennie tworzony jest raport dotyczący książek wypożyczonych w danym dniu, który wyświetla jedynie tytuły książek. Która kwerenda SQL jest odpowiednia do generowania tego raportu?

A. SELECT tytul, data_wypoz FROM ksiazki WHERE data_wypoz = CURRDATENT_E()
B. SELECT tytul FROM ksiazki
C. SELECT * FROM ksiazki
D. SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE()
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje funkcję CURRENT_DATE(), która zwraca bieżącą datę systemową. Zapytanie SQL SELECT tytul FROM ksiazki WHERE data_wypoz = CURRENT_DATE(); umożliwia wybranie jedynie tych książek, które zostały wypożyczone w dniu, w którym raport jest generowany. To podejście jest zgodne z dobrymi praktykami w zakresie zarządzania danymi, ponieważ pozwala na efektywne filtrowanie danych bez zbędnych informacji. W kontekście bazy danych, operacje takie jak filtrowanie danych według daty są kluczowe dla tworzenia raportów, które są użyteczne i zrozumiałe dla użytkowników. Dzięki temu możemy na przykład generować codzienne zestawienia wypożyczeń książek, co jest szczególnie przydatne w bibliotekach oraz innych instytucjach zajmujących się wynajmem materiałów. Użycie odpowiednich funkcji w SQL jest nie tylko korzystne, ale również zwiększa efektywność procesów analitycznych oraz zarządzania danymi.

Pytanie 36

W języku SQL, aby z tabeli Uczniowie wyodrębnić rekordy dotyczące wyłącznie uczennic o imieniu "Aleksandra", które przyszły na świat po roku "1998", należy sformułować zapytanie

A. SELECT * FROM Uczniowie WHERE imie="Aleksandra" OR rok_urodzenia > "1998"
B. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia > "1998"
C. SELECT * FROM Uczniowie WHERE imie="Aleksandra" AND rok_urodzenia < "1998"
D. SELECT * FROM Uczniowie WHERE imie ="Aleksandra" OR rok_urodzenia < "1998"
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje operator logiczny AND, aby jednocześnie spełnić dwa kryteria: imię uczennicy musi być równe 'Aleksandra', a rok urodzenia musi być większy niż 1998. Użycie AND zapewnia, że tylko te rekordy, które spełniają obydwa warunki, zostaną zwrócone, co jest zgodne z wymaganiami zadania. W praktyce, takie zapytanie mogłoby być użyte w systemie edukacyjnym do generowania raportów dla nauczycieli, aby zidentyfikować i analizować uczennice o konkretnych cechach. Stosowanie operatora AND jest zgodne z dobrymi praktykami w SQL, które preferują precyzyjne określenie warunków w zapytaniach. Warto również zauważyć, że w bazach danych, zapewnienie poprawności danych i odpowiednich filtrów na poziomie zapytań jest kluczowe, aby uniknąć błędnych analiz oraz zapewnić, że wyciągane informacje są rzetelne i użyteczne w kontekście podejmowania decyzji.

Pytanie 37

Jaka forma zabezpieczenia dostępu do tabel i kwerend działa w MS Access?

A. przypisanie uprawnień użytkownikom
B. określanie przestrzeni tabel
C. limity przestrzeni dyskowej
D. stosowanie makr
W MS Access dostęp do obiektów bazy (tabel, kwerend, formularzy) zabezpiecza się, nadając UPRAWNIENIA konkretnym użytkownikom lub grupom - określa się, kto może dany obiekt odczytać, zmienić czy zaprojektować. To typowy dla baz danych mechanizm kontroli dostępu. Dlatego zabezpieczeniem jest przypisanie uprawnień użytkownikom.

Pytanie 38

Która właściwość kontrolki w MS Access określa, skąd kontrolka pobiera wyświetlaną wartość?

A. Źródło kontrolki
B. Nazwa
C. Widoczny
D. Format
W MS Access to właściwość „Źródło kontrolki” (Control Source) określa, skąd kontrolka pobiera wyświetlaną wartość - np. z którego pola tabeli czy kwerendy. Dlatego decyduje o tym „Źródło kontrolki”.

Pytanie 39

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z czterech pól
B. Z dwóch pól
C. Z trzech pól
D. Z jednego pola
Kod PHP wyświetla dane z bazy danych przy użyciu funkcji mysqli_fetch_row, która zwraca wiersz danych jako tablicę. W tym przypadku, wiersz zawiera trzy elementy: '$wiersz[0]', '$wiersz[1]' oraz '$wiersz[2]'. Pierwszy element '$wiersz[0]' odpowiada nazwisku klienta, drugi '$wiersz[1]' to imię klienta, a trzeci '$wiersz[2]' to adres. Wyświetlanie danych w formacie HTML (znacznik <p>) wskazuje, że wszystkie trzy elementy są używane do stworzenia czytelnej prezentacji. W praktyce, korzystanie z mysqli_num_rows do określenia liczby zwróconych wierszy pozwala na dynamiczne przetwarzanie danych z bazy danych, co jest zgodne z najlepszymi praktykami programowania PHP. Zastosowanie pętli for umożliwia iterację przez wszystkie wiersze wynikowe i wyświetlenie ich w odpowiedniej formie. Takie podejście jest powszechnie stosowane przy budowaniu aplikacji webowych, gdzie wyświetlanie danych z bazy jest kluczowym elementem interakcji z użytkownikiem.

Pytanie 40

W przedstawionym kodzie HTML zastosowany styl CSS jest stylem

<p style="color:red;">To jest przykładowy akapit.</p>
A. zewnętrznym
B. dynamicznym
C. lokalnym
D. nagłówkowym
Styl CSS zastosowany w podanym kodzie HTML to styl lokalny, ponieważ jest zdefiniowany bezpośrednio w tagu HTML za pomocą atrybutu 'style'. Taki sposób definiowania stylów pozwala na przypisanie unikalnych stylów do konkretnego elementu na stronie, co jest szczególnie przydatne, gdy chcemy szybko zmienić wygląd jednego elementu bez wpływania na inne. Przykładem lokalnego stylu jest ustawienie koloru tekstu akapitu na czerwony, co można zaobserwować w atrybucie 'style="color:red;"'. Warto zauważyć, że lokalne style mają wyższy priorytet od stylów zewnętrznych i wewnętrznych, co oznacza, że jeśli ten sam element ma przypisany styl zewnętrzny, lokalny styl go nadpisze. W kontekście standardów CSS, lokalne style są zgodne z zasadami kaskadowości, która określa, jak łączyć różne źródła stylów. Z perspektywy użyteczności, chociaż lokalne style mogą być wygodne, ich nadmierne stosowanie prowadzi do trudności w utrzymaniu kodu, dlatego zaleca się ich używanie w ograniczonym zakresie.