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: 22 kwietnia 2026 08:04
  • Data zakończenia: 22 kwietnia 2026 08:16

Egzamin niezdany

Wynik: 14/40 punktów (35,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

W jaki sposób można w języku CSS ustawić takie stylizowanie tabeli, aby wiersz, na którym obecnie znajduje się kursor myszki, zmieniał kolor tła na szary?

A. tr:active { background-color: gray; }
B. tr:hover { background-color: gray; }
C. tr:hover { color: gray; }
D. tr:active { color: gray; }
Odpowiedzi tr:hover { color: gray; }, tr:active { color: gray; } i tr:active { background-color: gray; } są w tym kontekście niewłaściwe. W pierwszej odpowiedzi, jak używasz pseudoklasy :hover z właściwością color, zmieniasz tylko kolor tekstu, a nie tła, co nie spełnia wymogu modyfikacji koloru tła wiersza. Użytkownicy naprawdę oczekują, że jak najadą kursorem na wiersz, to zobaczą wyraźną zmianę w jego wyglądzie, a zmiana koloru tekstu to nie jest zbyt skuteczny sygnał wizualny. Druga i trzecia odpowiedź wykorzystują pseudoklasę :active, która działa tylko wtedy, gdy na element klikniemy. To pomija interakcję z myszką, co jest kluczowe w tym zadaniu. :active powinno być stosowane, gdy chcemy zmienić styl elementów podczas aktywacji, ale to nie działa w przypadku najechania kursorem. Użytkownicy mogą się mylić między tymi pseudoklasami, co prowadzi do kiepskiego projektowania interfejsu, który nie reaguje na intuicyjne działania, takie jak najeżdżanie myszą. W praktyce, dobrze jest używać właściwych pseudoklas, żeby osiągnąć zamierzony efekt i poprawić interaktywność aplikacji internetowych.

Pytanie 2

Na zakończenie dnia w bazie danych sklepu spożywczego generowany jest raport, który pokazuje produkty wraz z ich dostawcami, dla których liczba sztuk w magazynie jest poniżej 10. Do stworzenia tego raportu użyto kwerendy

A. CHECK TABLE
B. UPDATE
C. INSERT INTO
D. SELECT
Wybór instrukcji UPDATE, INSERT INTO oraz CHECK TABLE jako metod do generowania raportu w bazie danych jest niepoprawny. Instrukcja UPDATE służy do modyfikacji istniejących danych w tabeli, co oznacza, że nie można jej użyć do wyświetlania informacji. Gdyby użytkownik spróbował użyć UPDATE do generowania raportu, mógłby nieumyślnie zmienić wartości w bazie danych, co jest sprzeczne z zamierzeniem uzyskania jedynie informacji. Z kolei INSERT INTO jest używane do dodawania nowych rekordów do bazy danych i również nie ma zastosowania w kontekście generowania raportów. Ta instrukcja nie tylko nie udostępnia żadnych informacji o istniejących danych, ale także może prowadzić do nieporozumień, gdyż wprowadza nowe dane zamiast ich przeszukiwać. Natomiast CHECK TABLE jest instrukcją używaną do sprawdzania integralności tabeli w bazie danych i nie ma związku z pobieraniem danych ani ich wyświetlaniem. Z tego powodu, wszystkie te trzy odpowiedzi są nieodpowiednie w kontekście tworzenia raportu w bazie danych, ponieważ każda z nich działa na zupełnie innych zasadach niż SELECT, który jest właściwym narzędziem do przeszukiwania i wyświetlania danych.

Pytanie 3

Jakie technologie są konieczne do uruchomienia systemu CMS Joomla!?

A. Apache oraz PHP
B. PHP oraz MySQL
C. Apache, PHP i MySQL
D. IIS, PERL i MySQL
Wybór niewłaściwego środowiska dla Joomla! może prowadzić do nieprawidłowego działania całego systemu. W przypadku odpowiedzi zawierających IIS oraz PERL, istotne jest zrozumienie, że Joomla! nie jest zoptymalizowana do pracy z tymi technologiami. IIS to serwer WWW od Microsoftu, który jest mniej popularny w środowisku, w którym dominuje Joomla!. Wiele funkcji dostępnych w Joomla! może być utrudnionych lub wręcz niemożliwych do zrealizowania przy użyciu tego serwera, co skutkuje ograniczeniami w dostępnych wtyczkach i modułach. Z kolei PERL, jako język programowania, nie jest standardowo używany w kontekście Joomla!, co stanowi kolejną przeszkodę. Wybierając Apache i PHP, użytkownik korzysta z najczęściej używanych rozwiązań w ekosystemie PHP, co zapewnia szeroką bazę wsparcia oraz dokumentacji. Niezrozumienie, które technologie są wymagane do działania Joomla!, może prowadzić do błędnych decyzji, takich jak wybór nieodpowiedniego serwera, co z kolei wpływa na wydajność i bezpieczeństwo końcowego projektu. Kluczowe jest, aby przed rozpoczęciem pracy z systemem CMS, dokładnie zapoznać się z jego wymaganiami i dobrymi praktykami, co pomoże uniknąć podstawowych problemów oraz zapewni optymalny rozwój i zarządzanie witryną.

Pytanie 4

W języku PHP zmienna o nazwie $_SESSION przechowuje

A. zmienne przesyłane do skryptu za pośrednictwem ciasteczek (cookie)
B. listę aktywnych sesji na serwerze WWW
C. zmienne przesyłane do skryptu poprzez formularze
D. zmienne zarejestrowane w aktualnej sesji
Zmienna predefiniowana $_SESSION w PHP jest kluczowym elementem zarządzania sesjami, który umożliwia przechowywanie danych użytkownika w trakcie jego wizyty na stronie internetowej. Sesja jest identyfikowana przez unikalny identyfikator, który jest zazwyczaj przechowywany w ciasteczku na komputerze użytkownika, co pozwala na zachowanie stanu między różnymi żądaniami HTTP. Przechowywane w $_SESSION zmienne są dostępne na wszystkich stronach związanych z daną sesją, co sprawia, że jest to niezwykle przydatne w przypadku aplikacji wymagających autoryzacji lub personalizacji treści. Przykładem może być strona logowania, gdzie po wprowadzeniu poprawnych danych użytkownika, zmienne takie jak 'username' czy 'user_id' mogą zostać zapisane w $_SESSION, co umożliwia późniejsze wykorzystanie tych danych do wyświetlania spersonalizowanych informacji. PHP automatycznie rozpoczyna sesję po wywołaniu funkcji session_start(), co oznacza, że wszystkie zmienne zarejestrowane w $_SESSION będą dostępne do odczytu i zapisu podczas całej aktywności użytkownika na stronie. Warto również zaznaczyć, że dane w $_SESSION są przechowywane po stronie serwera, co czyni je bardziej bezpiecznymi w porównaniu do danych przechowywanych w ciasteczkach.

Pytanie 5

W dostępnej tabeli o nazwie przedmioty znajdują się pola: ocena oraz uczenID. Jakie zapytanie należy wykonać, aby obliczyć średnią ocenę ucznia z ID równym 7?

A. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;
B. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;
C. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7;
D. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;
Zarówno odpowiedzi sugerujące zastosowanie funkcji AVG w niewłaściwej formie, jak i te posługujące się błędnymi konstrukcjami zapytań SQL, ukazują typowe nieporozumienia w zakresie tworzenia poprawnych zapytań do baz danych. Na przykład, druga propozycja "AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;" jest niepoprawna, ponieważ nie przestrzega podstawowej składni SQL. Funkcja AVG musi być użyta w kontekście zapytania SELECT, gdzie najpierw wskazuje się, jakie dane chcemy zgrupować, a następnie stosuje się funkcję agregującą. Ponadto, odpowiedzi bazujące na COUNT, jak "SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;" są mylące, ponieważ metoda COUNT służy do zliczania rekordów spełniających dany warunek, a nie do obliczania średniej. W tym przypadku, zliczanie ocen nie odpowiada na pytanie o średnią, co może prowadzić do błędnych wniosków przy analizie wyników ucznia. Należy pamiętać, że poprawne zrozumienie różnicy między funkcjami agregującymi jest kluczowe dla skutecznej analizy danych. Typowe błędy myślowe prowadzące do takich niepoprawnych wniosków obejmują mylenie zadań, do których służą różne funkcje SQL, co może rezultować w nieefektywnej analizie danych i nieprawidłowych wynikach. Właściwe zrozumienie składni oraz funkcji SQL jest niezbędne do efektywnego przetwarzania i analizy danych.

Pytanie 6

Który z języków skryptowych nie wykonuje operacji po stronie serwera?

A. ASP
B. CSS
C. PHP
D. Perl
ASP, PHP i Perl to języki skryptowe, które są używane po stronie serwera, co oznacza, że ich kod jest wykonywany na serwerze przed dostarczeniem strony do użytkownika. ASP (Active Server Pages) to technologia opracowana przez Microsoft, która umożliwia tworzenie dynamicznych stron internetowych poprzez integrację z bazami danych oraz obsługę skryptów. PHP (Hypertext Preprocessor) jest jednym z najpopularniejszych języków skryptowych, który również działa po stronie serwera, umożliwiając tworzenie stron internetowych, które mogą generować HTML w oparciu o dane z różnych źródeł, takich jak bazy danych MySQL. Perl, pierwotnie stworzony do przetwarzania tekstu, stał się również wszechstronnym językiem skryptowym do aplikacji webowych, obsługując różnorodne zadania serwerowe. Te języki są integralną częścią nowoczesnego rozwoju aplikacji webowych i pozwalają na obsługę logiki biznesowej, interakcji z użytkownikami oraz komunikacji z bazami danych, co jest niezbędne w tworzeniu dynamicznych i interaktywnych aplikacji internetowych.

Pytanie 7

Warunek zapisany w języku PHP wypisze liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona parzysta.
B. jest ona liczbą pierwszą.
C. wynik dzielenia liczby przez 2 jest równy 0.
D. jest ona dodatnia.
Niestety twoja odpowiedź nie jest prawidłowa. Wybranie opcji mówiącej, że warunek w PHP wypisze liczbę, gdy jest ona liczbą pierwszą, błędnie zakłada, że operator modulo (%) sprawdza pierwszość liczby. W rzeczywistości, operator ten zwraca resztę z dzielenia jednego liczby przez drugą. Nie jest więc w stanie bezpośrednio sprawdzić, czy liczba jest pierwsza. Podobnie, wybranie opcji mówiącej, że warunek wypisze liczbę, gdy jest ona dodatnia, błędnie sugeruje, że operator modulo (%) jest w stanie samego sprawdzić dodatność liczby. W rzeczywistości, operator ten jest często używany do sprawdzania parzystości liczby, nie jest jednak w stanie sprawdzić, czy liczba jest większa od zera. Ostatecznie, wybranie opcji mówiącej, że warunek wypisze liczbę, gdy wynik dzielenia liczby przez 2 jest równy 0, jest tautologią, ponieważ to właśnie definicja liczby parzystej. To jednak nie jest błąd w rozumieniu, a raczej w formułowaniu pytania.

Pytanie 8

W podanym kodzie JavaScript ponumerowano linie dla ułatwienia. W programie występuje błąd, ponieważ po wykonaniu żadna wiadomość nie jest wyświetlana. Aby usunąć ten błąd, należy

1. if (a < b)
2. document.write(a);
3. document.write(" jest mniejsze");
4. else
5. document.write(b);
6. document.write(" jest mniejsze");
A. umieścić znaki $ przed nazwami zmiennych
B. w liniach 3 i 6 zamienić znaki cudzysłowu na apostrof, np. ' jest mniejsze'
C. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowach
D. dodać nawiasy klamrowe w sekcjach if oraz else
Wstawienie znaków $ przed zmiennymi a i b jest podejściem, które nie ma zastosowania w standardowym JavaScript, gdyż nie jest to sposób na wskazywanie zmiennych w tym języku. W rzeczywistości, znaki $ są używane w niektórych bibliotekach, takich jak jQuery, ale nie wpływają na samą składnię JavaScript. Użycie apostrofów zamiast cudzysłowów również nie rozwiązuje problemu, gdyż JavaScript zezwala na użycie zarówno cudzysłowów, jak i apostrofów do definiowania ciągów tekstowych, jednak nie wpływa to na wykonanie bloków kodu. Zmiana zmiennych na ciągi znakowe w liniach 2 i 5 wprowadza błąd, ponieważ zamiast wartości zmiennych a i b, kod wyświetli dosłownie tekst 'a' oraz 'b', co nie jest zamierzonym celem. W programowaniu, ważne jest nie tylko zrozumienie składni, ale także logiki, jaką ona za sobą niesie. Regularne stosowanie dobrych praktyk, takich jak wstawianie nawiasów klamrowych, pozwala uniknąć takich typowych błędów, które mogą prowadzić do niewłaściwego działania kodu. Ponadto, poznanie i przestrzeganie standardów programistycznych znacznie zwiększa jakość i niezawodność tworzonych aplikacji.

Pytanie 9

Zmienne typu int odnoszą się do liczb całkowitych

A. całkowitych
B. naturalnych
C. w notacji zmiennoprzecinkowej
D. w notacji stałoprzecinkowej
Odpowiedzi, które nie są poprawne, opierają się na mylnym zrozumieniu typów danych w programowaniu. Zmienne odnoszące się do wartości naturalnych to liczby całkowite większe lub równe zeru, co nie obejmuje wszystkich możliwości, które daje typ int, ponieważ może on reprezentować również liczby ujemne. Zatem ograniczenie do liczb naturalnych jest zbyt wąskie i nie oddaje pełni możliwości, jakie oferują zmienne całkowite. Kolejnym błędnym założeniem jest powiązanie typów int z notacją stałoprzecinkową. Chociaż takie notacje są używane w kontekście reprezentacji liczby w pamięci, zmienne int nie są właściwie klasyfikowane jako stałoprzecinkowe, gdyż termin ten odnosi się specyficznie do zapisu wartości liczbowych, które nie zmieniają pozycji przecinka. Tak więc, typ int nie jest związany z tym pojęciem. Ostatnia odpowiedź, która sugeruje, że zmienne int są w notacji zmiennoprzecinkowej, jest również niepoprawna, ponieważ zmiennoprzecinkowe reprezentacje (np. float lub double) są używane do przechowywania liczb, które wymagają dokładności dziesiętnej. Typ int jest z definicji typem całkowitym, co w żaden sposób nie obejmuje liczb zmiennoprzecinkowych. W rzeczywistości zmienne zmiennoprzecinkowe mają całkowicie inną strukturę pod względem przechowywania i reprezentacji, co sprawia, że są one zupełnie odrębnymi typami danych od int.

Pytanie 10

Lokalny System Zarządzania Bazą Danych (SZBD) oferuje bazę danych

A. jako usługę serwerową w sieci.
B. w chmurze obliczeniowej.
C. wyłącznie na jednym, wyznaczonym komputerze.
D. w formie serwera w sieci.
Lokalny System Zarządzania Bazą Danych (SZBD) jest zazwyczaj zainstalowany na jednym, określonym komputerze, co oznacza, że jest używany w trybie lokalnym. Taki system zarządzania bazą danych, jak na przykład MySQL czy SQLite, umożliwia użytkownikom przechowywanie, modyfikowanie i zarządzanie danymi bez potrzeby połączenia z zewnętrznymi serwerami. Praktycznym przykładem jest sytuacja, gdy deweloperzy tworzą aplikacje desktopowe, które korzystają z lokalnych baz danych do przechowywania danych użytkowników lub do obsługi aplikacji offline. W kontekście najlepszych praktyk, lokalne bazy danych są często wykorzystywane w małych projektach, gdzie dostępność i wydajność są kluczowe, a złożoność architektury sieciowej nie jest wymagana. Przykładem zastosowania jest aplikacja do zarządzania finansami osobistymi, która lokalnie przechowuje dane o wydatkach użytkownika, zapewniając jednocześnie szybki dostęp do informacji bez potrzeby korzystania z zasobów chmurowych.

Pytanie 11

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Zwrócić wartość odwrotną do argumentu f
B. Wypisać wartość bezwzględną argumentu f
C. Zwrócić wartość bezwzględną argumentu f
D. Wypisać wartość odwrotną do argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.

Pytanie 12

Wskaż prawdziwe stwierdzenie dotyczące polecenia:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. Klauzula CHARACTER SET utf8 jest obowiązkowa.
B. Do tabeli nie można wprowadzać nazw ulic zawierających polskie znaki.
C. Rekordem tabeli nie może być '3 MAJA'.
D. IF NOT EXISTS stosuje się opcjonalnie, aby upewnić się, że w bazie danych nie istnieje już taka tabela.
Dobrze, że wybrałeś właściwą odpowiedź! Polecenie CREATE TABLE IF NOT EXISTS jest rzeczywiście używane w SQL, aby stworzyć tabelę tylko wtedy, gdy nie istnieje ona już w bazie danych. To jest bardzo praktyczne narzędzie, które pozwala uniknąć błędów, gdy próbujemy stworzyć tabelę, która już istnieje. Jest to zgodne z dobrymi praktykami zarządzania danymi i jest oparte na standardach SQL. Dodatkowo, warto pamiętać, że klauzula CHARACTER SET utf8, chociaż nie jest obowiązkowa, pozwala na przechowywanie znaków specjalnych, w tym polskich. Jest to ważne, gdy pracujemy z danymi, które zawierają różne zestawy znaków. Dlatego, nawet jeśli nie jest to wymagane, często jest to dobra praktyka. Podobnie, warto pamiętać, że typ danych VARCHAR(70) pozwala na przechowywanie dowolnych ciągów znaków, w tym dat i nazw, więc nie ma żadnych ograniczeń co do tego, jakie informacje mogą być przechowywane w tabeli.

Pytanie 13

Znak <s> w HTML powoduje

A. skreślenie tekstu
B. pochylenie tekstu
C. migotanie tekstu
D. podkreślenie tekstu
Znaczniki HTML pełnią różne funkcje związane z formatowaniem tekstu, jednak nie każdy znacznik działa w sposób intuicyjny. Na przykład, wybór odpowiedzi dotyczącej pochylenia tekstu wskazuje na nieporozumienie w zakresie zastosowania znacznika. Tekst pochylony w HTML osiąga się za pomocą znacznika <em> lub <i>, które są przeznaczone do podkreślenia znaczenia lub wyróżnienia fragmentu tekstu. Odpowiedź sugerująca migotanie tekstu pokazuje braki w wiedzy o standardach HTML; w rzeczywistości nie ma takiego znacznika w HTML5, a efekt migotania jest niezalecany ze względu na problemy z dostępnością i użytecznością. Wreszcie, podkreślenie tekstu w HTML realizowane jest przy pomocy znacznika <u>, który jest zarezerwowany dla tekstu, który jest ważny lub w inny sposób wyróżniony, a nie dla przekreślenia. Zatem, w kontekście HTML, kluczowe jest zrozumienie przeznaczenia każdego znacznika, aby unikać nieporozumień i błędnych interpretacji, które mogą prowadzić do niewłaściwego formatowania oraz naruszenia zasad dostępności.

Pytanie 14

Przedstawiona ikona funkcji edytora grafiki rastrowej o nazwie "kubełek" umożliwia

Ilustracja do pytania
A. zaznaczenie obszaru o takim samym kolorze.
B. zmianę aktywnych kolorów.
C. wypełnienie zaznaczonego obszaru kolorem.
D. pobranie wskazanej barwy i ustawienie jej, jako aktywnej.
Gratulacje, odpowiedź jest poprawna. Ikona 'kubełek farby' w edytorach grafiki rastrowej jest narzędziem umożliwiającym wypełnienie zaznaczonego obszaru wybranym kolorem. Działanie tego narzędzia jest podobne do rozlewania farby - kolor wypełnia ciągły obszar aż do napotkania krawędzi lub pikseli o innym kolorze. Ta funkcja pozwala na szybkie i efektywne kolorowanie większych powierzchni obrazu. W praktyce, jest to niezwykle przydatne narzędzie, szczególnie gdy potrzebujesz szybko zmienić tło obrazu lub wypełnić obszar jednolitym kolorem. Warto również zauważyć, że różne edytory mogą mieć dodatkowe opcje dla tego narzędzia, takie jak możliwość wyboru tolerancji (która decyduje, jak bardzo podobny kolor musi być, aby został wypełniony) czy wypełnianie według warstwy czy według obrazu.

Pytanie 15

Jaką wartość będzie mieć zmienna str2 po wykonaniu poniższego fragmentu kodu JavaScript?

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. vaSc
B. avaScr
C. avaS
D. vaScri
Metoda substring w JavaScript służy do wycinania fragmentów łańcucha znaków na podstawie podanych indeksów. W przypadku kodu str1.substring(2 6) metoda pobiera znaki zaczynając od indeksu 2 do indeksu 6 wyłącznie. Indeksowanie w JavaScript jest zerowe oznacza to że pierwszy znak ma indeks 0 drugi indeks 1 itd. Dlatego dla łańcucha JavaScript indeks 2 odpowiada trzeciemu znakowi a jest to literka v. Idąc dalej indeks 3 to a indeks 4 to S i indeks 5 to c. Indeks 6 jest wyłączny co oznacza że znak na tym miejscu nie jest uwzględniany w wyniku końcowym. Dlatego też wynikiem wywołania substring(2 6) jest ciąg znaków vaSc. Metoda substring jest przydatna w sytuacjach gdzie potrzebujemy wyodrębnić fragment ciągu znaków na przykład przy przetwarzaniu tekstów czy danych wejściowych z formularzy. Dobra praktyka przy używaniu tej metody to zawsze uwzględnianie indeksów początkowego i końcowego w celu uniknięcia błędów logicznych w kodzie oraz zapewnienie czytelności i zrozumiałości kodu dla innych programistów.

Pytanie 16

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

A. tr { background-color: Pink; }
B. tr:hover { background-color: Pink; }
C. td, th { background-color: Pink; }
D. tr:active { background-color: Pink; }
W tym zadaniu chodzi o zrozumienie, jak działają selektory CSS oraz pseudo-klasy odpowiedzialne za interakcję z użytkownikiem. Jeśli efekt ma pojawiać się tylko wtedy, gdy użytkownik najedzie myszką na wiersz tabeli, to zwykłe ustawienie background-color bez pseudo-klasy nie spełni tego warunku. Deklaracja tr { background-color: Pink; } oznaczałaby, że wszystkie wiersze tabeli są cały czas różowe, niezależnie od tego, czy ktoś na nie najedzie, czy nie. To jest po prostu styl statyczny, bez żadnej reakcji na zdarzenia. Podobnie zapis td, th { background-color: Pink; } ustawia tło dla wszystkich komórek tabeli (zarówno nagłówkowych th, jak i zwykłych td) w sposób stały. Moim zdaniem to dość częsty błąd: ktoś kojarzy tabelę z komórkami i intuicyjnie styluje td/th, ale zapomina, że w pytaniu chodzi o efekt dynamiczny „po najechaniu”. W rezultacie otrzymujemy tabelę pokolorowaną na stałe, bez jakiejkolwiek interakcji, co jest sprzeczne z założeniem zadania i z typowym zachowaniem tabel w nowoczesnych interfejsach. Ciekawsza jest kwestia selektora tr:active { background-color: Pink; }. Pseudo-klasa :active oznacza element w momencie „aktywacji”, czyli najczęściej w chwili klikania (przytrzymania przycisku myszy). Efekt trwa bardzo krótko, tylko w czasie samego kliknięcia. To zupełnie inny scenariusz niż wygodne podświetlenie wiersza, które ma się utrzymywać, dopóki kursor jest nad elementem. Użycie :active prowadzi do efektu, który miga na ułamek sekundy i z punktu widzenia ergonomii jest praktycznie bezużyteczny w kontekście podświetlania wierszy. Typowy błąd myślowy przy takich pytaniach polega na myleniu różnych pseudo-klas: :hover, :active, :focus. W webdevie przyjęło się, że :hover służy do reakcji na najechanie myszką, :active do krótkiej reakcji na kliknięcie, a :focus do zaznaczenia elementu, który ma aktualnie fokus klawiatury. Standardy CSS i dobre praktyki projektowania interfejsów jasno wskazują, że do efektu „podświetl wiersz, gdy nad nim jestem” należy użyć właśnie :hover na odpowiednim elemencie, czyli w tym przypadku tr. Wszystkie pozostałe odpowiedzi ignorują tę zasadę albo stosują nie tę pseudo-klasę, co trzeba, przez co nie odzwierciedlają poprawnie zachowania pokazanego w materiale wideo.

Pytanie 17

W PHP, aby usunąć białe znaki z początku i końca ciągu tekstowego, można skorzystać z funkcji

A. strlen()
B. sort()
C. trim()
D. time()
Funkcja trim() w języku PHP jest niezwykle przydatna do usuwania zbędnych spacji oraz innych białych znaków z początku i końca ciągu znaków. Jest to funkcjonalność, która jest często wykorzystywana w różnych aplikacjach, szczególnie w kontekście przetwarzania danych wejściowych od użytkowników, gdzie niechciane spacje mogą prowadzić do błędów podczas walidacji lub przechowywania danych w bazie danych. Przykład użycia funkcji trim() jest prosty: jeśli mamy zmienną $text = ' Przykladowy tekst '; używając trim($text), otrzymamy 'Przykladowy tekst'. Funkcja ta przyjmuje również drugi argument, który pozwala na określenie dodatkowych znaków do usunięcia. Na przykład trim($text, "a ") usunie zarówno spacje, jak i litery 'a' z końców ciągu. Zgodnie z dokumentacją PHP, trim() jest częścią standardowej biblioteki funkcji stringowych, co czyni ją niezawodnym narzędziem w każdej aplikacji PHP."

Pytanie 18

Instrukcja JavaScript: document.write5==='5'); co zostanie wyświetlone?

A. true
B. false
C. 0
D. 1
Analizując inne opcje odpowiedzi, można zauważyć, że pierwsza z nich sugeruje wynik 1. W kontekście JavaScript, wynik 1 zazwyczaj odnosi się do wartości prawdy, co jest mylne w przypadku porównania 5 === '5', które nie może zwrócić takiej wartości. Kolejna opcja wskazuje na 0, co w JavaScript również jest interpretowane jako fałsz, ale nie jest zgodne z logiką porównania typów, gdzie wynik jest jednoznacznie 'false', a nie liczbowy. Trzecia opcja, 'true', jest szczególnie myląca, ponieważ może sugerować, że porównanie zakończyło się sukcesem, co jest sprzeczne z zasadą porównania typów: 5 jako liczba i '5' jako string nie mogą być uznawane za identyczne przy użyciu operatora '===' w JavaScript. Warto pamiętać, że JavaScript jest językiem z dynamicznym typowaniem, co oznacza, że typy danych mogą być zmieniane, ale operator '===' wymaga, aby obie strony porównania były tego samego typu. Dlatego każda z tych niepoprawnych odpowiedzi błędnie interpretuje zasady operatorów w JavaScript, prowadząc do nieprawidłowych wniosków.

Pytanie 19

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_query($zapytanie)
B. mysqli_num_fields($zapytanie)
C. mysqli_fetch_array($zapytanie)
D. mysqli_free_result($zapytanie)
Funkcja mysqli_fetch_array($zapytanie) jest używana do pobierania wyników zapytania SQL w formie tablicy asocjacyjnej lub indeksowanej. W kontekście podanego kodu, po wykonaniu zapytania SELECT do bazy danych, wyniki są zwracane jako zasób, który musi być przetworzony. Mysqli_fetch_array pozwala na iteracyjne przetwarzanie każdego wiersza z zestawu wyników, co umożliwia dostęp do poszczególnych wartości pól za pomocą indeksów lub kluczy. Jest to przydatne w sytuacjach, gdzie dane muszą być wyświetlane lub przetwarzane w pętli, jak w przykładowym kodzie. Tablica zwracana przez mysqli_fetch_array może zawierać pola zarówno z indeksami numerycznymi, jak i nazwami kolumn, co daje elastyczność w dostępie do danych. Zgodnie z dobrymi praktykami programistycznymi, zawsze należy sprawdzić, czy zapytanie zostało wykonane poprawnie, zanim zacznie się przetwarzać jego wyniki, oraz zwolnić pamięć po zakończeniu przetwarzania wyników. Stosowanie odpowiednich mechanizmów obsługi błędów i zabezpieczeń, takich jak przygotowane zapytania, jest również kluczowe dla bezpieczeństwa aplikacji.

Pytanie 20

W celu stylizacji strony internetowej stworzono odpowiednie reguły. Reguły te będą stosowane tylko do wybranych znaczników (np. niektóre nagłówki, kilka akapitów). W tej sytuacji, aby zastosować styl do kilku wybranych znaczników, najlepiej będzie użyć

{ text-align: right; }
A. identyfikatora.
B. selektora akapitu.
C. klasy.
D. pseudoklasy.
Zastosowanie pseudoklas, identyfikatorów czy selektorów akapitów w sytuacji, gdy potrzebujemy przypisać ten sam styl do różnych elementów, nie jest efektywnym rozwiązaniem. Pseudoklasy, takie jak :hover, :focus czy :nth-child, służą do stylizacji elementów w szczególnych stanach lub według ich pozycji w dokumencie. Nie są one przeznaczone do grupowego przypisywania stylów do wielu elementów, przez co ich użycie w tym kontekście obniża elastyczność i powtarzalność kodu. Identyfikatory, chociaż mogą przypisać unikalny styl do konkretnego elementu, są ograniczone do jednego miejsca w dokumencie HTML. Oznacza to, że ich użycie jest nieefektywne w kontekście wielokrotnego stylizowania, co jest sprzeczne z zasadami semantycznego HTML i CSS. Selektor akapitu, z kolei, odnosi się do elementów <p> i pozwala na stylizację tych elementów w sposób globalny, jednak nie pozwala na precyzyjne dostosowanie stylów do wybranych akapitów w sposób, w jaki może to zrobić klasa. Właściwe zrozumienie koncepcji klas w CSS stanowi podstawę efektywnej stylizacji dokumentów HTML, a ich niewłaściwe zastąpienie innymi metodami może prowadzić do złożonych, mniej czytelnych i trudnych w zarządzaniu arkuszy stylów.

Pytanie 21

Który paragraf w przedstawionym kodzie zostanie wyświetlony czcionką o kolorze niebieskim?

<!DOCTYPE html>
<html>
<head>
<style>
div~p { color: blue; }
</style>
</head>
<body>
  <div>
    <p>pierwszy paragraf</p>
      <div>
        <p>drugi paragraf</p>
        <p>trzeci paragraf</p>
      </div>
    <p>czwarty paragraf</p>
  </div>
</body>
</html>
A. Czwarty.
B. Pierwszy.
C. Drugi.
D. Trzeci.
Poprawnie wskazany został czwarty paragraf, bo dokładnie tak działa selektor CSS użyty w tym przykładzie. Zapis `div~p` to tzw. selektor rodzeństwa (general sibling selector). Oznacza on: „wybierz każdy element `<p>`, który jest młodszym rodzeństwem jakiegokolwiek elementu `<div>` i znajduje się z nim na tym samym poziomie drzewa DOM (ma tego samego rodzica)”. Kluczowe są tu dwie rzeczy: ten sam rodzic oraz to, że dany element musi występować w kodzie **po** elemencie `div`. W podanym fragmencie HTML wszystkie paragrafy znajdują się wewnątrz jednego głównego `<div>`. Jednak tylko „czwarty paragraf” jest rodzeństwem zewnętrznego `<div>` i jednocześnie pojawia się po nim jako element `<p>` na tym samym poziomie zagnieżdżenia. „Pierwszy”, „drugi” i „trzeci” paragraf są zagnieżdżone wewnątrz divów, więc nie są rodzeństwem dla tagu `div`, do którego odnosi się selektor. W praktyce selektor `A~B` często stosuje się np. do stylowania elementów formularza i opisów, które pojawiają się po jakimś polu, albo do tworzenia efektów typu: „wszystkie akapity po tym bloku mają inny kolor”. Warto też znać różnicę między `div p` (wszystkie potomne akapity w divie), `div>p` (tylko bezpośrednie dzieci) oraz `div+p` (tylko pierwszy akapit bezpośrednio po divie). To są podstawowe narzędzia przy precyzyjnym stylowaniu struktury HTML zgodnie z dobrymi praktykami CSS i zaleceniami specyfikacji W3C.

Pytanie 22

Model reprezentacji kolorów z parametrami: hue, saturation i value, to

A. CMY
B. RGB
C. HSV
D. CMYK
Wszystkie pozostałe modele barw, takie jak CMYK, CMY i RGB, różnią się od modelu HSV w podejściu do opisu kolorów. Model CMYK (Cyan, Magenta, Yellow, Key/Black) jest stosowany głównie w druku i bazuje na subtraktywnym mieszaniu kolorów. W tym modelu kolory są tworzone przez odejmowanie światła, co sprawia, że nie jest on odpowiedni do aplikacji związanych z kolorami wyświetlanymi na ekranach. Model CMY również opiera się na subtraktywnym mieszaniu, ale nie uwzględnia czerni, co ogranicza jego użyteczność w kontekście druku. Z kolei RGB (Red, Green, Blue) to model addytywny, który polega na łączeniu kolorów w celu uzyskania innych barw. Jego struktura opiera się na trzech podstawowych kolorach światła, co sprawia, że jest on bardziej odpowiedni do zastosowań związanych z wyświetlaniem kolorów na ekranach. Jednak w porównaniu do HSV, RGB jest mniej intuicyjny dla użytkowników, którzy chcą manipulować kolorami pod kątem ich nasycenia i jasności. Często prowadzi to do mylnych interpretacji, szczególnie w kontekście projektowania graficznego, gdzie zrozumienie, jak zmiany w jednym z tych parametrów wpływają na ostateczny wygląd koloru, jest kluczowe. Dlatego wybór modelu barw powinien być dostosowany do specyficznych potrzeb i zastosowań w danej dziedzinie.

Pytanie 23

W języku SQL wydano polecenie

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
Jednak operacja ta zakończyła się niepowodzeniem z powodu błędu: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Możliwą przyczyną tego problemu bazy danych może być:
A. nieznane polecenie CREATE USER
B. istnienie użytkownika anna w bazie danych
C. błędna składnia polecenia CREATE USER
D. niewystarczająca siła hasła dla konta anna
Dobra robota! Odpowiedź, którą wybrałeś, jest słuszna. Problem z utworzeniem użytkownika 'anna' wynika z tego, że już taki użytkownik istnieje w bazie. W systemach baz danych, jak MySQL, każdy użytkownik musi mieć unikalną nazwę i hosta, z którego się łączy. Kiedy próbujesz dodać kogoś, kto już jest, dostajesz błąd z kodem #1396. Fajnie jest przed dodawaniem nowego użytkownika sprawdzić, czy już nie jest zarejestrowany, żeby uniknąć nieporozumień. Jeśli już ktoś istnieje, można też pomyśleć o edytowaniu tego konta zamiast tworzenia nowego, używając komendy ALTER USER. Takie podejście sprawia, że zarządzanie użytkownikami jest dużo prostsze i bezpieczniejsze.

Pytanie 24

Który format graficzny najlepiej nadaje się do zapisu obrazu z przezroczystością do zastosowania w serwisie internetowym?

A. PNG
B. BMP
C. SVG
D. JPG
Format PNG (Portable Network Graphics) jest najlepszym wyborem do zapisu obrazów z przezroczystością przeznaczonych na strony internetowe. PNG obsługuje przezroczystość alpha, co oznacza, że można uzyskać dowolny stopień przezroczystości na pikselach, co jest szczególnie przydatne w przypadku grafik wymagających gładkich przejść lub cieni. Dzięki temu grafiki mogą być umieszczane na różnych tłach bez widocznych krawędzi, co jest kluczowe w designie stron internetowych. Warto również zauważyć, że PNG wykorzystuje kompresję bezstratną, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas zapisu. W praktyce, format PNG jest idealny do logo, ikon, obrazów z tekstem oraz ilustracji, gdzie ważna jest jakość i przezroczystość. Standardy webowe, takie jak WCAG, również zalecają używanie formatów, które zapewniają dostępność, a PNG doskonale wpisuje się w te wymagania, umożliwiając tworzenie estetycznych i funkcjonalnych stron. Ponadto, wsparcie dla formatu PNG jest szerokie, co zapewnia jego uniwersalność w różnych przeglądarkach i na różnych urządzeniach.

Pytanie 25

W języku PHP znajduje się poniższa instrukcja pętli. Ile iteracji wykona ta pętla, zakładając, że zmienna kontrolna nie jest zmieniana w jej wnętrzu i nie zastosowano instrukcji przerywającej pętlę typu break?

for ($i = 10; $i <= 100; $i += 10)
A. 11 iteracji
B. 10 iteracji
C. 9 iteracji
D. 100 iteracji
Podana pętla w języku PHP jest zdefiniowana jako: for ($i = 10; $i <= 100; $i += 10). W tym przypadku, zmienna sterująca $i jest inicjalizowana na wartość 10 i jest inkrementowana o 10 w każdej iteracji, aż osiągnie wartość 100 włącznie. Zatem, możliwe wartości zmiennej $i podczas powtórzeń pętli będą: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100. W sumie daje to 10 powtórzeń, ponieważ pętla wykonuje się także dla wartości 100. W praktyce, znajomość struktur pętli w PHP jest kluczowa, szczególnie podczas przetwarzania dużych zbiorów danych, gdzie efektywność i precyzyjne kontrolowanie liczby iteracji mogą znacznie wpłynąć na wydajność skryptów. Przy implementacji pętli, warto również pamiętać o standardach czystości kodu oraz zasadach DRY (Don't Repeat Yourself), co pozwala na utrzymanie czytelności i ułatwia przyszłe modyfikacje kodu.

Pytanie 26

Przedstawiony blok reprezentuje czynność

Ilustracja do pytania
A. zastosowania gotowej procedury lub funkcji.
B. wyświetlenia danych.
C. wczytania danych.
D. podjęcia decyzji.
Przedstawiony na rysunku blok w kształcie rombu nie służy ani do wczytywania danych, ani do ich wyświetlania, ani też do reprezentowania gotowej procedury lub funkcji. W klasycznej notacji schematów blokowych, stosowanej w podręcznikach, dokumentacji technicznej i w większości narzędzi CASE, romb jest jednoznacznie zarezerwowany dla operacji decyzyjnych, czyli sprawdzania warunku logicznego i rozgałęzienia przepływu sterowania. Wczytywanie danych z klawiatury, pliku czy formularza jest zwykle oznaczane blokiem równoległoboku. Taki blok opisuje operacje wejścia/wyjścia, czyli pobranie informacji z zewnątrz albo wypisanie jej na ekran, do pliku, do logów. Z mojego doświadczenia częsty błąd polega na tym, że ktoś widzi „coś się dzieje z danymi” i od razu kojarzy to z wejściem/wyjściem, a pomija aspekt logiki sterującej. Jednak w symbolice schematów blokowych kształt ma znaczenie ważniejsze niż skojarzenie słowne. Podobnie jest z wyświetlaniem danych. To też jest operacja wejścia/wyjścia, więc również powinna być przedstawiona jako równoległobok, a nie romb. Wyświetlanie niczego nie „decyduje”, ono jedynie prezentuje wynik, komunikat błędu, informacje dla użytkownika. Decyzja to zawsze sprawdzenie warunku: czy coś jest większe od czegoś, równe, czy jest puste, czy użytkownik ma uprawnienia, i na tej podstawie wybór dalszej ścieżki działania. Gotowa procedura lub funkcja też ma swój własny symbol – najczęściej prostokąt (czasem z podwójną krawędzią) oznaczający blok wykonawczy. Taki blok mówi: „tu wykonaj zdefiniowaną gdzieś indziej czynność”. Nie ma on jednak wbudowanego mechanizmu wyboru ścieżki. To tylko kolejny krok w sekwencji instrukcji. Typowym błędem myślowym jest utożsamianie „czegoś bardziej złożonego” z decyzją, ale z punktu widzenia schematu liczy się to, czy pojawia się warunek i rozgałęzienie. Romb na diagramie zawsze oznacza, że w tym miejscu algorytm zadaje pytanie typu TAK/NIE i w zależności od odpowiedzi kieruje przepływ dalej różnymi drogami. To jest sedno sterowania warunkowego, które później w kodzie przekłada się na instrukcje if, else, switch i podobne konstrukcje logiczne. Dlatego odpowiedzi sugerujące wczytywanie, wyświetlanie albo zastosowanie procedury nie pasują do tego symbolu – opisują inne klasy operacji w algorytmie, które mają inne, ściśle określone kształty na schemacie blokowym.

Pytanie 27

W podanym fragmencie zapytania w języku SQL, komenda SELECT jest używana do zwrócenia SELECT COUNT(wartosc) FROM …

A. średniej wartości z tabeli
B. summy w kolumnie wartosc
C. ilości wierszy
D. średniej w kolumnie wartosc
No, trochę jest tu pomyłka. Ludzie często mylą to zapytanie SELECT COUNT(wartosc) z sumowaniem wartości, co nie jest do końca poprawne. Funkcja COUNT nie sumuje wartości, ona tylko liczy, ile jest niepustych wierszy. Więc jeżeli ktoś twierdzi, że to daje średnią, to wprowadza w błąd – średnią liczymy z pomocą funkcji AVG, a nie COUNT. W kolumnie 'wartosc' mogą być różne liczby, a suma wartości nie ma wiele wspólnego z tym, ile jest wierszy. Dobrze jest pamiętać, że średnia to coś innego niż liczba wierszy, co jest ważne do zrozumienia, jak działają zapytania w SQL. Jeśli ktoś myli te funkcje, to może się zgubić w analizie danych. Więc ogólnie mówiąc, warto wiedzieć, czym różnią się COUNT, AVG i inne funkcje agregujące, bo to kluczowe do ogarnięcia pracy z bazami danych.

Pytanie 28

Aby dostosować dźwięk do określonego poziomu głośności, należy zastosować efekt

A. podbicia basów
B. wyciszenia
C. normalizacji
D. usuwania szumów
Wyciszenie, jako efekt audio, ma na celu redukcję głośności sygnału do zera lub do wartości znacznie niższej niż oryginalna. Użycie wyciszenia do dopasowania dźwięku do poziomu głośności jest błędne, ponieważ nie zachowuje ono dynamiki nagrania i może prowadzić do utraty ważnych szczegółów w dźwięku. Z kolei podbicie basów jest techniką, która zwiększa poziom niskich częstotliwości, co może powodować, że dźwięk w całości staje się zbyt głośny, a niekoniecznie dopasowany do pożądanego poziomu głośności. Usuwanie szumów koncentruje się na redukcji niepożądanych dźwięków tła, co nie wpływa bezpośrednio na ogólny poziom głośności nagrania. Często myśląc o dźwięku, użytkownicy mylą działania mające na celu poprawę jakości audio z tymi, które służą do dostosowania głośności. Ważne jest zrozumienie, że dopasowanie poziomu głośności wymaga złożonego przetwarzania sygnału, które uwzględnia nie tylko maksymalne poziomy, ale także percepcję głośności przez ludzki słuch, co jest kluczowe w profesjonalnej obróbce audio.

Pytanie 29

Wskaż sposób oznaczania komentarzy wielowierszowych w kodzie PHP.

A. /* treść komentarza*/
B. // treść komentarza
C. <!-- treść komentarza -->
D. / treść komentarza/
W PHP składnia komentarzy jest bardzo konkretna i dość ściśle określona, więc drobna pomyłka w znakach powoduje, że interpreter nie potraktuje fragmentu jako komentarza, tylko jako zwykły tekst kodu – co zwykle kończy się błędem składni. Wiele osób myli pojęcia z innych technologii, np. z HTML albo z ogólnego zapisu tekstowego, i stąd biorą się nietrafione odpowiedzi. Znak // w PHP oznacza komentarz, ale tylko jednowierszowy. Oznacza to, że wszystko od // do końca danej linii jest ignorowane, ale już kolejna linia jest znowu normalnym kodem. To jest bardzo wygodne do krótkich dopisków obok instrukcji, np. $x = 5; // liczba elementów. Nie można jednak w ten sposób w prosty sposób opisać większego bloku, który zajmuje kilka wierszy, bo każdy z nich musiałby zaczynać się od //. Technicznie da się, ale jest to nieczytelne i w większych projektach wygląda zwyczajnie słabo. Zapis / treść komentarza/ wygląda trochę jak intuicyjna próba „otoczenia” tekstu ukośnikami, ale w składni PHP nie ma takiej konstrukcji. Pierwszy ukośnik jest traktowany jako początek operatora dzielenia, a dalsza część jako coś zupełnie innego, więc interpreter zgłosi błąd. To typowy błąd: ktoś kojarzy, że są jakieś ukośniki przy komentarzach, ale nie pamięta dokładnej kolejności i ilości znaków. Z kolei <!-- treść komentarza --> to składnia komentarza z języka HTML, a nie z PHP. W plikach .php często mieszamy kod PHP z kodem HTML i wtedy łatwo się pomylić, ale warto to rozdzielać w głowie: gdy jesteśmy „w środku” PHP, czyli pomiędzy znacznikami <?php i ?>, obowiązują zasady komentarzy z PHP: //, # oraz /* */. Natomiast gdy piszemy czysty HTML (poza blokiem PHP), wtedy używamy komentarza <!-- -->. Przenoszenie składni HTML do PHP po prostu nie zadziała, bo interpreter PHP tego nie rozumie. Dobra praktyka jest taka, żeby świadomie wybierać rodzaj komentarza: // lub # do krótkich, jednowierszowych uwag oraz /* */ do dłuższych opisów, dokumentacji funkcji i klas. Mieszanie składni z różnych technologii albo wymyślanie własnych „ozdobnych” wariantów kończy się błędami i trudnym do utrzymania kodem. W programowaniu webowym, szczególnie w PHP, precyzyjna składnia komentarzy to drobiazg, ale bez niej szybko pojawiają się trudne do zlokalizowania problemy, więc warto mieć to dobrze poukładane.

Pytanie 30

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

A. 24
B. 240
C. 256
D. 16
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 31

Zamieszczony kod HTML formularza zostanie wyświetlony przez przeglądarkę w sposób:

<form>
stanowisko: <input type="text"><br>
obowiązki: <br>
<input type="checkbox" name="obowiazek1" value="1" disabled checked>sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazek2" value="2" checked>pisanie kodu<br>
<input type="checkbox" name="obowiazek3" value="3">testy oprogramowania<br>
</form>

A.

stanowisko: obowiązki: sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

B.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

C.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

D.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania
A. B.
B. C.
C. A.
D. D.
Przy ocenie, jak przeglądarka wyświetli formularz HTML, warto mieć na uwadze, że przeglądarki internetowe trzymają się dość sztywno tego, co wynika bezpośrednio z kodu źródłowego. Bardzo typowym błędem jest nadmierne skupienie się na samych polach wyboru czy zawartości formularza, bez uwzględnienia układu wynikającego z użycia znaczników <br> – to właściwie one decydują o tym, gdzie pojawiają się nowe linie. Ktoś może sądzić, że kolejność checked lub disabled zmieni znacząco wygląd – ale to nieprawda, bo atrybuty te wpływają na stan i interaktywność, a nie na rozmieszczenie. W jednej z błędnych propozycji pomieszano, które checkboxy są zaznaczone, a które nie, co prowadzi do przekłamań względem rzeczywistego kodu. Zdarza się też, że przy kopiowaniu kodu pomija się disabled lub checked przy konkretnym polu i całość wygląda inaczej niż powinna – tak po prostu nie działa przeglądarka. Ważne jest też zrozumienie, że disabled powoduje, iż pole jest wyszarzone i nie można na nim operować, natomiast checked przy polu checkbox ustawia je domyślnie jako zaznaczone. Pominięcie <br> po polu tekstowym sprawia, że kolejne elementy formularza lądują w jednej linii – co w praktyce bardzo rzadko się zdarza, bo narusza czytelność, a kod źródłowy wyraźnie tego nie przewiduje. Z mojego doświadczenia widziałem wiele formularzy, które przez nieuwagę programistów wprowadzały użytkownika w błąd przez złe rozmieszczenie elementów – nie chodzi tylko o „ładny wygląd”, ale też o funkcjonalność i dostępność. W praktyce branżowej trzymanie się tego, co wynika z kodu HTML, to podstawa, bo zapewnia przewidywalność działania na wszystkich platformach. Dobrym zwyczajem jest zawsze sprawdzić, jak kod wyświetla się w przeglądarce i porównać go z tym, co chcieliśmy osiągnąć. Dzięki temu unikamy nieporozumień i nieprawidłowych założeń, które mogą prowadzić do błędów zarówno w warstwie frontendowej, jak i podczas przetwarzania danych na serwerze.

Pytanie 32

Ile razy zostanie wykonana pętla przedstawiona w kodzie PHP?

for($i = 0; $i < 25; $i += 5) { ...... }
A. 0
B. 25
C. 26
D. 5
Niepoprawne odpowiedzi mogą wynikać z nieporozumienia dotyczącego sposobu, w jaki pętla for działa oraz jak obliczane są iteracje. W przypadku odpowiedzi mówiących o zerowej liczbie iteracji, można pomyśleć, że warunek $i < 25 nie pozwala na żadną iterację, co jest mylne. Pętla zaczyna się od 0 i natychmiast wchodzi w pierwszą iterację, dlatego w rzeczywistości zawsze jest przynajmniej jedna iteracja, gdy warunek jest spełniony. Z kolei odpowiedzi wskazujące na 25 lub 26 iteracji mogą wynikać z błędnego rozumienia wzrostu zmiennej $i o 5 w każdej iteracji. W rzeczywistości mamy do czynienia z pięcioma krokami, a więc 25 nie jest osiągane jako wartość iteracji, lecz granica, która kończy pętlę po ostatniej iteracji na wartości 20, a przed osiągnięciem 25. Programiści często mylą liczbę iteracji z końcowym wynikiem zmiennej. Kluczowe jest, aby w pełni zrozumieć, jak zdefiniowane są warunki i jak zmieniają się wartości zmiennych w każdej iteracji, aby unikać takich błędów. Zastosowanie pętli for jest szerokie, od przetwarzania danych po iteracje w strukturach danych, a zrozumienie liczby iteracji jest fundamentalne dla pisania efektywnego i poprawnego kodu.

Pytanie 33

Jaki opis dotyczy metody POST służącej do przesyłania formularza?

A. Ma dodatkowe ograniczenia związane z długością URL - maksymalnie 255 znaków
B. Dane są przesyłane przez URL, co czyni je widocznymi dla użytkownika
C. Może być dodana jako zakładka w przeglądarce internetowej
D. Jest zalecana, gdy przesyłane są dane wrażliwe, na przykład hasło, numer telefonu czy numer karty kredytowej
Metoda POST jest jedną z dwóch najpopularniejszych metod przesyłania danych w protokole HTTP, obok metody GET. W przeciwieństwie do GET, dane przesyłane za pomocą POST nie są widoczne w adresie URL, co czyni ją bardziej odpowiednią do przesyłania informacji poufnych, takich jak hasła, numery kart kredytowych czy dane osobowe. Dzięki temu, że POST umieszcza dane w ciele żądania HTTP, nie ma ograniczenia długości, które ma miejsce przy GET, co oznacza, że można przesyłać znacznie większe ilości danych. Przykładowe zastosowanie metody POST to formularze rejestracyjne i logowania na stronach internetowych, gdzie bezpieczeństwo użytkownika jest kluczowe. W praktyce, wiele aplikacji webowych korzysta z POST do przesyłania danych do serwera, a dane te mogą być następnie przetwarzane lub zapisywane w bazie danych. Warto również zwrócić uwagę na standardy bezpieczeństwa, takie jak użycie HTTPS, które szyfruje dane przesyłane przy użyciu POST, zwiększając ochronę przed podsłuchiwaniem.

Pytanie 34

Odszumienie zapisu dźwiękowego można wykonać w programie

A. FileZilla
B. Inkscape
C. Blender
D. Audacity
Poprawna odpowiedź to Audacity, bo jest to specjalistyczny, ale jednocześnie darmowy i otwartoźródłowy program do edycji oraz obróbki dźwięku. W praktyce oznacza to, że możesz w nim nagrywać, przycinać, normalizować, a właśnie także odszumiać nagrania audio. W menu Efekty znajdziesz funkcje typu „Usuwanie szumu” (Noise Reduction), które działają na podstawie próbki szumu – najpierw zaznaczasz fragment, gdzie słychać sam szum tła (np. wentylator, brumienie, szum ulicy), a potem program wykorzystuje ten wzorzec do odfiltrowania podobnych częstotliwości z całego nagrania. To jest standardowa, bardzo typowa procedura w amatorskiej i półprofesjonalnej postprodukcji audio. Moim zdaniem Audacity to taki „podstawowy kombajn” dźwiękowy, którego warto znać w technikum. Pozwala też stosować inne efekty: kompresję, korekcję barwy (EQ), filtrowanie dolno- i górnoprzepustowe, zmianę głośności (normalizacja, wzmacnianie), a nawet proste miksowanie kilku ścieżek. W kontekście dobrych praktyk ważne jest, żeby nie przesadzać z odszumianiem, bo zbyt agresywne ustawienia potrafią zepsuć brzmienie głosu, tworząc artefakty i metaliczny dźwięk. Profesjonaliści zwykle pracują tak, że najpierw nagrywają jak najczyściej (dobry mikrofon, cisza w pomieszczeniu), a dopiero potem delikatnie odszumiają w programie. Audacity dobrze wpisuje się w takie podejście, bo daje podgląd efektu (odsłuch) przed zatwierdzeniem zmian i możliwość cofania operacji. W realnych projektach szkolnych czy webowych, np. przy przygotowaniu podcastu, narracji do filmu instruktażowego albo materiału wideo na stronę WWW, właśnie w Audacity robi się podstawowe czyszczenie dźwięku, zanim materiał trafi do montażu wideo lub na serwer.

Pytanie 35

Aby właściwie przystosować stronę internetową dla osób niewidomych, należy przypisać wyświetlanym za pomocą znacznika img obrazom atrybut

A. alt
B. text
C. src
D. style
Atrybut 'src' w znaczniku <img> mówi skąd wziąć obrazek, ale nie ma nic wspólnego z tym, jak dostępna jest treść dla osób niewidomych. Może zdarzyć się, że wybierzesz tę odpowiedź przez mylne przekonanie, że obrazek sam w sobie wystarczy, co jest błędne. W ogóle nie ma takiego atrybutu jak 'text' w HTML, więc to też była pomyłka. A 'style' to w ogóle nic nie ma wspólnego z opisywaniem treści wizualnej. Często myli się estetykę z dostępnością; jak masz obrazki, to nie znaczy, że strona jest dostępna. Warto zrozumieć, że dostępność to szerszy temat i trzeba dostarczać informacje w różnych formach, żeby wszyscy mogli z nich skorzystać, szczególnie osoby z niepełnosprawnościami.

Pytanie 36

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki został zwolniony
B. klawiatury został zwolniony
C. klawiatury został naciśnięty
D. myszki został naciśnięty
Nieprawidłowe odpowiedzi koncentrują się na mylnej interpretacji zdarzeń związanych z myszką oraz klawiaturą. Na przykład, wyrażenie, że zdarzenie onKeydown wywołuje się, gdy klawisz myszki został zwolniony, jest całkowicie błędne, ponieważ zdarzenie onKeydown odnosi się wyłącznie do akcji związanych z klawiszami klawiatury. Takie pomieszanie pojęć może prowadzić do nieporozumień w projektowaniu interfejsów użytkownika, gdzie różne zdarzenia muszą być obsługiwane w odpowiednich kontekstach. Obserwując, że odpowiedzi sugerujące naciśnięcie klawisza myszki również są nieprawidłowe, widzimy, że mogą one wynikać z braku zrozumienia podstawowych różnic w interakcji z urządzeniami wskazującymi versus klawiaturą. W praktyce, błędne podejście do zdarzeń klawiaturowych może prowadzić do problemów z dostępnością aplikacji. Na przykład, użytkownicy, którzy korzystają z klawiatury do nawigacji, mogą nie być w stanie w pełni wykorzystać funkcji aplikacji, jeśli zdarzenia nie są odpowiednio obsługiwane. Dlatego kluczowe jest, aby programiści dokładnie rozumieli zasady i różnice między zdarzeniami, co jest zgodne z najlepszymi praktykami w zakresie dostępności i użyteczności aplikacji webowych.

Pytanie 37

Definicja stylu w CSS, którą zaprezentowano, dotyczy odsyłacza, który

a:visited {color: orange;}
A. posiada niepoprawny adres URL
B. był wcześniej odwiedzany
C. jeszcze nigdy nie został odwiedzony
D. ma wskaźnik myszy umieszczony nad sobą
Pseudoklasa :visited w CSS jest używana do stylizowania odsyłaczy, które zostały już odwiedzone przez użytkownika. Oznacza to, że przeglądarka zapisuje informacje o odwiedzonych stronach w historii przeglądania i na tej podstawie zmienia styl odsyłacza. W przykładzie a:visited {color: orange;} zmienia kolor tekstu odwiedzonych linków na pomarańczowy. Jest to powszechna praktyka stosowana w projektowaniu stron internetowych, która pomaga użytkownikom wizualnie odróżniać odwiedzone odsyłacze od nieodwiedzonych, co poprawia ich orientację na stronie. Dobre praktyki projektowania zakładają tworzenie intuicyjnych interfejsów użytkownika i użycie mechanizmu :visited do poprawy użyteczności. Ważne jest, aby unikać stosowania bardziej zaawansowanych stylów w :visited, takich jak zmiana rozmiaru czcionki czy dodawanie obrazów tła, ze względu na ograniczenia bezpieczeństwa przeglądarek, które chronią prywatność użytkowników. Korzystanie z :visited w sposób świadomy i zgodny ze standardami W3C zwiększa efektywność nawigacji i jest istotnym elementem przyjaznego projektowania stron WWW

Pytanie 38

Jaką wartość zwróci poniższa instrukcja w JavaScript?

document.write(5==='5');
A. 0
B. 1
C. true
D. false
W przypadku użycia operatora porównania w JavaScript ważne jest zrozumienie różnic między operatorem podwójnego równości == a potrójnego równości ===. Operator == porównuje wartości po niejawnej konwersji typów danych co prowadzi do błędów gdy nie są one jednoznaczne. Przykładowo liczba 5 porównana z ciągiem '5' używając == może dać wartość true ponieważ konwertuje typy do jednego wspólnego formatu przed porównaniem. Jednak takie podejście jest ryzykowne i niezalecane w profesjonalnym programowaniu gdyż nie zapewnia pełnej zgodności typów. Operator === przeciwnie sprawdza zarówno typ danych jak i wartość co eliminuje problemy z nieoczekiwanymi konwersjami. W przedstawionym przykładzie porównanie liczby 5 z ciągiem '5' za pomocą === zwraca false ponieważ typy danych nie są zgodne. Niepoprawne zrozumienie tego mechanizmu może prowadzić do błędnych wniosków takich jak wyświetlenie wartości true lub 1 co jest nieprawidłowe. Zrozumienie różnic w działaniu tych operatorów jest kluczowe dla każdego programisty JavaScript aby unikać typowych błędów związanych z niejawnością konwersji typów i zapewniać większą przewidywalność i niezawodność kodu produkcyjnego. Takie podejście jest zgodne z dobrymi praktykami w branży co przyczynia się do poprawy jakości kodu i jego długoterminowej konserwacji. Użycie === jest rekomendowane w celu zapewnienia pełnej zgodności typów i wartości co jest kluczowe w profesjonalnym środowisku programowania webowego. Przyzwyczajenie się do stosowania potrójnego równości zmniejsza ryzyko błędów logicznych i wspiera dobre praktyki programistyczne.

Pytanie 39

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

A. COUNT
B. AVG
C. SUM
D. MIN
Wybór funkcji MIN, SUM i COUNT w kontekście obliczania średniej wartości w danej kolumnie wskazuje na pewne nieporozumienia związane z działaniem funkcji agregujących w SQL. Funkcja MIN zwraca najmniejszą wartość w zbiorze danych, co może być pomocne w analizie, ale nie dostarcza żadnych informacji na temat średniej. Z kolei SUM dodaje wszystkie wartości w kolumnie, co również nie odpowiada na pytanie o średnią wartość. Można to zobrazować przykładem: mając wartości 10, 20 i 30, SUM zwróci 60, co jest całkowitą wartością, natomiast AVG w tym przypadku dałoby 20, co jest średnią. Funkcja COUNT z kolei zlicza wszystkie wiersze, które pasują do określonego kryterium, ale nie dostarcza informacji o wartościach w kolumnie. Typowym błędem jest mylenie tych funkcji i ich zastosowań, co prowadzi do nieefektywnej analizy danych. Zrozumienie różnic między tymi funkcjami jest kluczowe dla efektywnego wykorzystania SQL w analizie danych, a także do podejmowania świadomych decyzji opartych na danych.

Pytanie 40

Który z poniższych formatów NIE umożliwia zapis plików animowanych?

A. SWF
B. GIF
C. ACE
D. SVG
Wybór formatu SWF sugeruje, że użytkownik myli zastosowania różnych formatów plików. SWF, czyli Shockwave Flash, to format, który był powszechnie używany do tworzenia animacji i interaktywnych aplikacji internetowych. Jest on oparty na wektorowej grafice i obsługuje dźwięk oraz skrypty, co czyni go idealnym do tworzenia złożonych animacji. Z kolei SVG, czyli Scalable Vector Graphics, to format oparty na XML, który pozwala na tworzenie grafiki wektorowej i również obsługuje animacje przy użyciu CSS oraz JavaScript. Poprzez błędne przypisanie funkcji animacyjnych do ACE, użytkownik może nie dostrzegać, jak różne formaty są projektowane z myślą o określonych zastosowaniach. GIF to format, który od lat jest popularny w sieci do prezentacji prostych animacji, zwłaszcza w mediach społecznościowych. Użytkownicy często mylą różne zastosowania formatów i mogą nie być świadomi, że istnieją formaty, które są specjalnie zaprojektowane do obsługi animacji, podczas gdy inne służą zupełnie innym celom, jak kompresja danych. Właściwe zrozumienie tych różnic jest kluczowe dla efektywnego projektowania treści multimedialnych oraz optymalizacji ich działania w różnych środowiskach.