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: 12 maja 2026 08:52
  • Data zakończenia: 12 maja 2026 09:05

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

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

A. Perl
B. ASP
C. PHP
D. CSS
CSS, czyli kaskadowe arkusze stylów, to język używany do stylizacji stron internetowych. Jego głównym celem jest określenie wyglądu elementów HTML, co obejmuje kolory, czcionki, rozmieszczenie oraz responsywność. CSS nie wykonuje zadań po stronie serwera, ponieważ działa po stronie klienta, co oznacza, że interpretacja i renderowanie stylów odbywa się w przeglądarkach internetowych użytkowników. Przykładem zastosowania CSS jest stylizacja przycisków, nagłówków czy układów stron, co pozwala na tworzenie atrakcyjnych wizualnie interfejsów użytkownika. Standardy CSS są regulowane przez W3C, a najnowsze wersje, takie jak CSS3, wprowadzają dodatkowe możliwości, takie jak animacje czy zaawansowane selektory. Dzięki CSS można również tworzyć responsywne strony internetowe, które dostosowują się do różnych rozmiarów ekranu, co jest istotne w dobie wzrostu użycia urządzeń mobilnych.

Pytanie 2

Który składnik nie jest wymagany do instalacji i uruchomienia systemu CMS Joomla!?

A. parser PHP
B. platforma .NET
C. baza danych
D. serwer WWW
Poprawnie wskazana została platforma .NET jako element, który nie jest wymagany do instalacji i działania Joomla!. Ten CMS jest napisany w PHP i z założenia działa w klasycznym stosie LAMP/LEMP, czyli Linux/Windows + serwer WWW (najczęściej Apache lub Nginx) + PHP + baza danych (MySQL/MariaDB, czasem PostgreSQL). Joomla! korzysta z interpretera PHP do wykonywania całej logiki aplikacji: obsługi logowania, generowania szablonów, pracy z bazą danych, modułów, komponentów itd. Serwer WWW (HTTP) odpowiada za przyjmowanie żądań z przeglądarki i przekazywanie ich do PHP, a baza danych przechowuje treści, użytkowników, konfigurację, menu, artykuły i całą resztę danych dynamicznych. Platforma .NET to zupełnie inny ekosystem technologiczny, typowy dla aplikacji pisanych w C#, ASP.NET, .NET Core, działających np. na IIS. Joomla! nie jest aplikacją .NET, więc nie potrzebuje środowiska uruchomieniowego .NET ani serwera IIS, żeby działać. W praktyce, w typowej firmie hostingowej, gdy chcesz uruchomić Joomla!, patrzysz czy jest obsługa PHP w odpowiedniej wersji, dostęp do bazy MySQL/MariaDB oraz czy serwer WWW pozwala na friendly URLs (mod_rewrite lub odpowiednik). To są realne wymagania. Można oczywiście postawić Joomla! także na Windowsie, ale dalej korzystasz z PHP i serwera WWW, a nie z ASP.NET. Moim zdaniem warto zapamiętać prostą zasadę: jeśli CMS jest napisany w PHP, to kluczowe są PHP, serwer HTTP i baza danych, a nie platformy typowe dla innych języków, jak .NET czy Java.

Pytanie 3

Kod programu wraz z komentarzami oraz opisem algorytmów i metod stanowi dokumentację

A. audiowizualną.
B. urzędową.
C. techniczną.
D. graficzną.
Poprawnie – mówimy tutaj o dokumentacji technicznej. Kod programu razem z komentarzami w kodzie, opisem algorytmów, struktur danych, interfejsów, sposobu działania poszczególnych modułów czy klas to właśnie klasyczny przykład dokumentacji technicznej. W branży IT przyjmuje się, że dokumentacja techniczna jest skierowana głównie do programistów, administratorów, czasem też architektów systemów, czyli osób, które będą rozwijać, utrzymywać lub integrować dany system. Nie jest to materiał marketingowy ani „urzędowy”, tylko coś, co ma pomóc zrozumieć jak system działa od środka. W praktyce dokumentacja techniczna obejmuje na przykład: komentarze w kodzie źródłowym (zgodne z konwencją danego języka, np. PHPDoc, JSDoc), opisy algorytmów w plikach README, wiki projektowe, diagramy UML, schematy przepływu danych, opisy endpointów API, a nawet instrukcje uruchomienia środowiska developerskiego. Moim zdaniem im lepiej zrobiona taka dokumentacja, tym łatwiej jest później komuś „wejść” w projekt bez zadawania dziesiątek pytań. Dobre praktyki mówią, żeby dokumentacja techniczna była aktualna, wersjonowana razem z kodem (np. w Git), a komentarze w kodzie nie powtarzały tego, co oczywiste, tylko wyjaśniały „dlaczego tak”, a nie „co robi ta linijka”. W projektach webowych dokumentacja techniczna opisuje na przykład, jak działa logika logowania użytkownika, jak są zrobione zapytania do bazy, jakie są ograniczenia wydajnościowe. To wszystko pozwala utrzymać spójność systemu i ułatwia debugowanie oraz rozwój nowych funkcji. Dlatego odpowiedź „techniczną” jest jak najbardziej zgodna z tym, jak branża rozumie dokumentację w kontekście programowania i algorytmów.

Pytanie 4

Która z podanych funkcji napisanych w PHP oblicza sumę połowy a oraz połowy b?

A. function licz($a, $b) { return ($a/2 + $b)/2; }
B. function licz($a, $b) { return $a/2 + $b; }
C. function licz($a, $b) { return $a/2 + $b/2; }
D. function licz($a, $b) { return 2/$a + 2/$b; }
Funkcja 'function licz($a, $b) { return $a/2 + $b/2; }' jest naprawdę w porządku. Dokładnie wykonuje to, co pytanie wymaga: sumuje połowy zmiennych a i b. W PHP dzielenie robimy przez operator '/', a tu obie liczby są dzielone przez 2, więc dostajemy ich połówki. Potem te połówki dodajemy, co się zgadza z tym, o co chodzi w zadaniu. Na przykład, jak a = 6 i b = 4, to funkcja zwraca (6/2) + (4/2) = 3 + 2 = 5. Takie podejście jest super, bo kod jest czytelny i prosty. W ekipach programistycznych, gdzie różni ludzie mogą pracować nad tym samym kodem, to ma duże znaczenie. Nazwa 'licz' też jest całkiem zrozumiała i dobrze pasuje do tego, co ta funkcja robi, więc później można łatwo z niej korzystać czy zmieniać ją, jak będzie potrzeba.

Pytanie 5

Poniższy fragment kodu PHP funkcjonuje poprawnie i ma na celu wyświetlenie na stronie internetowej informacji pobranych kwerendą z bazy danych. Ile pól zostanie wyświetlonych na stronie?

$ile = mysqli_num_rows($zapytanie);
for ($i = 0; $i < $ile; $i++) 
{
    $wiersz = mysqli_fetch_row($zapytanie); 
    echo "<p>Klient: $wiersz[0] $wiersz[1], adres: $wiersz[2] </p>";
}
A. Z dwóch pól
B. Z jednego pola
C. Z czterech pól
D. Z trzech pól
Wybranie niepoprawnych odpowiedzi, takich jak 'z jednego pola' czy 'z dwóch pól', może wynikać z niepoprawnego zrozumienia struktury danych zwracanych przez funkcję mysqli_fetch_row. Odpowiedzi te sugerują, że użytkownik może nie dostrzegać, że funkcja ta zwraca wszystkie kolumny z wiersza jako elementy tablicy, co ma kluczowe znaczenie w kontekście przetwarzania wyników zapytań. Odpowiedzi wskazujące na jedno lub dwa pola mogą prowadzić do błędnych wniosków, ponieważ ignorują one pełny zakres danych, które są dostępne w każdym wierszu. W praktyce, często umieszcza się w bazie danych więcej informacji, a każda kolumna odpowiada innemu atrybutowi obiektu, na przykład klienta. Dlatego jeśli zapytanie SQL zwraca trzy kolumny, to oczekiwanym wynikiem powinno być właśnie wyświetlenie tych trzech, co podkreśla istotność precyzyjnego formułowania zapytań i poprawnego odczytywania wyników. Zrozumienie struktury danych jest kluczowe dla poprawnego odczytu wyników i ich późniejszego wykorzystania, co potwierdzają standardy związane z programowaniem w PHP oraz obsługą baz danych.

Pytanie 6

W SQL po wykonaniu zapytania ALTER TABLE osoba DROP COLUMN grupa; co się stanie?

A. nazwa kolumny zmieni się na grupa
B. kolumna grupa zostanie usunięta
C. nazwa tabeli zmieni się na grupa
D. kolumna grupa zostanie dodana
No więc dobrze trafiłeś. To zapytanie SQL ALTER TABLE osoba DROP COLUMN grupa; jest używane do usunięcia kolumny 'grupa' z tabeli 'osoba'. To polecenie jest częścią SQL, który służy do zmieniania struktury tabel. Usunięcie kolumny może być fajne, gdy już nie jest potrzebna, albo jeśli wprowadzasz jakieś zmiany w danych. Na przykład, może się zdarzyć, że kolumna 'grupa' ma dane, które są już nieaktualne, bo zmieniłeś sposób klasyfikacji. A tak w ogóle, dobrze jest przed taką operacją zrobić kopię zapasową danych, bo usunięcie kolumny to trwała zmiana. To podejście jest powszechnie wykorzystywane w zarządzaniu bazami danych oraz w procesach ETL, gdzie ważne jest, by dane były dobrze zorganizowane.

Pytanie 7

W języku HTML, dane dotyczące autora, opisu oraz słów kluczowych strony powinny być zamieszczone

A. pomiędzy znacznikami <head> i </head>, w znaczniku <style>
B. pomiędzy znacznikami <body> i </body>, w znaczniku <html>
C. pomiędzy znacznikami <body> i </body>, w znaczniku <meta>
D. pomiędzy znacznikami <head> i </head>, w znaczniku <meta>
W HTML informacje dotyczące autora, streszczenia i słów kluczowych strony powinny być umieszczone pomiędzy znacznikami <head> i </head>, w znaczniku <meta>. Znacznik <head> jest przeznaczony do przechowywania metadanych strony, które nie są wyświetlane bezpośrednio na stronie, ale są istotne dla przeglądarek internetowych oraz wyszukiwarek. Informacje te pomagają w indeksowaniu strony, co ma kluczowe znaczenie dla SEO. Przykładowe metadane to <meta name='author' content='Imię Nazwisko'>, które wskazuje autora treści, <meta name='description' content='Opis strony'>, które dostarcza krótkie streszczenie jej zawartości oraz <meta name='keywords' content='słowo1, słowo2'>, które definiuje słowa kluczowe związane z treścią. Umieszczanie tych informacji w sekcji <head> jest standardem w HTML, co zapewnia ich poprawne rozpoznanie przez roboty wyszukiwarki, a także pozwala na odpowiednie wyświetlanie w wynikach wyszukiwania. Dlatego kluczowe jest, aby stosować się do tych zaleceń, aby poprawić widoczność strony w Internecie.

Pytanie 8

Jak prawidłowo skomentować linię kodu w języku Java Script? Komentarz powinien być umieszczony po znakach //

x = Math.max(a,b,c); //
A. w zmiennej x minimalna wartość ze zmiennych a, b, c
B. wybór losowej wartości ze zmiennych a, b i c
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. nieprawidłowe dane
Odpowiedź numer 1 jest całkiem trafna, bo funkcja Math.max w JavaScript tak naprawdę najpierw sprawdza, która z podanych wartości jest największa. W tym wypadku, x = Math.max(a, b, c) zwraca największą liczbę z a, b i c i przypisuje ją do x. To jest super przydatne, gdy musisz szybko porównać jakieś liczby, na przykład podczas analizowania danych albo ustalania maksymalnych limitów w aplikacjach internetowych. Math.max to część wbudowanej biblioteki Math, która ma sporo przydatnych funkcji. Wykorzystanie tej funkcji jest zgodne z dobrymi praktykami programowania, bo jest szybka i bezpieczna. Co ważne, Math.max przyjmuje różną liczbę argumentów, więc można ją łatwo dopasować do swoich potrzeb. Używanie tej funkcji naprawdę poprawia czytelność kodu, a to jest kluczowe w projektach, gdzie inne osoby mogą musieć zrozumieć nasz kod.

Pytanie 9

Elementarna animacja może być zapisana w formacie

A. GIF
B. BMP
C. PSD
D. TIFF
Format GIF (Graphics Interchange Format) jest powszechnie stosowany do tworzenia prostych animacji ze względu na swoją zdolność do kompresji obrazów i obsługi przez większość przeglądarek internetowych. GIF pozwala na zapisanie sekwencji obrazów w jednej pliku, co umożliwia ich wyświetlanie jako animacji. Standard GIF obsługuje maksymalnie 256 kolorów z palety, co czyni go idealnym do prostych grafik, takich jak ikony czy animacje internetowe. Dzięki metodzie kompresji Lempel-Ziv-Welch (LZW) możliwe jest zmniejszenie rozmiaru pliku bez utraty jakości, co jest kluczowe w kontekście transferu danych przez sieć. Przykłady zastosowania formatu GIF obejmują animowane banery reklamowe, emotikony oraz krótkie klipy wideo w formie GIF, które stały się popularne na platformach społecznościowych. Ponadto GIF wspiera przezroczystość i animacje w cyklu, co podnosi jego użyteczność w wielu aplikacjach multimedialnych. Z tego powodu GIF jest formatem, który oferuje zarówno funkcjonalność, jak i kompatybilność, co czyni go najlepszym wyborem dla prostych animacji.

Pytanie 10

Zapytanie przedstawione poniżej zwróci wynik:

SELECT COUNT(cena) FROM uslugi;
A. wszystkie wartości cen usług w tabeli
B. liczbę wszystkich cen usług w tabeli
C. sumę wartości cen usług w tabeli
D. średnią wartość cen usług w tabeli
Zapytanie SQL, które zostało przedstawione, korzysta z funkcji agregującej COUNT(), która zlicza ilość wierszy w tabeli, w której znajduje się kolumna 'cena'. W kontekście tego zapytania, COUNT(cena) zbiera wszystkie wartości w kolumnie 'cena', co oznacza, że zwróci liczbę wszystkich wierszy, w których wartość kolumny 'cena' nie jest NULL. Jest to istotne, ponieważ w praktycznych zastosowaniach bazy danych często potrzebujemy znać ilość elementów dostępnych w danym zbiorze danych, co ma kluczowe znaczenie przy analizowaniu danych oraz generowaniu raportów. Na przykład, jeśli prowadzisz firmę oferującą różne usługi, takie zapytanie pozwala Ci szybko określić, ile różnych usług posiadasz w swojej ofercie oraz jakie są ich ceny. Dobrą praktyką jest używanie funkcji COUNT() w połączeniu z klauzulą WHERE, aby dokładnie określić, które wiersze mają być zliczane, co pozwala na bardziej precyzyjne analizy.

Pytanie 11

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie 100,200>, należy użyć:

A. if(liczba<100 || liczba>=200)
B. if (liczba>100 || liczba<=200)
C. if(liczba<100 && liczba<=200)
D. if(liczba>100 && liczba <=200)
Aby sprawdzić, czy liczba znajduje się w przedziale od 100 do 200 włącznie w języku JavaScript, należy użyć operatora logicznego AND (&&). Wyrażenie if(liczba > 100 && liczba <= 200) oznacza, że liczba musi być większa niż 100 oraz jednocześnie mniejsza lub równa 200. Przykład: jeśli mamy liczby 150 i 250, to 150 spełnia warunki tego warunku (jest większa od 100 i mniejsza lub równa 200), podczas gdy 250 nie spełnia (jest większa od 200). Kluczowe jest zrozumienie operatorów porównania oraz logicznych w JavaScript. Zgodnie z ECMAScript, językiem, na którym oparty jest JavaScript, użycie operatora AND w tym kontekście jest standardowym podejściem do określenia, czy wartość znajduje się w danym przedziale. Poprawne użycie tych operatorów jest istotne dla logiki programów oraz dostosowywania warunków do różnych sytuacji, co jest niezbędne w codziennej pracy programisty.

Pytanie 12

Pole insert_id zdefiniowane w bibliotece MySQLi w języku PHP może służyć do

A. pobrania najwyższego indeksu z bazy, aby po jego inkrementacji wstawić pod niego dane
B. uzyskania id ostatnio dodanego wiersza
C. pozyskania kodu błędu, jeśli proces dodawania wiersza się nie powiódł
D. pobrania pierwszego dostępnego indeksu w bazie, tak aby można było pod nim dodać nowe dane
Pole insert_id w bibliotece MySQLi w języku PHP jest kluczowym narzędziem do uzyskiwania identyfikatora (ID) ostatnio wstawionego rekordu w bazie danych. Jest to szczególnie przydatne w kontekście operacji wstawiania nowych danych, gdzie często chcemy wiedzieć, jaki identyfikator został przypisany do nowego rekordu, aby móc go później wykorzystać, na przykład w odniesieniach do powiązanych tabel. W praktyce, po wykonaniu zapytania INSERT, możemy od razu pobrać ID nowo wstawionego rekordu, co jest istotne w relacyjnych bazach danych, gdzie klucze główne są często generowane automatycznie. Przykładowe zastosowanie to sytuacja, gdy wstawiamy nowego użytkownika do tabeli 'users' i chcemy również dodać rekord do tabeli 'profiles', który będzie powiązany z tym użytkownikiem. Wówczas, po wstawieniu użytkownika, możemy użyć insert_id, aby uzyskać jego ID i użyć go do wstawienia do 'profiles'. Używanie insert_id jest zgodne z najlepszymi praktykami, które zalecają minimalizowanie liczby zapytań do bazy danych oraz zapewnienie spójności danych.

Pytanie 13

Efektem wykonania kwerendy dla przedstawionej tabeli rezerwacje jest

SELECT sezon, SUM(liczba_dn) FROM rezerwacje
GROUP BY sezon;

id_pokliczba_dnsezon
110lato
24zima
15lato
26zima
15lato
39zima
18zima
A. lato 10, 5, 5; zima 4, 6, 9, 8
B. lato 10, zima 4, lato 5, zima 6, lato 5, zima 9, zima 8
C. lato 3, zima 4
D. lato 20, zima 27
Dobrze, że wybrałeś odpowiedź 'lato 20, zima 27'. Jest to poprawne rozwiązanie, ponieważ zapytanie SQL, które wykonujemy na tabeli rezerwacje, grupuje wyniki według sezonu i sumuje liczbę dni dla każdego sezonu. W praktyce, jeżeli mamy tabelę z danymi o rezerwacjach na różne sezony i chcemy zrozumieć, ile łącznie dni zostało zarezerwowanych dla każdego sezonu, musimy użyć takiego zapytania. W tym przypadku, suma dni dla sezonu 'lato' wynosi 20, a dla sezonu 'zima' - 27. Wiedza ta jest niezwykle przydatna, gdy na przykład chcemy zaplanować ilość dostępnych miejsc w hotelu na kolejne sezony, biorąc pod uwagę historię rezerwacji. Zwróć uwagę, że korzystanie z funkcji agregujących jak SUM w SQL jest kluczowe dla przeprowadzania analiz danych. Właściwe zrozumienie i stosowanie tych funkcji pozwoli Ci na przeprowadzanie skomplikowanych analiz i przewidywań na podstawie zgromadzonych danych.

Pytanie 14

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

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

Pytanie 15

W celu przyznania użytkownikowi w systemie MySQL możliwości nadawania i modyfikowania uprawnień innym użytkownikom, konieczne jest użycie klauzuli

A. ALL PRIVILEGES
B. FLUSH PRIVILEGES
C. TRGGER
D. GRANT OPTION
Aby w systemie MySQL nadać użytkownikowi prawo do nadawania i zmiany uprawnień innym użytkownikom, należy zastosować klauzulę GRANT OPTION. Ta klauzula jest istotnym elementem systemu zarządzania uprawnieniami, ponieważ umożliwia użytkownikowi, który posiada określone uprawnienia, dzielenie się nimi z innymi użytkownikami. Oznacza to, że użytkownik z GRANT OPTION ma prawo nie tylko do wykonania pewnych działań, ale także do przekazywania tych uprawnień innym, co jest kluczowe w zarządzaniu dużymi bazami danych, gdzie konieczne jest delegowanie zadań. Przykład użycia klauzuli GRANT OPTION może wyglądać następująco: 'GRANT SELECT, INSERT ON my_database.* TO 'user1'@'localhost' WITH GRANT OPTION;', co daje użytkownikowi 'user1' prawo do wykonywania operacji SELECT i INSERT oraz możliwość przekazywania tych uprawnień innym użytkownikom. Taki mechanizm jest fundamentalny dla utrzymania hierarchii uprawnień i bezpieczeństwa w bazach danych, co jest zgodne z najlepszymi praktykami w zarządzaniu dostępem do danych.

Pytanie 16

void wypisz(int n) {
    for (int i = 1; i <= n; i++) {
        System.out.println("Wykonanie operacji po raz " + i);
    }
    System.out.println("Wykonanie kolejnej operacji!");
}
Złożoność obliczeniowa prezentowanego kodu wynosi:
A. O(n)
B. O(n!)
C. O(1)
D. O(n²)
W tym zadaniu kluczowe jest zauważenie, że jedynym fragmentem kodu, który realnie „rośnie” wraz ze wzrostem n, jest pętla for. Pętla wykonuje się od i = 1 do i <= n, czyli dokładnie n razy. W każdej iteracji wykonywana jest jedna instrukcja wypisania tekstu na konsolę: System.out.println("Wykonanie operacji po raz " + i);. To jest stały zestaw operacji w każdej iteracji, nie pojawia się żadna zagnieżdżona pętla, żadne rekurencyjne wywołania ani inne konstrukcje, które by powodowały większy wzrost liczby operacji. Z tego powodu całkowita liczba operacji tego algorytmu jest proporcjonalna do n, a w notacji dużego O zapisujemy to jako O(n). Dodatkowe wywołanie System.out.println("Wykonanie kolejnej operacji!"); po zakończeniu pętli ma z punktu widzenia złożoności asymptotycznej znaczenie stałe – to jest jedna instrukcja, więc dokładamy tylko +1 do liczby operacji. Standardowo w analizie algorytmów takie stałe pomijamy, bo interesuje nas zachowanie dla bardzo dużych n. W praktyce taki schemat O(n) pojawia się non stop: przechodzenie po elementach tablicy, listy, sprawdzanie każdego rekordu z pliku, proste filtrowanie danych. Moim zdaniem warto wyrobić sobie nawyk: widzisz pojedynczą pętlę, bez dodatkowych zagnieżdżeń i bez skoków zależnych od innych zmiennych – bardzo często będzie to właśnie złożoność liniowa. W dobrych praktykach projektowania algorytmów przyjmuje się, że O(n) jest zazwyczaj akceptowalne dla sporych danych, bo czas rośnie wprost proporcjonalnie do liczby elementów. Dopiero gdy pojawiają się pętle w pętlach, trzeba się bardziej martwić o wydajność. Warto też pamiętać, że operacja wejścia/wyjścia (I/O), jak wypisywanie na konsolę, jest w rzeczywistości dość kosztowna, ale w analizie teoretycznej zakładamy, że to jedna jednostkowa operacja na iterację. Dzięki temu możemy porównywać różne algorytmy w sposób ogólny, niezależny od konkretnej maszyny czy implementacji.

Pytanie 17

W PHP użyto funkcji is_float(). Które z wymienionych wywołań tej funkcji zwróci wartość true?

A. is_float(334)
B. is_float('3,34')
C. is_float(3.34)
D. is_float(NULL)
W przypadku odpowiedzi is_float('3,34') oraz is_float(334) obie są nieprawidłowe z powodów związanych z typem danych. Pierwsza z nich przekazuje wartość jako ciąg znaków (string) z przecinkiem, co w PHP nie jest interpretowane jako liczba zmiennoprzecinkowa. PHP nie rozumie przecinka jako separatora dziesiętnego, co prowadzi do błędu w rozpoznawaniu typu. Wartości numeryczne powinny być podawane w formie, która jest zgodna z oczekiwaną konwencją, co w większości języków programowania, w tym PHP, wymaga kropki jako separatora dziesiętnego. Tak więc, is_float('3,34') zwróci false, ponieważ argument nie jest typu float. W przypadku is_float(334), wartość ta jest liczbą całkowitą (integer), co również nie spełnia kryteriów funkcji is_float(). W kontekście programowania, bywa, że programiści mylą różne typy danych i ich konwersje, co prowadzi do nieprawidłowych wniosków na temat typów. Ostatnia odpowiedź, is_float(NULL), również zwraca false, ponieważ NULL nie jest typem danych numerycznych. Użycie NULL często stosowane jest do reprezentowania braku wartości, co jest odrębnym stanem od jakiejkolwiek liczby. Zrozumienie różnicy między typami danych oraz odpowiednie ich użycie jest fundamentem efektywnego programowania i uniknięcia wielu błędów w aplikacjach.

Pytanie 18

Która z pętli w PHP umożliwia przeprowadzenie operacji na wszystkich elementach tablicy z automatycznym przypisaniem indeksów tych elementów?

A. foreach
B. do...while
C. for
D. while
Zarówno konstrukcja 'for', 'while', jak i 'do...while' są pętlami, które służą do wykonywania bloków kodu wielokrotnie, jednak każda z nich ma swoje specyficzne zastosowania, które mogą prowadzić do nieefektywności w kontekście iteracji po tablicach. Użycie pętli 'for' wymaga manualnego zarządzania indeksami, co zwiększa ryzyko błędów, zwłaszcza w przypadku tablic o zmiennej długości. Przykładowo, iterując po tablicy za pomocą 'for', musimy ustawić warunki początkowe, końcowe oraz właściwie modyfikować indeks, co może prowadzić do błędów, jeśli nie zostanie to prawidłowo skonfigurowane. Z drugiej strony, pętle 'while' i 'do...while' są bardziej elastyczne, ale również wymagają dodatkowego sprawdzania warunków, co czyni je mniej przejrzystymi w kontekście iteracji po tablicach. Często prowadzi to do sytuacji, w których programiści popełniają błędy logiczne, takie jak zapętlenie się lub pominięcie elementów, co z kolei skutkuje trudnościami w utrzymaniu kodu. Dlatego, zamiast stosować te pętle, lepiej jest korzystać z 'foreach', która jest dedykowana do pracy z tablicami i eliminuje wiele problemów związanych z zarządzaniem indeksami.

Pytanie 19

Który format graficzny rastrowy jest obsługiwany przez przeglądarki internetowe?

A. PNG
B. TGA
C. PCX
D. FLIF
Format PNG (Portable Network Graphics) to jeden z tych formatów, które są naprawdę popularne w sieci. Przeglądarki go dobrze obsługują, co jest dużym plusem. Został stworzony jako lepsza wersja formatu GIF i do tego ma większą paletę kolorów oraz wspiera przezroczystość. To oznacza, że jakość obrazka pozostaje wysoka, kiedy go zapisujesz, bo PNG korzysta z bezstratnej kompresji. Dodatkowo, ten format pozwala na różne stopnie przezroczystości, co czyni go idealnym do różnych grafik w Internecie, na przykład logo czy ikony. Fajnie, że jest zgodny z HTML5 i CSS, bo to ułatwia pracę przy projektowaniu stron. Można go używać z kolorami w trybie RGBA, dzięki czemu można dodawać fajne efekty z przezroczystością, co zdecydowanie poprawia wygląd stron. W praktyce wiele witryn korzysta z PNG, bo nie tylko zachowuje jakość, ale też nie zajmuje dużo miejsca na serwerze, co sprawia, że strony ładują się szybciej i użytkownicy mają lepsze doświadczenia.

Pytanie 20

W PHP, aby połączyć się z bazą danych MySQL przy użyciu biblioteki mysqli, w zapisie zamieszczonym poniżej, w miejscu litery 'c' powinno się wpisać

Ilustracja do pytania
A. hasło użytkownika
B. nazwę bazy danych
C. nazwę użytkownika
D. lokalizację serwera bazy danych
Rozważając, co powinno znajdować się na miejscu oznaczonym literą 'c', należy zrozumieć, jak działa funkcja mysqli w PHP. Pierwszym argumentem jest lokalizacja serwera bazy danych, często jest to 'localhost' dla lokalnych połączeń, co może prowadzić do błędnego założenia, że to właśnie ten parametr znajduje się pod literą 'c'. Drugi parametr powinien być nazwą użytkownika bazy danych, co w kontekście bezpieczeństwa jest elementem, na który zawsze trzeba zwracać uwagę. Hasło użytkownika znajduje się na trzeciej pozycji i jest kluczowe dla zapewnienia, że tylko uprawnione osoby mogą uzyskać dostęp do bazy. Czwarty parametr to nazwa bazy danych, która jest niezbędna do określenia, z którą bazą chcemy pracować w ramach danego połączenia. Często błędnie przyjmuje się, że nazwa bazy powinna być na pierwszym miejscu, co wynika z zamieszania co do struktury danych wejściowych. Warto dodać, że lokalizacja serwera, choć czasem zaniedbywana, jest kluczowa w środowiskach rozproszonych, gdzie połączenia mogą być nawiązywane z różnych serwerów lub maszyn wirtualnych. Każdy z tych elementów jest istotny i musi być poprawnie zidentyfikowany, aby połączenie z bazą danych było skuteczne i bezpieczne. Praktyczne umiejętności w tej dziedzinie są kluczowe, zwłaszcza przy projektowaniu i wdrażaniu aplikacji działających w profesjonalnym środowisku produkcyjnym.

Pytanie 21

Plik graficzny powinien być zapisany w formacie GIF, gdy

A. jest potrzeba zapisu obrazu lub animacji
B. jest to obraz stereoskopowy
C. jest konieczność zapisu obrazu bez kompresji
D. jest to grafika wektorowa
Grafika wektorowa jest zupełnie innym typem pliku graficznego, który opiera się na matematycznych opisach kształtów i linii, a nie na pikselach. Wektorowe formaty, takie jak SVG czy EPS, umożliwiają skalowanie obrazu bez utraty jakości, co jest ich kluczową zaletą. GIF nie jest w stanie zrealizować tych funkcji, dlatego nie jest odpowiednim formatem dla grafiki wektorowej. Obraz stereoskopowy to technika, która tworzy iluzję głębi poprzez ujęcia z dwóch różnych kątów, co pozwala na postrzeganie trójwymiarowości. GIF nie obsługuje tej techniki, ponieważ nie jest zaprojektowany z myślą o przechowywaniu danych przestrzennych, a raczej skupia się na prostych, płaskich animacjach czy obrazach. W przypadku potrzeby zapisu obrazu bez kompresji, format GIF również nie jest odpowiedni, gdyż wprowadza pewien poziom kompresji, co może prowadzić do utraty jakości. Dla takich zastosowań lepszym wyborem będą formaty takie jak BMP czy TIFF, które pozwalają na zapis bezstratny, a więc idealnie zachowują oryginalną jakość obrazu.

Pytanie 22

Zgodnie z wytycznymi WCAG 2.x  na poziomie AA minimalny kontrast tekstu (o standardowym rozmiarze) do tła, spełniający wymogi dostępności serwisu WWW dla osób z ograniczoną percepcją wzrokową wynosi

A. 2,0 : 1
B. 4,5 : 1
C. 1,5 : 1
D. 2,5 : 1
Poprawna jest wartość 4,5 : 1, bo dokładnie taki minimalny współczynnik kontrastu dla tekstu o standardowym rozmiarze określają wytyczne WCAG 2.0 i 2.1 na poziomie AA (kryterium sukcesu 1.4.3 „Contrast (Minimum)”). Chodzi tu o kontrast pomiędzy kolorem tekstu a kolorem tła, liczony jako stosunek jasności (luminancji względnej) tych dwóch kolorów. Im wyższy współczynnik, tym większa różnica i tym łatwiej odczytać treść osobom z osłabionym wzrokiem, np. z zaćmą, jaskrą czy po prostu osobom starszym. Moim zdaniem to jest jedna z najważniejszych zasad dostępności, bo dotyczy absolutnej podstawy – czy w ogóle da się tekst przeczytać bez wysiłku. W praktyce oznacza to, że np. jasnoszary tekst na białym tle, który „ładnie wygląda” w projekcie graficznym, bardzo często nie spełnia 4,5 : 1 i jest po prostu nieczytelny. Z kolei klasyczne połączenie #000000 (czarny) na #FFFFFF (biały) ma kontrast 21 : 1, czyli znacznie powyżej wymaganego minimum. Warto pamiętać, że dla większego tekstu (min. 18 px lub 14 px pogrubiony) próg jest niższy – 3 : 1, ale w pytaniu mowa wyraźnie o tekście standardowym. W codziennej pracy dobrze jest używać automatycznych narzędzi (np. WebAIM Contrast Checker, wtyczki do przeglądarek, funkcje w Figma/Adobe XD), które potrafią policzyć kontrast na podstawie kodów kolorów w formacie HEX lub RGB i od razu powiedzą, czy mamy poziom AA, czy nie. Z mojego doświadczenia przy tworzeniu serwisów WWW najlepiej od razu w fazie projektowania UI przyjąć zasadę: wszystkie podstawowe teksty (paragrafy, linki, etykiety formularzy) muszą mieć przynajmniej 4,5 : 1. To ułatwia życie front-endowcom i zmniejsza ryzyko, że podczas audytu dostępności trzeba będzie zmieniać całą paletę barw. Dobrą praktyką jest też zapisanie tych wymogów w design systemie lub w style guide, żeby każdy w zespole (grafik, front-end, product owner) rozumiał, że kontrast to nie „opcja estetyczna”, tylko wymóg dostępności i często także wymóg prawny.

Pytanie 23

Na przedstawionej tabeli samochodów wykonano zapytanie SQL:

SELECT model FROM samochody
WHERE rocznik=2016;

Jakie wartości zostaną zwrócone w wyniku tego zapytania?
idmarkamodelrocznikkolorstan
1FiatPunto2016czerwonybardzo dobry
2FiatPunto2002czerwonydobry
3FiatPunto2007niebieskibardzo dobry
4OpelCorsa2016grafitowybardzo dobry
5OpelAstra2003niebieskiporysowany lakier
6ToyotaCorolla2016czerwonybardzo dobry
7ToyotaCorolla2014szarydobry
8ToyotaYaris2004granatowydobry
A. Fiat, Opel, Toyota
B. Punto, Corsa, Astra, Corolla, Yaris
C. Czerwony, grafitowy
D. Punto, Corsa, Corolla
W przypadku błędnych odpowiedzi należy zrozumieć dlaczego nie są one poprawne w kontekście zapytania SQL. Zapytanie SELECT model FROM samochody WHERE rocznik=2016; ma na celu zwrócenie tylko tych modeli samochodów które mają rocznik równy 2016. Jakiekolwiek inne odpowiedzi które zawierają wartości nie spełniające tego warunku są niepoprawne. Na przykład odpowiedzi które zawierają kolory samochodów takich jak czerwony czy grafitowy są błędne ponieważ zapytanie nie dotyczy kolumny kolor. W bazach danych struktura zapytania musi precyzyjnie odpowiadać danym które chcemy uzyskać co oznacza że nie można uwzględniać danych z innych kolumn jeśli nie są one częścią zapytania. Kolejnym błędem jest sugerowanie że zapytanie zwraca marki samochodów takie jak Fiat Opel czy Toyota. Ponownie zapytanie specjalnie wybiera kolumnę model a nie marka dlatego takie odpowiedzi nie są zgodne z zapytaniem. Zrozumienie struktury zapytań SQL i precyzyjne określenie jakie dane są potrzebne jest kluczowe w pracy z bazami danych. Typowe błędy przy konstruowaniu zapytań to niepoprawne określenie kolumny lub warunku co prowadzi do nieoczekiwanych wyników. W związku z tym znajomość zasad konstrukcji zapytań oraz umiejętność przewidywania wyników są niezbędne w codziennej pracy z bazami danych aby uniknąć błędów i zapewnić dokładność przetwarzania danych. SQL jako język do zarządzania danymi wymaga precyzyjnego podejścia i znajomości źródła danych co jest kluczowe dla efektywnego zarządzania informacją. Poprawne sformułowanie zapytania zapewnia że wyniki będą zgodne z oczekiwaniami i będą spełniać założenia analizy danych. Warto także stosować narzędzia walidacji zapytań aby upewnić się że są one optymalne i poprawne co jest dobrym standardem w branży.

Pytanie 24

Jaki styl CSS umożliwia ustawienie wyrównania tekstu do prawej strony?

A. <p style="align: right"> tekst </p>
B. <p style="positon: right"> tekst </p>
C. <p style="font: right"> tekst </p>
D. <p style="text-align: right"> tekst </p>
Wszystkie pozostałe odpowiedzi zawierają błędne podejścia do stylizacji tekstu. W pierwszym przypadku, użycie 'align' jest nieprawidłowe, ponieważ nie jest to uznawana właściwość CSS; w HTML, wyrównanie tekstu było obsługiwane przez atrybut 'align', ale jest już przestarzałe. Innym błędem jest zastosowanie 'positon', które zapewne miało odnosić się do 'position', lecz ta właściwość służy do określenia sposobu pozycjonowania elementów na stronie, a nie do wyrównania tekstu. 'font' z kolei odnosi się do stylów czcionek, takich jak rodzaj, rozmiar i styl, ale nie ma wpływu na wyrównanie tekstu. Te błędne odpowiedzi ukazują typowe nieporozumienia dotyczące właściwości CSS oraz ich zastosowań. Kluczowe jest zrozumienie, że każda właściwość CSS ma swoje specyficzne zastosowanie, a ich nieprawidłowe użycie prowadzi do nieoczekiwanych rezultatów na stronie. Aby uniknąć takich błędów, warto zapoznać się ze standardami CSS oraz dokumentacją, co pomoże w lepszym zrozumieniu i zastosowaniu odpowiednich właściwości do stylizacji tekstu. W praktyce, korzystanie z odpowiednich właściwości CSS nie tylko poprawia wygląd strony, ale również wpływa na jej dostępność i użyteczność.

Pytanie 25

Jaką funkcję w edytorze grafiki rastrowej trzeba wykorzystać, żeby przygotować rysunek do publikacji na stronie tak, aby widoczne było jedynie to, co znajduje się w obrębie ramki?

Ilustracja do pytania
A. Kadrowanie
B. Odbicie
C. Perspektywa
D. Skalowanie
Kadrowanie w edytorze grafiki rastrowej pozwala na wycięcie określonego fragmentu obrazu aby skupić uwagę na jego najważniejszej części. Proces kadrowania jest niezbędny w sytuacjach gdy chcemy przedstawić tylko wybrany obszar grafiki co jest powszechną praktyką w przygotowywaniu ilustracji do publikacji online. Poprzez kadrowanie eliminujemy zbędną przestrzeń wokół istotnych elementów dzięki czemu obraz staje się bardziej czytelny i estetyczny. Jest to szczególnie ważne w kontekście ograniczonej przestrzeni na stronach internetowych oraz chęci optymalizacji rozmiarów plików graficznych co wpływa na szybkość ładowania witryny. Dobrze wykonane kadrowanie pozwala również na zachowanie estetyki kompozycji obrazu poprzez zastosowanie zasad takich jak reguła trójpodziału co zwiększa atrakcyjność wizualną. Warto również pamiętać że w kontekście norm branżowych kadrowanie jest podstawowym narzędziem w arsenale każdego grafika co znajduje odzwierciedlenie w większości współczesnych aplikacji do edycji grafiki rastrowej.

Pytanie 26

W posiadanej tabeli zwanej przedmioty, która zawiera kolumny ocena oraz uczenID, aby wyliczyć średnią ocen dla ucznia z ID równym 7, należy użyć zapytania

A. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7
B. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7
C. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7
D. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7
Wybór innych opcji jest niepoprawny z kilku powodów. Odpowiedź, która zawiera 'AVG SELECT ocena FROM przedmioty WHERE uczenID = 7;' jest błędna, ponieważ nieprawidłowo formułuje składnię SQL. W SQL kolejność słów w zapytaniach jest kluczowa, a funkcje agregujące, takie jak AVG, muszą być używane po słowie SELECT. Z kolei wybór 'COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7;' również jest błędny, ponieważ 'COUNT' jest funkcją, która zlicza ilość wierszy spełniających określone warunki, a nie średnią, co nie odpowiada zadaniu. Warto zauważyć, że mylenie funkcji agregujących, takich jak AVG i COUNT, to powszechny błąd, który wynika z niepełnego zrozumienia ich funkcji. W przypadku zapytania 'SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7;' z kolei, chociaż składnia jest poprawna, zapytanie to zlicza liczbę ocen, a nie ich średnią, co nie spełnia wymagań pytania. To podejście nie tylko wprowadza w błąd, ale także może prowadzić do nieprawidłowych analiz danych. Kluczowe jest zrozumienie, że różne funkcje agregujące mają różne zastosowania i nie można ich stosować zamiennie. Użytkownicy pracujący z bazami danych powinni szczególnie zwracać uwagę na typy danych, jakie są przechowywane w ich tabelach oraz na odpowiednią składnię SQL, aby uzyskać zamierzony efekt.

Pytanie 27

Taki styl CSS sprawi, że na stronie internetowej

ul{ list-style-image: url('rys.gif'); }
A. każdy punkt listy zyska osobne tło z grafiki rys.gif
B. punkt listy nienumerowanej będzie rys.gif
C. rys.gif stanie się ramką dla listy nienumerowanej
D. rys.gif wyświetli się jako tło dla listy nienumerowanej
Deklaracja CSS ul{ list-style-image: url('rys.gif'); } powoduje, że każdy element listy nienumerowanej (ul) używa obrazu rys.gif jako punktora. Właściwość list-style-image pozwala na zamianę domyślnego stylu punktów listy, takiego jak kropki czy kwadraty, na dowolny obrazek. Jest to przydatne, gdy chcemy nadać stronie unikalny wygląd lub dostosować ją do identyfikacji wizualnej marki. W praktyce oznacza to, że zamiast klasycznego punktora, użytkownicy zobaczą wybrany obraz, co może wpłynąć na estetykę i czytelność strony. Ważne jest, aby obraz był odpowiednio skalowany, aby nie zaburzał układu listy. List-style-image to standardowa właściwość CSS uznawana przez większość przeglądarek, co czyni ją uniwersalnym narzędziem w rękach projektanta stron. W procesie projektowania warto upewnić się, że wybrany obrazek jest dostępny dla wszystkich użytkowników, co można osiągnąć np. poprzez dodanie atrybutu alt w wersji tekstowej listy dla lepszej dostępności.

Pytanie 28

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
W analizowanych odpowiedziach widać sporo niepoprawnych interpretacji dotyczących znaczników HTML, co może prowadzić do bałaganu w kodzie. W pierwszej opcji znacznik <i> został użyty do otoczenia całego fragmentu tekstu, a powinno być tak, żeby jedno nie kłóciło się z drugim. Takie błędy w strukturze HTML mogą sprawić, że przeglądarki nie wyświetlą tego, co zamierzałeś. W drugiej odpowiedzi użycie <sub> zamiast <sup> to też zły ruch, jeśli chodzi o górny indeks, bo może to wprowadzać w błąd, szczególnie w tematach naukowych, gdzie precyzja jest ważna. A ten <b> wokół słowa 'pochylony'... no nie wygląda to najlepiej, bo nie powinno się łączyć znaczników w sposób, który wprowadza w błąd co do ich funkcji. W web development ważne jest, żeby trzymać się zasad semantyki HTML, to ułatwia czytanie kodu i wspiera dostępność stron. Jak używasz złych znaczników, to możesz niechcący sprawić, że ludzie korzystający z technologii pomocniczych będą mieli trudności w nawigacji, a to nie jest zgodne z zasadami dostępności WCAG. No i w końcu, źle dobrane znaczniki mogą osłabić efekty wizualne, co wpływa na całą estetykę i funkcjonalność strony.

Pytanie 29

Przedstawiona transformacja obrazu, w edytorze grafiki rastrowej, została wykonana przy pomocy filtru

Ilustracja do pytania
A. redukcja szumu.
B. szum HSV.
C. błysk gradientowy.
D. rozmycia Gaussa.
Gratulacje, twoja odpowiedź jest prawidłowa. Wybrałeś 'rozmycie Gaussa', które jest odpowiednią odpowiedzią. Na przedstawionym obrazie widzimy, że obraz po prawej stronie jest rozmyty w sposób ciągły i jednolity - to jest charakterystyczne dla rozmycia Gaussa. Filtr rozmycia Gaussa jest powszechnie stosowany w edytorach grafiki rastrowej do uzyskania efektu miękkiego rozmycia, który symuluje efekt obserwacji obiektu przez nieostre medium lub z dużą głębią ostrości. Jest to praktyczne narzędzie, które ma szerokie zastosowanie zarówno w fotografii, jak i w grafice komputerowej. Filtr ten jest często używany do poprawy estetyki obrazów, redukcji szumu i artefaktów, a także w szeroko pojętym przetwarzaniu obrazów, takim jak detekcja krawędzi. Jego nazwa pochodzi od matematyka Karla Gaussa, który opracował koncepcję rozkładu normalnego, na którym opiera się ten filtr.

Pytanie 30

Aby posortować listę uczniów według daty urodzenia w bazie danych, jakie polecenie należy zastosować?

A. SELECT imie,nazwisko,klasa from uczniowie group by rok_urodzenia
B. SELECT imie,nazwisko,klasa from uczniowie order by rok_urodzenia
C. SELECT imie,nazwisko,klasa from uczniowie order by nazwisko
D. SELECT imie,nazwisko,klasa from uczniowie where rok_urodzenia = 1994
Wybór pierwszej odpowiedzi nie jest właściwy, ponieważ ogranicza on wyniki do uczniów, którzy urodzili się w konkretnym roku, czyli 1994. Takie podejście nie pozwala na uzyskanie pełnej listy uczniów w kolejności ich roku urodzenia, a jedynie wyświetla tych z jednego, wybranego roku. Zatem nie spełnia ono wymogu uporządkowania całej listy według roku urodzenia. Kolejna odpowiedź, która sugeruje użycie klauzuli 'GROUP BY' na kolumnie 'rok_urodzenia', również jest niepoprawna. Klauzula ta służy do agregacji danych i grupowania ich na podstawie wartości w danej kolumnie, a nie do sortowania. Może to prowadzić do utraty informacji, gdyż zwraca jedynie jedną pozycję dla każdej unikalnej wartości w kolumnie, co nie umożliwia analizy szczegółowej. Co więcej, ostatnia odpowiedź, która proponuje sortowanie według nazwiska, jest całkowicie nieadekwatna do zadania. Sortowanie uczniów według nazwiska nie odnosi się do roku urodzenia, co było celem pytania. Takie działanie może prowadzić do zamieszania w wynikach, a uczniowie nie będą uporządkowani w sposób, który odpowiada ich wieku. Wszystkie te odpowiedzi nie spełniają zatem wymagań dotyczących sortowania i analizy danych w kontekście roku urodzenia.

Pytanie 31

W systemie baz danych sklepu znajdują się dwie tabele połączone relacją: produkty oraz oceny. Tabela oceny zawiera dowolną liczbę ocen wystawionych przez klientów dla konkretnego produktu, opisaną poprzez pola: id, ocena (pole numeryczne), produktID (klucz obcy). Aby uzyskać maksymalną ocenę dla produktu o ID wynoszącym 10, należy wykorzystać zapytanie

A. SELECT MAX(ocena) FROM oceny WHERE produktID = 10;
B. MAX SELECT ocena FROM oceny WHERE produktID = 10;
C. COUNT MAX SELECT ocena FROM oceny WHERE produktID = 10;
D. SELECT MAX COUNT(ocena) FROM oceny WHERE produktID = 10;
Analizując pozostałe odpowiedzi, można zauważyć, że każda z nich zawiera błędy w składni i logice SQL, które prowadzą do niewłaściwych wniosków. W przypadku pierwszej niepoprawnej odpowiedzi, sformułowanie 'COUNT MAX SELECT' jest niepoprawne, ponieważ łączy niezgodne ze sobą komendy. Nie ma takiej funkcji jak 'COUNT MAX'; COUNT służy do zliczania wierszy, a nie do obliczania maksymalnej wartości. W kolejnej odpowiedzi 'MAX SELECT' z kolei jest niepoprawnym użyciem słów kluczowych SQL. MAX powinien występować jako część złożonego zapytania SELECT, a nie jako osobna funkcja. Takie podejście może być wynikiem braku zrozumienia struktury komend SQL. Ostatnia odpowiedź, 'SELECT MAX COUNT(ocena)', również jest błędna, ponieważ nie możemy jednocześnie używać MAX i COUNT w taki sposób. MAX zwraca jedną wartość, podczas gdy COUNT zlicza, co wprowadza zamieszanie. Zastosowanie niepoprawnych konstrukcji SQL może prowadzić do błędów w wykonaniu zapytań oraz do zwracania nieoczekiwanych wyników, co jest szczególnie niebezpieczne w kontekście aplikacji produkcyjnych oraz baz danych, w których precyzyjne dane są kluczowe dla podejmowania właściwych decyzji. Dlatego ważne jest, aby dokładnie zrozumieć sposób działania funkcji agregujących oraz ich prawidłowe zastosowanie w zapytaniach.

Pytanie 32

Aby ustalić wysokość grafiki wyświetlanej na stronie internetowej, należy użyć właściwości CSS o nazwie

A. width
B. margin
C. height
D. padding
Odpowiedź 'height' jest prawidłowa, ponieważ właściwość CSS o tej nazwie bezpośrednio określa wysokość elementu na stronie internetowej. Używając 'height', możemy zdefiniować wartość w pikselach, procentach lub innych jednostkach miary, co pozwala na precyzyjne dostosowanie wyglądu elementów do wymagań projektu. Na przykład, zdefiniowanie wysokości obrazka jako 'height: 200px;' sprawi, że obrazek zawsze będzie miał 200 pikseli wysokości, niezależnie od jego oryginalnych wymiarów. Dobrą praktyką jest również używanie wartości procentowych, które pozwalają na responsywne projektowanie, dostosowujące się do różnych rozmiarów ekranu. Ponadto, warto wspomnieć o zastosowaniu 'min-height' i 'max-height', które umożliwiają kontrolowanie minimalnych i maksymalnych wymiarów elementów, co jest pomocne w tworzeniu elastycznych i estetycznych układów stron. Ponadto, definiując wysokość obrazków, warto pamiętać o zachowaniu proporcji poprzez odpowiednie użycie również właściwości 'width'.

Pytanie 33

W języku PHP wykonano poniższą operację. Aby uzyskać wszystkie rezultaty tego zapytania, należy:

$tab = mysqli_query($db, "SELECT imie FROM Osoby WHERE wiek < 18");
A. zastosować pętlę z poleceniem mysqli_fetch_row
B. zaindeksować zmienną tab, tab[0] to pierwsze imię
C. użyć polecenia mysql_fetch
D. wyświetlić zmienną $db
Odpowiedź, która zakłada zastosowanie pętli z poleceniem mysqli_fetch_row, jest poprawna, ponieważ po wykonaniu zapytania do bazy danych za pomocą mysqli_query, otrzymujemy wynik w postaci zestawu rekordów, który musimy przetworzyć. Funkcja mysqli_fetch_row pozwala na iteracyjne pobieranie wierszy z tego zestawu, co jest niezbędne do wyświetlenia wszystkich imion osób, które spełniają warunek wieku poniżej 18 lat. Przykładowy kod do iteracji może wyglądać tak: while($wiersz = mysqli_fetch_row($tab)) { echo $wiersz[0]; } W ten sposób każda iteracja w pętli wyświetli pierwszą kolumnę (imie) z każdego wiersza rezultatu. Tego typu podejście jest zgodne z dobrymi praktykami, ponieważ pozwala na efektywne zarządzanie pamięcią i ogranicza ryzyko przeciążenia systemu, szczególnie w przypadku dużych zbiorów danych. Ważne jest, aby pamiętać, że połączenie z bazą danych i zapytania powinny być zawsze odpowiednio zamykane i zabezpieczane przed atakami, co jest istotne w kontekście bezpieczeństwa aplikacji.

Pytanie 34

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

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

Pytanie 35

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: left; } aside { float: left; }
B. nav { float: right; } section { float: right; }
C. aside {float: left; }
D. nav { float: right; }
W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi. Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego. Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 36

Który z poniższych kodów HTML odpowiada opisanej tabeli? (W celu uproszczenia zrezygnowano z zapisu stylu obramowania tabeli oraz komórek)

Ilustracja do pytania
A. Odpowiedź A
B. Odpowiedź B
C. Odpowiedź C
D. Odpowiedź D
Odpowiedź B jest prawidłowa, ponieważ wykorzystuje atrybut rowspan do połączenia dwóch wierszy w jednej kolumnie tabeli. HTML zapewnia atrybuty rowspan i colspan, które umożliwiają połączenie wielu komórek tabeli w jedną, co jest niezbędne w sytuacjach, gdy dane muszą być przedstawione w sposób bardziej przejrzysty i zwarty. W przedstawionej tabeli labelka Telefon jest wspólna dla dwóch numerów, co skutkuje koniecznością użycia rowspan=2 w komórce, która łączy dwa wiersze. Ta konstrukcja jest zgodna z dobrymi praktykami tworzenia semantycznie poprawnych i wizualnie uporządkowanych tabel w dokumentach HTML. Zastosowanie atrybutu rowspan może poprawić czytelność tabel, co jest szczególnie przydatne przy prezentacji złożonych danych w aplikacjach biznesowych czy raportach. Użycie tego podejścia pozwala na bardziej efektywne wykorzystanie przestrzeni w tabeli i jest zgodne ze standardami W3C, które promują semantykę i dostępność w sieci.

Pytanie 37

W języku JavaScript stworzono obiekt Samochod. Aby wywołać jedną z jego metod, trzeba wpisać

A. Samochod.kolor
B. Samochod()
C. Samochod.spalanie_na100
D. Samochod.spalanie()
W języku JavaScript obiekt to podstawowa jednostka, która pozwala na grupowanie danych i funkcji w jednym miejscu. W kontekście zdefiniowanego obiektu Samochod, aby wywołać jego metodę, należy skorzystać z notacji kropkowej. Poprawne użycie to Samochod.spalanie(), co wskazuje na wywołanie metody 'spalanie' z obiektu 'Samochod'. Ta metoda może zawierać logikę obliczającą zużycie paliwa lub inne operacje związane z danym samochodem. Warto zauważyć, że metody w JavaScript są funkcjami przypisanymi do obiektów, co umożliwia ich wywołanie za pomocą notacji kropkowej. Przykładowo, jeśli obiekt Samochod ma zdefiniowaną metodę spalanie, możemy ją zainicjować i uzyskać wynik, co czyni nasz kod bardziej modularnym i czytelnym. Użycie odpowiednich metod jest zgodne z zasadami programowania obiektowego, które są fundamentem JavaScript. Metody obiektów mogą korzystać z właściwości innych obiektów, co zwiększa elastyczność programowania. Ta architektura jest zgodna ze standardem ECMAScript, który definiuje zasady dotyczące obiektów i funkcji w JavaScript.

Pytanie 38

Fragment kodu SQL wskazuje, że klucz obcy

FOREIGN KEY (imie) REFERENCES obiekty (imiona) …
A. wiąże się z kolumną imiona
B. jest odniesieniem do siebie samego
C. jest przypisany do kolumny obiekty
D. znajduje się w tabeli obiekty
Próba interpretacji klucza obcego jako referencji do samego siebie jest niepoprawna, ponieważ klucz obcy w SQL zasadniczo odnosi się do kolumny w innej tabeli, a nie do tej samej tabeli. W rzeczywistości, klucz obcy może być zdefiniowany w obrębie tej samej tabeli, co nazywa się rekurencyjnym kluczem obcym, ale w przedstawionym przypadku odnosi się on do kolumny w tabeli 'obiekty'. Odpowiedź sugerująca, że klucz obcy znajduje się w tabeli 'obiekty' jest myląca, ponieważ definicja klucza obcego nie dotyczy miejsca jego przechowywania, lecz relacji między tabelami. Z kolei stwierdzenie, że klucz obcy jest ustawiony na kolumnie 'obiekty' również jest błędne, ponieważ odnosi się do kolumny 'imiona', co jest kluczowym punktem w zrozumieniu struktury relacyjnych baz danych. Klucz obcy powinien zawsze odnosić się do klucza podstawowego innej tabeli, co ma na celu zapewnienie integralności referencyjnej. Typowe błędy myślowe, które prowadzą do takich nieprawidłowych wniosków, obejmują niepełne zrozumienie koncepcji relacji tabelarycznych oraz mylenie kluczy podstawowych i obcych.

Pytanie 39

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) && ((b >= 10) || (b <= 100))
B. (a > 0) && ((b >= 10) && (b <= 100))
C. (a > 0) || ((b >= 10) || (b <= 100))
D. (a > 0) || ((b >= 10) && (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 40

Dla przedstawionego fragmentu kodu

<img src="kwiat.jpg alt="kwiat">
walidator HTML zwróci błąd, ponieważ
A. użyto niewłaściwego znacznika do wyświetlenia grafiki
B. użyto nieznanego atrybutu alt
C. nie odnaleziono pliku kwiat.jpg
D. nie zamknięto cudzysłowu
W kodzie HTML zauważyłem mały błąd - brakuje ci domknięcia cudzysłowu dla atrybutu src. Powinno to wyglądać tak: <img src="kwiat.jpg" alt="kwiat">. No, cudzysłów jest ważny, bo bez niego przeglądarka może mieć problem z odczytaniem, gdzie kończy się wartość atrybutu. To może prowadzić do różnych, nieprzewidzianych efektów przy wyświetlaniu strony. Zasady W3C mówią, że każdy atrybut powinien być poprawnie sformatowany, żeby działało to na różnych przeglądarkach i urządzeniach. Pamiętaj też o atrybucie alt - jest kluczowy dla dostępności. Właściwe użycie cudzysłowów i dbałość o format kodu też wpływają na jego czytelność, a my przecież chcemy pisać jak najlepiej.