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 22:57
  • Data zakończenia: 8 czerwca 2026 23:16

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

Jak nazywa się niepotrzebne POWIELANIE tych samych danych w wielu miejscach bazy?

A. normalizacją
B. spójnością danych
C. redundancją (nadmiarowością)
D. integralnością referencyjną
Redundancja (nadmiarowość) to niepotrzebne POWIELANIE tych samych danych w wielu miejscach bazy. Jest niekorzystna - zajmuje miejsce i grozi niespójnością (zmiana w jednym miejscu, a nie w innym). Ogranicza ją normalizacja. Dlatego powielanie danych to redundancja.

Pytanie 2

Jak nazywa się paradygmat, w którym program buduje się z OBIEKTÓW łączących dane i operujące na nich metody?

A. funkcyjne
B. logiczne
C. obiektowe
D. strukturalne
Programowanie obiektowe (OOP) to paradygmat, w którym program buduje się z OBIEKTÓW - egzemplarzy klas łączących DANE (pola) oraz METODY działające na tych danych. Opiera się na filarach takich jak hermetyzacja, dziedziczenie i polimorfizm. Dlatego paradygmat oparty na obiektach to programowanie obiektowe.

Pytanie 3

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

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

Pytanie 4

Aby wstawić w napisie (zmiennej typu string) złamanie linii, należy użyć znaku:

A.
\t
B.
\n
C.
\b
D.
\\
Sekwencja \n to tak zwany znak nowej linii (newline). W napisie ukośnik wsteczny rozpoczyna sekwencję sterującą, a litera po nim określa jej znaczenie - \n oznacza przejście do nowej linii. Dzięki temu można formatować wieloliniowy tekst zapisany w jednej zmiennej, bez fizycznego entera w kodzie. To powszechna konwencja w wielu językach (m.in. JavaScript, PHP, C). Dlatego do złamania linii w napisie służy właśnie \n.

Pytanie 5

Po wykonaniu poniższego kodu JavaScript, co będzie przechowywać zmienna str2?

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. vaScri
B. vaSc
C. nvaScr
D. avaS
Wykorzystując metodę substring w JavaScript możemy wyodrębnić fragmenty łańcucha znaków bazując na indeksach początkowym i końcowym. Indeksowanie w JavaScript zaczyna się od zera co oznacza że pierwszy znak ma indeks 0 drugi 1 i tak dalej. W przypadku zmiennej str1 przechowującej łańcuch JavaScript wywołanie str1.substring(2 6) zwraca fragment zaczynający się od znaku o indeksie 2 do znaku o indeksie 5 włącznie. Oznacza to że metoda wybiera znaki od trzeciego do szóstego nie wliczając znaku o indeksie 6. W praktyce oznacza to że z napisu JavaScript wybierane są znaki aScr co tworzy łańcuch vaSc. Zrozumienie działania metody substring jest kluczowe przy pracy z łańcuchami znaków w JavaScript. Jest to standardowa metoda używana powszechnie do manipulacji tekstem co ma zastosowanie w wielu dziedzinach programowania frontendowego i backendowego. Ważne jest aby pamiętać o zeroindeksowaniu co pozwala uniknąć typowych błędów związanych z nieprawidłowym określeniem zakresu znaków.

Pytanie 6

Aby nadać użytkownikowi uprawnienia do tabel w bazie danych, należy zastosować polecenie:

A.
CREATE
B.
REVOKE
C.
GRANT
D.
SELECT
Uprawnienia do tabel nadaje się poleceniem GRANT. Należy ono do języka kontroli danych DCL, który decyduje, kto i co może robić w bazie. Budowa polecenia jest czytelna: po GRANT wymieniasz rodzaje uprawnień, po ON wskazujesz tabelę, a po TO - użytkownika, na przykład GRANT SELECT, INSERT ON klienci TO jan. Dzięki temu administrator precyzyjnie ustala, kto ma dostęp do danych i jakie operacje może na nich wykonać. Poleceniem odwrotnym, które cofa przyznane prawa, jest REVOKE.

Pytanie 7

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

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 0
B. 1 0 1
C. 1 0 1 0
D. 1 1
Wybór błędnych odpowiedzi wynika z niepełnej analizy działania pętli oraz błędnych założeń dotyczących wartości zwracanych przez operację modulo. Odpowiedzi 1 0, 1 0 1 oraz 1 0 1 0 wskazują na zrozumienie, że liczby mogą mieć różne wartości modulo 2, ale z niewłaściwym przypisaniem ich do konkretnego kontekstu pętli. Wartość 0 w odpowiedzi 1 0 sugeruje, że użytkownik myśli, że $i może kiedykolwiek przyjąć wartość parzystą i wpłynąć na wynik, co jest błędne w kontekście analizowanego kodu. Liczba 5 jest liczbą nieparzystą, więc operacja modulo skutkuje 1, a 3 również jest liczbą nieparzystą, co również daje 1. Odpowiedź 1 0 1 sugeruje, że po osiągnięciu wartości $i = 1, wynik zmienia się na zero, co jest niezgodne z zasadami przetwarzania w tej pętli. Podobnie, odpowiedź 1 0 1 0 sugeruje, że w pętli mogłyby pojawić się inne wartości, podczas gdy w rzeczywistości, jak pokazuje analiza, pętla kończy się po dwóch iteracjach. Kluczowe jest zrozumienie, jak działają struktury kontrolne w programowaniu oraz jakie wyniki można otrzymać na podstawie operacji arytmetycznych. Taka analiza jest niezbędna, aby uniknąć typowych błędów związanych z operacjami na liczbach oraz wyciąganiem wniosków na temat ich właściwości.

Pytanie 8

Który atrybut nadać polu, aby przyjmowało automatycznie kolejne liczby całkowite?

A.
AUTO_INCREMENT
B.
NULL
C.
PRIMARY KEY
D.
NOT NULL
Atrybut AUTO_INCREMENT sprawia, że przy każdym nowym wierszu pole automatycznie otrzymuje kolejną liczbę całkowitą (1, 2, 3, …) - bez podawania jej ręcznie. Stosuje się go najczęściej dla kolumny identyfikatora (id), zwykle łączonej z PRIMARY KEY. Dlatego automatyczną numerację daje AUTO_INCREMENT.

Pytanie 9

Który selektor stylizuje akapity 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
Klasę oznacza kropka (p.tekst = akapity klasy tekst), a identyfikator - krzyżyk (div#obrazki = <div> o id obrazki). PRZECINEK łączy je w grupę - reguła obejmie oba zestawy elementów. Dlatego pierwsza odpowiedź jest poprawna.

Pytanie 10

Aby wyróżnić innym kolorem wiersz tabeli, na który aktualnie najeżdża kursor myszy, należy w CSS użyć:

A. nowego selektora klasy dla wiersza tabeli
B. pseudoelementu :first-line
C. pseudoklasy :hover
D. pseudoklasy :visited
Pseudoklasa :hover stosuje wybrane reguły CSS tylko wtedy, gdy kursor myszy znajduje się nad elementem. Aby podświetlić wiersz tabeli przy najechaniu, zapisuje się np. tr:hover { background: #eee; }. Po zsunięciu kursora styl znika. Dlatego do wyróżnienia wskazywanego wiersza służy pseudoklasa :hover.

Pytanie 11

Jak zapisać marginesy zewnętrzne: górny i dolny 20 px, lewy i prawy 40 px?

A.
margin: 20px 40px 40px 20px;
B.
margin: 40px 20px;
C.
margin: 20px 40px;
D.
margin: 20px 20px 40px 40px;
W skróconym zapisie margin z DWIEMA wartościami pierwsza dotyczy marginesu GÓRNEGO i DOLNEGO, a druga - LEWEGO i PRAWEGO. Stąd margin: 20px 40px; daje 20 px góra/dół i 40 px boki. Dlatego druga odpowiedź jest poprawna.

Pytanie 12

Które dane zostaną wybrane w wyniku działania kwerendy na przedstawionych rekordach?

SELECT id FROM samochody WHERE rocznik LIKE "2%4";
idmarkamodelrocznik
1FiatPunto2016
2FiatPunto2002
3FiatPunto2007
4OpelCorsa2016
5OpelAstra2003
6ToyotaCorolla2016
7ToyotaCorolla2014
8ToyotaYaris2004
A. Identyfikatory równe 7 oraz 8.
B. Brak danych.
C. Wszystkie identyfikatory.
D. Tylko identyfikator równy 8.
Prawidłowa odpowiedź wskazuje, że w wyniku działania kwerendy zostaną wybrane rekordy z id równymi 7 oraz 8, ponieważ oba te roczniki zaczynają się cyfrą 2 i kończą na 4, co spełnia warunek LIKE '2%4'. W SQL operator LIKE umożliwia wyszukiwanie wzorców w danych tekstowych i jest bardzo użyteczny w sytuacjach, gdy nieznana jest pełna wartość, a tylko jej część. W praktycznych aplikacjach, takich jak systemy zarządzania bazami danych, często stosuje się ten operator do filtrowania wyników na podstawie niepełnych informacji. Na przykład, jeżeli chciałbyś zidentyfikować wszystkie pojazdy z określonym rocznikiem, użycie LIKE może szybko zawęzić wyniki. Używanie tego operatora w połączeniu z innymi funkcjami SQL, jak GROUP BY czy JOIN, pozwala na kompozycję bardziej złożonych zapytań, co jest standardem w analityce danych.

Pytanie 13

W języku C++ utworzono zmienną: char zml;. Jak można przypisać jej wartość, zgodnie ze składnią tego języka?

A. zml == 0x35;
B. zml[2] = 32;
C. zml = ' w ' ;
D. zml = "wiadro";
Odpowiedzi zml == 0x35 oraz zml[2] = 32 są niepoprawne, ponieważ nie odpowiadają standardom przypisywania wartości zmiennej char w C++. W pierwszej odpowiedzi użyto operatora porównania '==', co skutkuje błędem, ponieważ zamiast przypisywać wartość, program sprawdziłby, czy zml jest równe wartości 0x35, co nie spełnia wymagań przypisania. Dodatkowo, wartość 0x35 reprezentuje znak '5' w kodowaniu ASCII, co nie może być zdefiniowane jako przypisanie do zmiennej char w oczekiwanym kontekście. Druga błędna odpowiedź wprowadza w błąd, ponieważ zml[2] sugeruje, że zmienna zml jest tablicą char, co jest niezgodne z jej deklaracją jako zmiennej pojedynczej. W C++, operacje na tablicach wymagają innego podejścia; nie można bezpośrednio przypisywać wartości w ten sposób do zmiennej char. Z kolei odpowiedź zml = "wiadro" jest niezgodna, gdyż próbuje przypisać łańcuch znaków do zmiennej char, co prowadzi do naruszenia reguł typów danych. Pojedynczy znak powinien być zamknięty w pojedynczych cudzysłowach, a nie w podwójnych, co prowadzi do błędu kompilacji i źle zrozumianej koncepcji wartości zmiennych w C++. Podstawowa zasada programowania w C++ polega na zgodności typów danych, a zrozumienie tej zasady jest kluczowe dla efektywnego programowania.

Pytanie 14

Jaki jest najłatwiejszy i najmniej czasochłonny sposób przetestowania strony w różnych przeglądarkach i ich wersjach?

A. instalacja różnych przeglądarek na kilku komputerach i testowanie
B. użycie walidatora kodu HTML
C. użycie emulatora przeglądarek (np. usługi typu Browser Sandbox)
D. test tylko w jednej przeglądarce, zakładając zgodność pozostałych
Najszybszym i najmniej pracochłonnym sposobem sprawdzenia strony w wielu przeglądarkach i ich wersjach jest skorzystanie z EMULATORA (usługi do testów wieloprzeglądarkowych, np. typu Browser Sandbox czy serwisów cross-browser). Z jednego miejsca, bez instalowania dziesiątek programów, można podejrzeć, jak strona wygląda w różnych środowiskach. Dlatego najwygodniejszy jest emulator przeglądarek.

Pytanie 15

Który semantyczny znacznik HTML5 przeznaczony jest na stopkę strony?

A.
<figcaption>
B.
<aside>
C.
<header>
D.
<footer>
Semantyczny znacznik <footer> oznacza stopkę strony lub sekcji - umieszcza się w nim zwykle informacje o prawach autorskich, dane kontaktowe, linki dodatkowe czy mapę strony. Użycie znacznika o jasnym znaczeniu pomaga wyszukiwarkom i technologiom wspomagającym zrozumieć strukturę dokumentu. Dlatego na stopkę przeznaczony jest <footer>.

Pytanie 16

Co chce osiągnąć poniższe zapytanie MySQL?

ALTER TABLE ksiazki
MODIFY tytul VARCHAR(100) NOT NULL;
A. Zmienić typ kolumny w tabeli ksiazki
B. Usunąć kolumnę tytul z tabeli ksiazki
C. Dodać do tabeli ksiazki kolumnę tytul
D. Zmienić nazwę kolumny w tabeli ksiazki
Polecenie SQL ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; służy do zmiany typu kolumny tytul w tabeli ksiazki. W tym przypadku typ kolumny jest zmieniany na VARCHAR(100), co oznacza, że będzie przechowywać łańcuchy znaków o maksymalnej długości 100 znaków, a dodatkowo kolumna ta nie może przyjmować wartości NULL. Użycie ALTER TABLE i MODIFY pozwala na dynamiczną modyfikację struktury tabeli bez konieczności jej usuwania i ponownego tworzenia, co jest korzystne w dużych systemach bazodanowych, gdzie minimalizacja czasu przestoju jest kluczowa. Praktyczne zastosowanie polecenia MODIFY jest szerokie i obejmuje sytuacje, w których wymagane są zmiany w przechowalności danych, na przykład aby dostosować się do nowych wymagań biznesowych lub normatywnych. Warto pamiętać o dopasowaniu zmian do istniejących danych i zapewnieniu spójności bazy danych, co jest dobrą praktyką w zarządzaniu bazami danych.

Pytanie 17

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.Recepty_id
B. Lekarze.id = Pacjenci.id
C. Lekarze.id = Pacjenci.Lekarze_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 18

Który typ danych SQL jest optymalny do przechowywania numeru PESEL?

A.
TINYINT
B.
CHAR(11)
C.
BLOB
D.
FLOAT(11)
PESEL to ciąg dokładnie 11 cyfr o STAŁEJ długości, traktowany jak identyfikator (nie liczy się na nim). Najlepszy jest typ tekstowy o stałej długości CHAR(11) - nie gubi zer wiodących i zajmuje przewidywalne miejsce. Dlatego trzecia odpowiedź jest poprawna.

Pytanie 19

Który format NIE służy do publikacji grafiki lub animacji w internecie?

A. SVG
B. SWF
C. AIFF
D. PNG
AIFF (Audio Interchange File Format) to format pliku DŹWIĘKOWEGO, więc nie służy do publikacji grafiki ani animacji w internecie. Pozostałe wymienione formaty są graficzne lub animacyjne. Dlatego formatem, który nie służy do grafiki, jest AIFF.

Pytanie 20

Po uruchomieniu kodu PHP

echo date("Y-m");
na ekranie pojawi się bieżąca data w formacie:
A. dnia, miesiąca, roku
B. roku oraz miesiąca
C. tylko roku
D. dnia i roku
Odpowiedź 'rok i miesiąc' jest prawidłowa, ponieważ funkcja 'date' w PHP formatuje datę na podstawie podanego wzorca. W przypadku użycia wzorca 'Y-m', 'Y' oznacza pełny rok (np. 2023), a 'm' oznacza dwucyfrowy miesiąc (np. 03 dla marca). W wyniku działania 'echo date("Y-m");' na ekranie zostanie wyświetlona aktualna data w formacie YYYY-MM, co jest niezwykle przydatne w wielu aplikacjach, takich jak generowanie raportów miesięcznych, archiwizacja danych czy implementacja systemów zarządzania treścią. Użycie tego wzorca jest zgodne z najlepszymi praktykami programistycznymi, które zalecają właściwe formatowanie daty w celu jej późniejszej analizy lub prezentacji. Ponadto, umiejętność manipulacji datami w PHP jest kluczowa w kontekście tworzenia aplikacji webowych, które często wymagają interakcji z użytkownikami w czasie rzeczywistym, a także integracji z bazami danych, gdzie prawidłowe formatowanie daty ma kluczowe znaczenie dla integralności danych.

Pytanie 21

Jak powinien być poprawnie zapisany znacznik <img>, służący do umieszczenia na stronie internetowej obrazu rys.jpg, przeskalowanego do szerokości 120 px oraz wysokości 80 px z tekstem alternatywnym "krajobraz"?

A. <img src="rys.jpg" height="120px" width="80px" info="krajobraz"/>
B. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
C. <img href="rys.jpg" height="120px" width="80px" info="krajobraz"/>
D. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/> jest poprawna z kilku powodów. Przede wszystkim, atrybut 'src' wskazuje na lokalizację pliku graficznego, co jest kluczowe dla poprawnego wyświetlania obrazu na stronie internetowej. Atrybuty 'width' oraz 'height' pozwalają na precyzyjne określenie rozmiarów obrazu, co jest istotne zarówno dla responsywności strony, jak i dla optymalizacji czasu ładowania. Użycie jednostki 'px' (pikseli) jest poprawne, jednak w HTML5 można pominąć tę jednostkę, wpisując jedynie wartość liczbową. Atrybut 'alt' jest niezwykle ważny dla dostępności, ponieważ dostarcza alternatywny opis obrazu dla użytkowników, którzy nie mogą go zobaczyć, na przykład osób niewidomych korzystających z czytników ekranu. Używanie odpowiednich atrybutów oraz wartości jest zgodne z najlepszymi praktykami w tworzeniu stron WWW oraz standardami W3C, co wpływa na lepszą użyteczność oraz SEO strony. Przykładem praktycznym może być umieszczenie grafiki w nagłówku strony, gdzie obraz jest widoczny, a opis alternatywny wspiera dostępność i kontekst treści.

Pytanie 22

Jak zapisać w JavaScript warunek: a i b są dodatnie, a b jest mniejsze od 100?

A.
if (a > 0 && b > 0 && b < 100)
B.
if (a > 0 || b > 0 || b > 100)
C.
if (a > 0 && b > 0 || b > 100)
D.
if (a > 0 || (b > 0 && b < 100))
Pozostałe zapisy źle opisują warunek. Wariant z samymi || (logiczne LUB) jest prawdziwy, gdy spełniony jest CHOĆ jeden człon - nie wymaga więc spełnienia wszystkich; dodatkowo b > 100 jest odwrotnością b < 100. Mieszanie && i || w trzecim zapisie zmienia logikę i też używa błędnego b > 100. Czwarty zapis przez || dopuszcza przypadek, gdy a wcale nie jest dodatnie. Wszystkie warunki naraz daje a > 0 && b > 0 && b < 100, dlatego pierwsza odpowiedź jest poprawna.

Pytanie 23

Którego znacznika HTML użyć, aby tekst miał czcionkę o stałej szerokości i zachował dodatkowe spacje, tabulacje oraz znaki końca linii?

A.
<code> ... </code>
B.
<blockquote> ... </blockquote>
C.
<pre> ... </pre>
D.
<ins> ... </ins>
Znacznik <pre> (preformatted) wyświetla tekst dokładnie tak, jak zapisano go w kodzie - ZACHOWUJE wielokrotne spacje, tabulacje i znaki końca linii, a do tego używa czcionki o stałej szerokości (monospace). Dlatego nadaje się do prezentacji kodu, danych w kolumnach czy ASCII-artu. Dlatego poprawny jest <pre>.

Pytanie 24

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
B. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
C. &lt;img src = mojPiesek.jpg alt = pies&gt;
D. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
Odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt; jest poprawna zgodnie z wymaganiami HTML5, ponieważ przestrzega zasad dotyczących składni znaczników. W HTML5 atrybuty powinny być stosowane w formacie klucz-wartość, gdzie klucz jest nazwą atrybutu, a wartość jest przypisana w cudzysłowach. W tym przypadku atrybut 'src' wskazuje na źródło obrazu, a 'alt' dostarcza tekst alternatywny, co jest istotne z punktu widzenia dostępności. Tekst alternatywny jest używany przez technologie asystujące oraz wyświetlany, gdy obraz nie może być załadowany. Przykład użycia: &lt;img src=&quot;logo.png&quot; alt=&quot;Logo firmy&quot;&gt; jest zgodny z dobrymi praktykami, ponieważ informuje użytkowników o zawartości obrazu. Warto również pamiętać, że w HTML5 nie jest wymagane zamykanie tagu &lt;img&gt;, co czyni go bardziej elastycznym w użyciu. Poprawne stosowanie atrybutów oraz odpowiedzialność za dostępność treści to kluczowe aspekty projektowania stron internetowych w dzisiejszych czasach.

Pytanie 25

Jakie z poniższych stwierdzeń poprawnie opisuje zdefiniowaną tabelę?

CREATE TABLE dane (kolumna INTEGER(3));
A. Tabela o nazwie dane zawiera trzy kolumny typu całkowitego.
B. Kolumny tabeli dane są nazywane: kolumna 1, kolumna2, kolumna3.
C. Tabela ma jedną kolumnę, która zawiera tablice z trzema elementami.
D. Tabela o nazwie dane posiada jedną kolumnę liczb całkowitych.
Odpowiedź jest prawidłowa, ponieważ w zdefiniowanej tabeli 'dane' mamy jedną kolumnę o nazwie 'kolumna', której typ danych to INTEGER. Wartość 3 w definicji INTEGER(3) oznacza, że kolumna może przechowywać liczby całkowite, a nie liczb o długości 3, co często jest mylone. W praktyce INTEGER w SQL nie ma ograniczenia do przechowywania tylko trzech cyfr; to po prostu sugeruje, że przyjmuje się, iż liczby będą miały długość do trzech cyfr, co jest w rzeczywistości ignorowane, ponieważ SQL nie narzuca takich ograniczeń. Wartości w tej kolumnie mogą być zarówno jednocyfrowe, jak i trzycyfrowe. W kontekście projektowania baz danych, dobrą praktyką jest nadawanie kolumnom zrozumiałych nazw oraz dokładne określanie ich typów danych, co ułatwia późniejsze zarządzanie danymi. Poprawne zdefiniowanie tabeli jest kluczowe dla wydajności bazy danych oraz jej integralności, dlatego dla kolumny INTEGER nie ma potrzeby dodatkowego określania ograniczeń, chyba że są one wymagane w kontekście aplikacyjnym.

Pytanie 26

Zakładając, że tablica $tab zawiera liczby naturalne, co program wyświetli?

$liczba = $tab[0];
foreach ($tab as $element)
{
  if ($element > $liczba)
    $liczba = $element;
}
echo $liczba;
A. największy element tablicy
B. elementy, które przewyższają zmienną $liczba
C. najmniejszy element tablicy
D. element tablicy o wartości $tab[0]
Program w tym pytaniu ilustruje proces wyszukiwania największego elementu w tablicy za pomocą pętli foreach. Na początku zmienna $liczba jest inicjalizowana pierwszym elementem tablicy $tab. Następnie program iteruje przez wszystkie elementy tablicy i porównuje każdy z nich z aktualną wartością $liczba. Jeśli bieżący element jest większy niż $liczba, to wartość $liczba jest aktualizowana do tej większej wartości. Dzięki tej logice na końcu pętli $liczba przechowuje największy element z tablicy. Jest to zgodne z powszechnie stosowanym wzorcem projektowym polegającym na iteracyjnej aktualizacji zmiennej przechowującej ekstremalną wartość, w tym przypadku maksymalną. Taka metoda jest skuteczna i efektywna, ponieważ przeszukuje całą tablicę tylko raz, co jest operacją o złożoności czasowej O(n), gdzie n to liczba elementów w tablicy. Podejście to jest stosowane nie tylko w programach edukacyjnych, ale również w rzeczywistych projektach programistycznych, gdzie optymalne przetwarzanie danych jest kluczowe. Dobrą praktyką jest inicjalizacja zmiennej kontrolnej wartością pierwszego elementu tablicy, co unika niepotrzebnego porównywania z nieistotnymi wartościami, np. minus nieskończonością, i jest zgodne z zasadą KISS (Keep It Simple, Stupid).

Pytanie 27

Który efekt został zaprezentowany na filmie?

A. Przenikanie zdjęć.
B. Zmiana jasności zdjęć.
C. Zwiększenie ostrości zdjęcia.
D. Zmniejszenie kontrastu zdjęcia.
Poprawnie wskazany efekt to przenikanie zdjęć, często nazywane też płynnym przejściem (ang. crossfade). Polega to na tym, że jedno zdjęcie stopniowo zanika, jednocześnie drugie pojawia się z narastającą widocznością. W praktyce technicznej realizuje się to najczęściej przez zmianę przezroczystości (opacity) dwóch warstw – jedna warstwa z pierwszym obrazem ma zmniejszaną wartość opacity z 1 do 0, a druga z kolejnym zdjęciem zwiększaną z 0 do 1. Na stronach WWW taki efekt robi się zwykle za pomocą CSS (transition, animation, keyframes) albo JavaScriptu, czasem z użyciem bibliotek typu jQuery czy gotowych sliderów. Moim zdaniem to jest jeden z podstawowych efektów, który warto umieć odtworzyć, bo pojawia się w galeriach, sliderach na stronach głównych, prezentacjach produktów czy prostych pokazach slajdów. W materiałach multimedialnych, np. w edycji wideo, dokładnie ten sam efekt nazywa się przejściem typu „cross dissolve” lub „fade”, i zasada działania jest identyczna – płynne nakładanie się dwóch klatek obrazu w czasie. Dobre praktyki mówią, żeby nie przesadzać z czasem trwania przenikania: zwykle 0,5–1,5 sekundy daje przyjemny, profesjonalny wygląd, bez wrażenia „zamulenia” interfejsu. Warto też pilnować spójności – jeśli na stronie używasz przenikania w jednym miejscu, dobrze jest utrzymać podobny styl animacji w innych elementach, żeby całość wyglądała konsekwentnie i nie rozpraszała użytkownika. W kontekście multimediów na WWW przenikanie jest też korzystne wydajnościowo, bo operuje głównie na właściwości opacity i transformacjach, które przeglądarki potrafią optymalizować sprzętowo.

Pytanie 28

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return oblicz()">dodaj</button>
B. <button onselect="return dodaj()">oblicz</button>
C. <button onselect="return dodaj()">dodaj</button>
D. <button onclick="return dodaj()">dodaj</button>
Gratulacje, wybrałeś poprawną odpowiedź. Przycisk w JavaScript jest aktywowany poprzez zdarzenie onclick, które jest wyzwalane po kliknięciu przycisku. Właściwość onclick jest jednym z wielu zdarzeń w JavaScript, które są używane do obsługi interakcji użytkownika. Kiedy użytkownik kliknie przycisk, zdarzenie onclick jest wywoływane i kod zawarty w tym zdarzeniu jest wykonany. W tym przypadku, kod to 'return dodaj()', co oznacza, że funkcja 'dodaj' jest wywoływana. Ta funkcja została zdefiniowana w skrypcie JavaScript i realizuje dodawanie dwóch liczb. Zdarzenie onclick jest często używane w praktycznych zastosowaniach, takich jak przyciski subskrybcji, przyciski do logowania czy przyciski do przesyłania formularzy. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają utrzymanie interakcji użytkownika w kodzie JavaScript zamiast HTML.

Pytanie 29

Która grupa znaczników HTML służy do GRUPOWANIA elementów i budowy struktury dokumentu?

A. <div>, <article>, <header>
B. <br>, <img>, <hr>
C. <table>, <tr>, <td>
D. <span>, <strong>, <em>
Strukturę dokumentu budują znaczniki grupujące i sekcjonujące: <div> (ogólny pojemnik blokowy) oraz semantyczne <article>, <header>, <nav>, <section>, <footer>. Dlatego czwarta odpowiedź jest poprawna.

Pytanie 30

Który znacznik HTML służy do budowy STRUKTURY (układu) strony?

A.
<mark>
B.
<aside>
C.
<em>
D.
<input>
Znacznik <aside> to element SEMANTYCZNY budujący strukturę strony - oznacza treść poboczną (np. pasek boczny, powiązane odnośniki). Wraz z <header>, <nav>, <main>, <section>, <footer> tworzy logiczny układ dokumentu. Dlatego do struktury służy <aside>.

Pytanie 31

Podaj słowo kluczowe w języku C++, które umieszczane przed wbudowanym typem danych, umożliwia przyjmowanie jedynie nieujemnych wartości liczbowych?

A. const
B. short
C. long
D. unsigned
W języku C++ istnieją różne słowa kluczowe, które mogą wprowadzać pewne zamieszanie, jeśli chodzi o typy danych. Na przykład, słowo kluczowe 'short' zmniejsza rozmiar zmiennej, ale nie wpływa na to, czy zmienna przechowuje wartości ujemne czy nie. 'short int' może nadal przechowywać wartości zarówno dodatnie, jak i ujemne, a jego zastosowanie ma sens jedynie w kontekście zmniejszenia zajmowanej pamięci, co w niektórych przypadkach może być korzystne dla optymalizacji. Kolejne słowo kluczowe, 'const', z kolei nie ma wpływu na zakres wartości zmiennej, lecz określa, że zmienna jest stała i niezmienna po jej inicjalizacji. Użycie 'const' jest szczególnie przydatne w kontekście zapewnienia, że dane nie zostaną zmienione w trakcie działania programu, co może poprawić stabilność i przewidywalność aplikacji. 'Long' jest słowem kluczowym, które rozszerza zakres przechowywanych wartości, ale wciąż nie zapewnia, że będą one jedynie nieujemne. Wartość zmiennej 'long int' może być zarówno dodatnia, jak i ujemna. Typowe błędy myślowe związane z wyborem niepoprawnych słów kluczowych mogą wynikać z niepełnego zrozumienia tego, jak różne modyfikatory wpływają na typy danych, co z kolei prowadzi do pomyłek w kodowaniu oraz potencjalnych błędów runtime w aplikacjach.

Pytanie 32

W języku JavaScript rezultat wykonania instrukcji zmienna++; będzie równy wynikowi instrukcji

A. zmienna = zmienna + 10;
B. zmienna--;
C. zmienna += 1;
D. zmienna === zmienna + 1;
Wybór odpowiedzi sugerujących <span>zmienna--;</span> jest mylny, ponieważ operator <span>--</span> to operator dekrementacji, który zmniejsza wartość zmiennej o 1, co stoi w sprzeczności z celem inkrementacji. Implementacja <span>zmienna === zmienna + 1;</span> jest także błędna z dwóch powodów. Po pierwsze, porównuje wartość zmiennej z wartością zmiennej zwiększonej o 1, co w większości przypadków zwróci <span>false</span>, a nie zwiększa samej zmiennej. Takie porównania są używane w logice warunkowej, jednak nie mają zastosowania w kontekście zwiększania wartości zmiennej. Ostatnia propozycja <span>zmienna = zmienna + 10;</span> jest niepoprawna, ponieważ zwiększa wartość o 10, a nie o 1, co diametralnie zmienia wynik działania. Warto pamiętać, że w programowaniu istotne jest zrozumienie działania operatorów i ich zastosowania, aby uniknąć błędów logicznych, które mogą prowadzić do nieprzewidzianych wyników. Używając typowych konstrukcji w JavaScript, jak pętle czy funkcje, programiści często korzystają z operatorów inkrementacji i przypisania, co sprawia, że ich prawidłowe wykorzystanie jest kluczowe w codziennej pracy. Zrozumienie różnic między tymi operatorami jest zatem fundamentem w nauce programowania w JavaScript.

Pytanie 33

Która funkcja SQL zwraca DŁUGOŚĆ (liczbę znaków) tekstu?

A.
LEN
B.
UPPER
C.
YEAR
D.
NOW
Pozostałe funkcje robią co innego. YEAR wyciąga ROK z wartości daty. NOW zwraca bieżącą datę i czas. UPPER zamienia litery napisu na WIELKIE. Liczbę znaków tekstu zwraca LEN/LENGTH, dlatego trzecia odpowiedź jest poprawna.

Pytanie 34

Jakie będą skutki wykonania podanego zapytania w tabeli?

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. dodanie kolumny nazwa2 z wartością domyślną typu DOUBLE
B. dodanie kolumny nazwa2 typu zmiennoprzecinkowego
C. zmiana nazwy kolumny z nazwa1 na nazwa2
D. zmiana wartości kolumny nazwa2 na DOUBLE
Pytanie dotyczy użycia polecenia SQL ALTER TABLE w celu modyfikacji struktury istniejącej tabeli. W przedstawionym zapytaniu ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL; widzimy, że użyto słowa kluczowego ADD co wskazuje na dodanie nowej kolumny do tabeli. Kolumna ta nazywa się nazwa2 i ma typ danych DOUBLE co oznacza, że będzie przechowywać wartości zmiennoprzecinkowe. Specyfikacja NOT NULL oznacza, że żadna wartość w tej kolumnie nie może być NULL co jest częstym wymogiem w bazach danych aby zapewnić spójność i prawidłowość danych. Dodawanie nowych kolumn do tabeli jest typową operacją w zarządzaniu bazami danych umożliwiającą rozbudowę ich struktury w celu spełnienia nowych wymagań biznesowych. Typ DOUBLE jest szczególnie użyteczny w przechowywaniu danych liczbowych wymagających dużej precyzji takich jak wartości finansowe czy pomiary naukowe. Ważne jest aby zawsze po dodaniu nowej kolumny dostosować aplikacje korzystające z bazy danych aby mogły poprawnie obsługiwać nowe dane co jest zgodne z najlepszymi praktykami w branży IT.

Pytanie 35

W języku HTML zapisano formularz. Który z efektów działania kodu będzie wyświetlony przez przeglądarkę zakładając, że w drugie pole użytkownik wpisał wartość "ala ma kota"?

<form>
  <select>
    <option value="v1">Kraków</option>
    <option value="v2">Poznań</option>
    <option value="v3">Szczecin</option>
  </select> <br>
  <input type="password" />
</form>


Kraków
Poznań
Szczecin
Efekt 1

Efekt 2

Efekt 3
Kraków
Poznań
Szczecin
Efekt 4
A. Efekt 3.
B. Efekt 1.
C. Efekt 4.
D. Efekt 2.
Odpowiedź 'Efekt 2' jest poprawna, ponieważ odpowiada ona opisowi działania kodu HTML formularza. W kodzie HTML formularza, mamy pole wyboru miasta z opcjami 'Kraków', 'Poznań', 'Szczecin', a także pole hasła. W momencie, kiedy użytkownik wpisuje do pola hasła wartość 'ala ma kota', przeglądarka reprezentuje te dane jako ciąg znaków zastępczych, czyli kropeczki. Efekt 2 pokazuje rozwinięte menu wyboru z zaznaczonym 'Kraków' oraz pole hasła z kropeczkami, co jest zgodne z opisanym działaniem formularza przy wpisaniu 'ala ma kota' do pola hasła. Jest to zgodne ze standardami tworzenia formularzy w HTML, gdzie pola hasła są zazwyczaj reprezentowane jako kropeczki dla poprawienia bezpieczeństwa danych użytkownika. Dodatkowo, HTML pozwala na tworzenie różnego rodzaju pól formularzu, które mogą przyjmować różne wartości, co daje duże możliwości personalizacji formularza.

Pytanie 36

Aby w skrypcie JavaScript pobrać dane wpisane przez użytkownika, można posłużyć się oknem generowanym przez funkcję:

A.
document.write()
B.
confirm()
C.
prompt()
D.
alert()
Poprawna jest prompt(), ponieważ to jedyna z wymienionych funkcji, która pobiera dane wpisane przez użytkownika. Wyświetla ona okno dialogowe z treścią pytania oraz polem tekstowym, a po zatwierdzeniu zwraca wpisany tekst jako łańcuch znaków (string). Wartość tę można od razu zapisać w zmiennej i wykorzystać dalej w kodzie, np. let imie = prompt('Podaj imię:');. Gdy użytkownik kliknie Anuluj, funkcja zwraca null. Warto pamiętać, że wynik jest zawsze tekstem - jeśli potrzebujesz liczby, trzeba go przekonwertować, np. funkcją Number(). Dzięki temu prompt() umożliwia prostą interakcję ze stroną bez budowania formularza HTML.

Pytanie 37

Wykonanie następującego polecenia PHP umożliwia:

$zapytanie = mysqli_query($db, "UPDATE ...");
A. pobranie danych z bazy
B. zmianę struktury bazy
C. dodanie nowych danych do bazy
D. zmianę danych w bazie
Polecenie PHP mysqli_query z użyciem instrukcji SQL UPDATE służy do modyfikacji danych w bazie danych. Funkcja mysqli_query umożliwia wykonywanie zapytań SQL na połączeniu z bazą danych reprezentowanym przez zmienną $db. Instrukcja UPDATE jest stosowana do aktualizacji istniejących rekordów w tabeli w bazie danych. Przykładowo, jeśli chcesz zaktualizować pole nazwa w tabeli użytkownicy, możesz użyć polecenia UPDATE users SET name='NowaNazwa' WHERE id=1. To podejście umożliwia dynamiczne zarządzanie danymi, co jest kluczowe w aplikacjach internetowych wymagających bieżącej aktualizacji informacji. W praktyce należy pamiętać o dobrych praktykach, takich jak walidacja danych wejściowych i zabezpieczenie przed atakami SQL injection, np. poprzez stosowanie przygotowanych zapytań. Aktualizowanie danych w bazie to jedna z podstawowych operacji CRUD (Create Read Update Delete), które są fundamentem zarządzania danymi w większości aplikacji obsługujących bazy danych. Poprawne użycie tej funkcji wymaga zrozumienia struktury SQL i znajomości specyfiki używanego systemu zarządzania bazą danych.

Pytanie 38

Jaką wartość przyjmie zmienna po wykonaniu poniższego fragmentu kodu w JavaScript?

var w=0;
var i=1;
for (i = 1; i < 50; i++)
{
    if (i%2 == 0)
        w += i;
}
A. suma naturalnych liczb parzystych, które są mniejsze od 50
B. liczbom naturalnym, które są nieparzyste i mniejsze od 50
C. suma wszystkich naturalnych liczb nieparzystych, które są większe od 50
D. liczbie naturalnych liczb parzystych większych od 50
Pozostałe odpowiedzi przedstawiają niepoprawne interpretacje kodu, co często wynika z nieprawidłowego zrozumienia mechanizmów iteracji i warunków w programowaniu. Pierwsza z opcji sugeruje, że kod oblicza sumę nieparzystych liczb większych od 50. Jest to błędne, ponieważ pętla kończy się na i<50, więc żadna liczba większa od 50 nie jest w ogóle brana pod uwagę. Ponadto warunek if w kodzie sprawdza parzystość, a nie nieparzystość. Kolejna koncepcja sugeruje liczenie nieparzystych liczb mniejszych od 50. Choć liczby nieparzyste są brane pod uwagę w iteracji, kod nie posiada mechanizmu ich liczenia, gdyż w instrukcji if sprawdzana jest parzystość, co skutkuje pominięciem operacji na nieparzystych liczbach. Ostania odpowiedź to liczba parzystych większych od 50, co również jest nieprawidłowe z powodu ograniczenia iteracji do i<50 oraz fakt, że kod sumuje wartości, a nie zlicza ich ilość. Zrozumienie kluczowych mechanizmów, takich jak operator modulo i pętle, jest niezbędne do prawidłowej analizy działania algorytmów. Takie błędy są powszechne, gdy nie uwzględnia się dokładnego działania warunków kontrolnych i zakresów iteracji, co jest istotne w kontekście pisania efektywnego i poprawnego kodu programistycznego. Poprawne rozumienie tych koncepcji jest fundamentalne w rozwoju umiejętności programistycznych i zapobiega częstym błędom logicznym w kodzie.

Pytanie 39

Podczas realizacji grafiki na stronę internetową konieczne jest wycięcie jedynie jej części. Jak nazywa się ta czynność?

A. odwrócenie obrazu
B. zmiana rozmiaru
C. łącznie warstw
D. kadrowanie
Kadrowanie to proces, który polega na przycinaniu obrazu w celu uzyskania określonego obszaru, eliminując zbędne fragmenty. W kontekście przygotowywania grafiki na stronę internetową, kadrowanie jest kluczowe, ponieważ pozwala na dostosowanie wymiarów obrazu do wymagań projektu, co jest szczególnie istotne w kontekście responsywnego designu. Przykładowo, jeśli mamy zdjęcie o wysokiej rozdzielczości, a chcemy je wykorzystać jako tło na stronie, kadrowanie pozwala nam wybrać najważniejszy fragment, który będzie najlepiej komponował się w ustalonym układzie. W praktyce kadrowanie nie tylko poprawia estetykę grafiki, ale także wpływa na jej wydajność, zmniejszając rozmiar pliku, co jest korzystne dla szybkości ładowania strony. Warto również zaznaczyć, że dobrym zwyczajem jest zachowanie proporcji obrazu podczas kadrowania, co można osiągnąć przy pomocy narzędzi takich jak Adobe Photoshop czy GIMP, które oferują funkcje do precyzyjnego wycinania i dostosowywania wymiarów.

Pytanie 40

Tabela samochody zawiera dane przedstawione poniżej:

idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
Wydając zamieszczone zapytanie SQL, jakie dane zostaną zwrócone:
SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel";
A. opel zafira
B. zafira; insignia
C. zafira
D. opel zafira; opel insignia
Wszystkie niepoprawne odpowiedzi zawierają błędy związane z interpretacją wyników zapytania SQL. Odpowiedź 'opel zafira' jest niepoprawna, ponieważ zapytanie nie zwraca modelu w formie złożonej, a jedynie oczekuje nazwy modelu. Podobnie, odpowiedzi 'zafira; insignia' oraz 'opel zafira; opel insignia' sugerują, że obie te nazwy są zwracane przez zapytanie, co jest błędne. W rzeczywistości, zapytanie filtruje dane tak, że tylko jeden model – 'zafira' – jest odpowiedzią na podane warunki. Przykłady takich błędnych założeń często wynikają z niepełnego zrozumienia działania operatorów w zapytaniach SQL oraz ich wpływu na wyniki. Analizując odpowiedzi, należy zwracać uwagę na precyzyjność zapytań oraz na zastosowanie odpowiednich warunków filtrujących, aby uniknąć błędnych wniosków. W praktyce, dobre zrozumienie działania SQL i umiejętność właściwego formułowania zapytań to kluczowe umiejętności w każdej pracy związanej z danymi, co podkreśla znaczenie dokładności i staranności w tym obszarze. Każdy analityk danych powinien dążyć do mistrzostwa w tej dziedzinie, aby skutecznie wspierać podejmowanie decyzji na podstawie danych.