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: 2 maja 2026 19:14
  • Data zakończenia: 2 maja 2026 19:59

Egzamin zdany!

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

W formularzu HTML wykorzystano znacznik <input>. Wyświetlane pole będzie przeznaczone do wprowadzania maksymalnie

Ilustracja do pytania
A. 30 znaków, które nie są widoczne w polu tekstowym
B. 20 znaków, które nie są widoczne w polu tekstowym
C. 20 znaków, które są widoczne podczas wpisywania
D. 30 znaków, które są widoczne podczas wpisywania
Podany znacznik <input> definiuje element formularza HTML typu password. Gdy używasz typu password, wprowadzone znaki są maskowane, zazwyczaj używając symboli takich jak kropki lub gwiazdki, co oznacza, że nie są widoczne podczas wprowadzania. Atrybut maxlength określa maksymalną liczbę znaków, które użytkownik może wprowadzić. W tym przypadku wartość maxlength równa 20 oznacza, że użytkownik może wprowadzić do 20 znaków, nawet jeśli więcej znaków można by zobaczyć w polu dzięki atrybutowi size. Rozdzielając te dwa aspekty, atrybut size określa jedynie widoczną szerokość pola, co w przypadku tego inputu wynosi 30, ale nie wpływa na ilość możliwych do wpisania znaków. Zastosowanie pola password jest powszechne w formularzach logowania, gdzie bezpieczeństwo wprowadzanych danych jest priorytetem. Użycie maxlength pozwala kontrolować długość hasła, co może być częścią strategii zabezpieczeń, eliminując zbyt długie lub zbyt krótkie hasła, które są łatwiejsze do złamania. Takie podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych.

Pytanie 2

Została zaprezentowana tabela o nazwie konta. Aby obliczyć liczbę rejestracji w poszczególnych latach oraz wyświetlić te wartości razem z rokiem rejestracji, należy wykonać zapytanie

A. ```SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
B. ```SELECT COUNT(rejestracja) FROM konta JOIN rejestracja ON id;```
C. ```SELECT COUNT(rejestracja) FROM konta GROUP BY rejestracja;```
D. ```SELECT rejestracja, COUNT(rejestracja) FROM konta;```
Aby policzyć, ile rejestracji dokonano w poszczególnych latach, musimy użyć funkcji agregującej SQL, która umożliwia grupowanie wyników według określonych kryteriów. Odpowiedź 4: 'SELECT rejestracja, COUNT(rejestracja) FROM konta GROUP BY rejestracja;' wykorzystuje funkcję COUNT(), która zlicza liczbę wystąpień każdej wartości w kolumnie 'rejestracja'. Klauzula GROUP BY jest niezbędna, aby wynikiem zapytania było grupowanie danych według lat rejestracji. Jest to zgodne z dobrymi praktykami, które zalecają użycie GROUP BY z funkcjami agregującymi do zliczania i analizy danych w bazach danych. Praktyka ta pozwala na efektywną agregację i prezentację danych, co jest przydatne w raportowaniu i analizie. Użycie GROUP BY zapewnia również zoptymalizowane operacje na dużych zbiorach danych, co jest kluczowe w systemach zarządzania bazami danych. Poprzez takie podejście, można generować raporty i wglądy, które wspierają decyzje biznesowe.

Pytanie 3

Wskaż fragment kodu HTML5, który zostanie uznany przez walidator za niepoprawny?

A. <p class="stl">tekst</p>
B. <p class="stl" id="a">tekst</p>
C. <p class="stl" style="color: #F00">tekst</p>
D. <p class="stl"><style>.a{color:#F00}</style>tekst</p>
Odpowiedź <p class="stl"><style>.a{color:#F00}</style>tekst</p> jest błędna, ponieważ zawiera element <style>, który jest nieprawidłowo umieszczony wewnątrz znacznika <p>. W HTML5, elementy <style> powinny występować w sekcji <head> dokumentu lub w kontekście, gdzie są dozwolone, a nie wewnątrz elementów blokowych takich jak <p>. Walidatory HTML5, zgodne z standardami W3C, wskazują na to jako błąd, ponieważ takie umiejscowienie stylu może prowadzić do nieprzewidzianych efektów wizualnych oraz problemów z rozumieniem struktury dokumentu. Zamiast tego, właściwe byłoby umieszczenie stylu w sekcji <head> lub zastosowanie atrybutu style bezpośrednio w elemencie, co jest zgodne z dobrymi praktykami projektowania stron internetowych. Umożliwia to zachowanie semantyki HTML oraz lepszą organizację kodu.

Pytanie 4

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
B. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
D. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
Wielu uczniów ma kłopoty z poprawnym rozumieniem operatorów logicznych i jak je łączyć. Na przykład, odpowiedź umowa == 'praca' || (pensja >= 4000 || pensja <= 4500) jest niepoprawna, bo mówi, że wystarczy spełnić chociaż jeden z warunków, co nie zgadza się z tym, czego chcieliśmy. W tej sytuacji, jeśli pracownik nie ma umowy o pracę, a jego pensja wynosi 5000 zł, to raport i tak może się wygenerować, co jest sprzeczne z zamysłem pytania. Inny błąd to użycie '||' w odpowiedzi umowa == 'praca' && (pensja >= 4000 || pensja <= 4500) – to znowu prowadzi do nieprawidłowego wniosku. Gdy pensja wynosi 3500 zł, raport ma szansę na generację, mimo że nie spełnia wymogu dotyczącego płac. W odpowiedzi umowa == 'praca' || (pensja >= 4000 && pensja <= 4500) też widać błędne zrozumienie operatorów, co prowadzi do sytuacji, w której raport może być generowany dla pracowników z pensjami poniżej 4000 zł, tylko dlatego, że mają umowę o pracę. Kluczowy błąd to brak dostrzegania, że w takich sytuacjach wszystkie warunki muszą być spełnione, co oznacza, że trzeba używać operatora '&&'. Zrozumienie operatorów logicznych to podstawa w programowaniu i bardzo ważny element przy tworzeniu skutecznych skryptów.

Pytanie 5

W utworzonej tabeli pole należące do typu BLOB służy do składowania

A. danych binarnych o dużych rozmiarach, takich jak grafika
B. łańcuchów znaków o nieokreślonej długości
C. liczb całkowitych, które przekraczają zakres typu INT
D. danych logicznych takich jak true
Wydaje się, że odpowiedzi dotyczące danych logicznych, łańcuchów znaków czy liczb całkowitych nie są zgodne z przeznaczeniem pola BLOB. Dane logiczne, takie jak 'true' lub 'false', są zazwyczaj przechowywane w typach danych, takich jak BOOLEAN, które są zoptymalizowane do zarządzania wartościami binarnymi, ale nie są odpowiednie dla dużych obiektów binarnych. Z kolei łańcuchy znaków nieokreślonej długości są lepiej przechowywane w typach VARCHAR lub TEXT, które są zoptymalizowane do zarządzania tekstem, a nie danymi binarnymi. Liczby całkowite, które przekraczają zakres typu INT, powinny być przechowywane jako BIGINT, co jest bardziej odpowiednie do zarządzania dużymi liczbami całkowitymi, a nie BLOB. Właściwe zrozumienie typów danych i ich zastosowań jest kluczowe w projektowaniu efektywnych baz danych. Stosowanie niewłaściwych typów danych może prowadzić do nieefektywności, zwiększonego zużycia pamięci, a także problemów z wydajnością w aplikacjach korzystających z tych baz danych. Dlatego ważne jest, aby każdorazowo dobierać odpowiedni typ danych zgodnie z jego specyfiką i przeznaczeniem.

Pytanie 6

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. tablicy z 50 elementami o składowych typu łańcuchowego
B. klasy z 50 elementami typu tablicowego
C. tablicy z 50 elementami o składowych strukturalnych
D. struktury z 50 elementami o składowych typu tablicowego
Wybór tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 7

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_num_fields($zapytanie)
B. mysqli_free_result($zapytanie)
C. mysqli_fetch_array($zapytanie)
D. mysqli_query($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 8

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. liczbie 4
B. liczbie 1
C. napisowi 'CZWARTEK'
D. napisowi "CZWARTEK"
W języku C++ typ wyliczeniowy (enum) pozwala na definiowanie grupy nazwanych stałych całkowitych. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; inicjalizacja PONIEDZIAŁEK na 1 powoduje, że kolejne wyliczane wartości są automatycznie zwiększane o 1. Oznacza to, że wartość dla WTOREK wynosi 2, ŚRODA to 3, a CZWARTEK automatycznie staje się równy 4. Takie podejście jest powszechnie stosowane w programowaniu do reprezentowania dyskretnych zestawów wartości, co ułatwia interpretację kodu i minimalizuje ryzyko błędów. W praktyce typy wyliczeniowe są używane do przechowywania dni tygodnia, stanów maszyn oraz innych uporządkowanych kolekcji. Są zgodne ze standardem C++ i odgrywają istotną rolę w tworzeniu czytelnego i efektywnego kodu. Ich zaletą jest możliwość łatwej manipulacji wartościami oraz zwiększenie czytelności kodu dzięki użyciu przyjaznych nazw zamiast surowych wartości liczbowych.

Pytanie 9

Przedstawiony fragment kodu ilustruje działanie

Ilustracja do pytania
A. prezentacji danych
B. wykorzystania zdefiniowanej procedury lub funkcji
C. podjęcia decyzji
D. pozyskiwania danych
Zastosowanie gotowej procedury lub funkcji nie jest reprezentowane przez blok w kształcie rombu. Takie czynności zazwyczaj ilustruje się prostokątem z zaokrąglonymi narożnikami lub innym charakterystycznym symbolem, który wskazuje na działanie sekwencyjne. Wczytanie danych z kolei często reprezentowane jest przez blok w kształcie równoległoboku, podkreślający operacje wejścia-wyjścia, czyli interakcję z zewnętrznym źródłem danych. Wyświetlanie danych również jest związane z operacjami wejścia-wyjścia, co sugeruje podobny symbol jak w przypadku wczytywania danych. Podstawowy błąd myślowy w tych odpowiedziach polega na myleniu struktury kontrolnej z funkcjami operacyjnymi. Struktury kontrolne, jak decyzje, są kluczowe dla logiki programu, podczas gdy operacje wejścia-wyjścia są bardziej związane z przetwarzaniem danych. Zrozumienie tych różnic jest fundamentalne dla poprawnego projektowania algorytmów i diagramów przepływu, co znacząco wpływa na efektywność i czytelność projektowanych systemów.

Pytanie 10

Efektem wykonania przedstawionego kodu PHP jest wyświetlenie komunikatu

$a = $c = true;
$b = $d = false;
if(($a && $b) || ($c && $d))
    echo 'warunek1';
elseif(($a && $b) || ($c || $d))
    echo 'warunek2';
elseif(($c && $d) || (!$a))
    echo 'warunek3';
else
    echo 'warunek4';
A. warunek3
B. warunek1
C. warunek2
D. warunek4
W tym zadaniu kluczowe jest zrozumienie, jak PHP ocenia wyrażenia logiczne z użyciem operatorów `&&` i `||` oraz jak działa sekwencja `if / elseif / else`. Sporo osób gubi się tutaj przez pobieżne liczenie w głowie albo przez mylenie operatora AND z OR, albo przez nieuwzględnianie tego, że kolejne gałęzie `elseif` są sprawdzane dopiero wtedy, gdy poprzednie warunki były fałszywe. Najpierw warto zauważyć wartości zmiennych: `$a = $c = true;` oraz `$b = $d = false;`. To oznacza po prostu: `a = true`, `c = true`, `b = false`, `d = false`. W pierwszym warunku mamy `($a && $b) || ($c && $d)`. Zarówno `true && false`, jak i `true && false` dają `false`, więc całość to `false || false`, czyli `false`. Dlatego komunikat „warunek1” nie ma prawa się pojawić – ten blok w ogóle nie jest wykonywany. Częsty błąd polega na tym, że ktoś widzi dwa `true` w warunku i z automatu zakłada, że „coś tam pewnie wyjdzie na true”. Niestety tak to nie działa – przy operatorze `&&` wystarczy jeden `false`, żeby całe wyrażenie było fałszywe. Z kolei przy `||` wystarczy jedno `true`, by wynik był prawdziwy. I to dokładnie widać w drugim warunku: `($a && $b) || ($c || $d)`. Tu pierwsza część znów jest fałszywa, ale druga to `true || false`, więc daje `true`. Cały warunek jest więc prawdziwy i dlatego wykonuje się tylko ten blok – „warunek2”. Jeżeli ktoś zaznaczył „warunek3” lub „warunek4”, to zazwyczaj wynika to z niezrozumienia, że po pierwszym spełnionym `if`/`elseif` dalsze nie są już w ogóle analizowane. Trzeci warunek logicznie też warto policzyć: `($c && $d) || (!$a)` to `false || false`, bo `$c && $d` to `true && false = false`, a `!$a` to `!true = false`. On byłby fałszywy nawet gdyby do niego dotrzeć, więc „warunek3” i tak by się nie wydrukował. „warunek4” z kolei to blok domyślny, wykonywany tylko wtedy, gdy wszystkie wcześniejsze warunki są fałszywe – tutaj tak nie jest, bo drugi warunek jest prawdziwy. Z mojego doświadczenia dobrym nawykiem jest zawsze rozpisywanie takich wyrażeń krok po kroku, szczególnie na początku nauki: najpierw obliczyć `&&` wewnątrz nawiasów, potem `||`, i dopiero wtedy patrzeć, która gałąź `if/elseif/else` zostanie wykonana. W realnym kodzie przy skomplikowanych warunkach lepiej je upraszczać albo rozbijać na kilka czytelnych zmiennych pomocniczych, zamiast liczyć wszystko „w głowie”, bo to prosta droga do subtelnych błędów logicznych.

Pytanie 11

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 26
B. 5
C. 25
D. 0
Pętla for w PHP jest jednym z fundamentalnych narzędzi kontrolnych używanych do wykonywania powtarzających się zadań. W przedstawionym przykładzie pętli mamy następującą składnię: for($i = 0; $i < 25; $i += 5). Pętla rozpoczyna się od wartości początkowej zmiennej $i równej 0, a warunek kontynuacji pętli określa, że $i musi być mniejsze niż 25. W każdym przebiegu pętli zmienna $i zwiększa się o 5. Dzięki tej konstrukcji pętla wykona się dla wartości $i wynoszących kolejno 0, 5, 10, 15 i 20, co oznacza, że pętla zostanie wykonana dokładnie 5 razy. Takie konstrukcje są powszechnie stosowane w programowaniu do iteracyjnego przetwarzania danych, takich jak iterowanie przez tablice lub generowanie ciągów. Warto zwrócić uwagę na dobre praktyki programistyczne, które nakazują klarowność i czytelność kodu, dzięki czemu inni programiści mogą go łatwo zrozumieć i utrzymywać. Projektowanie pętli z precyzyjnie zdefiniowanymi warunkami początkowymi i końcowymi jest kluczowe dla unikania błędów logicznych, takich jak nieskończone pętle lub błędne iteracje. Użycie odpowiednich inkrementacji, jak w tym przypadku $i += 5, pozwala na kontrolowanie tempa i liczby iteracji zgodnie z zamierzonymi celami algorytmu.

Pytanie 12

Aby zmienić strukturę tabeli w bazie danych MySQL, należy użyć komendy

A. ALTER TABLE
B. UPDATE
C. INSERT INTO
D. GRANT
Odpowiedź 'ALTER TABLE' jest poprawna, gdyż to polecenie w MySQL służy do modyfikacji struktury istniejącej tabeli. Dzięki niemu możemy dodawać nowe kolumny, zmieniać typy danych kolumn, usuwać kolumny, a także zmieniać właściwości tabeli, takie jak klucze główne czy unikalne. Przykład zastosowania polecenia ALTER TABLE to dodanie kolumny do tabeli: 'ALTER TABLE pracownicy ADD COLUMN wiek INT;' co skutkuje dodaniem kolumny 'wiek' o typie INT do tabeli 'pracownicy'. Zgodnie z najlepszymi praktykami, przed wykonaniem takich operacji warto wykonać kopię zapasową bazy danych, aby uniknąć utraty danych w przypadku nieprawidłowego wykonania polecenia. Używanie ALTER TABLE jest kluczowe podczas rozwoju aplikacji, gdyż często zachodzi potrzeba dostosowania struktury bazy danych do zmieniających się wymagań biznesowych.

Pytanie 13

Poziom izolacji transakcji Repeatable Read (tryb powtarzalnego odczytu) używany przez MS SQL jest związany z problemem

A. brudnych odczytów
B. utraty aktualizacji
C. odczytów widm
D. niepowtarzalnych odczytów
Wszystkie pozostałe odpowiedzi dotyczą problemów, które nie są bezpośrednio związane z poziomem izolacji Repeatable Read. Utrata aktualizacji występuje, gdy dwie transakcje odczytują ten sam wiersz i obie próbują go zaktualizować. Problem ten jest bardziej związany z poziomem izolacji Read Committed, gdzie jedno z odczytów może nadpisać zmiany dokonane przez drugie, co prowadzi do utraty ważnych informacji. Brudne odczyty z kolei występują, gdy transakcja odczytuje dane zmienione przez inną transakcję, która jeszcze nie została zatwierdzona. Ten problem jest charakterystyczny dla najniższego poziomu izolacji, czyli Read Uncommitted, gdzie brak jakiejkolwiek kontroli nad odczytem danych skutkuje niebezpieczeństwem uzyskania nieaktualnych lub niepoprawnych informacji. Niepowtarzalne odczyty natomiast to sytuacje, w których iż dane mogą zmieniać się pomiędzy dwoma odczytami w tej samej transakcji. Problem ten występuje w poziomie Read Committed, gdzie zmiany dokonane przez inne transakcje mogą być widoczne dla aktualnej transakcji, co prowadzi do niespójności w wynikach. Tak więc, choć wszystkie wymienione zjawiska są ważnymi problemami w zarządzaniu transakcjami, tylko odczyty widm są specyficznie związane z poziomem izolacji Repeatable Read.

Pytanie 14

Jakie zagadnienie powinno być uwzględnione w dokumentacji użytkownika aplikacji?

A. Charakterystyka użytej technologii oraz bibliotek
B. Opis zastosowanych algorytmów w kodzie
C. Szczegóły dotyczące kodu źródłowego
D. Wyjaśnienie działania funkcji systemu
Opis obsługi funkcji systemu jest kluczowym elementem dokumentacji użytkownika, ponieważ umożliwia użytkownikom zrozumienie, jak korzystać z aplikacji i jej funkcji w praktyce. Dobrze przygotowany opis powinien być zrozumiały, przystępny i dostosowany do poziomu wiedzy docelowych użytkowników. Przykładowo, w aplikacji do zarządzania projektami, dokumentacja użytkownika powinna zawierać instrukcje dotyczące dodawania zadań, przydzielania ich członkom zespołu oraz śledzenia postępów. Takie podejście zwiększa efektywność użytkowania, co jest zgodne z dobrymi praktykami w tworzeniu dokumentacji, które podkreślają znaczenie dostarczania jasnych informacji o funkcjonalności aplikacji. Ponadto, opis funkcji powinien być aktualizowany wraz z rozwojem systemu, aby zapewnić, że użytkownicy mają dostęp do najnowszych informacji. Warto również uwzględnić przykłady zastosowania funkcji, co ułatwi użytkownikom ich zrozumienie i wdrożenie w codziennej pracy.

Pytanie 15

Aby strona internetowa była dostosowana do różnych urządzeń, należy między innymi określać

A. tylko znane fonty, takie jak Arial
B. wymiary obrazów jedynie w pikselach
C. układ strony wyłącznie przy pomocy tabel
D. wymiary obrazów w procentach
Definiowanie rozmiarów obrazów w procentach jest kluczowym elementem tworzenia responsywnych stron internetowych. Dzięki temu obrazy mogą dostosowywać się do różnych rozmiarów ekranów, co jest niezbędne w erze urządzeń mobilnych. Używając procentów, możemy zapewnić, że obrazy zachowają swoje proporcje w ramach kontenera, co eliminuje problem z rozciąganiem lub zniekształceniem grafiki. Na przykład, ustawiając szerokość obrazu na 50%, obraz zajmie połowę szerokości kontenera, niezależnie od tego, czy jest to telefon, tablet, czy komputer stacjonarny. Taki sposób definiowania rozmiarów jest zgodny z zasadami projektowania responsywnego, w tym z technikami, które określają elastyczne układy oparte na jednostkach względnych, takich jak em, rem, czy vw. W praktyce przyjęcie takiego podejścia nie tylko poprawia doświadczenie użytkownika, ale również zwiększa dostępność strony, co jest istotnym aspektem w kontekście standardów WCAG (Web Content Accessibility Guidelines).

Pytanie 16

Baza danych szkoły podstawowej dla dzieci w wieku 6 lat obejmuje tabelę szkoła, która zawiera kolumny: imie, nazwisko, klasa. Wszyscy uczniowie w klasach od 1 do 5 przeszli do wyższej klasy. W celu zwiększenia wartości w kolumnie klasa o 1, należy wykonać następujące polecenie

A. SELECT nazwisko, imie FROM klasa = klasa + 1 WHERE klasa>l OR klasa < 5
B. UPDATE nazwisko, imie SET klasa = klasa + 1 WHERE klasa>l OR klasa < 5
C. SELECT szkoła FROM klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
D. UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
Poprawne polecenie to 'UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5;'. To zapytanie aktualizuje wartość w kolumnie 'klasa' dla wszystkich uczniów w tabeli 'szkoła', których aktualny poziom klasy mieści się w zakresie od 1 do 5. Kluczowym elementem jest użycie polecenia UPDATE, które jest standardowym sposobem na modyfikowanie danych w bazach danych SQL. Oznaczenie 'SET klasa = klasa + 1' wskazuje, że chcemy zwiększyć obecną wartość w kolumnie 'klasa' o 1. Warto zwrócić uwagę na warunek WHERE, który filtruje rekordy tak, aby aktualizacja dotyczyła tylko tych uczniów, którzy są w klasach 1-5. Tego rodzaju operacje są powszechnie stosowane w zarządzaniu danymi w aplikacjach edukacyjnych i są zgodne z praktykami bezpieczeństwa i integralności danych, zapewniając, że tylko odpowiednie rekordy są aktualizowane. Przykładem praktycznego zastosowania może być coroczna aktualizacja klas uczniów po zakończeniu roku szkolnego.

Pytanie 17

Barwy kolorów reprezentowane na stożku można uzyskać w modelu

A. HSV
B. CIEXYZ
C. RGB
D. CMYK
W tym pytaniu haczyk polega na tym, że różne modele barw mają zupełnie inną logikę i geometrię przedstawiania kolorów. Pomylenie ich jest bardzo częste, bo w praktyce ciągle przewijają się te same skróty: RGB, CMYK, CIEXYZ, HSV. Warto je sobie dobrze poukładać. Model RGB opisuje kolor jako kombinację trzech składowych: czerwonej, zielonej i niebieskiej. Geometrycznie przedstawia się go jako sześcian: każdy wymiar to jedna składowa, od 0 do 255 (lub 0–1 w zapisie znormalizowanym). To jest model addytywny, typowy dla monitorów, telewizorów, ekranów smartfonów. Można go wizualizować na różne sposoby, ale klasycznie nie jako stożek barw, tylko właśnie jako kostkę przestrzeni kolorów. CMYK to z kolei model subtraktywny, wykorzystywany głównie w druku – Cyan, Magenta, Yellow, Key (Black). Tutaj myśli się raczej o nałożeniu farb drukarskich niż o intuicyjnej percepcji koloru. Geometria prezentacji CMYK też nie jest stożkiem, tylko wielowymiarową bryłą, a sam model słabo nadaje się do „ludzkiego” doboru kolorów na ekranie, dlatego nie stosuje się go jako podstawy kolor-pickerów do WWW czy interfejsów. CIEXYZ jest jeszcze inną historią: to matematyczny, ustandaryzowany przez CIE model przestrzeni barw, który ma dobrze odwzorowywać ludzkie postrzeganie koloru i służy jako punkt odniesienia do kalibracji, profilowania kolorów, ICC itp. On jest fundamentem kolorometrii, ale w codziennej pracy grafika czy web developera rzadko ktoś bezpośrednio „maluje” w CIEXYZ. Typowy błąd polega na tym, że skoro każdy z tych modeli opisuje kolory, to wydaje się, że można je dowolnie przedstawić w formie stożka. Jednak stożek barw to specyficzna wizualizacja modelu o parametrach: odcień, nasycenie i jasność (lub podobne), czyli właśnie HSV/HSL. Dopiero taki podział pozwala wygodnie ułożyć barwy wokół osi (Hue) i wzdłuż wysokości (Value). Dlatego tylko HSV z podanych odpowiedzi pasuje do opisu barw reprezentowanych na stożku.

Pytanie 18

Zgodnie z zasadami walidacji HTML5, prawidłowy zapis tagu hr to

A. </ hr>
B. </ hr />
C. <hr>
D. </hr?>
Zarówno </ hr>, </hr?>, jak i </ hr /> są przykładami niepoprawnych składni w kontekście HTML5. Element <hr> jest samodzielny i nie wymaga zamknięcia, co oznacza, że dodawanie znaku zamykającego jest zbędne i w rzeczywistości stanowi błąd. Użycie </ hr> sugeruje, że <hr> byłoby elementem, który wymaga zamknięcia, co jest sprzeczne z jego definicją w HTML5. Z kolei </hr?> to przykład błędnej składni, ponieważ zawiera niepoprawny znak zapytania, który nie ma uzasadnienia w HTML i może prowadzić do nieprzewidywalnych efektów w renderowaniu strony przez przeglądarki. Ostatecznie, </ hr /> również jest nieprawidłowe, ponieważ dodanie ukośnika przed zamknięciem nie jest potrzebne w przypadku elementów samodzielnych. Takie błędne wykorzystanie składni może prowadzić do niepoprawnego wyświetlania strony i problemów z jej interpretacją przez programy przetwarzające HTML. Dlatego ważne jest, aby dobrze znać zasady walidacji HTML i stosować się do nich, aby zapewnić poprawne działanie i zgodność ze standardami sieciowymi.

Pytanie 19

Zaprezentowano poniżej obsługę

if (!isset($_COOKIE[$nazwa]))
  echo "nie ustawiono!";
else
  echo "ustawiono: " . $_COOKIE[$nazwa];
A. sesji
B. bazy danych
C. ciasteczek
D. zmiennych tekstowych
Obsługa ciasteczek jest kluczowym elementem w zarządzaniu stanem w aplikacjach webowych. Ciasteczka, czyli małe pliki tekstowe przechowywane w przeglądarce użytkownika, pozwalają na śledzenie aktywności użytkownika między stronami i sesjami. W kodzie powyżej widzimy użycie globalnej tablicy PHP $_COOKIE do sprawdzania, czy ciasteczko o określonej nazwie zostało ustawione. Funkcja isset() sprawdza, czy zmienna jest zdefiniowana i nie jest null. Jeśli ciasteczko istnieje, jego wartość jest wyświetlana. Ciasteczka są powszechnie używane do zarządzania sesjami, personalizacji treści czy śledzenia zachowań użytkowników. W praktyce, zabezpieczenia są ważnym aspektem zarządzania ciasteczkami. Powinny być szyfrowane i oznaczone jako HttpOnly oraz Secure, aby zminimalizować ryzyko kradzieży informacji przez ataki XSS. Programiści powinni także stosować polityki prywatności zgodnie z regulacjami RODO, informując użytkowników o użyciu ciasteczek. Zrozumienie tych mechanizmów jest fundamentalne dla budowy bezpiecznych i funkcjonalnych aplikacji webowych.

Pytanie 20

Jaki typ danych w MySQL należy zastosować, aby w jednym polu zapisać zarówno datę, jak i czas?

A. YEAR
B. BOOLEAN
C. TIMESTAMP
D. DATE
Typ danych TIMESTAMP w MySQL jest przeznaczony do przechowywania zarówno daty, jak i czasu w jednym polu. Jest szczególnie przydatny w sytuacjach, gdy potrzebne jest śledzenie zdarzeń w czasie, takich jak rejestracja daty i godziny utworzenia lub modyfikacji rekordów w bazie danych. TIMESTAMP przechowuje dane w formacie 'YYYY-MM-DD HH:MM:SS', co pozwala na precyzyjne określenie momentu w czasie. Wartością dodaną tego typu danych jest automatyczne aktualizowanie znacznika czasu przy każdej zmianie rekordu (jeśli ustawimy odpowiednie opcje), co jest zgodne z najlepszymi praktykami w zakresie audytu danych. Przykładem zastosowania może być rejestracja logów aktywności użytkowników w aplikacji internetowej lub monitorowanie transakcji w systemach finansowych, gdzie dokładny czas zdarzenia jest kluczowy. Dodatkowo, TIMESTAMP obsługuje różnice stref czasowych, co czyni go idealnym wyborem w aplikacjach działających w różnych lokalizacjach geograficznych.

Pytanie 21

Pozycjonowanie poza stroną (off-page SEO) polega na

A. sprawdzeniu i testowaniu szybkości ładowania strony.
B. pozyskiwaniu linków zewnętrznych prowadzących do strony.
C. zoptymalizowaniu elementów grafiki i multimediów.
D. walidacji kodu HTML, CSS oraz linków.
W SEO bardzo łatwo pomylić działania on-page z off-page, bo wszystko kręci się wokół tej samej strony, tylko z różnych perspektyw. Pozycjonowanie poza stroną (off-page SEO) odnosi się do sygnałów, które znajdują się poza samą witryną – przede wszystkim do linków zewnętrznych, wzmianek o marce i ogólnego autorytetu domeny w oczach wyszukiwarki. Natomiast czynności takie jak walidacja HTML, CSS, poprawność linków wewnętrznych, optymalizacja grafik czy testowanie szybkości ładowania dotyczą stricte tego, co jest „w środku” serwisu, czyli należą do on-page SEO lub szerzej do optymalizacji technicznej. Walidacja kodu HTML i CSS to przykład dbania o standardy W3C i poprawną strukturę dokumentu. To ważne z punktu widzenia dostępności, stabilności wyświetlania w przeglądarkach i czasem także dla robotów indeksujących, ale to nadal praca wykonywana na kodzie strony, nie poza nią. Podobnie jest z optymalizacją grafiki i multimediów: kompresja obrazów, dobór formatów WebP/AVIF, uzupełnianie atrybutów alt, lazy loading – wszystko to poprawia wydajność i użyteczność strony, ale wciąż dzieje się w obrębie witryny, więc klasyfikujemy to jako on-page lub performance optimization. Testowanie szybkości ładowania, np. za pomocą PageSpeed Insights, Lighthouse czy GTmetrix, również dotyczy parametrów technicznych serwera, zasobów statycznych, JavaScriptu i CSS. To są fundamenty technicznego SEO, bardzo istotne dla Core Web Vitals, ale nie mają charakteru „zewnętrznego sygnału” w rozumieniu off-page. Typowy błąd myślowy polega na tym, że skoro coś wpływa na pozycję w Google, to od razu bywa wrzucane do jednego worka z napisem „pozycjonowanie”. W praktyce branżowej rozróżnia się jednak wyraźnie: on-page/techniczne SEO (wszystko, co konfigurujesz i poprawiasz wewnątrz strony i na serwerze) oraz off-page SEO (to, jak internet reaguje na Twoją stronę – linki, wzmianki, reputacja). Dlatego w kontekście pytania jedyną właściwą odpowiedzią jest pozyskiwanie linków zewnętrznych, bo to właśnie one są klasycznym, podręcznikowym przykładem działań off-page.

Pytanie 22

Polecenie w SQL GRANT ALL PRIVILEGES ON klienci TO pracownik ma na celu

A. cofnąć wszystkie uprawnienia pracownika do tabeli klienci
B. przenieść uprawnienia z grupy klienci na użytkownika pracownik
C. nadać wszystkie uprawnienia do tabeli klienci użytkownikowi pracownik
D. przyznać grupie klienci uprawnienia do tabeli pracownik
Polecenie GRANT ALL PRIVILEGES ON klienci TO pracownik w języku SQL jest używane do nadawania wszystkich dostępnych uprawnień na określonej tabeli, w tym przypadku na tabeli klienci, użytkownikowi o nazwie pracownik. Dzięki temu, otrzymuje on pełną kontrolę nad danymi w tej tabeli, co obejmuje możliwość dodawania, modyfikowania oraz usuwania rekordów, a także zarządzania strukturą tabeli. Jako przykład, jeśli pracownik potrzebuje wprowadzać nowe informacje o klientach, usuwanie zbędnych danych lub edytowanie istniejących rekordów, nadanie mu wszystkich uprawnień jest kluczowe. Standardy SQL definiują sposób zarządzania uprawnieniami i pozwalają administratorom na precyzyjne kontrolowanie dostępu do danych. W praktyce, aby skorzystać z tego polecenia, użytkownik musi mieć odpowiednie uprawnienia do nadawania uprawnień innym użytkownikom. Warto również pamiętać o zasadzie najmniejszych uprawnień, która sugeruje, że użytkownik powinien otrzymać tylko te uprawnienia, które są niezbędne do wykonania jego zadań, co zwiększa bezpieczeństwo bazy danych.

Pytanie 23

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

A. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
B. &lt;img src = mojPiesek.jpg alt = pies&gt;
C. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
D. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
Niepoprawne odpowiedzi wskazują na typowe błędy w składni HTML oraz niepełne zrozumienie zasad walidacji dokumentów HTML5. W pierwszym przypadku &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt; występuje błąd w cudzysłowie, który nie jest poprawnie zamknięty, co prowadzi do problemów z interpretacją przez przeglądarki internetowe. Przeglądarki mogą zignorować taki znacznik, co powoduje, że obraz nie zostanie wyświetlony, a tekst alternatywny nie będzie dostępny. Kolejna odpowiedź &lt;img src = mojPiesek.jpg alt = pies&gt; również jest niepoprawna, ponieważ brakuje w niej cudzysłowów wokół wartości atrybutów, co jest wymogiem w HTML5. Atrybuty w HTML powinny być zawsze otoczone cudzysłowami, aby zapewnić prawidłowe przetwarzanie przez parsery HTML. Ostatnia odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; &gt; również jest niekompletna, ponieważ nie zawiera atrybutu alt. Atrybut alt jest kluczowy dla dostępności, ponieważ służy jako opis obrazu, co jest niezbędne dla użytkowników korzystających z technologii asystujących, takich jak czytniki ekranu. Pomijanie tego atrybutu może ograniczać dostęp do informacji dla osób z niepełnosprawnościami. W praktyce, każdy znacznik obrazka powinien być starannie skonstruowany z uwzględnieniem zasad dostępności i walidacji, aby maksymalizować użyteczność i zgodność ze standardami sieciowymi.

Pytanie 24

Jakie znaki będą przechowywane w zmiennej $napis po uruchomieniu poniższego kodu PHP?

$napis = "Programowanie w PHP";
$napis = substr($napis, 3, 5);
A. gr
B. ogram
C. og
D. gramo
Wybrana odpowiedź jest niepoprawna, ponieważ nie uwzględnia prawidłowego działania funkcji substr w PHP. Ta funkcja wyodrębnia określoną liczbę znaków z ciągu, zaczynając od określonego indeksu. Tutaj funkcja substr wyodrębniła 5 znaków, zaczynając od czwartego znaku (indeks 3). Stąd poprawna odpowiedź to 'gramo', nie 'og', 'ogram' czy 'gr'. W przypadku odpowiedzi 'og', wydaje się, że nastąpiło błędne zrozumienie jak działa indeksowanie w PHP. Indeksy zaczynają się od zera, nie od jednego. Dlatego też czwarty znak ma indeks 3, a nie 4. W przypadku odpowiedzi 'ogram', prawdopodobnie zrozumiano, że substr wyodrębni całe słowo od indeksu 3, a nie tylko 5 znaków. Natomiast odpowiedź 'gr' sugeruje, że nie zrozumiano liczby znaków do wyodrębnienia. To jest typowy błąd, gdzie zakłada się, że funkcja substr wyodrębni tylko dwa następne znaki, a nie określoną liczbę znaków.

Pytanie 25

Wykonanie zapytania SQL spowoduje skasowanie

DELETE FROM mieszkania WHERE status = 1;
A. elementów o nazwie status z tabeli mieszkania
B. tabeli mieszkania znajdującej się w bazie danych
C. rekordów, w których wartość pola status jest równa 1, z tabeli mieszkania
D. tabel, w których wartość pola status wynosi 1, z bazy danych mieszkania
Odpowiedź wskazująca na usunięcie rekordów, w których pole status jest równe 1, z tabeli mieszkania jest poprawna ponieważ w zapytaniu SQL użyto składni DELETE, która jest odpowiedzialna za usuwanie danych z określonej tabeli. W kontekście tego zapytania, po słowie 'FROM' znajduje się nazwa tabeli, czyli 'mieszkania', a warunek 'WHERE status = 1' precyzuje, które rekordy mają zostać usunięte. Przykładowo, jeśli w tabeli mieszkania znajdują się mieszkania oznaczone jako dostępne (status = 1), to po wykonaniu tego zapytania wszystkie takie mieszkania zostaną trwale usunięte z bazy danych. Ważne jest, aby przed wykonaniem zapytania DELETE rozważyć konieczność wykonania kopii zapasowej danych, aby zapobiec ich nieodwracalnej utracie. Dobrą praktyką jest również stosowanie zapytania SELECT z tym samym warunkiem, aby najpierw zweryfikować, które rekordy zostaną usunięte. Tego rodzaju podejście umożliwia lepsze zarządzanie danymi oraz redukuje ryzyko pomyłek podczas operacji na bazach danych.

Pytanie 26

W HTML-u atrybut shape w znaczniku area, który definiuje kształt obszaru, może przyjąć wartość

A. rect, poly, circle
B. rect, triangle, circle
C. rect, square, circle
D. poly, square, circle
Wybór niewłaściwej odpowiedzi może wynikać z nieporozumień dotyczących atrybutu shape w znaczniku area. Odpowiedzi wskazujące na 'square' lub 'triangle' są błędne, ponieważ te kształty nie są obsługiwane przez standard HTML. W przypadku 'square', mogłoby się wydawać, że jest to po prostu inna forma prostokąta, jednak HTML nie definiuje takiej wartości dla atrybutu shape. Również 'triangle' nie jest uznawany w kontekście standardowych atrybutów; HTML nie pozwala na bezpośrednie definiowanie kształtów trójkątnych w obszarach mapy obrazów. Tego rodzaju zamieszanie może wynikać z niepełnego zrozumienia funkcji atrybutu, który jest jednoznacznie związany z prostokątem, okręgiem oraz wielokątem. Kluczowe jest, aby przyjrzeć się dokumentacji HTML oraz standardom W3C, które jasno określają poprawne wartości dla atrybutu shape. W praktyce, zrozumienie tych różnic jest istotne dla tworzenia efektywnych i dostępnych interfejsów użytkownika, gdzie każdy element jest precyzyjnie zdefiniowany i zrozumiały dla przeglądarek oraz użytkowników. Ponadto, stosowanie niepoprawnych wartości może prowadzić do błędów w renderowaniu strony, co negatywnie wpływa na doświadczenia użytkowników i dostępność serwisu.

Pytanie 27

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 2
B. Skrypt 4
C. Skrypt 3
D. Skrypt 1
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 28

Cechy przedstawione w tabeli dotyczą?

  • Strony ustalają dążenie do konkretnego wyniku
  • Ważny jest efekt pracy, a nie sposób jej realizacji
  • Zleceniodawca przekazuje za wykonawcę zaliczkę na podatek dochodowy
A. umowy zlecenia
B. umowy agencyjnej
C. umowy o dzieło
D. umowy o pracę
Umowa o pracę różni się od umowy o dzieło w kilku kluczowych aspektach. Przede wszystkim, umowa o pracę koncentruje się na procesie wykonywania pracy, a nie tylko na jej rezultacie. Pracownik w ramach umowy o pracę podlega określonym przepisom dotyczącym czasu pracy, urlopów i innych świadczeń pracowniczych, co nie ma miejsca w umowie o dzieło. Z kolei umowa zlecenia także skupia się bardziej na wykonywaniu usług niż na osiąganiu konkretnego rezultatu, co oznacza, że zleceniobiorca powinien wykonać powierzone zadanie z należytą starannością, ale niekoniecznie osiągnąć określony efekt końcowy. Umowa agencyjna jest jeszcze innym typem kontraktu, w którym agent działa na rzecz zleceniodawcy, ale niekoniecznie musi dostarczać konkretny produkt lub usługę końcową. Typowym błędem jest mylenie tych umów z uwagi na podobieństwa w formalnościach czy obowiązkach podatkowych, jednak kluczowe jest zrozumienie różnic w zakresie oczekiwań co do efektu pracy i sposobu jej rozliczania.

Pytanie 29

Co oznacza skrót SQL?

A. Standard Quality Language
B. Sequential Question Language
C. Structured Query Language
D. Simple Query Logic
SQL, czyli <em>Structured Query Language</em>, to bardzo istotny język w świecie baz danych. Pozwala na tworzenie, modyfikowanie i zarządzanie danymi w relacyjnych bazach danych. Język ten umożliwia użytkownikom definiowanie struktury bazy danych poprzez tworzenie tabel oraz określanie relacji między nimi. Ponadto, SQL jest kluczowy do manipulacji danymi, oferując szeroki wachlarz komend do selekcji, wstawiania, aktualizacji i usuwania danych. Dzięki SQL można także kontrolować dostęp do danych, definiując uprawnienia użytkowników. W praktyce, SQL jest używany w wielu narzędziach i systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL, Microsoft SQL Server czy Oracle Database. Jego standaryzacja przez ANSI i ISO zapewnia, że podstawowe komendy są zrozumiałe i spójne w wielu systemach. Dla programistów i administratorów baz danych znajomość SQL jest kluczowa, ponieważ pozwala na efektywne zarządzanie i analizę danych, co jest podstawą w podejmowaniu decyzji biznesowych.

Pytanie 30

Jakie polecenie w CSS umożliwia dodanie zewnętrznego arkusza stylów?

A. require
B. import
C. open
D. include
Polecenie 'import' w CSS służy do załączenia zewnętrznego arkusza stylów, co jest kluczowe dla organizacji i modularności kodu CSS. Użycie '@import' pozwala na ładowanie stylów z innych plików CSS na początku arkusza stylów, co ułatwia zarządzanie dużymi projektami. Na przykład, jeśli mamy plik 'style.css' i chcemy zaimportować 'reset.css', możemy użyć następującej składni: '@import 'reset.css';'. Dzięki temu możemy utrzymać rozdzielenie różnych stylów, co sprzyja lepszej organizacji kodu oraz jego ponownemu użyciu w przyszłości. Warto również zaznaczyć, że standardy CSS sugerują, aby używać '@import' z rozwagą, gdyż każde zaimportowanie pliku powoduje dodatkowe żądanie HTTP, co może wpłynąć na czas ładowania strony. Z tego powodu, dla większych projektów, często lepiej jest łączyć wszystkie style w jeden plik podczas produkcji, co można osiągnąć za pomocą narzędzi do kompresji CSS. Użycie '@import' jest zatem zgodne z dobrymi praktykami, szczególnie w fazie rozwoju, gdzie modularność i łatwość w zarządzaniu kodem są priorytetowe.

Pytanie 31

W języku PHP, instrukcja foreach pełni rolę

A. Pętli, przeznaczonej wyłącznie dla elementów tablicy
B. Wyboru, dotyczącej elementów tablicy
C. Warunkową, niezależną od typu zmiennej
D. Pętli, niezależnej od typu zmiennej
W PHP, instrukcja foreach to super sposób na przechodzenie przez elementy tablicy. Dzięki niej nie musisz się martwić o indeksy, tylko po prostu przeglądasz wszystkie wartości, co naprawdę ułatwia pisanie kodu. Na przykład, jeżeli mamy tablicę z nazwiskami, taką jak $nazwiska = ['Kowalski', 'Nowak', 'Wiśniewski'], to możemy to wrzucić w foreach: foreach ($nazwiska as $nazwisko) { echo $nazwisko; }. W tym przypadku każda wartość z tablicy zostanie wyświetlona po kolei. Z mojego doświadczenia, dobrze jest używać foreach kiedy mamy do czynienia z tablicami, bo to sprawia, że kod jest bardziej przejrzysty i łatwiejszy do zrozumienia. Co więcej, foreach ma tę fajną cechę, że poradzi sobie z różnymi typami wartości w tablicy, więc to naprawdę uniwersalne narzędzie. Pamiętaj, że używając tej pętli, poprawiasz nie tylko wydajność swojego kodu, ale też jego czytelność, co jest super ważne, zwłaszcza w dużych projektach.

Pytanie 32

Poniższy fragment kodu PHP służy do zarządzania

if (empty($_POST["name"])) {
    $nameErr = "Name is required";
}
A. bazami danych
B. sesjami
C. formularzami
D. ciasteczkami
Fragment kodu PHP przedstawiony w pytaniu dotyczy obsługi formularza i jest to typowa konstrukcja używana do walidacji danych przesyłanych metodą POST. W PHP dane z formularza przesyłane są za pomocą superglobalnej tablicy $_POST, co pozwala na ich łatwe przetwarzanie i walidację. W tym przypadku skrypt sprawdza, czy pole 'name' zostało wypełnione przez użytkownika. Funkcja empty() jest stosowana, aby wykryć, czy dane pole jest puste, co jest kluczowe dla zabezpieczenia aplikacji przed niekompletnymi danymi. Gdy pole jest puste, zmienna $nameErr zostaje ustawiona na wartość komunikatu błędu, informującą użytkownika o brakujących danych. Praktyczne zastosowanie tego rodzaju sprawdzania obejmuje różnorodne formularze internetowe, takie jak rejestracja użytkowników czy składanie zamówień. Dobre praktyki w PHP zalecają stosowanie walidacji po stronie serwera, ponieważ poprawia to bezpieczeństwo i integralność danych, nawet jeśli wcześniej dane były walidowane po stronie klienta za pomocą JavaScriptu. Warto również pamiętać o stosowaniu filtrów i walidacji danych wejściowych, aby zapobiec potencjalnym atakom, jak np. SQL injection

Pytanie 33

Które z pól są umieszczone w formularzu?





Studia podyplomowe Kurs

A. Textarea, Select, Input(Radio), Input(Radio), Input(Reset), Input(Submit)
B. Input(Text), Select, Input(Radio), Input(Radio), Input (Submit), Input(Reset)
C. Input(Text), Input(Checkbox), Select, Select, Input(Submit), Input(Reset)
D. Textarea, Option, Input(Checkbox), Input(Checkbox), Input (Submit), Input(Reset)
Dobrze zrozumiałeś różne typy pól, które mogą pojawić się w formularzu html. Wybrana przez Ciebie odpowiedź składa się z różnych typów pól, które są często używane w formularzach internetowych. Pierwsze, Input(Text), jest podstawowym polem do wprowadzania tekstu, które jest szeroko stosowane do zbierania informacji od użytkowników, takich jak imię, nazwisko itp. Pole Select to lista rozwijana, która pozwala użytkownikowi wybrać jedną z wielu opcji. W tym przypadku, używane jest do wyboru województwa. Input(Radio) to przyciski wyboru, które umożliwiają wybór jednej opcji z kilku. W formularzu, są one używane do wyboru między 'Studia podyplomowe' a 'Kurs'. Input(Submit) to przycisk służący do wysyłania formularza, a Input (Reset) pozwala na wyczyszczenie wszystkich pól formularza. Wszystkie te elementy są zgodne ze standardami i dobrymi praktykami tworzenia formularzy html. Dobre zrozumienie tych elementów jest kluczowe do tworzenia efektywnych i użytkowników formularzy.

Pytanie 34

Jakie mechanizmy przydzielania zabezpieczeń, umożliwiające przeprowadzanie operacji na bazie danych, są powiązane z zagadnieniami dotyczącymi zarządzania kontami, użytkownikami oraz uprawnieniami?

A. Z przywilejami obiektowymi
B. Z przywilejami systemowymi
C. Z regułami
D. Z atrybutami
Uprawnienia związane z atrybutami i regułami mogą mylnie wydawać się odpowiednie w kontekście zarządzania dostępem, ale ich zrozumienie jest kluczowe, aby uniknąć błędnych wniosków. Atrybuty w kontekście systemów zarządzania bazami danych są często używane do definiowania cech obiektów, takich jak kolumny w tabelach, ale nie są bezpośrednio związane z mechanizmami nadawania uprawnień. Reguły, choć mogą być wykorzystywane do definiowania polityk bezpieczeństwa, nie są tym samym co przywileje systemowe. Przywileje obiektowe, z kolei, dotyczą dostępu do konkretnych obiektów w bazie danych, takich jak tabele czy widoki, a nie ogólnych uprawnień administracyjnych. Często występuje nieporozumienie, że wszystkie te mechanizmy są równoważne, co prowadzi do niewłaściwego stosowania uprawnień w systemach. Kluczowe jest zrozumienie, że przywileje systemowe są tymi, które kontrolują dostęp do całej struktury bazy danych, a nie tylko do jej poszczególnych elementów, co stanowi podstawę dla skutecznego zarządzania bezpieczeństwem w środowiskach IT. W praktyce niepoprawne przypisywanie uprawnień może prowadzić do nieautoryzowanego dostępu do danych, co jest sprzeczne z najlepszymi praktykami ochrony informacji.

Pytanie 35

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

A. PNG
B. JPG
C. BMP
D. SVG
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 36

Zaprezentowane pole input daje możliwość

<input type="checkbox" name="text1" value="text2">
A. zaznaczenia opcji z listy zawierającej wartości text1 i text2
B. wpisania dowolnego tekstu
C. wprowadzenia hasła
D. wybrania opcji
Element HTML z atrybutem type="checkbox" jest używany do tworzenia pól wyboru które pozwalają użytkownikowi zaznaczać jedną lub więcej opcji. Checkboxy są częstym elementem formularzy internetowych gdyż umożliwiają elastyczne zbieranie danych od użytkowników. Przykładowo w formularzach rejestracyjnych można używać ich do akceptacji regulaminu zapisów na newslettery czy wyboru zainteresowań. Składnia takiego elementu jest prosta: tag <input> z atrybutami name i value. Atrybut name jest niezbędny do grupowania checkboxów a value do przekazywania wartości zaznaczonej opcji do serwera podczas wysyłania formularza. Dobre praktyki zalecają dodawanie etykiet opisujących znaczenie checkboxa co poprawia dostępność dla osób korzystających z czytników ekranowych. Stosowanie checkboxów powinno być przemyślane by nie przeciążać użytkownika zbyt dużą liczbą opcji co mogłoby negatywnie wpłynąć na UX. Właściwe użycie checkboxów zgodne ze standardami HTML i UX jest kluczowe dla intuicyjnego interfejsu użytkownika.

Pytanie 37

Kolor reprezentowany w formacie heksadecymalnym #0000FF to

A. zielony
B. czarny
C. czerwony
D. niebieski
Kolor zapisany w notacji heksadecymalnej #0000FF to odcień niebieskiego. Notacja heksadecymalna jest powszechnie stosowana w projektowaniu stron internetowych oraz grafice komputerowej do definicji kolorów w systemie RGB. W tej notacji sześć znaków reprezentuje wartości czerwonego, zielonego i niebieskiego (RGB), gdzie pierwsze dwa znaki to wartość czerwonego, kolejne dwa to wartość zielonego, a ostatnie dwa to wartość niebieskiego. W przypadku #0000FF, wartości są następujące: 00 (czerwony), 00 (zielony), FF (niebieski), co oznacza maksymalny poziom niebieskiego światła. Taki kolor jest czystym niebieskim, uzyskiwanym gdy intensywność czerwonego i zielonego jest zerowa, a niebieskiego maksymalna. Przykładami użycia niebieskiego w designie mogą być logo Facebooka, które wykorzystuje podobny odcień, czy tła niektórych stron internetowych. Heksadecymalne kody kolorów są zgodne z standardem W3C, co zapewnia ich uniwersalność i spójność w różnych aplikacjach graficznych i interfejsach użytkownika.

Pytanie 38

Aby zrealizować opisane czynności w JavaScript, konieczne jest umieszczenie poniższego kodu w znaczniku <script>

Ilustracja do pytania
A. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
B. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
C. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A)
D. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
W JavaScript użycie funkcji prompt() pozwala na wyświetlenie okna dialogowego, które umożliwia użytkownikowi wprowadzenie danych. W przypadku poprawnej odpowiedzi kod A = prompt('Podaj kwalifikację: '); document.write('Kwalifikacja: '+A); realizuje dokładnie te kroki. Funkcja prompt() czeka na wprowadzenie danych przez użytkownika i zwraca wprowadzaną wartość, która jest następnie przypisywana do zmiennej A. Następnie document.write() jest używane do bezpośredniego wstawienia zawartości zmiennej A na stronę internetową w połączeniu z tekstem 'Kwalifikacja: '. To podejście jest zgodne z dobrymi praktykami tworzenia aplikacji internetowych, gdzie dynamiczne wprowadzanie danych przez użytkownika i ich wyświetlanie jest kluczowe. Używanie prompt() jest powszechne w prostych aplikacjach do interakcji z użytkownikiem, lecz w bardziej zaawansowanych projektach zaleca się korzystanie z bardziej zaawansowanych metod jak formularze HTML czy asynchroniczne żądania sieciowe. Niemniej jednak, zrozumienie działania prompt() oraz document.write() jest podstawowe dla tworzenia dynamicznych stron WWW i stanowi fundament dalszej nauki w JavaScript.

Pytanie 39

W języku PHP zmienna globalna $_POST, służąca do odbierania danych z formularza przesłanych metodą POST, jest: 

A. tablicą asocjacyjną.
B. ciągiem znaków zakodowanym w JSON.
C. zmienną tekstową.
D. obiektem klasy stdClass.
Poprawnie – w PHP zmienna superglobalna $_POST jest tablicą asocjacyjną, czyli zbiorem par klucz ⇒ wartość. Kluczami są nazwy pól formularza (atrybut name w HTML), a wartościami – dane przesłane metodą POST. Dzięki temu po stronie PHP możesz wygodnie odwoływać się do konkretnych pól, np.: $imie = $_POST['imie']; $email = $_POST['email'];. To jest bardzo naturalne, bo struktura formularza HTML też opiera się na nazwach pól, więc mapowanie na tablicę asocjacyjną jest po prostu praktyczne. Moim zdaniem ważne jest też zrozumienie, że $_POST zawsze jest tablicą (array w PHP), nawet jeśli w formularzu jest tylko jedno pole. Jeżeli użytkownik nic nie wyśle, to będzie to pusta tablica, a nie null czy ciąg znaków. Z mojego doświadczenia warto zawsze sprawdzać isset($_POST['nazwa']) albo używać filter_input(INPUT_POST, 'nazwa'), co jest zgodne z dobrymi praktykami bezpieczeństwa. $_POST jest jedną z tzw. superglobali, obok $_GET, $_SERVER, $_FILES, $_SESSION itd. Są one dostępne w całym skrypcie, niezależnie od zasięgu (scope) funkcji. W kontekście formularzy webowych przyjętym standardem jest: używamy $_GET do danych z adresu URL (zapytania typu ?id=5), a $_POST do danych z formularzy, szczególnie gdy przesyłamy hasła, większe teksty, dane wrażliwe. To jest zgodne z typową architekturą aplikacji webowych w PHP. Warto też wiedzieć, że wartości w $_POST są zawsze typu string (lub tablica stringów, gdy używasz nazw pól z nawiasami, np. name="interesy[]"), ale sama zmienna $_POST jest tablicą asocjacyjną. Dobra praktyka: nie ufaj ślepo zawartości $_POST – zawsze waliduj i filtruj dane wejściowe przed zapisaniem do bazy czy wyświetleniem użytkownikowi, żeby unikać np. XSS i SQL injection.

Pytanie 40

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; }
Poprawny selektor to tr:hover { background-color: Pink; }, bo dokładnie opisuje sytuację pokazaną na filmie: efekt pojawia się dopiero po najechaniu kursorem na cały wiersz tabeli. Pseudo-klasa :hover w CSS służy właśnie do definiowania stylów w momencie, gdy użytkownik „najeżdża” myszką na dany element. Jeśli więc chcemy, żeby podświetlał się cały rząd tabeli, logiczne i zgodne z dobrymi praktykami jest przypięcie efektu do znacznika tr, a nie do pojedynczych komórek. W praktyce taki zapis stosuje się bardzo często w interfejsach webowych: w panelach administracyjnych, listach zamówień, tabelach z uczniami, produktami, logami systemowymi itd. Dzięki temu użytkownik łatwiej śledzi, który wiersz właśnie ogląda. To niby detal, ale z punktu widzenia UX robi sporą różnicę. Z mojego doświadczenia to jeden z tych prostych trików CSS, które od razu poprawiają „odczuwalną” jakość strony. Ważne jest też to, że :hover jest częścią standardu CSS (opisane m.in. w specyfikacji CSS Selectors Level 3/4) i działa w praktycznie wszystkich współczesnych przeglądarkach. Nie trzeba do tego żadnego JavaScriptu, żadnych skomplikowanych skryptów – czysty CSS. Dobrą praktyką jest również używanie bardziej stonowanych kolorów niż Pink w prawdziwych projektach, np. #f5f5f5 albo lekki odcień niebieskiego, tak żeby kontrast był czytelny i nie męczył wzroku. Warto też pamiętać, że podobny mechanizm możesz zastosować na innych elementach: np. a:hover dla linków, button:hover dla przycisków czy nawet div:hover dla całych kafelków w layoutach. Kluczowe jest to, żeby pseudo-klasa :hover była przypięta dokładnie do tego elementu, który ma reagować na interakcję użytkownika.