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: 28 stycznia 2026 11:40
  • Data zakończenia: 28 stycznia 2026 12:02

Egzamin zdany!

Wynik: 24/40 punktów (60,0%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Która z zasad walidacji stron internetowych jest niepoprawna?

A. Wyłączanie znaczników powinno następować w odwrotnej kolejności do ich włączania, np. <p>....<big>...</big></p>
B. Jeżeli w instrukcji stosuje się kilka atrybutów, ich kolejność powinna odpowiadać porządkom alfabetycznym, np. <img alt="...." src="...." />
C. Znaczniki, poza tymi samozamykającymi się, funkcjonują aż do momentu ich zakończenia znakiem '/', np. <p>...</p>
D. W znacznikach nie zachodzi rozróżnienie pomiędzy dużymi a małymi literami, np. <p> i <P> są tym samym znacznikiem
W kontekście walidacji znaczników HTML obowiązują szczegółowe zasady, które mają na celu zarówno poprawność syntaktyczną, jak i semantyczną kodu. Na przykład, w przypadku wyłączania znaczników, ważne jest, aby stosować się do zasady zwaną 'LIFO' (Last In, First Out), co oznacza, że znaczniki muszą być zamykane w odwrotnej kolejności, niż były otwierane. Otwierając znacznik <p>, a następnie <big>, w sytuacji, gdy oba są używane, <big> powinien być zamknięty przed <p>, co jest wymagane do zachowania poprawnej struktury dokumentu. Warto również podkreślić, że HTML jest językiem niestrict, co oznacza, że przeglądarki są dość tolerancyjne w stosunku do błędów, ale nieprawidłowe zamykanie znaczników może prowadzić do nieprzewidywalnych rezultatów wizualnych na stronie. Ponadto, wielkie i małe litery w znacznikach HTML nie mają znaczenia, co oznacza, że <p> i <P> będą interpretowane identycznie. Można jednak przyjąć zasadę, że stosowanie jednolitej konwencji, na przykład pisania wszystkich znaczników małymi literami, jest dobrym nawykiem, który zwiększa czytelność kodu. Przykład tego błędu można zaobserwować, gdy programiści mylą się w zamykaniu znaczników, co często prowadzi do złamania struktury DOM i problemów z renderowaniem strony. Utrzymywanie porządku w kodzie HTML jest kluczowe dla jego dalszego rozwoju i utrzymania.

Pytanie 2

W tabeli mieszkancy znajdują się dane o osobach z całego kraju. Aby ustalić, ile unikalnych miast występuje w tej tabeli, trzeba zapisać kwerendę

A. SELECT COUNT(miasto) FROM mieszkancy DISTINCT;
B. SELECT COUNT(DISTINCT miasto) FROM mieszkancy;
C. SELECT COUNT(miasto) FROM mieszkancy;
D. SELECT DISTINCT miasto FROM mieszkancy;
Wybór odpowiedzi "SELECT COUNT(DISTINCT miasto) FROM mieszkancy;" jest naprawdę trafny. Używasz funkcji COUNT razem z DISTINCT, co pozwala na zliczenie tylko unikalnych miast w tabeli 'mieszkancy'. Funkcja COUNT liczy wszystkie wiersze, a DISTINCT usuwa duplikaty, dzięki czemu dostajemy dokładną liczbę miast. Fajnie jest to wykorzystać, gdy analizujesz dane demograficzne – wtedy wiesz, jakie masz rozkłady w różnych miastach. W bazach danych to standardowy sposób, bo dzięki temu unikasz powielania danych i masz lepsze analizy. Ważne jest też, żeby pamiętać o wydajności zapytań; połączenie DISTINCT z COUNT może być bardziej efektywne niż próba szukania duplikatów później. No i zasady normalizacji bazy danych? One rzeczywiście pomagają w tym, żeby dane były uporządkowane, co ułatwia ich przetwarzanie i analizowanie.

Pytanie 3

W której superglobalnej tablicy w PHP należy przechowywać informacje dotyczące logowania użytkownika w sposób gwarantujący ich bezpieczeństwo?

A. $_FILES
B. $_SERVER
C. $_COOKIE
D. $_SESSION
Odpowiedź $_SESSION jest spoko, bo ta superglobalna tablica jest stworzona do trzymania danych związanych z sesjami, co jest mega ważne przy logowaniu. Fajna rzecz w $_SESSION jest taka, że informacje w niej są dostępne tylko podczas, gdy sesja jest aktywna, co poprawia bezpieczeństwo i chroni przed kradzieżą ciasteczek. Używając $_SESSION, można śmiało przechowywać dane logowania, jak ID użytkownika czy jego uprawnienia. Na przykład można użyć $_SESSION do zapamiętania, czy użytkownik jest zalogowany, co pomaga w kontrolowaniu dostępu do różnych części aplikacji. I według mnie, po zakończeniu sesji dobrze jest wyczyścić te dane, bo to dodatkowo zabezpiecza aplikację przed niechcianym dostępem. Ogólnie, korzystając z $_SESSION, programiści mogą się skupić na logice aplikacji, wiedząc, że dane są zarządzane w miarę bezpiecznie.

Pytanie 4

Który z poniższych znaczników jest używany do definiowania list w HTML?

A. <td>
B. <th>
C. <tr>
D. <ul>
<ul> jest znacznikami HTML, które definiuje nieuporządkowaną listę. Użycie tego znacznika pozwala na przedstawienie elementów listy w formie graficznej, gdzie każdy element jest oznaczony punktem. Jest to podstawowy element w HTML, który jest zgodny z wytycznymi W3C i szeroko stosowany w tworzeniu responsywnych i estetycznych interfejsów użytkownika. Przykładowe zastosowanie <ul> może obejmować listy składników, funkcji, czy też elementów menu na stronie internetowej. Stosując <ul>, można także użyć znacznika <li>, aby określić poszczególne elementy listy, co zwiększa czytelność i strukturalizację treści. Znajomość i umiejętność stosowania tych znaczników jest kluczowa dla każdego web developera, aby tworzyć dostępne i zrozumiałe dla użytkowników interfejsy, a także wspierać praktyki SEO poprzez odpowiednią organizację treści.

Pytanie 5

Aby przenieść stronę internetową na serwer, można wykorzystać program

A. Go!Zilla
B. FileFilla
C. Bugzilla
D. CloneZilla
Bugzilla to narzędzie do zarządzania błędami, które nie jest związane z przesyłaniem plików na serwery. Jego głównym celem jest śledzenie błędów i problemów w oprogramowaniu, co czyni go przydatnym w kontekście projektów deweloperskich, ale nie znajduje zastosowania w transferze plików. Go!Zilla to program, który ma na celu przyspieszanie pobierania plików z internetu, co również nie odnosi się do przesyłania plików na serwer. Chociaż Go!Zilla może być pomocny w kontekście ściągania zawartości z sieci, jego funkcjonalność nie obejmuje zarządzania transferami w obie strony, co jest kluczowe dla administratorów stron internetowych. CloneZilla to narzędzie do klonowania dysków i partycji, które służy do tworzenia kopii zapasowych systemów operacyjnych oraz danych, ale nie ma nic wspólnego z przesyłaniem plików na serwer. Jego zastosowanie jest głównie w kontekście migracji danych pomiędzy nośnikami, co w zasadzie wyklucza jego użycie w kontekście przenoszenia witryn internetowych na serwery.

Pytanie 6

Jak powinna wyglądać odpowiednia sekwencja procesów przetwarzania dźwięku z analogowego na cyfrowy?

A. próbkowanie, kodowanie, kwantyzacja
B. kwantyzacja, kodowanie, próbkowanie
C. kwantyzacja, próbkowanie, kodowanie
D. próbkowanie, kwantyzacja, kodowanie
Wybór niepoprawnych odpowiedzi pokazuje, że pewnie nie do końca zrozumiałeś, jak te procesy przetwarzania dźwięku powinny przebiegać. Pierwszy błąd to pominięcie jednego z kluczowych kroków, co może mylić, bo nie jest jasne, jak właściwie przekształcamy sygnał analogowy w cyfrowy. Jeśli byś kodował dane przed kwantyzacją, to mogłoby to zniekształcić informacje przez brak zaokrągleń, co sprawiłoby, że dane nie oddają oryginału. Z kolei, jeśli nie rozumiesz, że kwantyzacja ma być po próbkowaniu, to może się wydawać, że dźwięk przechodzi w formę cyfrową w dziwny sposób. W efekcie, może się zdarzyć, że nie oddasz właściwego zakresu dynamiki, co znacznie pogorszy jakość dźwięku. Może być tak, że dźwięk będzie zniekształcony albo straci ważne szczegóły, przez co będzie trudny do słuchania. Fajnie by było, żebyś lepiej zrozumiał te procesy, bo są mega ważne dla każdego, kto działa w inżynierii dźwięku lub produkcji muzycznej.

Pytanie 7

Aby prawidłowo zorganizować hierarchiczną strukturę tekstu na stronie internetowej, powinno się wykorzystać

A. znaczniki <frame> i <table>
B. znaczniki <h1>, <h2> oraz <p>
C. znacznik <p> z formatowaniem
D. znacznik <div>
Zastosowanie znaczników <div> do definiowania hierarchicznej struktury treści jest niewłaściwe, ponieważ znacznik ten jest semantycznie neutralny i służy głównie do grupowania elementów w celu stosowania stylów CSS lub skryptów JavaScript. Nie dostarcza on informacji o strukturze treści, co negatywnie wpływa na SEO oraz dostępność strony. Ponadto, znaczniki <frame> i <table> również nie są odpowiednie do definiowania hierarchii treści. Znacznik <frame> jest przestarzały i niezalecany w nowoczesnym HTML, a jego użycie może prowadzić do problemów z nawigacją oraz indeksowaniem przez wyszukiwarki. Z kolei znaczniki <table> powinny być stosowane wyłącznie do prezentacji danych w formacie tabelarycznym, a nie do strukturyzacji treści, co także wpływa na czytelność i dostępność witryny. Formatowanie akapitów za pomocą znaczników <p> jest istotne, jednak użycie ich wyłącznie w połączeniu z innymi znacznikami, które brakują w kontekście hierarchii, nie zapewnia klarownej struktury dla użytkowników oraz robotów wyszukiwarek. Dlatego odpowiednia hierarchia z użyciem <h1>, <h2> oraz <p> jest kluczowa dla poprawnego zdefiniowania treści na stronie.

Pytanie 8

Jakie uprawnienia posiada użytkownik jan po wykonaniu poniższych poleceń na bazie danych? ```GRANT ALL PRIVILEGES ON klienci TO jan;``` ```REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;```

A. Będzie miał możliwość wyszukiwania danych w tabeli klienci
B. Będzie miał możliwość wstawiania rekordów do tabeli klienci
C. Będzie miał możliwość zmiany struktury tabeli klienci
D. Będzie miał możliwość usuwania rekordów z tabeli klienci
Odpowiedź jest poprawna, ponieważ po wykonaniu poleceń SQL użytkownik jan ma przyznane wszystkie uprawnienia do tabeli klienci, a następnie odebrano mu konkretne uprawnienia do wykonywania operacji SELECT, INSERT, UPDATE oraz DELETE. Oznacza to, że jedynym uprawnieniem, które pozostaje jemu po tych operacjach, jest możliwość zmiany struktury tabeli, co oznacza operacje takie jak ADD COLUMN czy DROP COLUMN. W praktyce, gdy przyznajemy użytkownikowi rolę, często stosujemy uprawnienia do wykonywania operacji DDL (Data Definition Language), które są niezbędne do modyfikacji schematu bazy danych. Odpowiedzi na pytania dotyczące uprawnień powinny uwzględniać kontekst celów administracyjnych, ponieważ różne role użytkowników mogą mieć różne poziomy dostępu. W związku z tym, zrozumienie systemu uprawnień w kontekście zarządzania bazą danych jest kluczowe, a dobrym standardem jest nadawanie użytkownikom tylko tych uprawnień, które są niezbędne do wykonywania ich zadań.

Pytanie 9

W języku C++ stworzono zmienną char zm1[10]; Jakim typem zmiennej jest ta zmienna?

A. znakiem
B. liczbą
C. tablicą znaków
D. tablicą łańcuchów
Zmienna char zm1[10] nie jest liczbą, znakiem ani tablicą łańcuchów, co może prowadzić do nieporozumień wśród osób uczących się języka C++. Liczby w C++ są przechowywane w zmiennych typu int, float, double itp., które nie mają zastosowania w kontekście tablicy znaków. Zmienne char, jak zm1, są używane do przechowywania pojedynczych znaków, ale w tym przypadku mamy do czynienia z tablicą, co zmienia koncepcję użycia. Oznaczenie tablicą łańcuchów również jest niewłaściwe, ponieważ łańcuchy w C++ są typowo reprezentowane jako typ std::string, który zarządza pamięcią automatycznie. Zrozumienie, że tablica zm1[10] to struktura przechowująca sekwencję znaków, a nie pojedyncze znaki czy złożone obiekty, jest kluczowe. Programista powinien mieć świadomość, że tablica znaków ma swoje ograniczenia, takie jak konieczność zarządzania pamięcią oraz kończeniem łańcucha znakiem null. Niezrozumienie różnicy między tymi pojęciami może prowadzić do błędów w kodzie, takich jak przekroczenie rozmiaru tablicy, co z kolei może prowadzić do nieprzewidzianych zachowań programu. Dlatego, zamiast mylić te pojęcia, warto skupić się na praktycznym wykorzystaniu tablic znaków i ich zastosowaniach w programowaniu, aby lepiej zrozumieć ich rolę w C++.

Pytanie 10

W MS SQL Server rola predefiniowana o nazwie dbcreator umożliwia użytkownikowi

A. wykonywanie wszelkich operacji na serwerze i posiadanie praw do każdej bazy
B. zarządzanie bezpieczeństwem systemu
C. tworzenie, modyfikowanie, usuwanie oraz przywracanie bazy danych
D. zarządzanie plikami na dysku
Rola dbcreator w MS SQL Server rzeczywiście pozwala użytkownikowi na tworzenie, modyfikowanie, usuwanie i odzyskiwanie baz danych. Użytkownicy, którzy mają przypisaną tę rolę, mogą łatwo zarządzać bazami danych w danym serwerze, co jest kluczowe w środowiskach, gdzie bazy danych muszą być regularnie aktualizowane lub tworzone od podstaw. Przykładowo, w przypadku rozwijania aplikacji biznesowej, programista może korzystać z tej roli do tworzenia nowych baz danych na potrzeby testów, co pozwala na szybkie wdrażanie oraz iterację w procesie rozwoju oprogramowania. W praktyce, przypisanie roli dbcreator powinno być stosowane z uwagą, aby ograniczyć do minimum dostęp do krytycznych operacji tylko dla zaufanych użytkowników. Dobre praktyki sugerują regularne przeglądanie i audyt przypisania ról oraz monitorowanie działań użytkowników, aby zapobiegać nieautoryzowanym zmianom w strukturze baz danych.

Pytanie 11

W jaki sposób, stosując język PHP można usunąć ciasteczko o nazwie ciastko?

A. deletecookie(""ciastko"");
B. setcookie(""ciastko"", """", time()-3600);
C. unsetcookie(""$ciastko"");
D. setcookie(""$ciastko"", """", 0);
Wiele z błędnych odpowiedzi opiera się na niepoprawnych założeniach dotyczących metod usuwania ciasteczek w PHP. Przykładowo, użycie deletecookie("ciastko") jest nieprawidłowe, ponieważ w standardowej bibliotece PHP nie istnieje funkcja o takiej nazwie. PHP nie dostarcza wbudowanej funkcji do bezpośredniego usuwania ciasteczek; zamiast tego należy użyć setcookie, aby ustawić ciasteczko z przestarzałym czasem ważności. Podobnie, użycie unsetcookie("$ciastko") jest błędne, ponieważ nie ma takiej funkcji w PHP. Użytkowanie funkcji unset dotyczy zmiennych, a nie ciasteczek, co może prowadzić do konfuzji. W praktyce, aby usunąć ciasteczko, musisz wyraźnie określić jego nazwę z użyciem setcookie, a także wartość oraz czas wygaśnięcia. Ostatecznie, niewłaściwe podejścia do usuwania ciasteczek mogą prowadzić do problemów z bezpieczeństwem, na przykład w sytuacjach, gdy aplikacja niepoprawnie zarządza sesjami użytkowników, co naraża dane na nieautoryzowany dostęp. Aby skutecznie zarządzać ciasteczkami, ważne jest zrozumienie ich mechanizmów oraz stosowanie zgodnych z normami metod ich usuwania.

Pytanie 12

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

for($i = 0; $i < 25; $i += 5) { ... }
A. 26
B. 0
C. 5
D. 25
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 13

Grafika powinna być zapisana w formacie GIF, jeśli

A. jest to grafika wektorowa
B. istnieje potrzeba zapisu obrazu w formie bez kompresji
C. konieczne jest zapisanie obrazu lub animacji
D. jest to obraz w technologii stereoskopowej
Format GIF (Graphics Interchange Format) jest powszechnie wykorzystywany do przechowywania obrazów oraz animacji. Dzięki obsłudze przezroczystości oraz możliwości tworzenia prostych animacji, GIF stał się standardem w przypadku grafiki na stronach internetowych. Jego ograniczenie do 256 kolorów sprawia, że idealnie nadaje się do prostych grafik, takich jak logo czy ikony, gdzie nie jest wymagana pełna gama kolorów, co ma miejsce w formatach takich jak JPEG czy PNG. W przypadku animacji, GIF umożliwia zapis wielu klatek w jednym pliku, co pozwala na odtwarzanie sekwencji obrazu bez potrzeby korzystania z dodatkowego oprogramowania. Praktyczne zastosowanie GIF-a można zaobserwować w mediach społecznościowych, gdzie animowane obrazki są często wykorzystywane do wyrażania emocji, a także na stronach internetowych do przedstawiania logo w ruchu. Używanie formatu GIF w kontekście animacji jest zgodne z dobrą praktyką w branży, ponieważ pozwala na efektywne zarządzanie zasobami wizualnymi oraz zwiększa atrakcyjność treści wizualnych.

Pytanie 14

W CSS zapis w postaci

 h1::first-letter {color: red;} 

spowoduje, że kolor czerwony zostanie zastosowany do

A. tekstu nagłówka w pierwszym stopniu
B. pierwszej linii akapitu
C. pierwszej litery nagłówka w pierwszym stopniu
D. pierwszej litery nagłówka w drugim stopniu
Zapis <span>h1::first-letter {color: red;} </span> jest w porządku, bo korzysta z pseudoelementu :first-letter, który działa na pierwszą literkę w nagłówku h1. To całkiem fajne, bo możemy w ten sposób stylizować tę pierwszą literę i nadać nagłówkom ciekawszy wygląd. Na przykład, jeśli mamy nagłówek h1 z napisem 'Witaj świecie', to dzięki temu kodowi, litera 'W' zrobi się czerwona. W CSS warto ogarnąć, że :first-letter działa tylko na bloki, takie jak nagłówki czy akapity, więc warto to mieć na uwadze, gdy coś stylizujemy. Używanie pseudoelementów to dobre podejście do tworzenia ładnych i funkcjonalnych interfejsów, a przy okazji daje nam większą kontrolę nad tym, jak wyglądają nasze elementy.

Pytanie 15

Do której właściwości można przypisać wartości: static, relative, fixed, absolute oraz sticky?

A. display
B. position
C. list-style-type
D. text-transform
Odpowiedź 'position' to strzał w dziesiątkę! To właściwość w CSS, która mówi nam, jak elementy mają być ustawione na stronie. Masz różne opcje, jak 'static', 'relative', 'fixed', 'absolute' i 'sticky', które każda z nich ma swoje przeznaczenie. Na przykład 'static' to standard, który nic nie zmienia w układzie, a 'relative' umożliwia przesunięcie elementu w stosunku do jego pierwotnej pozycji. Z kolei 'absolute' pozwala umieścić element w odniesieniu do najbliższego przodka, który nie jest ustawiony na 'static', co świetnie się sprawdza, gdy chcesz, żeby coś się ładnie ułożyło na stronie. 'fixed' trzyma element w tym samym miejscu na ekranie, nawet jak przewijasz stronę – idealne dla nagłówków. 'Sticky' łączy w sobie cechy 'relative' i 'fixed', co daje lepszą kontrolę nad pozycjonowaniem przy przewijaniu. Używanie tych wartości jest naprawdę ważne, jeżeli projektujesz responsywne interfejsy, więc dobrze, że to wiesz!

Pytanie 16

Strona internetowa powinna mieć zorganizowaną strukturę bloków. Aby osiągnąć ten układ, należy przypisać sekcjom odpowiednie właściwości w ten sposób:

Ilustracja do pytania
A. float wyłącznie dla bloku 5; clear dla bloku 2
B. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
C. float jedynie dla bloków: 3, 4; clear dla bloku 5
D. float tylko dla bloku 2; clear dla bloków: 3, 4
Odpowiedź czwarta jest prawidłowa, ponieważ użycie właściwości CSS float dla bloków 2, 3 i 4 oraz właściwości clear dla bloku 5 odpowiada oczekiwanemu układowi strony. Float pozwala na ustawienie elementów obok siebie w poziomie. W tym przypadku blok 2, 3 i 4 będą umieszczone w jednej linii dzięki właściwości float: left. Blok 2 będzie zajmował więcej przestrzeni w pionie, co pozwala umieścić bloki 3 i 4 obok siebie. Blok 5 powinien znaleźć się poniżej, więc wymaga zastosowania właściwości clear: both, aby uniknąć zachodzenia na inne elementy pływające. Taki układ jest często stosowany w projektowaniu responsywnych stron internetowych, gdzie float umożliwia elastyczne dostosowanie się elementów do różnych szerokości ekranów. Warto pamiętać, że obecnie często używa się także display: flex lub grid jako nowocześniejszych sposobów układania elementów, jednak float wciąż znajduje zastosowanie w prostych układach. Zrozumienie, jak działa float i clear, jest kluczowe dla tworzenia poprawnych i estetycznych układów bloków na stronie internetowej.

Pytanie 17

Które z poniższych oprogramowań nie jest systemem do zarządzania treścią (CMS)?

A. Joomla
B. WordPress
C. Apache
D. Mambo
Odpowiedź "Apache" jest prawidłowa, ponieważ Apache to serwer HTTP, który jest odpowiedzialny za obsługę i dostarczanie stron internetowych do przeglądarek użytkowników. Nie jest to system zarządzania treścią (CMS), który służy do tworzenia, edytowania i publikowania treści na stronach internetowych. Systemy takie jak Mambo, Joomla i WordPress to platformy CMS, które umożliwiają użytkownikom zarządzanie treściami w sposób intuicyjny i przyjazny dla użytkownika. Na przykład, WordPress, będący jednym z najpopularniejszych CMS-ów, oferuje bogaty ekosystem wtyczek oraz motywów, co pozwala na łatwe dostosowanie witryn do indywidualnych potrzeb. W kontekście branżowych standardów, stosowanie CMS-ów pozwala na skuteczniejsze zarządzanie treściami w witrynach, co jest zgodne z najlepszymi praktykami w zakresie tworzenia i utrzymania stron internetowych.

Pytanie 18

W systemie zarządzania bazą danych MySQL, aby uzyskać listę wszystkich przywilejów przyznanych użytkownikowi anna, można użyć polecenia

A. SHOW GRANTS FOR anna;
B. REVOKE GRANTS FROM anna;
C. SELECT GRANTS FOR anna;
D. GRANT * TO anna;
Odpowiedzi 1, 2 i 3 są nietrafione, bo nie odpowiadają na pytanie o to, jak zobaczyć przydzielone uprawnienia dla użytkownika 'anna'. Pierwsza opcja, 'SELECT GRANTS FOR anna;', jest błędna, bo w MySQL nie ma takiej składni do zdobywania informacji o uprawnieniach. Możliwe, że po prostu pomyliłeś, bo SELECT kojarzy się z pozyskiwaniem danych, ale nie o uprawnieniach. Druga opcja, 'REVOKE GRANTS FROM anna;', też jest niepoprawna, bo REVOKE służy do odbierania uprawnień, a nie ich wyświetlania. Niektórzy mogą myśleć, że odbieranie uprawnień w jakiś sposób pokaże, co wcześniej przyznano, ale to zupełnie coś innego. Trzecia odpowiedź, 'GRANT * TO anna;', sugeruje przyznawanie uprawnień zamiast ich wyświetlania. Użytkownicy mogą myśleć, że znak '*' oznacza wszystkie możliwe uprawnienia, co może prowadzić do niebezpiecznych sytuacji, jeżeli uprawnienia są nadawane bez głębszej analizy. Dlatego zarządzanie uprawnieniami jest mega ważne dla bezpieczeństwa bazy danych, a zrozumienie, jak różne polecenia działają, jest kluczowe.

Pytanie 19

W HTML zdefiniowano hiperłącze zawierające znak #. Co się wydarzy po kliknięciu na ten odsyłacz?

<a href="#dane"></a>
A. Strona przewinie się do elementu o id równym dane
B. Zostanie wskazany względny adres URL o nazwie dane
C. Otworzy się nowa karta przeglądarki o nazwie dane
D. Uruchomi się skrypt o nazwie dane
Pierwsza odpowiedź nie jest trafna, bo myśli, że kliknięcie w hiperłącze otworzy nową kartę w przeglądarce. Żeby tak się stało, trzeba użyć atrybutu target="_blank", ale w tym przypadku to nie ma sensu. Druga odpowiedź sugeruje, że kliknięcie wywoła jakiś skrypt, co też jest błędem. Żeby uruchomić skrypt przez <a>, musiałbyś skorzystać z JavaScriptu i użyć onclick, a w przypadku href z # to nie działa. Trzecia odpowiedź wspomina o adresie względnym, co też nie jest właściwe w kontekście znaku # w URL. Adresy względne dotyczą ścieżek związanych z aktualnym URL, a nie nawigacją wewnętrzną do elementów na stronie. To częsty błąd początkujących w tworzeniu stron. Dobrze jest zrozumieć różnice między nawigacją wewnętrzną a zewnętrzną oraz jak to wszystko działa w HTML. Poprawne użycie # jest bardzo ważne, jeśli chcesz, żeby Twój interfejs był przyjazny i dostępny dla użytkowników.

Pytanie 20

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba >=-200) || (liczba>-100)
B. (liczba >=-200) && (liczba<-100)
C. (liczba <=-200) || (liczba>-100)
D. (liczba <=-200) && (liczba<-100)
Patrząc na błędne odpowiedzi, pierwsza z nich korzysta z operatora OR (||), co powoduje, że wyrażenie jest prawdziwe, jeśli chociaż jeden z warunków jest spełniony. Więc, jeśli liczba jest niższa niż -200, to pierwszy warunek będzie prawdziwy i całość też. To sprawia, że operacje mogą być wykonywane na liczbach, które nie mieszczą się w naszym przedziale, co jest sprzeczne z tym, co chcemy osiągnąć. Kolejna odpowiedź też używa operatora OR, ale jej warunek mówi, że liczba ma być większa niż -100. To prowadzi do sytuacji, gdzie każda liczba powyżej -100 jest uznawana za poprawną, co jest totalnie niezgodne z naszym zamysłem. Ostatnia odpowiedź ma operator AND, ale z kiepskimi warunkami. Warunek liczba <= -200 nie spełnia wymagań, bo nie bierze pod uwagę liczb w przedziale od -200 do -100, tylko te mniejsze niż -200. Dlatego takie wyrażenie nie zadziała jak trzeba i nie pozwoli na właściwe przetwarzanie liczb w wymaganym zakresie.

Pytanie 21

Dla jakiej wartości zmiennej x instrukcja warunkowa w JavaScript jest spełniona?

if ((x < -5) || (x > 2))
    x++;
A. -1
B. 2
C. 3
D. -4
W danym przykładzie mamy do czynienia z instrukcją warunkową w języku JavaScript, która sprawdza, czy zmienna x spełnia jedno z dwóch warunków: x jest mniejsze od -5 lub x jest większe od 2. Operator logiczny OR (||) oznacza, że wystarczy spełnienie jednego z tych warunków, aby kod wewnętrzny został wykonany. Dla wartości x równej 3, warunek (x > 2) jest spełniony, ponieważ 3 jest większe od 2. W rezultacie instrukcja x++ zostanie wykonana, co oznacza inkrementację zmiennej x, czyli zwiększenie jej wartości o 1. Jest to przykład typowego zastosowania operatorów logicznych w programowaniu do kontroli przepływu programu. W praktyce umiejętność stosowania takich instrukcji jest kluczowa w tworzeniu kodu zdolnego do dynamicznej reakcji na różne warunki wejściowe. Ponadto, użycie operatora inkrementacji jest zgodne z najlepszymi praktykami w optymalizacji kodu, gdyż jest to szybki i efektywny sposób na modyfikację wartości liczbowych.

Pytanie 22

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. FTP
B. IRC
C. HTTP
D. SMTP
Protokół FTP (File Transfer Protocol) jest standardowym rozwiązaniem służącym do transferu plików pomiędzy komputerami w sieci. Dzięki FTP użytkownicy mogą przesyłać pliki na serwer hostingowy, co jest kluczowym krokiem w procesie publikacji stron internetowych. Protokoły FTP działają w oparciu o model klient-serwer, gdzie klient łączy się z serwerem, aby przesłać lub pobrać dane. Przykładem praktycznego wykorzystania FTP jest wgrywanie plików HTML, CSS, obrazków oraz innych zasobów potrzebnych do działania strony. Warto również zwrócić uwagę na to, że FTP może działać w trybie pasywnym lub aktywnym, co jest istotne w kontekście zapory sieciowej i konfiguracji sieci. Istnieją również inne protokoły, takie jak SFTP (Secure File Transfer Protocol), które oferują dodatkowe zabezpieczenia, co czyni je preferowanym wyborem w sytuacjach, gdy bezpieczeństwo danych jest priorytetem. W praktyce, FTP jest szeroko stosowany w branży web developmentu, a znajomość tego protokołu jest niezbędna dla każdego, kto zajmuje się tworzeniem i zarządzaniem stronami internetowymi.

Pytanie 23

Do podzbioru DML (ang. Data Manipulation Language) języka SQL należą polecenia:

A. INSERT, UPDATE, DELETE
B. GRANT, REVOKE, DENY
C. CREATE, DROP, ALTER
D. BEGIN, COMMIT, ROLLBACK
W SQL bardzo łatwo pomylić różne grupy poleceń, bo wszystkie wyglądają podobnie, a jednak należą do innych podzbiorów języka. Podzbiór DML (Data Manipulation Language) dotyczy wyłącznie operacji na danych w tabelach: wstawiania, modyfikowania, usuwania i odczytu rekordów. Dlatego do DML zaliczamy przede wszystkim INSERT, UPDATE, DELETE oraz w wielu opracowaniach także SELECT. Wszystko to, co zmienia zawartość tabel, a nie ich definicję czy uprawnienia. Częsty błąd polega na wrzucaniu do jednego worka wszystkich poleceń SQL, bo „to też jest praca na bazie danych”. Na przykład CREATE, DROP i ALTER należą do DDL (Data Definition Language). One definiują strukturę bazy: tworzą tabele, usuwają je, zmieniają kolumny. To są operacje na schemacie bazy, a nie na rekordach. W praktyce używasz ich przy projektowaniu lub migracjach, a nie przy codziennej pracy aplikacji na danych użytkowników. Z kolei GRANT, REVOKE i DENY to klasyka DCL (Data Control Language). Te polecenia sterują uprawnieniami: kto może wykonywać SELECT, INSERT czy DELETE na danej tabeli, kto może tworzyć obiekty, itd. To już bardziej klimat administracji i bezpieczeństwa niż typowej manipulacji rekordami. BEGIN, COMMIT i ROLLBACK też bywają mylące. Dotyczą transakcji i zalicza się je zwykle do TCL (Transaction Control Language). One nie dodają ani nie zmieniają pojedynczego rekordu, tylko kontrolują „pakiet” operacji DML: pozwalają zatwierdzić lub wycofać całą serię INSERT/UPDATE/DELETE. Typowy błąd myślowy jest taki: skoro coś ma związek z danymi lub ich bezpieczeństwem, to pewnie DML. A jednak standardy i dobra praktyka wyraźnie rozdzielają DDL, DML, DCL i TCL, bo to pomaga lepiej rozumieć odpowiedzialność poszczególnych instrukcji i projektować bezpieczniejsze aplikacje. W codziennej pracy programisty webowego DML to głównie to, co stoi „pod spodem” formularzy: zapisywanie, edycja i kasowanie rekordów, a nie zarządzanie strukturą czy uprawnieniami.

Pytanie 24

Jakie mogą być źródła rekordów dla raportu?

A. inny raport
B. tabela
C. zapytanie GRANT
D. zapytanie INSERT INTO
Odpowiedzi, które wskazują na inny raport, zapytanie GRANT lub zapytanie INSERT INTO jako źródła rekordów dla raportu, są niepoprawne. Inny raport, choć może zawierać dane, sam w sobie nie jest bezpośrednim źródłem do generowania nowych raportów. Może jednak posłużyć jako inspiracja lub szablon do tworzenia nowych analiz, co nie czyni go źródłem w sensie technicznym. Przykładowo, raport sprzedaży nie może być bezpośrednio wykorzystany jako źródło danych do raportu o wydatkach z powodu różnicy w kontekście i strukturze danych. Zapytanie GRANT natomiast, służy do przyznawania uprawnień użytkownikom w bazie danych, co jest zupełnie inną funkcjonalnością. Użycie tego zapytania w kontekście raportowania jest błędne, ponieważ nie ma ono związku z pozyskiwaniem danych, a jedynie z zarządzaniem dostępem. Na koniec, zapytanie INSERT INTO służy do wstawiania danych do tabel, a nie do ich pozyskiwania. Typowym błędem myślowym jest mylenie tych operacji z procesem tworzenia raportów, gdzie kluczowym elementem jest analizy danych już istniejących w tabelach, a nie dodawanie nowych danych. W kontekście tworzenia raportów, istotne jest, aby skupić się na źródłach, które już przechowują dane, a nie na operacjach, które te dane zmieniają lub manipulują.

Pytanie 25

<?php
$dane = fread(fopen("plik.txt", "r"), filesize("plik.txt"));
?>
Przedstawiony kod zapisany w języku PHP ma za zadanie
A. zapisać do pliku plik.txt wartość zmiennej dane
B. otworzyć plik plik.txt i jako wartość zmiennej dane przypisać rozmiar pliku
C. zmiennej dane przypisać wielkość pliku plik.txt
D. zmiennej dane przypisać zawartość pliku plik.txt
Kod z pytania wykorzystuje trzy kluczowe elementy pracy z plikami w PHP: fopen, fread i filesize. Żeby dobrze zrozumieć, dlaczego niektóre interpretacje są błędne, trzeba rozdzielić pojęcia „odczyt” i „zapis” oraz pamiętać, co tak naprawdę zwracają poszczególne funkcje. fopen z parametrem "r" otwiera plik wyłącznie do czytania. W tym trybie nie ma możliwości zapisu danych do pliku, więc każda interpretacja sugerująca, że coś jest zapisywane do pliku, stoi w sprzeczności z dokumentacją PHP. To jest częsty błąd: ktoś widzi funkcję pracującą na plikach i automatycznie myśli o zapisie, a tutaj jest tylko odczyt. Kolejna mylna ścieżka rozumowania dotyczy funkcji filesize. Ona faktycznie zwraca rozmiar pliku w bajtach, ale w tym kodzie ten rozmiar jest użyty wyłącznie jako argument dla fread, czyli jako informacja: „ile bajtów odczytać”. Zmienna $dane nie dostaje więc wartości rozmiaru pliku, tylko wynik działania fread, czyli tekstową zawartość pliku. Rozmiar pojawia się tu tylko po to, żeby powiedzieć fread, ile danych ma pobrać z uchwytu pliku. To jest subtelna, ale ważna różnica: wartość zwracana przez filesize nie jest przypisywana bezpośrednio do $dane. Może się też pojawić pokusa, by myśleć, że kod jednocześnie otwiera plik i „przypisuje rozmiar pliku jako wartość zmiennej”. W praktyce mamy dwie operacje: otwarcie pliku (fopen) i odczyt zawartości (fread). Otworzenie pliku nie jest celem samym w sobie, jest tylko krokiem pośrednim, koniecznym do tego, żeby fread mogło pobrać dane. Z mojego doświadczenia wynika, że uczniowie często mieszają: co zwraca uchwyt pliku, co zwraca funkcja odczytu, a co funkcja podająca rozmiar. Tutaj zwracany jest string z treścią pliku, nie liczba bajtów i nie sam uchwyt. Podsumowując merytorycznie: w tym przykładzie nie zachodzi zapis do pliku, zmienna $dane nie przyjmuje samego rozmiaru pliku, ani też nie jest do niej wprost przypisywana wartość z filesize. Cała logika kodu prowadzi do jednego efektu – odczytania pełnej zawartości pliku plik.txt i umieszczenia jej w zmiennej $dane, co jest poprawną interpretacją zgodną ze standardowym sposobem użycia fopen i fread w PHP.

Pytanie 26

Jakie metody są związane z predefiniowanym obiektem Date w języku JavaScript?

A. row()
B. getMonth() oraz getDay()
C. concat() oraz pop()
D. fromCodePoint()
W języku JavaScript obiekt Date jest predefiniowanym obiektem, który umożliwia operacje związane z datami i czasem. Metody getMonth() oraz getDay() są kluczowymi funkcjami, które pozwalają na uzyskanie informacji o dacie. Metoda getMonth() zwraca miesiąc danej daty, przy czym wartości są indeksowane od 0 (styczeń) do 11 (grudzień). Z kolei metoda getDay() zwraca dzień tygodnia, gdzie wartości wynoszą od 0 (niedziela) do 6 (sobota). Przykładowe użycie tych metod może wyglądać następująco: var date = new Date('2023-10-05'); var month = date.getMonth(); var day = date.getDay(); console.log(month); // 9, console.log(day); // 4. Zgodnie z dokumentacją ECMAScript, obiekt Date i jego metody są standardem w JavaScript, co czyni je niezbędnymi w programowaniu webowym oraz aplikacjach. Dzięki tym metodom programiści mogą efektywnie zarządzać datami w różnych kontekstach, od planowania wydarzeń po analizy czasowe.

Pytanie 27

W systemie baz danych hurtowni utworzono tabelę sprzedaz z polami: id, kontrahent, grupa_cenowa, obrot. Jakie polecenie należy zastosować, aby znaleźć jedynie kontrahentów z drugiej grupy cenowej, których obrót przekracza 4000zł?

A. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000
B. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000
C. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000
D. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 OR obrot > 4000
Poprawna odpowiedź to 'SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000;'. To polecenie SQL precyzyjnie spełnia wymagania postawione w pytaniu, ponieważ korzysta z operatora AND do jednoczesnego filtrowania kontrahentów w drugiej grupie cenowej oraz tych, których obrót przekracza 4000 zł. W praktyce, takie zapytanie jest niezwykle użyteczne w analizie danych w hurtowniach, umożliwiając wyodrębnienie tylko tych kontrahentów, którzy spełniają oba warunki, co jest kluczowe w procesach selekcji kontrahentów do dalszych działań marketingowych czy analizy rentowności. Warto zauważyć, że dobrym nawykiem jest dokładne określenie, które pola chcemy wyświetlić, a w tym przypadku 'kontrahent' wskazuje na konkretne dane, które są istotne dla analizy. Dodatkowo, stosowanie odpowiednich warunków w zapytaniach SQL jest zgodne z najlepszymi praktykami w zakresie optymalizacji wydajności bazy danych, ponieważ pozwala na minimalizację ilości przetwarzanych danych oraz zwiększa przejrzystość wyników.

Pytanie 28

Czy poniższy kod PHP działa poprawnie, wyświetlając na stronie dane pobrane z bazy danych? Ile pól zostanie zaprezentowanych?

$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 czterech pól
B. Z trzech pól
C. Z jednego pola
D. Z dwóch pól
Kod PHP wykorzystuje funkcję mysqli_fetch_row aby pobrać dane z bazy danych które są następnie wyświetlane. W funkcji tej każda wiersz z wyników zapytania jest reprezentowany jako tablica indeksowana liczbowo. W zaprezentowanym fragmencie kodu mamy dostęp do trzech indeksów: $wiersz[0] $wiersz[1] oraz $wiersz[2]. Oznacza to że z każdego wiersza wyniku kwerendy pobierane są trzy pola. Kod ten wyświetla dane w formacie paragrafu HTML zawierającego imię i nazwisko klienta oraz jego adres. W praktyce taka konstrukcja jest często wykorzystywana do generowania dynamicznych treści na stronie internetowej. Należy jednak pamiętać o zabezpieczeniach takich jak filtrowanie danych wejściowych aby uniknąć zagrożeń związanych z SQL injection. Warto również rozważyć wykorzystanie bardziej złożonych struktur danych jak tablice asocjacyjne które pozwalają na bardziej czytelne i zrozumiałe odwoływanie się do poszczególnych pól wiersza danych zwłaszcza w przypadku większych projektów. Użycie mysqli_fetch_row jest zgodne z dobrą praktyką jeśli chcemy uzyskać dostęp do danych w sposób sekwencyjny i wydajny

Pytanie 29

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania metody nazwa
B. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
C. nazwa jest atrybutem klasy przedmiot
D. nazwa jest cechą obiektu przedmiot
W języku JavaScript wyrażenie przedmiot.nazwa() oznacza wywołanie metody nazwa na obiekcie przedmiot. Wynik tego wywołania jest przypisywany do zmiennej x. Metody są funkcjami zdefiniowanymi wewnątrz obiektu które mogą wykorzystywać jego dane. Przy wywołaniu metody używamy operatora kropki do dostępu do konkretnej funkcji w obiekcie. Taki zapis jest powszechnie stosowany w programowaniu obiektowym i pozwala na wykonywanie operacji zdefiniowanych w kontekście danego obiektu. Dobre praktyki zalecają aby nazewnictwo metod było opisowe co ułatwia rozumienie kodu i jego utrzymanie przez innych programistów. Przykładem może być obiekt samochód mający metodę uruchom która po wywołaniu realizuje logikę uruchomienia samochodu. Warto również zwrócić uwagę na aspekt asynchroniczności który w JavaScript ma duże znaczenie zwłaszcza przy operacjach sieciowych gdzie często stosuje się metody zwracające obietnice. Dzięki temu zapis x = przedmiot.nazwa() jest podstawowym przykładem zastosowania programowania obiektowego w praktyce

Pytanie 30

Na ilustracji zaprezentowano koncepcję układu bloków strony internetowej. Przyjmując, że bloki są realizowane za pomocą znaczników sekcji, a szerokość jest określona tylko dla bloków 2, 3 oraz 4, ich stylowanie powinno uwzględniać właściwość

Ilustracja do pytania
A. float: left dla wszystkich bloków
B. clear: both dla bloku 5 i float: left jedynie dla bloków 2, 3 oraz 4
C. clear: both dla wszystkich bloków
D. float: left jedynie dla bloków 3 i 4 oraz clear: both dla bloku 2
Odpowiedź jest prawidłowa, ponieważ wykorzystanie float: left dla bloków 2, 3 i 4 pozwala na ich ustawienie obok siebie w poziomie. Jest to klasyczna technika stosowana w CSS do tworzenia layoutów, gdzie elementy mają płynąć obok siebie. Definiując float: left, elementy zaczynają od lewej krawędzi rodzica i układają się w linii poziomej. Użycie clear: both dla bloku 5 zapewnia, że blok ten zacznie się poniżej pływających bloków 2, 3 i 4, a nie obok nich. Clear: both jest konieczne, aby zapewnić, że blok 5 nie zostanie zakłócony przez floating, co jest powszechną praktyką przy tworzeniu wielokolumnowych layoutów. Kiedy float jest używany bez clear, może prowadzić do overlapania elementów, co jest niepożądane w strukturze layoutu. Praktyczne zastosowanie tego podejścia obejmuje układy z nagłówkiem, treścią i stopką, gdzie nagłówek i stopka powinny być pełnej szerokości, a treść podzielona na kolumny obok siebie. To podejście jest zgodne z tradycyjnymi metodami budowania stron przed wprowadzeniem flexboxa i grida, gdzie float był jednym z podstawowych narzędzi do zarządzania układem strony. Współczesne dobre praktyki wciąż uznają jego istotność, zwłaszcza w kontekście starszych projektów utrzymywanych z biegiem czasu.

Pytanie 31

Instrukcję for można zastąpić inną instrukcją

A. while
B. case
C. switch
D. continue
Odpowiedź 'while' jest poprawna, ponieważ obie instrukcje, 'for' oraz 'while', służą do iteracji, czyli powtarzania pewnego bloku kodu w określonych warunkach. Instrukcja 'for' jest najczęściej używana, gdy znamy liczbę iteracji z góry, podczas gdy 'while' pozwala na bardziej elastyczne podejście, w którym kontynuujemy wykonanie pętli, aż do spełnienia określonego warunku. Przykład zastosowania instrukcji 'while' może wyglądać następująco: int i = 0; while (i < 10) { System.out.println(i); i++; }. W tym przypadku pętla 'while' będzie kontynuować swoje działanie tak długo, jak długo i jest mniejsze od 10. W praktyce, wybór między 'for' a 'while' powinien być podejmowany na podstawie kontekstu oraz przejrzystości kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Warto również zauważyć, że w pewnych sytuacjach, takich jak przetwarzanie strumieni danych, stosowanie pętli 'while' może być bardziej intuicyjne i czytelne. Dzięki temu, programista może zachować większą kontrolę nad logiką iteracyjną, co sprzyja utrzymaniu i rozwijaniu kodu w przyszłości.

Pytanie 32

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. var wynik = liczba_max(a, b, c);
B. liczba_max(a, b, c, wynik);
C. liczba_max(a, b, c) = wynik;
D. liczba_max(a, b, c);
Prawidłowe wywołanie funkcji w języku JavaScript wymaga zrozumienia podstawowych zasad dotyczących przekazywania argumentów oraz przypisywania wartości. W kontekście podanych odpowiedzi, wiele z nich nie spełnia tych wymogów. Niewłaściwe przypisanie w postaci 'liczba_max(a, b, c, wynik);' sugeruje, że funkcja oczekuje czterech parametrów, co może być mylące. Funkcje w JavaScript przyjmują argumenty, które są przekazywane poprzez użycie odpowiednich zmiennych, a nie poprzez dodatkowe wartości, co skutkuje błędnym wywołaniem. Również wyrażenie 'liczba_max(a, b, c) = wynik;' jest niezgodne z zasadami składniowymi JavaScript, ponieważ nie można przypisywać wartości do wyniku wywołania funkcji. Takie podejście prowadzi do błędów, ponieważ zwracana wartość funkcji nie jest zmienną, a sposobem na uzyskanie wyników. Kolejna koncepcja do zrozumienia to fakt, że funkcje w JavaScript zwracają wartości, które mogą być przypisywane do zmiennych, a nie ustalane na podstawie wywołania funkcji. Typowe błędy myślowe to nieporozumienie dotyczące tego, jak działa mechanizm zwracania wartości oraz niewłaściwe założenie, że funkcje mogą zmieniać wartości zewnętrznych zmiennych bezpośrednio. Zrozumienie tych zasad jest fundamentalne w programowaniu i kluczowe dla skutecznego wykorzystania funkcji w praktycznych aplikacjach.

Pytanie 33

Który efekt został zaprezentowany na filmie?

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

Pytanie 34

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. serwer MySQL
B. serwer WWW
C. debugger JavaScript
D. przeglądarka internetowa
Zarówno serwer WWW, serwer MySQL, jak i debugger JavaScript nie są niezbędne do uruchomienia skryptu JavaScript w kontekście przeglądarki internetowej. Serwery WWW służą do hostowania stron internetowych i obsługi zapytań HTTP, jednak nie są one konieczne do uruchamiania lokalnych skryptów JavaScript. Można uruchamiać skrypty bezpośrednio w przeglądarce, co czyni serwer WWW zbędnym w tym kontekście. Z kolei serwer MySQL jest systemem zarządzania bazami danych, który nie ma nic wspólnego z interpretacją skryptów JavaScript; jego rola polega na przechowywaniu i zarządzaniu danymi, a nie na ich wykonaniu. Debugger JavaScript, mimo że jest przydatnym narzędziem dla programistów, nie jest wymagany do podstawowego uruchamiania skryptów. Debugger pomaga w analizie i naprawie błędów w kodzie, ale nie jest niezbędny do samego wykonania skryptu. W związku z tym, żadne z wymienionych narzędzi nie jest konieczne do działania podstawowego skryptu JavaScript w przeglądarkach, co podkreśla, że kluczowym elementem jest sama przeglądarka, która umożliwia interpretację i wykonanie kodu.

Pytanie 35

Tabela o nazwie naprawy zawiera kolumny: klient, czyNaprawione. Jakie polecenie należy użyć, aby wykasować rekordy, w których pole czyNaprawione ma wartość prawdziwą?

A. DELETE FROM naprawy;
B. DELETE naprawy WHERE czyNaprawione = TRUE;
C. DELETE klient FROM naprawy WHERE czyNaprawione = TRUE;
D. DELETE FROM naprawy WHERE czyNaprawione = TRUE;
Poprawna odpowiedź to 'DELETE FROM naprawy WHERE czyNaprawione = TRUE;'. To polecenie SQL jest zgodne z syntaksą używaną do usuwania rekordów z tabeli, gdzie spełniony jest określony warunek. W tym przypadku, usuwamy wszystkie rekordy z tabeli 'naprawy', dla których pole 'czyNaprawione' ma wartość TRUE. Użycie słowa kluczowego 'FROM' jest niezbędne, aby wskazać, z której tabeli chcemy usunąć dane. Przykładowo, jeśli w tabeli 'naprawy' mamy wielu klientów, z którymi nie zostały jeszcze dokonane naprawy, a chcemy zachować tylko te, które zostały zakończone, takie polecenie jest idealne. W praktyce, stosowanie takich zapytań jest istotne, aby utrzymywać bazę danych w porządku i eliminować nieaktualne informacje. Ponadto, zgodnie z dobrymi praktykami, przed wykonaniem polecenia DELETE warto wykonać zapytanie SELECT z tym samym warunkiem, aby zobaczyć, które rekordy zostaną usunięte.

Pytanie 36

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. 1,5 : 1
C. 4,5 : 1
D. 2,5 : 1
W tym pytaniu łatwo wpaść w pułapkę myślenia, że „jakikolwiek” kontrast wystarczy, by tekst był czytelny. Warto jednak oprzeć się na twardych definicjach z WCAG 2.x, a nie na subiektywnym wrażeniu, że coś „da się przeczytać”. Propozycje niższych wartości kontrastu, takich jak 1,5 : 1, 2,0 : 1 czy 2,5 : 1, odzwierciedlają typowy błąd: ocenianie czytelności tylko własnymi oczami, najczęściej osoby młodej, bez problemów ze wzrokiem, siedzącej przy dobrym monitorze i w dobrych warunkach oświetleniowych. Współczynniki zbyt niskie, rzędu 1,5 : 1 czy 2,0 : 1, oznaczają bardzo małą różnicę jasności między tekstem a tłem. Na ekranie będzie to wyglądało jak delikatne „rozmycie” tekstu w tle. Osoby z obniżonym kontrastem widzenia, z wadami refrakcji, a nawet użytkownicy korzystający ze słabszych ekranów lub w mocnym słońcu, zwyczajnie nie odczytają takiego tekstu bez dużego wysiłku. To nie jest tylko kwestia komfortu – przy dłuższej pracy może to powodować zmęczenie oczu, bóle głowy i zniechęcenie do korzystania z serwisu. Warto też zauważyć, że wartości 2,5 : 1 czasem „intuicyjnie” wydają się już całkiem niezłe, szczególnie gdy projektant przyzwyczajony jest do bardzo delikatnych, pastelowych palet. Ale WCAG 2.0 i 2.1 w kryterium 1.4.3 wyraźnie mówią: dla zwykłego tekstu poziom AA wymaga minimum 4,5 : 1. Niższe liczby mogą być stosowane tylko w określonych sytuacjach, np. dla dużego tekstu (wtedy próg 3 : 1) albo na poziomie AAA, gdzie są jeszcze ostrzejsze wymagania dla niektórych elementów. Wszelkie niższe wartości dla małego tekstu są po prostu niezgodne ze standardem. Kolejny typowy błąd myślowy to mieszanie wymagań estetycznych z wymogami dostępności. Projektanci często boją się „zbyt mocnych” kontrastów, bo wydaje im się, że interfejs będzie wyglądał zbyt ciężko, zbyt ostro. Przez to sięgają po bardzo jasne szarości albo blade kolory tekstu. Tymczasem branżowe dobre praktyki projektowania dostępnych interfejsów mówią jasno: kontrast minimum 4,5 : 1 dla podstawowego tekstu to absolutne minimum, a w wielu serwisach (np. administracja publiczna, systemy B2B używane godzinami) warto iść jeszcze wyżej. Trzymanie się zbyt niskich wartości nie tylko łamie standard WCAG, ale też realnie wyklucza część użytkowników z komfortowego korzystania z serwisu.

Pytanie 37

W HTML, aby dodać obrazek z tekstem przylegającym, umiejscowionym na środku obrazka, trzeba użyć znacznika

A. <img src="/obrazek.png" alt="obraz4">tekst
B. <img src="/obrazek.png" alt="obraz2" align="middle">tekst
C. <img src="/obrazek.png" alt="obraz3" height="50%">tekst
D. <img src="/obrazek.png" alt="obraz1" hspace="30px">tekst
Wybór niepoprawnych odpowiedzi wskazuje na niepełne zrozumienie zastosowania znaczników HTML oraz atrybutów związanych z obrazkami i tekstem. Rozważając pierwszy przypadek, użycie atrybutu hspace nie ma wpływu na środkowe umiejscowienie tekstu w pionie. Hspace, który definiuje przestrzeń poziomą wokół obrazka, jest przestarzałym atrybutem, który nie wpływa na sposób wyświetlania tekstu obok obrazka. Kolejna opcja, w której użyto atrybutu align ustawionego na 'middle', jest poprawna w kontekście pozycjonowania obrazka, jednak nie jest częścią HTML5, co czyni ją nieodpowiednią w nowoczesnych projektach. W przypadku wskazania atrybutu height ustawionego na 50%, nie wpływa on na pozycjonowanie w kontekście tekstu. Atrybut height dostosowuje tylko wysokość obrazka, ale nie reguluje jego umiejscowienia względem tekstu. Warto zrozumieć, że dla osiągnięcia zamierzonego efektu przylegania tekstu do obrazka, lepiej jest korzystać z CSS, np. z właściwości 'display: inline-block' i 'vertical-align', które oferują bardziej elastyczne i nowoczesne podejście do stylizacji i pozycjonowania elementów na stronie.

Pytanie 38

Jaką szerokość przeznaczono dla treści strony według podanej definicji CSS?

body {
   border: 2px;
   height: 600px;
   width: 560px;
}
A. 560 px
B. 640 px
C. 600 px
D. 2 px
Twoja odpowiedź jest poprawna. Szerokość strony została zdefiniowana na 560 pikseli w kodzie CSS. W kontekście strony internetowej, to oznacza, że cała zawartość strony będzie wyświetlana w obszarze o szerokości nie większej niż 560 pikseli. To jest bardzo ważne podczas projektowania stron internetowych. Szerokość strony często jest ustalana na stałą wartość, aby zapewnić spójność wyglądu strony na różnych urządzeniach. W praktyce, jeśli chcesz, aby strona była 'responsywna', szerokość powinna być ustawiona na wartość procentową, co pozwoli na dynamiczne dostosowanie się strony do rozmiaru okna przeglądarki. Jednak w niektórych sytuacjach, jak na przykład w przypadku określonego układu strony, możliwe jest użycie stałej wartości szerokości. W każdym razie, zapamiętaj, że szerokość strony jest jednym z najważniejszych aspektów przy projektowaniu stron internetowych, który ma bezpośredni wpływ na doświadczenia użytkownika.

Pytanie 39

Celem testów wydajnościowych jest ocena

A. stopnia, w jakim system lub moduł spełnia wymagania dotyczące wydajności
B. zdolności programu do funkcjonowania w sytuacjach, gdy sprzęt działa niepoprawnie
C. zdolności programu do funkcjonowania w sytuacjach, gdy system działa niepoprawnie
D. ciągu zdarzeń, w którym prawdopodobieństwo danego zdarzenia zależy tylko od wyniku zdarzenia wcześniejszego
Testy wydajnościowe są kluczowym elementem procesu zapewnienia jakości oprogramowania, mającym na celu ocenę zdolności systemu lub modułu do spełnienia określonych wymagań wydajnościowych. Ich głównym celem jest zmierzenie, jak system radzi sobie w warunkach obciążenia, a także w różnych scenariuszach użytkowania. W ramach testów wydajnościowych analizuje się takie parametry jak czas reakcji, przepustowość oraz zasoby zużywane przez aplikację. Praktycznym przykładem może być testowanie aplikacji internetowej w warunkach, gdy korzysta z niej wielu użytkowników jednocześnie, co pozwala ocenić, jak skaluje się system. W kontekście standardów, organizacje często odnoszą się do metodologii takich jak Performance Testing Framework, a także do narzędzi jak JMeter czy LoadRunner, które umożliwiają automatyzację procesu testowania. Testy te pomagają w identyfikacji wąskich gardeł, które mogą wpływać na wydajność, co przekłada się na lepsze doświadczenia użytkowników oraz minimalizację kosztów związanych z utrzymaniem systemu.

Pytanie 40

W języku HTML, aby dodać na stronę obrazek przechowywany w formacie JPG, należy użyć znacznika

A. <img>
B. <src>
C. <jpg>
D. <table>
Aby wstawić na stronę obraz zapisany w formacie JPG, w języku HTML stosuje się znacznik <img>. Jest to jeden z podstawowych znaczników używanych do osadzania grafiki na stronach internetowych. W skład tego znacznika wchodzą atrybuty, które pozwalają na określenie źródła obrazu, jego alternatywnego opisu oraz dodatkowych parametrów, takich jak rozmiary czy wyrównanie. Atrybut 'src' jest kluczowy, ponieważ wskazuje ścieżkę do pliku graficznego, na przykład <img src='obraz.jpg' alt='Opis obrazu'>. Atrybut 'alt' jest bardzo ważny z punktu widzenia dostępności, ponieważ umożliwia wyświetlenie tekstu alternatywnego w przypadku, gdy obraz nie może być załadowany. Ponadto, zgodnie z wytycznymi W3C, znacznik <img> jest samodzielny, co oznacza, że nie wymaga pary znaczników otwierającego i zamykającego. Warto również dodać, że stosowanie odpowiednich formatów obrazów, takich jak JPG czy PNG, ma znaczenie dla jakości i wydajności ładowania strony, co jest kluczowe z perspektywy SEO. Użycie poprawnych znaczników i atrybutów może znacząco wpłynąć na pozycję strony w wynikach wyszukiwania.