Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 11:40
  • Data zakończenia: 8 czerwca 2026 12:18

Egzamin zdany!

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

Tabela filmy ma klucz główny id i klucz obcy rezyserID. Tabela rezyserzy ma klucz główny id. Jak poprawnie połączyć je w SELECT (relacja jeden reżyser → wiele filmów)?

A.
... filmy JOIN rezyserzy ON filmy.id = rezyserzy.id ...
B.
... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.id ...
C.
... filmy JOIN rezyserzy ON filmy.id = rezyserzy.filmyID ...
D.
... filmy JOIN rezyserzy ON filmy.rezyserID = rezyserzy.filmyID ...
Złączenie musi zestawiać klucz obcy z głównym powiązanej tabeli. filmy.id = rezyserzy.id porównuje dwa klucze GŁÓWNE (bez sensu logicznego). Warianty z rezyserzy.filmyID odwołują się do nieistniejącej kolumny. Poprawne jest ON filmy.rezyserID = rezyserzy.id.

Pytanie 2

Aby wyeliminować nienaturalne odwzorowanie ukośnych krawędzi w grafice rastrowej, czyli tak zwane schodkowanie, należy zastosować filtr:

A. pikselizacji
B. gradientu
C. antyaliasingu
D. szumu
Schodkowanie (aliasing) to widoczne „schodki” na ukośnych i zaokrąglonych krawędziach w grafice rastrowej, która składa się z kwadratowych pikseli. Antyaliasing usuwa ten efekt: na granicy kształtu wprowadza piksele o kolorach pośrednich między obiektem a tłem, dzięki czemu przejście wygląda płynnie i naturalnie. Stosuje się go przy renderowaniu czcionek, kształtów i krawędzi grafiki na strony internetowe. Dlatego to właśnie filtr antyaliasingu odpowiada za wygładzenie schodkowania.

Pytanie 3

Tabela naprawy ma kolumny klient i czyNaprawione. Jak usunąć rekordy, w których czyNaprawione jest prawdą?

A.
DELETE naprawy WHERE czyNaprawione = TRUE;
B.
DELETE FROM naprawy WHERE czyNaprawione = TRUE;
C.
DELETE FROM naprawy;
D.
DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
Usuwanie wierszy spełniających warunek ma składnię DELETE FROM <tabela> WHERE <warunek>. Zapis DELETE FROM naprawy WHERE czyNaprawione = TRUE; skasuje tylko rekordy z prawdziwą wartością pola. Dlatego poprawne jest DELETE FROM naprawy WHERE czyNaprawione = TRUE;.

Pytanie 4

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

Ilustracja do pytania
A. SELECT * FROM Mieszkancy, Adresy ON Mieszkancy.id = Adresy.id
B. SELECT imie, nazwisko, ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id
C. SELECT * FROM Mieszkancy JOIN Adresy ON Adresy.id = Mieszkancy.Adresy.id
D. SELECT imie, nazwisko, ulica FROM Mieszkancy, Adresy ON Mieszkancy.Adresy_id = Adresy.id
Odpowiedź SELECT imie nazwisko ulica FROM Mieszkancy JOIN Adresy ON Mieszkancy.Adresy_id = Adresy.id jest trafna, bo korzysta z dobrej składni dołączenia tabel w SQL. Dzięki temu wyciągasz tylko te kolumny, które są Ci potrzebne. W tym przypadku, używając JOIN, łączysz tabele Mieszkancy i Adresy na podstawie odpowiednich kluczy, co dobrze odpowiada zasadom baz danych. Klucz obcy Adresy_id w tabeli Mieszkancy wskazuje na id w tabeli Adresy, co jest super ważne, bo zapewnia, że dane są spójne. To zapytanie pokazuje, jak optymalizować SQL, bo ogranicza wybór do niezbędnych kolumn (imie, nazwisko, ulica), co zmniejsza obciążenie bazy i przyspiesza wyrzucanie wyników. W praktyce takie podejście jest fajne do efektywnego zarządzania danymi w relacyjnych bazach. Dobrze jest mieć w głowie, jak używać JOIN oraz wybierać konkretne kolumny, bo to naprawdę pomaga w pisaniu bardziej zrozumiałych i wydajnych zapytań, co jest przydatne w pracy zawodowej.

Pytanie 5

W regule CSS h1 { color: blue } czym jest h1?

A. selektorem
B. klasą
C. deklaracją
D. wartością
W regule h1 { color: blue } element h1 przed nawiasem klamrowym to SELEKTOR - wskazuje, których elementów dotyczy styl (tu wszystkich nagłówków <h1>). Dlatego h1 jest selektorem.

Pytanie 6

Zgodnie z zasadami ACID dotyczącymi przeprowadzania transakcji wymóg izolacji (ang. isolation) wskazuje, że

A. pod określonymi warunkami dane modyfikowane przez transakcję mogą być cofnięte
B. po zrealizowaniu transakcji system bazy danych będzie zgodny
C. gdy dwie transakcje działają równocześnie, to zazwyczaj nie dostrzegają zmian wprowadzanych przez siebie
D. w sytuacji konfliktu z inną transakcją obie zmieniają te same dane równocześnie
Izolacja (ang. isolation) jest jednym z kluczowych elementów właściwości ACID, które zapewniają niezawodność transakcji w systemach baz danych. Oznacza ona, że kiedy dwie lub więcej transakcji są wykonywane równolegle, nie powinny one wzajemnie wpływać na swoje wyniki. W praktyce oznacza to, że zmiany wprowadzone przez jedną transakcję nie są widoczne dla innych transakcji, dopóki nie zostaną one zatwierdzone (ang. commit). Przykładem może być sytuacja, w której jedna transakcja aktualizuje stan konta użytkownika, a druga transakcja odczytuje saldo tego konta. Dzięki właściwości izolacji, druga transakcja nie zobaczy zmian wprowadzonych przez pierwszą, co zapobiega niepożądanym efektom, takim jak odczytanie nieaktualnych danych. W praktycznych rozwiązaniach, takich jak bazy danych współczesnych systemów informatycznych, często stosuje się różne poziomy izolacji, takie jak Read Uncommitted, Read Committed, Repeatable Read czy Serializable, które pozwalają na dostosowanie stopnia izolacji do specyficznych wymagań aplikacji. Właściwe skonfigurowanie poziomu izolacji ma kluczowe znaczenie dla zachowania integralności danych oraz wydajności systemu.

Pytanie 7

W skrypcie PHP, aby zamknąć otwarte wcześniej połączenie z bazą danych, należy wywołać funkcję:

A.
mysqli_close
B.
mysqli_query
C.
mysqli_connect
D.
mysqli_select_db
Połączenie z bazą otwarte przez mysqli_connect zamyka się funkcją mysqli_close, której przekazuje się uchwyt połączenia. Zwalnia ona zasoby serwera po zakończeniu pracy z bazą. Choć PHP zamyka połączenia automatycznie po zakończeniu skryptu, dobrym nawykiem jest zamykać je jawnie. Dlatego do zamknięcia połączenia służy mysqli_close.

Pytanie 8

Na tabeli muzyka, przedstawionej na schemacie, wykonano następującą kwerendę SQL. Co zostanie zwrócone przez tę zapytanie? SELECT wykonawca FROM `muzyka` WHERE wykonawca LIKE 'C%w';

Ilustracja do pytania
A. Czesław
B. Czesław, Czechowski
C. Czesław, Niemen
D. pusty wynik
Analiza błędnych odpowiedzi prowadzi do zrozumienia, dlaczego nie można ich uznać za poprawne w kontekście przedstawionego zapytania SQL. Odpowiedź 'Czesław' sugeruje, że zapytanie zwróci wykonawcę o takim imieniu. W rzeczywistości zapytanie SQL używa wzorca 'C%w', co oznacza, że szuka wykonawców, których imię i nazwisko zaczynają się na 'C' i kończą na 'w'. W tabeli nie ma wykonawcy spełniającego ten warunek. 'Czesław Niemen' mimo poprawnego początku nazwy, nie kończy się na 'w', co wyklucza tę odpowiedź. Podobnie, odpowiedzi sugerujące parę wykonawców, takie jak 'Czesław, Niemen' czy 'Czesław, Czechowski', również nie spełniają kryteriów wzorca, ponieważ żadne z nazwisk nie kończy się na 'w'. Typowym błędem myślowym przy takich zadaniach jest nieuwzględnienie pełnego warunku wzorca i skupienie się tylko na jego części początkowej. Użycie operatora LIKE z symbolem '%' wymaga zrozumienia, że jest to znak wieloznaczny, który pozwala na dowolną liczbę znaków między określonymi literami. Zlekceważenie tego aspektu prowadzi do błędnych wniosków. W praktyce, umiejętność poprawnego formułowania zapytań SQL i zrozumienie działania operatorów takich jak LIKE ma zasadnicze znaczenie dla pracy z bazami danych, szczególnie w kontekście wyszukiwania i filtrowania danych według określonych kryteriów. Prawidłowe wykorzystanie tych umiejętności pozwala na efektywną obsługę dużych zbiorów danych i jest kluczowym elementem skutecznego zarządzania informacją w przedsiębiorstwach i organizacjach.

Pytanie 9

Jaki zapis szesnastkowy odpowiada kolorowi rgb(128, 16, 8)?

A.
#FF0F80
B.
#800F80
C.
#801008
D.
#FF1008
Każdą składową RGB (0-255) zapisuje się dwucyfrowo szesnastkowo: 128 = 80, 16 = 10, 8 = 08, co po sklejeniu daje #801008. Przelicznik: 128 to połowa z 256, czyli 0x80. Zapamiętaj metodę: licz każdą składową osobno i połącz w #RRGGBB.

Pytanie 10

W skrypcie JavaScript użyto metody DOM getElementsByClassName('akapit'). Ta metoda odniesie się do akapitu

A. <p id="akapit">akapit2</p>
B. <p>akapit</p>
C. <p href="/akapit">akapit3</p>
D. <p class="akapit">akapit4</p>
Metoda DOM getElementsByClassName jest jedną z najważniejszych funkcji w JavaScript, która pozwala na selekcję elementów na stronie internetowej na podstawie ich klas CSS. W tym przypadku, odpowiedź <p class="akapit">akapit4</p> jest poprawna, ponieważ element ten ma przypisaną klasę "akapit", co czyni go bezpośrednim kandydatem do selekcji przez metodę getElementsByClassName('akapit'). Metoda ta zwraca kolekcję elementów (HTMLCollection), które mają podaną klasę, a następnie można z nimi pracować w kodzie JavaScript. Na przykład, możemy zmieniać ich style, zawartość lub dodawać zdarzenia. Dobrą praktyką jest stosowanie klas do stylizacji oraz manipulacji DOM, co pozwala na lepszą organizację kodu i zwiększa jego czytelność. Pamiętaj, że klasy są bardziej uniwersalne i elastyczne niż identyfikatory (ID), które powinny być unikalne na stronie. W przypadku konieczności stosowania metod do manipulacji elementami DOM, warto znać również inne metody, takie jak querySelector i querySelectorAll, które oferują bardziej zaawansowane opcje selekcji, umożliwiające wykorzystanie kombinacji klas, identyfikatorów i innych atrybutów.

Pytanie 11

W tabeli podzespoly należy zaktualizować wartość pola URL na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent to TOSHIBA. W języku SQL ta zmiana będzie wyglądała następująco

A. UPDATE podzespoly SET URL='toshiba.pl';
B. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
C. UPDATE producent='TOSHIBA' SET URL='toshiba.pl';
D. UPDATE podzespoly.producent='TOSHIBA' SET URL='toshiba.pl';
Odpowiedź ta jest prawidłowa, ponieważ poprawnie wykorzystuje składnię języka SQL do aktualizacji danych w tabeli. W instrukcji UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA'; najpierw wskazujemy tabelę, w której chcemy dokonać zmian, czyli 'podzespoly'. Następnie używamy klauzuli SET, aby zdefiniować nową wartość pola URL, a klauzula WHERE precyzuje, które rekordy mają zostać zaktualizowane, w tym przypadku te, gdzie producent to 'TOSHIBA'. To podejście jest zgodne z dobrymi praktykami, ponieważ stosowanie klauzuli WHERE zapobiega masowym aktualizacjom, które mogą prowadzić do niezamierzonych zmian w danych. Przykładowo, jeśli chcielibyśmy zaktualizować tylko określoną grupę produktów, klauzula WHERE pozwala na precyzyjne określenie zakresu zmian. Wprowadzenie takiej modyfikacji w bazie danych, z uwzględnieniem warunków, minimalizuje ryzyko błędów i poprawia integralność danych.

Pytanie 12

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 125
B. 120
C. 60
D. 625
Program jest przykładem prostego algorytmu obliczającego silnię liczby n, którą użytkownik wprowadza za pomocą funkcji prompt. Zmienna a jest inicjalizowana wartością 1 i służy do przechowywania wyniku. Pętla for rozpoczyna się od wartości n i zmniejsza wartość i do 2, za każdym razem mnożąc a przez i. Dla n=5 pętla wykona się pięć razy, obliczając kolejno 5*4*3*2*1, co daje wynik 120. Metoda document.write wyświetla wynik na stronie. Rozumienie mechanizmu działania pętli for i operatora *= jest kluczowe w zrozumieniu algorytmów obliczeniowych używanych w programowaniu JavaScript. Silnia jest podstawowym przykładem algorytmu rekurencyjnego, który można również zaimplementować za pomocą funkcji rekurencyjnej, co jest często stosowane w programowaniu funkcyjnym. Znajomość takich konstrukcji pozwala na tworzenie bardziej zaawansowanych algorytmów przetwarzania danych i optymalizację kodu, co jest cenioną umiejętnością w branży IT.

Pytanie 13

Przedstawiony w ramce fragment kwerendy SQL ma za zadanie wybrać

SELECT COUNT(wartosc) FROM ...
A. sumę w kolumnie wartosc.
B. liczbę kolumn.
C. średnią w kolumnie wartosc.
D. liczbę wierszy.
Poprawnie: wyrażenie SELECT COUNT(wartosc) ma za zadanie zwrócić liczbę wierszy, w których kolumna wartosc nie jest pusta (czyli nie ma wartości NULL). Funkcja agregująca COUNT() w SQL właśnie do tego służy – zlicza rekordy. W wersji COUNT(nazwa_kolumny) zliczane są tylko te wiersze, gdzie w tej kolumnie znajduje się jakaś konkretna wartość. To jest ważne rozróżnienie: COUNT(*) liczy wszystkie wiersze w tabeli lub wyniku kwerendy, natomiast COUNT(wartosc) pomija rekordy z NULL w tej kolumnie. Moim zdaniem to jedna z podstawowych rzeczy, które trzeba mieć „w ręku”, pracując z bazami danych. W praktyce używa się tego np. do sprawdzenia, ilu klientów podało numer telefonu, ilu pracowników ma przypisaną premię, ile zamówień ma ustawioną datę realizacji itd. Zamiast ręcznie przeglądać dane, odpalasz prostą kwerendę: SELECT COUNT(telefon) FROM klienci; i od razu wiesz, ile jest uzupełnionych pól. Dobre praktyki mówią też, żeby świadomie wybierać pomiędzy COUNT(*) a COUNT(kolumna), bo dają one różne wyniki przy brakach danych. W raportowaniu biznesowym to ma ogromne znaczenie, bo łatwo wyciągnąć złe wnioski, jeśli ktoś nie rozumie, co dokładnie liczy dana funkcja. W projektach komercyjnych COUNT() jest jedną z najczęściej używanych funkcji agregujących obok SUM(), AVG(), MIN() i MAX(), więc warto od razu nauczyć się jej poprawnej interpretacji i stosowania w połączeniu z klauzulą WHERE oraz GROUP BY, żeby liczyć wiersze spełniające konkretne warunki, np. ilu użytkowników aktywowało konto w danym miesiącu.

Pytanie 14

Który zapis to poprawna definicja funkcji w JavaScript?

A.
nazwa_funkcji(argumenty) { instrukcje; }
B.
typ_funkcji nazwa_funkcji(argumenty) { instrukcje; }
C.
new nazwa_funkcji(argumenty) { instrukcje; }
D.
function nazwa_funkcji(argumenty) { instrukcje; }
Bez słowa function (lub składni funkcji strzałkowej) to nie jest definicja - sam nazwa_funkcji(argumenty){...} wygląda jak wywołanie. new tworzy obiekty, a JavaScript nie deklaruje funkcji przez „typ zwracany” jak C++. Poprawna definicja to function nazwa_funkcji(argumenty) { instrukcje; }.

Pytanie 15

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

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

Pytanie 16

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

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

Pytanie 17

Który zapis poprawnie ustawia w CSS niebieski kolor tekstu?

A.
font-color: blue;
B.
color: blue;
C.
text-color: blue;
D.
color: (blue);
Kolor tekstu w CSS ustawia właściwość color. Wartość można podać jako nazwę (blue), zapis szesnastkowy (#0000ff) lub funkcję (rgb(0,0,255)). Poprawny zapis to więc color: blue;. Dlatego to ta deklaracja ustawia niebieski kolor tekstu.

Pytanie 18

Wskaż poprawne stwierdzenie dotyczące przedstawionego kodu HTML.
<video width="640" height="480" controls>
<source src="animacja.mp4" type="video/mp4">
</video>

A. Lokalizacja pliku jest nieprawidłowa, brak w niej ścieżki bezwzględnej.
B. Kod może nie działać w przeglądarkach, które nie obsługują HTML5.
C. Plik animacja.mp4 powinien mieć rozdzielczość 640x480 pikseli, aby był odtwarzany.
D. Użytkownik nie będzie miał możliwości kontrolowania odtwarzania wideo.
Kod HTML przedstawiony w pytaniu wykorzystuje znacznik &lt;video&gt;, który jest elementem HTML5 pozwalającym na osadzanie filmów w dokumentach internetowych. W kontekście poprawnej odpowiedzi, kluczowym jest zrozumienie, że przeglądarki muszą obsługiwać HTML5, aby mogły w pełni funkcjonować z tym kodem. W przypadku starszych przeglądarek, które nie wspierają HTML5, element &lt;video&gt; może nie być wyświetlany lub nie będzie działał prawidłowo. Dlatego istotne jest, aby deweloperzy testowali swoje aplikacje w różnych środowiskach oraz aby korzystali z odpowiednich polyfilli dla starszych przeglądarek, które mogą poprawić ich funkcjonalność. Przykładowo, użycie biblioteki JavaScript takiej jak Video.js może pomóc w zapewnieniu wsparcia dla elementów wideo w szerszym zakresie przeglądarek. Dbałość o kompatybilność z różnymi wersjami przeglądarek to nie tylko kwestia estetyki, ale również użyteczności i dostępności aplikacji internetowych.

Pytanie 19

Aby wykonać przycisk na stronę internetową zgodnie z przedstawionym wzorem, w programie do grafiki rastrowej należy użyć opcji:

Ilustracja do pytania
A. propagacja wartości
B. zniekształcenie i deformacja
C. zaokrąglenie narożników (prostokąt z zaokrąglonymi rogami)
D. zaznaczenie eliptyczne
Wzór przedstawia prostokątny przycisk z zaokrąglonymi rogami. Taki kształt rysuje się w edytorze grafiki rastrowej narzędziem prostokąta z zaokrąglonymi rogami (lub zaokrąglając zaznaczenie o zadanym promieniu). Daje to równe, gładkie narożniki zgodne z przykładem. Dlatego poprawna jest opcja zaokrąglenia narożników.

Pytanie 20

W CSS zapis w postaci

 h1::first-letter {color: red;} 

spowoduje, że kolor czerwony zostanie zastosowany do

A. pierwszej litery nagłówka w pierwszym stopniu
B. tekstu nagłówka w pierwszym stopniu
C. pierwszej litery nagłówka w drugim stopniu
D. pierwszej linii akapitu
Zapis <span>h1::first-letter {color: red;} </span> jest w porządku, bo korzysta z pseudoelementu :first-letter, który działa na pierwszą literkę w nagłówku h1. To całkiem fajne, bo możemy w ten sposób stylizować tę pierwszą literę i nadać nagłówkom ciekawszy wygląd. Na przykład, jeśli mamy nagłówek h1 z napisem 'Witaj świecie', to dzięki temu kodowi, litera 'W' zrobi się czerwona. W CSS warto ogarnąć, że :first-letter działa tylko na bloki, takie jak nagłówki czy akapity, więc warto to mieć na uwadze, gdy coś stylizujemy. Używanie pseudoelementów to dobre podejście do tworzenia ładnych i funkcjonalnych interfejsów, a przy okazji daje nam większą kontrolę nad tym, jak wyglądają nasze elementy.

Pytanie 21

Pomiędzy jakimi znakami umieszcza się komentarz w kodzie PHP?

A.
<!--  -->
B.
/*  */
C.
/?  ?/
D.
<?  ?>
Komentarz blokowy (wieloliniowy) w PHP umieszcza się między /* a */ - wszystko w środku interpreter pomija, np. /* opis funkcji\n na kilka linii */. Dla pojedynczego wiersza są jeszcze // i #. Zapamiętaj: /* */ obejmuje dowolnie długi fragment, także wiele linii.

Pytanie 22

Aby poprawić wydajność strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie jej rozmiarów

A. w programie graficznym
B. za pomocą atrybutów HTML
C. za pomocą właściwości CSS, podając rozmiar w procentach
D. za pomocą właściwości CSS, podając rozmiar w pikselach
Zastosowanie atrybutów HTML do zmiany rozmiaru grafiki, takie jak width i height, nie wpływa na samą wielkość pliku, a jedynie na to, jak obrazek jest prezentowany na stronie. Przykładowo, jeśli zmniejszymy wymiary w HTML, przeglądarka nadal załadowuje pełną wersję grafiki, co może prowadzić do wolniejszego ładowania strony. To podejście jest niewłaściwe, ponieważ nie rozwiązuje problemu optymalizacji pliku, a jedynie maskuje go na poziomie wizualnym. Podobnie, stosowanie właściwości CSS, aby wskazać rozmiar w pikselach lub procentach, również nie zmienia rozmiaru samego pliku, co powoduje, że strona może ładować się dłużej. Użytkownicy mogą być zdezorientowani, myśląc, że zmiana stylów CSS wystarczy do poprawy wydajności strony, podczas gdy w rzeczywistości kluczowe jest skompresowanie i zmniejszenie samego pliku graficznego. Typowym błędem myślowym jest założenie, że zmiana rozmiaru wyświetlania na stronie jest równoważna z optymalizacją pliku. W praktyce zaleca się najpierw zmniejszyć rozmiar grafiki w programie graficznym, a następnie użyć odpowiednich tagów HTML lub CSS do wyświetlenia obrazu w pożądanym rozmiarze. Takie podejście zapewnia rzeczywiste korzyści w zakresie wydajności i szybkości ładowania strony.

Pytanie 23

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl" style= "color: #F00 ">tekst</p>
B. <p class= "stl">tekst</p>
C. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
D. <p class= "stl" id= "a">tekst</p>
Pozostałe odpowiedzi nie zawierają błędów, które mogłyby skutkować odrzuceniem przez walidator HTML5. W pierwszym przypadku użycie atrybutu class w tagu <p> jest w pełni zgodne z HTML5, co pozwala na przypisanie stylu do elementu. Atrybut class jest standardowym sposobem klasyfikacji elementów, co umożliwia ich stylizację z użyciem CSS. W drugim przykładzie, dodanie atrybutu id do tagu <p> również nie narusza zasad poprawności HTML i pozwala na jednoznaczne identyfikowanie elementu na stronie. Identyfikatory są istotnym narzędziem w programowaniu front-end i są często wykorzystywane w JavaScript oraz przy stylizacji CSS. W trzecim przypadku stylowanie bezpośrednie na elemencie <p> przy użyciu atrybutu style jest akceptowalne w HTML5, mimo że nie jest to najlepsza praktyka ze względu na zasady separacji treści i stylu. Współczesne podejścia do programowania zalecają korzystanie z zewnętrznych arkuszy stylów, aby poprawić organizację kodu i jego ponowne użycie. Wszystkie te przykłady ilustrują biegłość w korzystaniu z HTML5 i jego atrybutów, co jest niezbędne do tworzenia semantycznych i dostępnych stron internetowych.

Pytanie 24

W MS SQL Server rola predefiniowana o nazwie dbcreator umożliwia użytkownikowi

A. zarządzanie bezpieczeństwem systemu
B. zarządzanie plikami na dysku
C. tworzenie, modyfikowanie, usuwanie oraz przywracanie bazy danych
D. wykonywanie wszelkich operacji na serwerze i posiadanie praw do każdej bazy
Rola dbcreator w MS SQL Server rzeczywiście pozwala użytkownikowi na tworzenie, modyfikowanie, usuwanie i odzyskiwanie baz danych. Użytkownicy, którzy mają przypisaną tę rolę, mogą łatwo zarządzać bazami danych w danym serwerze, co jest kluczowe w środowiskach, gdzie bazy danych muszą być regularnie aktualizowane lub tworzone od podstaw. Przykładowo, w przypadku rozwijania aplikacji biznesowej, programista może korzystać z tej roli do tworzenia nowych baz danych na potrzeby testów, co pozwala na szybkie wdrażanie oraz iterację w procesie rozwoju oprogramowania. W praktyce, przypisanie roli dbcreator powinno być stosowane z uwagą, aby ograniczyć do minimum dostęp do krytycznych operacji tylko dla zaufanych użytkowników. Dobre praktyki sugerują regularne przeglądanie i audyt przypisania ról oraz monitorowanie działań użytkowników, aby zapobiegać nieautoryzowanym zmianom w strukturze baz danych.

Pytanie 25

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A. <script src="przyklad.js"></script>
B. <script>przyklad.js</script>
C. <link rel="script" href="przyklad.js">
D. <script link="przyklad.js"></script>
Odpowiedź <script src="przyklad.js"></script> jest naprawdę na miejscu, bo użycie atrybutu 'src' w znaczniku <script> to taki standardowy sposób dołączania zewnętrznych skryptów JS do HTML-a. Atrybut 'src' mówi przeglądarce, gdzie znaleźć ten skrypt, więc może go załadować i wykonać. Dzięki temu, skrypt z pliku 'przyklad.js' wchodzi w interakcję ze stroną i może dodawać różne funkcje, jak na przykład reagowanie na działania użytkownika czy manipulowanie elementami na stronie. Pamiętaj, że najlepiej dołączać skrypty na końcu dokumentu, zaraz przed </body>, bo wtedy cała zawartość strony ładuje się najpierw. Warto też pomyśleć o atrybucie 'defer' lub 'async', żeby lepiej zoptymalizować ładowanie skryptów i nie blokować renderowania strony. Na przykład, <script src="przyklad.js" defer></script> pozwoli na asynchroniczne ładowanie, co z pewnością poprawia wydajność.

Pytanie 26

Co oznacza skrót SQL?

A. Sequential Question Language
B. Structured Query Language
C. Standard Quality Language
D. Simple Query Logic
Skrót SQL rozwija się jako Structured Query Language - „strukturalny język zapytań”. Nazwa oddaje jego rolę: to standardowy język do tworzenia zapytań i zarządzania danymi w relacyjnych bazach. Dlatego SQL to Structured Query Language.

Pytanie 27

Jaką właściwość CSS należy zastosować, aby ustawić wewnętrzne marginesy dla danego elementu?

A. width
B. margin
C. padding
D. hight
Właściwość CSS, którą należy zastosować do definiowania marginesów wewnętrznych elementu, to padding. Padding określa przestrzeń wewnętrzną między zawartością elementu a jego granicami. Przy pomocy paddingu możemy dostosować, jak dużo przestrzeni chcemy mieć wokół tekstu, obrazów czy innych elementów wewnątrz danego kontenera. Na przykład, zastosowanie padding: 20px; w CSS sprawi, że wewnętrzny margines będzie wynosił 20 pikseli od wszystkich stron wokół zawartości. Na poziomie praktycznym, padding jest niezwykle użyteczny w projektowaniu responsywnych interfejsów użytkownika, ponieważ pozwala na lepsze dostosowanie elementów do różnych rozmiarów ekranów. Dobrą praktyką jest używanie paddingu w połączeniu z innymi właściwościami, takimi jak margin, aby uzyskać pełną kontrolę nad położeniem i rozkładem elementów na stronie. Warto także pamiętać, że w CSS możemy ustalać padding oddzielnie dla górnej, prawej, dolnej i lewej strony, co daje jeszcze większą elastyczność w projektowaniu.

Pytanie 28

Która właściwość CSS ustawia kolor TEKSTU elementu?

A.
font-color
B.
color
C.
background-color
D.
text-color
Kolor TEKSTU elementu ustawia w CSS właściwość color, np. color: #000000; daje czarny tekst. Tła dotyczy osobna właściwość background-color. Dlatego kolor tekstu ustawia color.

Pytanie 29

Aby umieścić reguły CSS bezpośrednio w dokumencie HTML (wewnętrzny arkusz stylów), w sekcji <head> stosuje się znacznik:

A.
<style>
B.
<link>
C.
<css>
D.
<script>
Wewnętrzny arkusz stylów umieszcza się w znaczniku <style> wewnątrz sekcji <head>. Reguły CSS zapisane między <style> a </style> obowiązują w całym dokumencie. To wygodne dla pojedynczej strony, choć przy wielu podstronach lepszy jest arkusz zewnętrzny. Dlatego style wpisane bezpośrednio w dokumencie obejmuje znacznik <style>.

Pytanie 30

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

A.
<body bgcolor="black">TEKST</body>
B.
<body color="black">TEKST</font>
C.
<font color="#000000">TEKST</font>
D.
<font color="czarny">TEKST</font>
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 31

Które zapytanie SQL wybiera nazwiska z tabeli klient, które mają co najmniej jedną literę i zaczynają się na literę Z?

A. SELECT nazwisko FROM klient WHERE nazwisko='Z?'
B. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z_%'
C. SELECT nazwisko FROM klient WHERE nazwisko='Z_?'
D. SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'
Odpowiedź SELECT nazwisko FROM klient WHERE nazwisko LIKE 'Z%'; jest poprawna, ponieważ wykorzystuje operator LIKE, który jest standardowym narzędziem w SQL do wyszukiwania wzorców w danych tekstowych. Znak procenta (%) w tym kontekście oznacza, że może wystąpić dowolna liczba znaków po literze Z, co jest zgodne z wymaganiem, aby nazwiska były co najmniej jednoliterowe. W praktyce, takie zapytanie umożliwia efektywne wyszukiwanie danych w bazach, co jest kluczowe w kontekście aplikacji zarządzających danymi klientów. Dobre praktyki w projektowaniu baz danych zalecają stosowanie operatora LIKE do filtrowania wyników, co pozwala na zwiększenie przejrzystości i wydajności. W przypadku wyszukiwania nazwisk, można również użyć indeksów, aby przyspieszyć wykonanie zapytań, co jest ważne w kontekście dużych zbiorów danych, gdzie czas odpowiedzi aplikacji może mieć istotne znaczenie dla użytkowników końcowych. Używanie LIKE w połączeniu z odpowiednimi znakami wieloznacznymi jest więc kluczowym elementem efektywnego zarządzania danymi.

Pytanie 32

Który znacznik umieszcza się w sekcji <body> dokumentu HTML?

A.
<meta>
B.
<h2>
C.
<title>
D.
<link>
Znacznik <h2> to widoczna TREŚĆ strony (nagłówek drugiego poziomu), więc umieszcza się go w sekcji <body>. Dlatego do <body> należy <h2>.

Pytanie 33

W HTML, aby ustawić tytuł dokumentu na "Moja strona", który pojawi się na karcie przeglądarki internetowej, należy użyć zapisu

A. <meta name="title" content="Moja strona">
B. <head>Moja strona</head>
C. <meta title="Moja strona">
D. <title>Moja strona</title>
Element <title> w HTML jest naprawdę ważny, bo to właśnie on ustala, co zobaczysz na zakładce w przeglądarce. Powinien być umieszczony w sekcji <head>, co jest zgodne z tym, co mówi W3C. Poprawny zapis wygląda tak: <title>Moja strona</title>, co sprawia, że "Moja strona" będzie się pokazywać jako tytuł w przeglądarce. Tytuł strony ma spore znaczenie dla SEO, bo wpływa na to, jak strona jest pozycjonowana w wynikach wyszukiwania. Warto, żeby tytuł był krótki, ale jednocześnie zawierał istotne informacje, a najlepiej, żeby nie miał więcej niż 60 znaków, żeby się nie obcinał w wynikach. Fajnie też umieścić w tytule kluczowe słowa, które opisują, o czym jest strona, bo to może zwiększyć jej atrakcyjność i CTR. Dobrze skonstruowany tytuł to też lepsza dostępność, bo ułatwia użytkownikom poruszanie się i orientowanie w otwartych zakładkach.

Pytanie 34

Które z poniższych stwierdzeń dotyczących klucza głównego jest poprawne?

A. Składa się wyłącznie z jednego pola
B. Może przyjmować tylko wartości numeryczne
C. W tabeli z danymi osobowymi może to być pole z nazwiskiem
D. Jest unikalny w obrębie tabeli
Klucz podstawowy to atrybut lub zestaw atrybutów, który jednoznacznie identyfikuje każdy rekord w tabeli bazy danych. Najważniejszym wymogiem jest, aby klucz podstawowy był unikalny dla każdego wiersza, co oznacza, że nie może być powtórzony w obrębie tej samej tabeli. Przykładem może być numer identyfikacyjny (np. PESEL, NIP) przypisany do konkretnej osoby, który gwarantuje, że każda osoba w tabeli danych osobowych jest jednoznacznie identyfikowalna. Stosowanie kluczy podstawowych jest zgodne z zasadami normalizacji baz danych, co pozwala na minimalizację redundancji danych oraz poprawę integralności danych. Klucz podstawowy może składać się z jednego lub więcej pól, co daje elastyczność w projektowaniu bazy danych, aby pasowała do specyficznych potrzeb aplikacji. Dobre praktyki wskazują, że klucz podstawowy powinien być stabilny, czyli nie zmieniać się w czasie, oraz prosty do zaimplementowania i używania w zapytaniach SQL.

Pytanie 35

Który zapis tworzy w PHP tablicę ASOCJACYJNĄ (z kluczami) i przypisuje ją do zmiennej?

A.
$tab = array(); $tab[] = array(1, 2, 3, 4);
B.
$tab = array("a" => 1, "b" => 2, "c" => 3);
C.
$tab = array(array(1, 2), array(3, 4));
D.
$tab = array(1, 2, 3, 4);
Pozostałe zapisy tworzą inne struktury. array(1, 2, 3, 4) to tablica zwykła (klucze 0-3 nadane automatycznie). Zagnieżdżone array(array(1,2), array(3,4)) oraz dopisywanie $tab[] = array(...) budują tablicę wielowymiarową, a nie asocjacyjną. Klucze tekstowe nadaje dopiero zapis z =>.

Pytanie 36

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

A. części wspólnej.
B. sumy.
C. grupowania.
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 37

W języku JavaScript zdefiniowano funkcję potega. Funkcja ta

function potega(a, b = 2) { ... return wynik; }
A. wymaga podania dwóch argumentów przy wywołaniu
B. może być wywołana z jedną wartością
C. nie przyjmuje żadnych argumentów
D. nie zwraca wartości
W JavaScript funkcja może przyjmować parametry, zwracać wartości i być wywoływana z różną liczbą argumentów. Odpowiedź, że funkcja potega nie przyjmuje parametrów, jest nieprawidłowa. W kodzie widzimy, że przyjmuje dwa parametry (a, b), z czego drugi ma wartość domyślną. Funkcja w JavaScript może zwracać wartość poprzez instrukcję return, co jest standardową praktyką w celu uzyskania wyniku operacji. Zatem stwierdzenie, że nie zwraca żadnej wartości, jest błędne. W kodzie widoczna jest instrukcja return, co oznacza, że funkcja zwraca wynik. Koncepcja, że funkcja wymaga podania dwóch parametrów przy wywołaniu, również jest błędna, ponieważ jeden z parametrów ma przypisaną wartość domyślną i może być pominięty podczas wywołania funkcji. Wartości domyślne w JavaScript pozwalają na bardziej elastyczne użycie funkcji, co jest ugruntowaną praktyką od czasu wprowadzenia standardu ES6, umożliwiając łatwe zarządzanie brakującymi argumentami bez komplikowania kodu.

Pytanie 38

Jakie oznaczenie powinno się zastosować, aby umieścić film na stronie internetowej?

A. <video>
B. <media>
C. <movie>
D. <audio>
Znacznik <video> jest właściwym elementem HTML używanym do osadzania filmów na stronach internetowych. Jest on częścią standardu HTML5, który wprowadził nowoczesne podejścia do multimediów w sieci. Umożliwia on nie tylko osadzanie wideo, ale także dostosowywanie jego odtwarzania, takie jak automatyczne odtwarzanie, powtarzanie oraz kontrolowanie głośności. Przykład użycia znacznika <video>: <video src='film.mp4' controls>Odtwarzacz wideo</video>. Warto również dodać atrybuty, takie jak 'controls', które dodają przyciski do odtwarzania, pauzowania i regulacji głośności, co znacząco poprawia użyteczność dla użytkowników. Dobrą praktyką jest również używanie atrybutu 'poster' do określenia miniatury, która będzie wyświetlana przed rozpoczęciem odtwarzania, co przyciąga uwagę i zwiększa estetykę strony. Znacznik <video> wspiera różne formaty plików, takie jak MP4, WebM i Ogg, co zapewnia szeroką kompatybilność z różnymi przeglądarkami internetowymi, co jest kluczowe w dzisiejszym zróżnicowanym środowisku online.

Pytanie 39

W języku JavaScript rezultat wykonania polecenia

zmienna1 -= 1;
będzie tożsamy z wynikiem polecenia
A. zmienna1 = zmienna1 - 0;
B. zmienna1++;
C. zmienna1 === zmienna1 - 1;
D. zmienna1--;
Odpowiedź zmienna1--; jest poprawna, ponieważ jest to skrócona forma wyrażenia zmienna1 -= 1;. Oba wyrażenia mają ten sam efekt, który polega na zmniejszeniu wartości zmiennej zmienna1 o 1. W języku JavaScript operator '--' jest operatorem dekrementacji, który zmienia wartość zmiennej o jeden w dół. Użycie tego operatora jest zgodne z dobrymi praktykami kodowania, gdyż zwiększa czytelność kodu, czyniąc intencje programisty bardziej jasnymi. Użycie dekrementacji jest powszechne w sytuacjach, gdzie iterujemy przez kolekcje z użyciem pętli, co ogranicza potrzebę stosowania bardziej skomplikowanych instrukcji. Na przykład, w przypadku pętli for, zamiast pisać for(let i = n; i > 0; i -= 1), można zastosować for(let i = n; i > 0; i--), co jest bardziej zwięzłe i zrozumiałe. W kontekście standardów kodowania, preferowanym podejściem jest używanie operatorów, które maksymalizują przejrzystość i minimalizują możliwość popełnienia błędów.

Pytanie 40

Wskaż definicję metody, którą należy wstawić w miejscu kropek, aby na stronie WWW wyświetlił się tekst: Jan Kowalski

<p id="wynik"></p>
<script type="text/javascript">
    var osoba = { nazwisko: "Kowalski", imie: "Jan" };
    …
    document.getElementById("wynik").innerHTML = osoba.dane();
</script>

osoba.dane = function() {
    return this.imie+" "+this.nazwisko;
};                 A.

dane() = function() {
    return this.imie+" "+this.nazwisko;
};                 B.

osoba.dane = function() {
    return imie+" "+nazwisko;
};                 C.

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.
A. C.
B. A.
C. D.
D. B.
No niestety, wybrałeś złą odpowiedź. Główny problem tutaj polega na tym, że źle rozumiesz, jak działa słowo kluczowe 'this' w JavaScript. Warianty B i D są nietrafione, bo chociaż mają metodę 'dane', to nie jest ona przypisana do obiektu 'osoba'. Bez tego przypisania, metoda nie ma jak sięgnąć do właściwości 'imię' i 'nazwisko'. Podobnie, wariant C też nie jest ok, bo nie wykorzystuje 'this'. Bez 'this', nie możesz sięgnąć do tych właściwości z obiektu 'osoba'. To częsty błąd, który wynika z mylenia kontekstu. Pamiętaj, że 'this' to twój sposób na wskazanie obiektu, w którym wywołujesz metodę.