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: 7 maja 2026 13:42
  • Data zakończenia: 7 maja 2026 14:01

Egzamin zdany!

Wynik: 31/40 punktów (77,5%)

Wymagane minimum: 20 punktów (50%)

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

Jakie zadania programistyczne należy wykonać na serwerze?

A. Zapisanie danych pozyskanych z aplikacji internetowej w bazie danych
B. Zmiana stylu HTML na stronie spowodowana ruchem kursora
C. Ukrywanie i wyświetlanie elementów strony w zależności od aktualnej pozycji kursora
D. Weryfikacja danych wprowadzonych do pola tekstowego na bieżąco
Wszystkie pozostałe zadania, takie jak zmiana stylu HTML na stronie wywołana przesunięciem kursora, sprawdzenie danych wpisanych do pola tekstowego w czasie rzeczywistym, czy ukrywanie i pokazywanie elementów strony w zależności od aktualnego stanu kursora, są zadaniami, które powinny być realizowane po stronie klienta. Podejście to wynika z faktu, iż interakcje z użytkownikiem powinny być jak najbardziej responsywne i natychmiastowe, co jest możliwe jedynie przy użyciu JavaScriptu w przeglądarkach. Na przykład, zmiana stylu HTML jest operacją, która nie wymaga komunikacji z serwerem, ponieważ wszystkie potrzebne informacje są już dostępne na kliencie. W przypadku sprawdzania danych w czasie rzeczywistym, przetwarzanie odbywa się lokalnie, co pozwala na natychmiastowe informowanie użytkownika o błędach w formularzach bez opóźnienia wynikającego z oczekiwania na odpowiedź serwera. Ukrywanie i pokazywanie elementów strony również powinno być realizowane po stronie klienta, aby zapewnić płynność interakcji. Użytkownicy oczekują szybkiej reakcji na swoje działania, a operacje po stronie klienta, takie jak animacje czy zmiany widoczności elementów, są znacznie bardziej efektywne, gdy są wykonywane lokalnie, ponieważ nie wymagają dodatkowych zasobów serwera ani czasu przetwarzania. W przeciwnym razie, realizacja tych zadań na serwerze prowadziłaby do zbędnych opóźnień i obciążenia infrastruktury serwerowej, co w konsekwencji ograniczyłoby wydajność i doświadczenie użytkownika.

Pytanie 2

Wskaż, który zapis należy zastosować w celu wyświetlenia grafiki obrazek.png na stronie WWW w pliku plik.html.  

Ilustracja do pytania
A. <img src="/../katalog_2/katalog_B/obrazek.png">
B. <img src="../../katalog_2/katalog_B/obrazek.png">
C. <img src="obrazek.png">
D. <img src="/../katalog_1/katalog_B/obrazek.png">
Problem z niepoprawnymi odpowiedziami wynika z niezrozumienia, skąd dokładnie liczona jest ścieżka do pliku oraz jak działa nawigacja po katalogach w adresach względnych. Przeglądarka zawsze interpretuje wartość atrybutu src w <img> zaczynając od lokalizacji aktualnego dokumentu HTML, czyli w tym przypadku od katalogu katalog_1/katalog_A. Jeżeli wpiszemy po prostu nazwę pliku, bez żadnych katalogów, to przeglądarka szuka go w tym samym folderze co plik HTML. Zapis <img src="obrazek.png"> sugeruje więc, że obrazek.png leży obok plik.html w katalogu_A. Ponieważ w przedstawionej strukturze plik graficzny znajduje się zupełnie gdzie indziej, taka ścieżka po prostu nie może zadziałać. Kolejny typ błędu to nieprawidłowe użycie sekwencji /../ na początku ścieżki. W kontekście URL-a ukośnik na początku oznacza ścieżkę absolutną liczoną od katalogu głównego serwera (tzw. root). Dodawanie zaraz po nim .. jest w praktyce bez sensu, bo nie możemy cofnąć się powyżej katalogu głównego. Takie konstrukcje typu "/../katalog_1/..." czy "/../katalog_2/..." nie odzwierciedlają realnej struktury katalogów widzianej przez serwer WWW. To częsty błąd: mieszanie myślenia systemu plików w eksploratorze z zasadami adresacji URL. W systemie operacyjnym czasem zobaczymy .. na początku ścieżki względnej, ale w URL po wiodącym slashu ścieżka jest już traktowana jako absolutna. Prawidłowe podejście polega na świadomym liczeniu poziomów: pojedyncze .. cofa o jeden katalog w górę, podwójne ../../ o dwa, i dopiero potem dokładamy kolejne katalogi prowadzące do docelowego pliku. Warto też pamiętać, że w projektach webowych lepiej unikać "dziwnych" konstrukcji ze zbędnym /../, bo to utrudnia debugowanie i rodzi problemy przy przenoszeniu strony na inny serwer. Typowym błędem myślowym jest też założenie, że jak coś wygląda logicznie w drzewku folderów na ekranie, to tak samo zadziała w URL, bez dokładnego prześledzenia, od jakiego katalogu liczymy ścieżkę. Dlatego dobrą praktyką jest narysowanie sobie tej struktury i ręczne przejście krok po kroku: tu jest plik.html, tu jest obrazek.png, ile razy muszę się cofnąć .. i gdzie potem wejść, żeby dojść dokładnie do tego pliku.

Pytanie 3

W PHP, przy wykonywaniu działań na bazie danych MySQL, aby zakończyć sesję z bazą, należy użyć

A. mysqli_exit();
B. mysqli_rollback();
C. mysqli_close();
D. mysqli_commit();
Funkcja mysqli_close() jest właściwym sposobem na zakończenie pracy z połączeniem do bazy danych MySQL w języku PHP. Użycie tej funkcji zwalnia zasoby skojarzone z danym połączeniem, co jest kluczowe w kontekście wydajności aplikacji. Po zakończeniu operacji na bazie danych, zwłaszcza w przypadku aplikacji intensywnie korzystających z zasobów, takich jak serwery webowe, ważne jest, aby zamknąć połączenie, aby uniknąć wycieków pamięci oraz ograniczyć liczbę otwartych połączeń. Przykładowo, po wykonaniu zapytań do bazy danych, stosując mysqli_close($connection), gdzie $connection to uchwyt do otwartego połączenia, można skutecznie zakończyć interakcję z bazą. Dobrą praktyką jest zamykanie połączeń w blokach finally, aby upewnić się, że zasoby są zwalniane nawet w przypadku wystąpienia wyjątków. Kiedy zamykasz połączenie, pamiętaj, że nie będziesz w stanie już korzystać z tego uchwytu połączenia, co jest zgodne z filozofią zarządzania zasobami, gdzie każdy otwarty zasób powinien być odpowiednio zamykany po zakończeniu jego użycia.

Pytanie 4

Jak wykonanie zapytania SQL przedstawionego poniżej wpłynie na tabelę pracownicy?

ALTER TABLE pracownicy MODIFY plec char(9);
A. Zmieni typ danych kolumny plec na znakowy o stałej długości 9.
B. Zmieni typ danych kolumny plec na znakowy o zmiennej długości 9.
C. Utworzy kolumnę plec o typie znakowym o stałej długości 9.
D. Utworzy kolumnę plec o typie znakowym o zmiennej długości 9.
Odpowiedź jest poprawna, ponieważ polecenie ALTER TABLE zmienia istniejącą kolumnę w tabeli pracownicy. W szczególności, polecenie MODIFY plec char(9) modyfikuje typ danych kolumny plec na znakowy o stałej długości 9. Oznacza to, że każda wartość przechowywana w tej kolumnie będzie miała dokładnie 9 znaków (wypełnionych np. spacjami, jeśli wartość będzie krótsza). W praktyce zapewnia to jednolitą długość dla przechowywanych danych, co może być korzystne w przypadku, gdy wymagane jest zachowanie spójności długości, na przykład przy przechowywaniu kodów pocztowych lub identyfikatorów. Standardy projektowania baz danych zalecają używanie odpowiednich typów danych, aby zminimalizować przestrzeń dyskową oraz przyspieszyć operacje na danych. Warto zauważyć, że w przypadku kolumny char(9) nie można wprowadzić wartości dłuższej niż 9 znaków, co zapobiega niezgodnościom danych.

Pytanie 5

Tabela programy zawiera kolumny: nazwa_programu, nazwa_producenta, rok_wydania. Jak należy zapisać kwerendę SELECT, aby uzyskać wszystkie unikalne nazwy producentów?

A. SELECT nazwa_producenta FROM programy WHERE nazwa_producenta NOT DUPLICATE
B. SELECT DISTINCT nazwa_producenta FROM programy
C. SELECT UNIQUE nazwa_producenta FROM programy
D. SELECT nazwa_producenta FROM programy WHERE UNIQUE
Odpowiedzi, które wykorzystują terminologię niezgodną ze standardami SQL, prowadzą do błędnych wniosków. W przypadku użycia słowa kluczowego UNIQUE, które nie jest używane w kontekście kwerendy SELECT, użytkownicy mogą błędnie sądzić, że powiązanie z tym terminem umożliwia pozyskanie unikalnych wartości. W rzeczywistości UNIQUE jest używane w kontekście ograniczeń (constraints) w definiowaniu tabeli, a nie w zapytaniach. To podejście może prowadzić do zrozumienia, że istnieje sposób na wykorzystanie tego słowa kluczowego w zapytaniach, co jest mylące. Z kolei propozycje, które odwołują się do frazy WHERE z dodatkowymi warunkami, jak UNIQUE czy NOT DUPLICATE, są również niepoprawne, ponieważ nie są to poprawne składniowo konstrukcje w SQL. Klauzula WHERE służy do filtrowania wyników na podstawie określonych warunków, ale nie ma możliwości zastosowania przy niej unikalnych filtrów w taki sposób. Tego rodzaju nieporozumienia mogą prowadzić do niepoprawnych wyników i frustracji w pracy z bazami danych, dlatego niezwykle ważne jest, aby dokładnie zapoznawać się z dokumentacją i standardami języka SQL, aby unikać takich pułapek. Właściwe zrozumienie terminologii i składni jest kluczowe w efektywnym zarządzaniu danymi.

Pytanie 6

Wskaż zdanie, które jest nieprawdziwe w odniesieniu do poniższej definicji funkcji w języku C++? void zamien(float &x, float &y){ float tmp; tmp=x; x=y; y=tmp; }

A. Funkcja korzysta z parametrów przez referencję
B. Funkcja nie zwraca żadnej wartości
C. Funkcja ma dwa argumenty
D. Funkcja zwraca jakąś wartość
Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące definicji i działania funkcji zamien. Po pierwsze, twierdzenie, że funkcja zwraca wartość, jest nieprawdziwe, ponieważ w definicji funkcji użyto słowa kluczowego 'void', co jednoznacznie wskazuje, że nie ma zwracanej wartości. W C++ funkcje, które zwracają wartości, muszą mieć określony typ, a brak takiego typu sugeruje, że funkcja nie zwraca żadnych danych. Drugie stwierdzenie, że funkcja nie zwraca wartości, jest rzeczywiście poprawne. Warto zauważyć, że w przypadku funkcji, która dokonuje jedynie zamiany wartości argumentów przez referencję, nie ma potrzeby zwracania wyniku, gdyż zmiany te są widoczne w zmiennych przekazanych do funkcji. Trzecia odpowiedź, która wskazuje, że funkcja posiada dwa parametry, jest również prawdziwa, ponieważ funkcja 'zamien' przyjmuje dwa argumenty typu 'float', które są przekazywane przez referencję. Odnosi się to do aspektu przekazywania argumentów, gdzie użycie referencji pozwala na modyfikację przekazywanych danych. Na koniec, czwarta odpowiedź, mówiąca, że funkcja odwołuje się do parametrów przez referencję, również jest poprawna. Przekazywanie przez referencję jest techniką, która umożliwia bezpośrednią manipulację zmiennymi zewnętrznymi, co zwiększa elastyczność i efektywność funkcji, zwłaszcza w kontekście operacji na dużych zbiorach danych. W związku z tym, analiza wszystkich odpowiedzi prowadzi do wniosku, że tylko pierwsze stwierdzenie jest błędne, ponieważ jasno pokazuje, że funkcja zamien nie zwraca żadnej wartości.

Pytanie 7

Tabela o nazwie naprawy zawiera kolumny klient oraz czyNaprawione. Jakie polecenie należy wykonać, aby usunąć te rekordy, w których wartość w kolumnie czyNaprawione jest prawdziwa?

A. DELETE klient FROM naprawy WHERE czyNaprawione= TRUE;
B. DELETE FROM naprawy WHERE czyNaprawione= TRUE;
C. DELETE FROM naprawy;
D. DELETE naprawy WHERE czyNaprawione= TRUE;
Odpowiedź 'DELETE FROM naprawy WHERE czyNaprawione= TRUE;' jest poprawna, ponieważ precyzyjnie wskazuje, które rekordy mają być usunięte z tabeli 'naprawy'. W SQL, polecenie DELETE jest używane do usuwania rekordów z bazy danych, a klauzula WHERE jest kluczowa, aby ograniczyć operację do tych rekordów, które spełniają określone warunki. W tym przypadku, warunek 'czyNaprawione= TRUE' wskazuje, że chcemy usunąć tylko te rekordy, dla których naprawa została już zakończona. W praktyce, stosowanie klauzuli WHERE jest niezbędne, aby uniknąć usunięcia wszystkich rekordów z danej tabeli, co mogłoby prowadzić do utraty cennych danych. W kontekście dobrych praktyk, zawsze należy być ostrożnym przy używaniu polecenia DELETE i dokładnie weryfikować warunki znajdujące się w klauzuli WHERE. Dodatkowo, przed przeprowadzeniem operacji usuwania, warto wykonać zapytanie SELECT z tymi samymi warunkami, aby upewnić się, które rekordy zostaną usunięte, co pozwala na uniknięcie niezamierzonych skutków.

Pytanie 8

Ile razy zostanie wykonana zaprezentowana pętla w języku PHP, zakładając, że zmienna sterująca nie jest zmieniana wewnątrz pętli?

 for ($i = 0; $i <= 10; $i++) {
    // kod pętli
}
A. 0
B. 10
C. Nieskończenie wiele
D. 11
Prawidłowa odpowiedź wynika z analizy działania pętli for w języku PHP. W przedstawionej pętli warunek iteracji jest ustawiony na '$i <= 10', co oznacza, że pętla będzie wykonywana tak długo, jak długo zmienna $i będzie mniejsza lub równa 10. Zmienna $i jest inicjalizowana wartością 0 i inkrementowana o 1 przy każdym obiegu pętli. W efekcie, pętla będzie wykonywana dla wartości $i od 0 do 10, co daje 11 iteracji. Praktycznym zastosowaniem takiej pętli może być na przykład generowanie listy numerów lub przetwarzanie elementów w tablicy. Dobrą praktyką podczas używania pętli jest również upewnienie się, że warunek zakończenia jest poprawnie zdefiniowany, aby uniknąć niezamierzonych nieskończonych iteracji. Warto także uwzględnić możliwość modyfikowania zmiennej sterującej w ciele pętli, co może prowadzić do złożonych przypadków, ale w tym konkretnym przykładzie nie mamy takiej sytuacji.

Pytanie 9

W aplikacji PHP, która zarządza bazą danych, aby uzyskać numer błędu oraz jego opis po dokonaniu jakiejkolwiek operacji, jakie funkcje powinny być wykorzystane?

A. tylko funkcję mysqli_error
B. funkcje mysqli_error i mysqli_connect_errno
C. funkcje mysqli_error i mysqli_error_number
D. funkcje mysqli_error i mysqli_errno
Odpowiedź zawierająca funkcje mysqli_error i mysqli_errno jest prawidłowa, ponieważ obie te funkcje dostarczają istotnych informacji dotyczących błędów w kontekście operacji na bazie danych w PHP. Funkcja mysqli_error() zwraca opis ostatniego błędu, który wystąpił w kontekście połączenia z bazą danych. Natomiast mysqli_errno() zwraca numer tego błędu, co jest niezwykle przydatne w diagnostyce. Używanie obu funkcji razem pozwala nie tylko zidentyfikować błąd, ale również zrozumieć jego istotę. Na przykład, jeśli próbujemy wykonać zapytanie, które jest błędne syntaktycznie, można użyć tych funkcji do uzyskania zarówno komunikatu o błędzie, jak i jego kodu, co ułatwia debugowanie. W praktyce, stosowanie tych funkcji jest zgodne z najlepszymi praktykami w programowaniu PHP, ponieważ umożliwia skuteczne zarządzanie wyjątkami i błędami, co jest kluczowe w zapewnieniu stabilności aplikacji.

Pytanie 10

Aby utworzyć strukturę strony internetowej za pomocą znaczników semantycznych języka HTML 5, zgodnie z przedstawionym na ilustracji projektem, SEKCJA B powinna być zawarta w znaczniku

Ilustracja do pytania
A. <nav></nav>
B. <section></section>
C. <article></article>
D. <header></header>
Poprawnie – sekcja B na ilustracji to klasyczne menu nawigacyjne strony, więc w semantycznym HTML5 powinna być zawarta w znaczniku <nav>. Ten element został wprowadzony właśnie po to, żeby jasno oznaczać blok linków służących do poruszania się po serwisie: główne menu, nawigacja w stopce, paginacja artykułów itp. Przeglądarki, czytniki ekranu i roboty wyszukiwarek rozpoznają <nav> jako specjalny region nawigacyjny i dzięki temu lepiej „rozumieją” strukturę strony. To jest bardzo ważne z punktu widzenia dostępności (WCAG) i SEO. W typowym szkielecie strony HTML5 nagłówek z tytułem umieszcza się w <header>, menu w <nav>, główną treść w <main>, artykuły w <article>, a poboczne informacje w <aside>. U Ciebie: sekcja A to najpewniej <header>, sekcja B – <nav>, a sekcja C – jakiś <section> lub <article>. W praktyce kod dla pokazanej sekcji B wyglądałby np.: <nav><a href="index.html">Główna</a><a href="onas.html">O nas</a><a href="kontakt.html">Kontakt</a></nav>. Moim zdaniem dobrze jest od początku wyrabiać nawyk używania <nav> tylko dla głównych bloków nawigacji, a nie dla każdego przypadkowego linka w tekście. Dzięki temu dokument ma czytelną hierarchię, łatwiej się go styluje w CSS i utrzymuje w większych projektach.

Pytanie 11

Przy konwersji obrazu o 8 bitowej głębi kolorów na 4 bitową, liczba dostępnych kolorów zmniejszy się o

A. 24
B. 256
C. 16
D. 240
Wszystkie odpowiedzi, które nie są poprawne, wynikają z nieprawidłowych obliczeń związanych z ilością dostępnych kolorów w różnych głębokościach bitowych. W przypadku odpowiedzi wskazujących na 16, 24 i 256 kolorów, każda z tych wartości nie odzwierciedla rzeczywistych możliwości kolorystycznych wynikających z konwersji. 16 kolorów to dokładna liczba dostępna w 4-bitowym formacie, ale nie jest to wartość, o którą zmniejsza się liczba kolorów, a to właśnie ona jest końcową liczbą kolorów w 4-bitowym obrazie. 24 kolory nie mają sensu w kontekście 8-bitowego obrazu, ponieważ 24 kolory sugerowałyby, że redukujemy z 8-bitowego obrazu do jeszcze niższego poziomu, co jest niepoprawne. Mówiąc o 256 kolorach, to liczba ta odnosi się do początkowej ilości kolorów w obrazie 8-bitowym, a nie do liczby kolorów, które zostają po konwersji. Dla pełnego zrozumienia, warto zaznaczyć, że każdy poziom głębi kolorów w obrazach rastrowych określa liczbę kolorów, które mogą być wyświetlane i przetwarzane, a konwersja pomiędzy nimi wymaga precyzyjnych obliczeń, które uwzględniają te wartości.

Pytanie 12

W przedstawionym kodzie PHP w miejscu kropek powinno zostać umieszczone polecenie

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++)
{
  $wiersz = ……………………………….;
  echo "$wiersz[0] $wiersz[1]";
}
A. mysqli_fetch_row($zapytanie);
B. mysqli_query($zapytanie);
C. mysqli_free_result($zapytanie);
D. mysqli_num_fields($zapytanie);
W kontekście przedstawionego kodu PHP, prawidłowe uzupełnienie wiersza poleceń to użycie funkcji mysqli_fetch_row($zapytanie). Funkcja ta pobiera jeden wiersz z zestawu wyników zapytania jako tablicę indeksowaną numerycznie. Jest to istotny krok w procesie przetwarzania danych z bazy danych, ponieważ po wykonaniu zapytania SQL, dane muszą być odpowiednio odczytane, aby można je było wykorzystać w aplikacji. Przykładowo, po wykonaniu zapytania, możemy mieć wiele wierszy danych, a mysqli_fetch_row pozwala na iteracyjne pobieranie każdego z nich. W praktyce, stosując tę funkcję w pętli, możemy w prosty sposób zbudować listę lub tabelę, wyświetlając imię i nazwisko każdego użytkownika. Warto również pamiętać, że przy pracy z bazami danych ważne jest, aby uważnie monitorować proces pobierania danych, by uniknąć problemów z pamięcią, a także aby zwolnić zasoby po zakończeniu operacji. W związku z tym, standardową praktyką jest również stosowanie mysqli_free_result($zapytanie) po zakończeniu pracy z danymi, co pozwala na efektywne zarządzanie pamięcią.

Pytanie 13

W systemach baz danych, aby przedstawić dane spełniające określone kryteria, należy stworzyć

A. raport
B. relację
C. makropolecenie
D. formularz
Raport w bazach danych jest narzędziem, które pozwala na prezentację danych w formacie dostosowanym do konkretnych potrzeb użytkownika. Jego głównym celem jest przedstawienie informacji, które spełniają określone kryteria, co jest niezwykle istotne w kontekście analizy danych. Raporty mogą być generowane na podstawie różnych źródeł danych, a ich struktura może obejmować tabele, wykresy i podsumowania. W praktyce, raporty są często używane w procesach decyzyjnych, na przykład w raportowaniu wyników finansowych, analizie sprzedaży czy monitorowaniu wydajności operacyjnej. Wiele systemów zarządzania bazami danych (DBMS) oferuje funkcje do tworzenia raportów, co jest zgodne z najlepszymi praktykami w dziedzinie analizy i wizualizacji danych. Dobrze zbudowany raport nie tylko dostarcza kluczowych informacji, ale także umożliwia efektywniejsze podejmowanie decyzji poprzez dostarczenie kontekstu i analizy danych.

Pytanie 14

Jaki wynik wyświetli poniższy fragment kodu JavaScript?

x='Powodzenia na egzaminie';
z=x.substring(3,9);
y=z.substring(2,4);
document.write(y);
A. wodzenia
B. owodzeni
C. ze
D. wo
W analizowanym zadaniu błędne odpowiedzi wynikają z nieprawidłowego zrozumienia działania funkcji substring w JavaScript która służy do ekstrakcji fragmentu tekstu z ciągu. Kluczowym elementem jest tutaj zrozumienie że indeksowanie stringów zaczyna się od zera co oznacza że pierwszy znak w ciągu ma indeks 0. W przypadku x.substring(3,9) funkcja ta wyodrębnia znaki od indeksu 3 do 8 ponieważ drugi parametr w tej funkcji jest ekskluzywny co oznacza że nie jest uwzględniany w wyniku. Dlatego daje to fragment wodzen. Kolejna operacja z.substring(2,4) bierze pod uwagę wycinek od indeksu 2 do 3 tego nowego ciągu co skutkuje wynikiem ze. Błędne odpowiedzi mogą wynikać z nieznajomości tego jak działa substr w porównaniu do substring ponieważ substr używa innego podejścia wskazując długość a nie końcowy indeks. Innym częstym błędem jest mylenie indeksów co prowadzi do nieprawidłowych wycinków tekstu. Błędy takie mogą prowadzić do problemów w kodzie zwłaszcza przy przetwarzaniu danych wejściowych czy dynamicznym generowaniu zawartości strony co jest częstym zadaniem w web development. Zrozumienie jak dokładnie działa każdy z tych mechanizmów jest kluczowe dla tworzenia poprawnego i bezpiecznego kodu. Warto także pamiętać o testowaniu kodu aby uniknąć nieprzewidywalnych zachowań wynikających z nieprawidłowych wycinków tekstu co może wpłynąć na całość aplikacji.

Pytanie 15

Na tabeli 'dania', której wiersze zostały pokazane, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
62wieprzowy przysmak35
72Mintaj w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 8
C. 2
D. 13
Kwerenda SQL zawarta w pytaniu to `SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;`. Analizując tę kwerendę, możemy zauważyć, że wybiera ona wiersze z tabeli `dania`, gdzie wartość kolumny `typ` jest mniejsza niż 3 oraz wartość kolumny `cena` jest mniejsza niż 30. Sprawdźmy dane w tabeli: dla `typ` 1 mamy trzy dania: Gazpacho (cena 20), Krem z warzyw (cena 25) oraz Gulaszowa ostra (cena 30), z których dwa pierwsze spełniają warunek dotyczący ceny. Dla `typ` 2 mamy Kaczkę i owoc (cena 30), Kurczaka pieczonego (cena 40) oraz Wieprzowy przysmak (cena 35), które nie spełniają wymogu ceny. W rezultacie, wiersze, które spełniają oba warunki to: Gazpacho oraz Krem z warzyw. Zatem kwerenda wybierze 2 wiersze. W kontekście praktycznym, umiejętność tworzenia filtrów w kwerendach SQL jest kluczowa w analizie danych oraz w tworzeniu raportów, co jest bardzo istotne w pracy z bazami danych.

Pytanie 16

Baza danych zawiera tabelę artykuły z kolumnami: nazwa, typ, producent, cena. Aby wypisać wszystkie nazwy artykułów jedynie typu pralka, których cena mieści się w zakresie od 1000 PLN do 1500 PLN, należy użyć zapytania

A. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 OR 1500
B. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena BETWEEN 1000 AND 1500
C. SELECT nazwa FROM artykuly WHERE typ="pralka" AND cena FROM 1000 TO 1500
D. SELECT nazwa FROM artykuly WHERE typ="pralka" OR cena BETWEEN 1000 AND 1500
Ta odpowiedź jest prawidłowa, ponieważ wykorzystuje polecenie SQL w odpowiedni sposób, aby wybrać nazwy artykułów, które spełniają określone kryteria. Słowo kluczowe 'BETWEEN' jest używane do określenia wartości w przedziale, co w tym przypadku oznacza, że cena artykułów musi mieścić się między 1000 a 1500 PLN. W połączeniu z warunkiem 'AND' zapewnia, że tylko te artykuły, które są typu 'pralka' i mają cenę w podanym przedziale, zostaną wyświetlone. W praktyce takie zapytanie jest niezwykle użyteczne w kontekście e-commerce, gdzie często przeprowadza się filtrowanie produktów według określonych parametrów. Dobrą praktyką w programowaniu SQL jest również używanie podwójnych cudzysłowów dla wartości tekstowych, co jest zgodne z niektórymi standardami SQL, chociaż w wielu systemach baz danych akceptowane są również pojedyncze cudzysłowy. Przykłady zastosowania tego zapytania można znaleźć w systemach zarządzania zapasami, gdzie potrzebne jest szybkie generowanie list produktów spełniających specyficzne wymagania klientów.

Pytanie 17

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Pokazanie okna dialogowego z napisem akapit
B. Dodanie akapitu na końcu strony
C. Skasowanie akapitu ze strony
D. Wstawienie akapitu na szczycie strony
Kod JavaScript przedstawiony w pytaniu tworzy nowy element paragrafu HTML za pomocą metody document.createElement("p") i dodaje go na koniec elementu body strony za pomocą metody appendChild(). Dlatego poprawna odpowiedź to dodanie akapitu na koniec strony. Tworzenie elementów dynamicznie w JavaScript to kluczowa funkcja umożliwiająca manipulację modelem DOM (Document Object Model) co jest podstawą dynamicznego interfejsu użytkownika. Przykłady zastosowań obejmują dodawanie nowych elementów do listy rozwijanej formularza aktualizację zawartości strony bez konieczności jej przeładowywania czy dodawanie interaktywnych komponentów. Zgodnie z dobrymi praktykami warto pamiętać o konieczności optymalizacji operacji na DOM ponieważ mogą być kosztowne obliczeniowo. Efektywne zarządzanie drzewem DOM wymaga także znajomości innych metod takich jak insertBefore czy replaceChild które pozwalają na bardziej zaawansowane manipulacje struktury dokumentu. Przy projektowaniu dynamicznych aplikacji webowych należy zawsze pamiętać o zachowaniu dostępności i semantyki HTML co jest istotne z punktu widzenia SEO i użyteczności strony.

Pytanie 18

W języku JavaScript zmienna i, która ma przechowywać wynik dzielenia równy 1, powinna być zadeklarowana jako

A. var i = parseFloat(3/2)
B. var i = parseInt(3/2)
C. var i = 3/2
D. var i = Number(3/2)
Odpowiedź "var i = parseInt(3/2);" jest prawidłowa, ponieważ funkcja parseInt konwertuje podaną wartość na liczbę całkowitą, w tym przypadku wynik dzielenia 3/2 wynosi 1.5. Funkcja ta zaokrągla wynik w dół do najbliższej liczby całkowitej, co skutkuje wartością 1, która jest następnie przypisywana do zmiennej i. W praktyce, użycie parseInt jest często spotykane w sytuacjach, gdy zachodzi potrzeba uzyskania liczby całkowitej z wartości zmiennoprzecinkowej, na przykład podczas obliczeń wymagających całkowitych jednostek, takich jak liczba produktów w koszyku. Ponadto, ważne jest również, aby rozumieć, że parseInt przyjmuje drugi argument, który określa podstawę liczbową, co jest zgodne z najlepszymi praktykami programistycznymi, aby unikać niejednoznaczności w interpretacji wartości. W związku z tym, używanie parseInt w kontekście takich operacji jest zgodne z dobrymi praktykami programistycznymi i pozwala na uniknięcie nieprzewidzianych błędów w obliczeniach.

Pytanie 19

Aby w tabeli praca, tworzonej w języku SQL, dodać do kolumny stawka warunek, który wymusza, aby przyjmowane były jedynie wartości dodatnie, a jednocześnie mniejsze niż 50, należy zastosować zapis

A. … stawka foat CHECK (stawka BETWEEN 0 AND 50.00)
B. … stawka foat CHECK (stawka>0 AND stawka<50.00)
C. … stawka foat CHECK (stawka>0 OR stawka<50.00)
D. … stawka foat CHECK (stawka IN (0, 50.00))
Poprawna odpowiedź to zapis '… stawka foat CHECK (stawka>0 AND stawka<50.00)', ponieważ warunek ten precyzyjnie określa, że wartość w kolumnie 'stawka' musi być większa od zera oraz mniejsza od 50, co oznacza, że akceptowane będą tylko rzeczywiste wartości dodatnie mieszczące się w tym przedziale. Zastosowanie warunku CHECK jest kluczowym elementem w zapewnieniu integralności danych w bazach danych. Dzięki temu, przy wstawianiu lub aktualizacji danych w tabeli 'praca', system zablokuje wszelkie operacje, które nie spełniają tego kryterium, co z kolei zapobiega wprowadzaniu błędnych danych. W praktyce, stosowanie takich warunków w definicji kolumn w SQL jest zgodne z dobrymi praktykami projektowania baz danych, które kładą nacisk na walidację danych już na poziomie schematu bazy. Przykładowo, jeżeli chcemy zapewnić, aby stawka wynagrodzenia pracowników nie przekraczała określonego limitu, stosowanie CHECK z warunkiem 'stawka<50.00' stanowi efektywny sposób na wymuszenie tej zasady. Tego rodzaju rozwiązania nie tylko poprawiają jakość danych, ale również ułatwiają przyszłe analizy statystyczne oraz raportowanie.

Pytanie 20

Programista stworzył pętlę w języku C++, która miała za zadanie obliczyć wynik 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż ```int a = 1; for (int i=1; i < 5; i++) { a = a * i; } cout << a;```

Ilustracja do pytania
A. w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5
B. zmienna i pętli powinna być zmniejszana, a nie zwiększana
C. zmienna i w pętli powinna być rozpoczynana od 0, a nie od 1
D. zmienna a powinna być początkowo ustawiona na 0 zamiast 1
Odpowiedź jest prawidłowa, ponieważ pętla powinna przebiegać przez wszystkie liczby od 1 do 5, aby obliczyć wartość 5! czyli 120. W kodzie pętla for zaczyna się od wartości i=1 i kontynuuje, dopóki i jest mniejsze niż 5, co oznacza, że nie uwzględnia liczby 5. Zmiana warunku na i<6 powoduje, że pętla wykona się pięć razy dla wartości i=1, 2, 3, 4, 5. To zgodne z matematyczną definicją silni, gdzie należy przemnożyć wszystkie liczby całkowite od 1 do n. Wpisując warunek i<6, kod stanie się bardziej zgodny z dobrymi praktykami programowania, które zalecają jasne i jednoznaczne warunki zakończenia pętli. Prawidłowe obliczenie silni jest częstym zadaniem w programowaniu i stanowi fundament dla bardziej zaawansowanych algorytmów liczbowych takich jak algorytmy rekurencyjne. Zrozumienie iteracyjnego i rekurencyjnego podejścia do tego problemu rozwija umiejętności logicznego myślenia i projektowania algorytmów. Takie zrozumienie jest kluczowe zwłaszcza w dziedzinie analizy algorytmów i optymalizacji kodu.

Pytanie 21

Kod umieszczony w ramce spowoduje wyświetlenie liczb

Ilustracja do pytania
A. 1 2 3 4 5 6 7 8 9 10
B. 2 4 6 8
C. 2 4 6 8 10
D. 1 3 5 7 9
Prawidłowa odpowiedź to 2 4 6 8 10 co wynika z działania przedstawionego kodu PHP. Pętla for rozpoczyna się od wartości zmiennej x równej 1 i zwiększa ją o jeden przy każdej iteracji aż do osiągnięcia wartości 10 włącznie. Instrukcja if($x % 2 != 0) continue oznacza że dla każdej nieparzystej liczby x wykonanie reszty kodu pętli jest pomijane i kontynuowane jest od kolejnej iteracji. Oznacza to że tylko liczby parzyste są wypisywane na ekranie co zgadza się z przedstawioną odpowiedzią. W praktyce taka konstrukcja jest używana do filtrowania danych gdzie chcemy przetwarzać tylko określone warunki. Stosowanie operatora modulo % jest standardową techniką do sprawdzania podzielności liczb co jest często wykorzystywane w programowaniu np. do selekcji danych lub w algorytmach kryptograficznych. Dobrą praktyką jest również używanie instrukcji continue gdy chcemy zminimalizować zagnieżdżenie kodu i poprawić jego czytelność poprzez eliminację zbędnych bloków else. Użycie pętli for z takim warunkiem pozwala na efektywne przetwarzanie dużych zbiorów danych co jest kluczowe w aplikacjach wymagających wysokiej wydajności.

Pytanie 22

Tabela o nazwie naprawy posiada kolumny klient oraz czyNaprawione. W celu usunięcia rekordów, w których wartość pola czyNaprawione wynosi prawda, należy użyć komendy

A. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
B. DELETE FROM naprawy WHERE czyNaprawione = TRUE;
C. DELETE FROM naprawy;
D. DELETE naprawy WHERE czyNaprawione = TRUE;
Odpowiedź "DELETE FROM naprawy WHERE czyNaprawione = TRUE;" jest poprawna, ponieważ wykorzystuje właściwą składnię SQL do usunięcia rekordów z tabeli. Komenda DELETE jest używana do usuwania danych z bazy danych, a klauzula WHERE precyzuje, które rekordy mają być usunięte na podstawie określonych warunków. W tym przypadku, usuwane są tylko te rekordy, które mają wartość TRUE w polu czyNaprawione. Zastosowanie klauzuli WHERE jest kluczowe, ponieważ umożliwia precyzyjne wybranie danych do usunięcia, co zapobiega przypadkowemu skasowaniu wszystkich rekordów w tabeli. W praktyce, taką komendę można wykorzystać w różnych aplikacjach związanych z zarządzaniem danymi, np. w systemach informatycznych do obsługi klienta, gdzie zachodzi potrzeba bieżącego zarządzania statusami napraw. Dobre praktyki w programowaniu baz danych nakazują zawsze stosować klauzulę WHERE przy usuwaniu danych, aby uniknąć niezamierzonych skutków. Warto również przetestować zapytania w środowisku testowym przed ich zastosowaniem w produkcji, co zwiększa bezpieczeństwo operacji na danych.

Pytanie 23

Który z przedstawionych kodów HTML sformatuje tekst według wzoru?
(uwaga: słowo "stacji" jest zapisane większą czcionką niż reszta słów w tej linii)

Lokomotywa

Stoi na stacji lokomotywa ...

A.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji lokomotywa ...</p>

B.
<h1>Lokomotywa</h1>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

C.
<h1>Lokomotywa</p>
<p>Stoi na <big>stacji</big> lokomotywa ...</p>

D.
<p><small>Lokomotywa</small></p>
<p>Stoi na <big>stacji<big> lokomotywa ...</p>
A. C.
B. D.
C. B.
D. A.
Brawo! Wybrałeś prawidłową odpowiedź, która jest kodem HTML formatującym słowo 'stacji' większą czcionką niż reszta tekstu. Wykorzystuje ona znacznik <big>, który jest wyjątkowo przydatny w sytuacjach, gdy chcemy podkreślić pewną część tekstu i sprawić, że będzie ona wyglądać na większą niż reszta. Jest to praktyka często stosowana na stronach internetowych, by przyciągnąć uwagę użytkownika do konkretnych informacji. Pamiętaj jednak, że znacznik <big> jest przestarzały i nie jest zalecany do stosowania w nowoczesnym kodowaniu HTML. Zamiast tego, w dzisiejszych czasach lepiej jest używać CSS do zmiany rozmiaru czcionki. Niemniej jednak, znajomość różnych znaczników HTML, w tym <big>, jest nadal ważna, zwłaszcza do zrozumienia i utrzymania starszych stron internetowych.

Pytanie 24

W CSS, aby ustawić wcięcie pierwszej linii akapitu na 30 pikseli, należy użyć następującego zapisu

A. p { line-indent: 30px; }
B. p { text-indent: 30px; }
C. p { line-height: 30px; }
D. p { text-spacing: 30px; }
Odpowiedź p { text-indent: 30px; } jest poprawna, ponieważ właściwość text-indent w CSS służy do definiowania wcięcia pierwszej linii tekstu w elemencie blokowym, takim jak akapit (p). Umożliwia to nadanie tekstowi estetycznego wyglądu oraz zwiększenie czytelności, szczególnie w dłuższych blokach tekstu. Wartość 30px oznacza, że pierwsza linia akapitu zostanie przesunięta o 30 pikseli w prawo względem pozostałych linii. Przykładowo, jeśli mamy długi akapit z tekstem, zastosowanie wcięcia może pomóc w wyodrębnieniu go wizualnie, co sprzyja lepszemu zrozumieniu zawartości przez użytkowników. Warto także dodać, że standardy CSS są regularnie aktualizowane, a stosowanie dobrych praktyk, takich jak odpowiednie formatowanie tekstu, ma kluczowe znaczenie w projektowaniu responsywnych i przyjaznych dla użytkownika stron internetowych. Wykorzystanie text-indent jest jedną z technik, które przyczyniają się do poprawy UX (User Experience).

Pytanie 25

Na tabeli dania, której wiersze zostały pokazane poniżej, wykonano przedstawioną kwerendę:

SELECT * FROM dania WHERE typ < 3 AND cena < 30 LIMIT 5;
Ile wierszy wybierze ta kwerenda?
idtypnazwacena
11Gazpacho20
21Krem z warzyw25
31Gulaszowa ostra30
42Kaczka i owoc30
52Kurczak pieczony40
63wierzbowy przysmak35
72Mintał w panierce30
82Alle kotlet30
93Owoce morza20
103Grzybki, warzywka, sos15
113Orzechy i chipsy10
123Tatar i jajo15
133Bukiet warzyw10
A. 5
B. 13
C. 8
D. 2
Twoja odpowiedź jest jak najbardziej trafna. To zapytanie SQL, które mamy, wybiera z tabeli 'dania' te wiersze, gdzie 'typ' jest mniejszy niż 3, a 'cena' nie przekracza 30. Wiem, że dodanie 'LIMIT 5' może wydawać się istotne, ale w tym przypadku tak naprawdę nie wpływa to na wynik, bo tylko jeden wiersz pasuje – danie 'Gazpacho'. Warto pamiętać, że w SQL, gdy używamy warunku 'WHERE', łączymy je z operatorem AND, co oznacza, że muszą być spełnione jednocześnie. Klauzula 'LIMIT' jest przydatna w różnych sytuacjach, ale tutaj, nawet z ograniczeniem do 5, i tak mamy tylko jeden wynik.

Pytanie 26

Debugger to aplikacja przeznaczona do

A. optymalizacji pamięci używanej przez program
B. identyfikacji błędów w kodzie aplikacji
C. analizowania właściwości oprogramowania
D. weryfikacji wydajności programu
Debugger to narzędzie, które odgrywa kluczową rolę w procesie tworzenia oprogramowania, ponieważ umożliwia programistom identyfikowanie i naprawianie błędów w kodzie. Jego główną funkcją jest wyszukiwanie błędów, znanych jako 'bugi', które mogą prowadzić do nieprawidłowego działania aplikacji. Debugger pozwala na analizowanie krok po kroku działania programu, umożliwiając obserwację wartości zmiennych oraz stanu programu w czasie rzeczywistym. Przykładowo, w przypadku, gdy program nie zwraca oczekiwanych wyników, programista może użyć debugggera, aby zatrzymać wykonanie na określonym etapie i zbadać, co dzieje się z danymi. Dobre praktyki w programowaniu zalecają regularne korzystanie z debugggera, zwłaszcza podczas testowania nowych funkcji lub poprawek, ponieważ pozwala to na szybsze zidentyfikowanie problemów i ich rozwiązanie, co w efekcie przyspiesza proces rozwoju oprogramowania i zwiększa jego jakość.

Pytanie 27

Jaki język skryptowy o uniwersalnym zastosowaniu powinien być użyty do tworzenia aplikacji internetowych, wkomponowanych w kod HTML i działających na serwerze?

A. C#
B. PHP
C. JavaScript
D. Perl
PHP, czyli Hypertext Preprocessor, to taki język skryptowy, który jest mega popularny, szczególnie jeśli chodzi o dynamiczne strony www. Fajnie, że można go wplatać w HTML i uruchamiać na serwerze, bo to pozwala generować treści na bieżąco, tak jak chce użytkownik. PHP współpracuje z różnymi bazami danych, na przykład MySQL, co czyni go super wyborem dla aplikacji, które muszą się z nimi łączyć. Dzięki frameworkom, jak Laravel czy Symfony, programiści mogą szybko i sprawnie tworzyć bardziej skomplikowane aplikacje. PHP jest też zgodny z wieloma standardami webowymi, więc działa na różnych serwerach i systemach operacyjnych. Przykład? Weźmy WordPress - to popularny system zarządzania treścią, który w całości jest zrobiony właśnie w PHP. No i nie można zapomnieć, że jest prosty i elastyczny, co sprawia, że chętnie uczą się go zarówno początkujący, jak i doświadczeni programiści.

Pytanie 28

Dokument HTML określa akapit oraz grafikę. Aby grafika była umieszczona przez przeglądarkę w tej samej linii co akapit po jego lewej stronie, w stylu CSS grafiki należy ustawić właściwość

A. align:left;
B. alt:left;
C. float:left;
D. style:left;
Właściwość CSS 'float:left;' jest kluczowa dla umieszczania elementów w linii obok siebie. Umożliwia ona 'wypływanie' elementu, jakim jest obrazek, w lewo, co skutkuje tym, że tekst w akapicie będzie go otaczał od prawej strony. Jest to szczególnie przydatne w projektowaniu responsywnych układów stron internetowych, gdzie zachowanie porządku w rozmieszczeniu elementów jest istotne zarówno na desktopach, jak i urządzeniach mobilnych. Przykładowo, jeśli mamy akapit z opisem produktu, który chcemy wizualnie wzbogacić odpowiednim zdjęciem z jego lewej strony, zastosowanie 'float:left;' w stylach CSS sprawi, że tekst będzie płynnie dostosowywał się do rozmiaru obrazka. Zgodnie z dobrymi praktykami, warto również pamiętać o zastosowaniu 'clear:both;' w przypadku elementów, które mają pojawić się poniżej zaganianych elementów, aby uniknąć problemów z układem. Dodatkowo, warto zadbać o odpowiednie wymiary obrazka oraz użycie atrybutu 'alt' w tagu <img>, aby poprawić dostępność strony oraz jej SEO.

Pytanie 29

Która z definicji CSS określa formatowanie nagłówka h1: tekst nadkreślony, z odstępami między wyrazami 10 px i czerwonym kolorem tekstu?

h1{
  text-decoration: overline;
  word-spacing: 10px;
  color: red;
}                       A.

h1{
  text-decoration: overline;
  letter-spacing: 10px;
  color: red;
}                       B.

h1{
  text-transform: none;
  line-height: 10px;
  color: rgb(255,0,0);
}                       C.

h1{
  text-decoration: underline;
  line-height: 10px;
  color: rgb(255,0,0);
}                       D.
A. B.
B. D.
C. C.
D. A.
Brawo, poprawnie wybrałeś odpowiedź A, która pokazuje prawidłową definicję CSS do formatowania nagłówka h1. 'text-decoration: overline;' jest poleceniem CSS służącym do nadkreślania tekstu. Jest to styl tekstu, który dodaje linie nad literami. 'word-spacing: 10px;' jest poleceniem CSS, które określa odstępy między wyrazami. Wartościem tego polecenia jest odległość, która jest używana do określenia przestrzeni między słowami i jest wyrażona w pikselach. 'color: red;' jest standardowym poleceniem CSS do kolorowania tekstu. Czerwony jest jednym z podstawowych kolorów, które można wykorzystać w CSS. W praktyce, te trzy polecenia CSS mogą być używane do personalizacji strony internetowej, poprawiając jej wygląd i czytelność. Dobrą praktyką jest eksperymentowanie z różnymi stylami CSS, aby znaleźć najlepszy sposób prezentacji zawartości.

Pytanie 30

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

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

Kiedy należy użyć kwerendy SELECT DISTINCT, aby wybrać rekordy?

A. pogrupowane.
B. obecne w bazie tylko raz.
C. uporządkowane w kolejności malejącej lub rosnącej.
D. tak, aby w wskazanej kolumnie nie powtarzały się wartości.
Kwerenda SELECT DISTINCT jest używana w SQL do zwracania unikalnych rekordów z określonej kolumny lub kolumn. Głównym celem tej kwerendy jest eliminacja duplikatów z wyników zapytania, co jest szczególnie przydatne w sytuacjach, gdy interesuje nas uzyskanie listy unikalnych wartości, na przykład nazwisk pracowników w firmie, których można znaleźć w tabeli „Pracownicy”. Dzięki zastosowaniu DISTINCT, wynik zapytania dostarczy tylko różne nazwiska, eliminując powtarzające się wystąpienia. W kontekście dobrych praktyk w projektowaniu baz danych, korzystanie z DISTINCT pozwala na efektywniejsze analizowanie danych oraz lepsze zrozumienie struktury informacji w tabelach. Użycie SELECT DISTINCT może również pomóc w optymalizacji zapytań, szczególnie w rozbudowanych bazach danych, gdzie występowanie duplikatów może prowadzić do zafałszowania wyników analiz. Przykład praktyczny to zapytanie: SELECT DISTINCT kraj FROM Klienci, które zwróci wszystkie różne kraje, w których znajdują się klienci, co jest kluczowe w analizach geolokalizacyjnych.

Pytanie 32

Klucz obcy w tabeli jest ustanawiany w celu

A. wiązać go z innymi kluczami obcymi w tabeli
B. zapewnić jednoznaczną identyfikację rekordu w tabeli
C. określić relację 1..n powiązującą go z kluczem głównym innej tabeli
D. opracować formularz do wprowadzania danych do tabeli
Klucz obcy (foreign key) w bazach danych jest fundamentalnym elementem w modelowaniu relacji pomiędzy tabelami. Jego podstawowym celem jest zdefiniowanie relacji 1..n pomiędzy tabelą, w której się znajduje, a kluczem głównym innej tabeli. Oznacza to, że jeden rekord w tabeli, która zawiera klucz główny, może być powiązany z wieloma rekordami w tabeli z kluczem obcym. Na przykład, w systemie zarządzania zamówieniami, tabela 'Klienci' może mieć klucz główny 'ID_klienta', a tabela 'Zamówienia' może zawierać klucz obcy 'ID_klienta', co pozwala na powiązanie wielu zamówień z jednym klientem. To nie tylko ułatwia strukturalne organizowanie danych, ale również wspiera integralność referencyjną; czyli zapewnia, że każdy wpis w tabeli 'Zamówienia' odnosi się do istniejącego klienta. W praktyce, dobre praktyki projektowania baz danych zalecają używanie kluczy obcych do zachowania spójności danych i ułatwienia ich analizy, co odzwierciedla większą efektywność w strumieniu pracy oraz w raportowaniu.

Pytanie 33

Co to jest AJAX?

A. Technologia umożliwiająca asynchroniczne przesyłanie danych między klientem a serwerem bez przeładowania strony
B. Język programowania służący do tworzenia stron internetowych
C. Biblioteka JavaScript do obsługi animacji i efektów wizualnych
D. System zarządzania bazą danych używany do przechowywania i manipulacji danymi
AJAX, czyli Asynchronous JavaScript and XML, to podejście do programowania aplikacji webowych, które pozwala na wykonywanie asynchronicznych zapytań do serwera bez konieczności przeładowania całej strony. Dzięki temu użytkownik ma płynniejsze i bardziej responsywne doświadczenie z aplikacją. W praktyce często stosuje się AJAX do ładowania danych z serwera w tle, co pozwala na dynamiczne aktualizowanie części strony, takie jak listy produktów, komentarze, czy wyniki wyszukiwania. Technologie związane z AJAX to m.in. XMLHttpRequest, Fetch API oraz często używane biblioteki jak jQuery, które upraszczają jego implementację. Standardy i dobre praktyki obejmują m.in. unikanie blokowania interfejsu użytkownika oraz zapewnienie bezpieczeństwa danych podczas przesyłania między klientem a serwerem. Z mojego doświadczenia, AJAX jest nieoceniony w tworzeniu nowoczesnych aplikacji webowych i znacząco zwiększa ich użyteczność.

Pytanie 34

W C++ stworzono zmienną: char zm1;. Jak można przypisać do niej wartość, zgodnie ze składnią tego języka?

A. zm1 == 0x35
B. zm1[2] = 32
C. zm1 = "wiadro"
D. zm1 = 'w'
Odpowiedzi, które nie zostały wybrane, zawierają istotne błędy koncepcyjne w kontekście przypisywania wartości do zmiennych typu char. Przykładowo, przypisanie 'zm1[2] = 32;' jest błędne, ponieważ próbujemy odwołać się do konkretnego indeksu w zmiennej char, co nie ma sensu, gdy char to pojedynczy znak, a nie tablica. Wartość '32' jest także nieodpowiednia, ponieważ jest to kod ASCII, a nie znak. W C++ przypisanie znaku wymaga użycia pojedynczych apostrofów. Inna nieprawidłowa odpowiedź, 'zm1 = "wiadro";', jest również błędna, ponieważ używamy podwójnych apostrofów, które są stosowane dla łańcuchów tekstowych (string), a nie dla pojedynczych znaków. C++ nie pozwala na przypisanie łańcucha do zmiennej char. Ostatnia odpowiedź, 'zm1 == 0x35;', odnosi się do porównania, a nie do przypisania. Wyrażenie to sugeruje, że chcemy sprawdzić, czy zmienna zm1 jest równa wartości szesnastkowej, co nie jest zgodne z intencją przypisania. Użycie operatora porównania (==) w miejscu operatora przypisania (=) prowadzi do logicznego błędu. W kontekście programowania, kluczowe jest zrozumienie różnicy między przypisaniem a porównaniem, co jest podstawą efektywnego kodowania i programowania w C++.

Pytanie 35

W zakresie ochrony serwera bazy danych przed atakami hakerównie wlicza się

A. blokada portów powiązanych z bazą danych
B. używanie skomplikowanych haseł do bazy
C. defragmentacja dysków
D. aktywacja zapory
Defragmentacja dysków to proces, który ma na celu optymalizację wydajności dysków twardych poprzez reorganizację danych na nośniku. Choć jest to operacja ważna dla poprawy wydajności systemu, nie ma ona bezpośredniego wpływu na bezpieczeństwo serwera bazy danych. W kontekście zabezpieczeń, kluczowymi działaniami są m.in. blokowanie portów związanych z bazą danych, co zapobiega nieautoryzowanemu dostępowi z zewnątrz; włączenie zapory, która filtruje ruch do i z serwera; oraz stosowanie złożonych haseł do bazy, które utrudniają ataki typu brute force. Przykładowo, wiele firm przyjmuje politykę wymuszania zmian haseł co kilka miesięcy oraz minimalnych wymagań dotyczących ich złożoności. Właściwa strategia zabezpieczeń obejmuje także regularne aktualizacje oprogramowania oraz monitorowanie logów serwera w poszukiwaniu nietypowych aktywności. Zastosowanie tych praktyk znacząco podnosi poziom bezpieczeństwa danych przechowywanych w bazie.

Pytanie 36

Wynik wykonania zapytania SQL to

SELECT count(*) FROM Uczniowie WHERE srednia = 5;
A. liczba uczniów, których średnia ocen wynosi 5
B. średnia ocen wszystkich uczniów
C. całkowita liczba uczniów
D. suma ocen uczniów, których średnia ocen to 5
Poprawna odpowiedź to liczba uczniów, których średnia ocen wynosi 5. Zapytanie SQL zawiera funkcję agregującą count(*), która zlicza wszystkie rekordy spełniające warunek określony w klauzuli WHERE. W tym przypadku filtrujemy uczniów, których średnia ocen jest równa 5. Tego rodzaju operacje są powszechnie stosowane w bazach danych do uzyskiwania statystyk oraz analizowania danych. Na przykład, jeśli chcemy ocenić skuteczność programu nauczania, możemy zastosować podobne zapytanie, aby zidentyfikować liczbę uczniów osiągających określony poziom w nauce. W praktyce ważne jest, aby zrozumieć, że przy używaniu funkcji agregujących w SQL, wyniki mogą być niezwykle cenne dla menedżerów edukacyjnych, którzy podejmują decyzje na podstawie danych. Rekomendowane jest również zrozumienie kontekstu, w jakim są stosowane takie zapytania, oraz sposób, w jaki można je optymalizować dla większych zbiorów danych, aby uzyskać szybkie i dokładne wyniki.

Pytanie 37

Który z akapitów wykorzystuje opisaną właściwość stylu CSS?

Ilustracja do pytania
A. D
B. B
C. A
D. C
Odpowiedź B jest poprawna, ponieważ właściwość CSS border-radius: 20% określa zaokrąglenie narożników elementu. W tym przypadku zastosowanie 20% promienia powoduje, że narożniki akapitu są zaokrąglone w umiarkowanym stopniu. Właściwość ta jest powszechnie wykorzystywana w projektowaniu stron internetowych, aby nadać elementom bardziej łagodny, przyjazny wygląd. Użycie procentowej wartości oznacza, że wielkość zaokrąglenia zależy od wymiarów elementu, co pozwala na zachowanie proporcji na różnych urządzeniach i przy różnych rozmiarach ekranu. Zaokrąglenie w CSS jest istotnym aspektem responsywnego designu, ponieważ może poprawiać czytelność i estetykę interfejsu użytkownika. Praktyczne zastosowania obejmują przyciski, karty, obrazki i inne elementy interfejsu, gdzie płynne linie mogą wpływać na ogólne wrażenie wizualne strony. Zrozumienie i umiejętne wykorzystanie border-radius jest częścią standardowych umiejętności projektanta stron internetowych, co również wspiera zgodność ze współczesnymi trendami w UI/UX.

Pytanie 38

Aby poprawić prędkość ładowania strony z grafiką o wymiarach 2000 px na 760 px, konieczne jest zmniejszenie rozmiarów grafiki?

A. w programie graficznym
B. za pomocą właściwości CSS, podając rozmiar w pikselach
C. za pomocą atrybutów HTML
D. za pomocą właściwości CSS, podając rozmiar w procentach
Wykorzystywanie atrybutów HTML do zmiany rozmiarów grafiki może wydawać się prostym rozwiązaniem, jednak nie jest ono najlepszym podejściem do optymalizacji wydajności strony. Atrybuty 'width' i 'height' w tagu <img> jedynie modyfikują sposób wyświetlania obrazu na stronie, a nie jego rzeczywisty rozmiar pliku. Taki zabieg nie zmniejsza wagi samego pliku graficznego, co może prowadzić do dłuższego czasu ładowania strony. Również definiowanie rozmiaru grafiki za pomocą właściwości CSS, zarówno w pikselach, jak i procentach, jest niewłaściwą metodą w kontekście optymalizacji. Choć zmniejszają one wizualny rozmiar obrazu, nie wpływają na jego rzeczywistą wagę, co prowadzi do nieefektywnego zarządzania zasobami. W praktyce, wprowadzenie dużych plików graficznych na stronę bez ich uprzedniej optymalizacji, może skutkować nie tylko dłuższym czasem ładowania, ale również negatywnie wpłynąć na doświadczenie użytkownika oraz pozycjonowanie w wyszukiwarkach. Warto zatem zainwestować czas w odpowiednią obróbkę graficzną przed publikacją, aby uniknąć takich problemów.

Pytanie 39

Gaśnicę oznaczoną literą C stosuje się do gaszenia pożarów

Ilustracja do pytania
A. metali palnych.
B. tłuszczów i olejów kuchennych.
C. cieczy i ciał stałych.
D. gazów palnych.
System klasyfikacji pożarów nie jest intuicyjny, więc sporo osób zgaduje po skojarzeniach, a to niestety w ochronie przeciwpożarowej bywa bardzo ryzykowne. Litery na gaśnicach nie oznaczają rodzaju środka gaśniczego, tylko klasę pożaru, do którego dana gaśnica może być bezpiecznie użyta. W europejskiej normie PN-EN 2 wyróżnia się m.in. klasy A, B, C, D i F. Metale palne, takie jak magnez, sód, potas czy aluminium w postaci wiórów, są zaklasyfikowane jako pożary klasy D. Do nich stosuje się specjalistyczne gaśnice proszkowe z proszkiem typu D, absolutnie nie te oznaczone C. Woda czy zwykły proszek może przy takich pożarach spowodować gwałtowne reakcje, wybuchy, rozprysk metalu. Ciecze i ciała stałe topiące się (np. benzyna, rozpuszczalniki, oleje mineralne) należą do klasy B. Do ich gaszenia używa się gaśnic z oznaczeniem B (często A/B), np. proszkowych, pianowych czy śniegowych. Gaśnica tylko z literą C nie jest projektowana pod tego typu zagrożenia, bo sposób rozchodzenia się płomienia w cieczy jest inny niż w gazie, a środek gaśniczy musi tworzyć szczelną warstwę odcinającą dostęp tlenu na powierzchni. Tłuszcze i oleje kuchenne, szczególnie w gastronomii, to osobna klasa F. Do nich stosuje się specjalne gaśnice płynowe, które wytwarzają warstwę mydlastą (saponifikacja) i obniżają temperaturę oleju. Użycie niewłaściwej gaśnicy, np. zwykłej proszkowej tylko z oznaczeniem C albo typowej pianowej do gorącego oleju, może skończyć się rozpryskiem i gwałtownym rozprzestrzenieniem pożaru. Typowy błąd myślowy polega na tym, że ktoś widzi płomień i bierze pierwszą lepszą gaśnicę, bez patrzenia na piktogramy i litery. A to właśnie litera C oznacza pożary gazów palnych, takich jak propan-butan czy metan, czyli sytuacje, gdzie pali się mieszanina gazu z powietrzem, a nie ciecz, tłuszcz czy metal. Z mojego doświadczenia na szkoleniach PPOŻ najlepiej działa zapamiętanie skrótu: A – drewno i papier, B – benzyna, C – gaz, D – metal, F – frytura. To bardzo upraszcza dobór właściwej gaśnicy w praktyce.

Pytanie 40

Jaką klauzulę należy wykorzystać w instrukcji CREATE TABLE w SQL, by dane pole rekordu pozostawało wypełnione?

A. DEFAULT
B. NOT NULL
C. NULL
D. CHECK
Odpowiedź 'NOT NULL' jest poprawna, ponieważ klauzula ta jest używana w SQL do definiowania, że dane pole w tabeli nie może przyjmować wartości NULL, co oznacza, że musi zawierać jakąś wartość. Użycie klauzuli NOT NULL jest kluczowe w zapewnieniu integralności danych, szczególnie w sytuacjach, gdy brak wartości w danym polu może prowadzić do błędów w logice aplikacji lub nieprawidłowych wyników zapytań. Na przykład, w przypadku tworzenia tabeli dla użytkowników w systemie, pole 'email' powinno być oznaczone jako NOT NULL, aby zapobiec sytuacji, w której użytkownik mógłby zostać dodany bez podania adresu e-mail, co uniemożliwiłoby kontaktowanie się z nim. Dobrą praktyką jest również stosowanie klauzuli NOT NULL tam, gdzie dane są wymagane do poprawnego działania aplikacji. Użycie tej klauzuli jest zgodne z zasadami normalizacji baz danych, które z kolei mają na celu redukcję redundancji i poprawę integralności danych.