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: 17 kwietnia 2026 08:30
  • Data zakończenia: 17 kwietnia 2026 09:07

Egzamin niezdany

Wynik: 17/40 punktów (42,5%)

Wymagane minimum: 20 punktów (50%)

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

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. wykonanie metody obiektu napisy
B. założenie nowej klasy napis1
C. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
D. stworzenie obiektu napis1 z klasy napisy
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia procesu tworzenia obiektów w JavaScript. Propozycja zadeklarowania zmiennej i wywołania funkcji z argumentem napis1 nie odpowiada rzeczywistej funkcjonalności przedstawionego kodu. Zadeklarowanie zmiennej w JavaScript jest kluczowym krokiem, ale bez poprawnego użycia słowa kluczowego new oraz odpowiednio zdefiniowanej funkcji lub klasy nie można stworzyć instancji obiektu. Natomiast wywołanie funkcji z argumentem napis1 sugeruje, że mamy do czynienia z operacją na już istniejącym obiekcie, co nie ma miejsca w kontekście inicjalizacji obiektu. Próba wywołania metody obiektu napisy nie jest poprawna, ponieważ najpierw trzeba utworzyć instancję obiektu, a dopiero potem można wywoływać jego metody. Bez tego kroku każda próba pracy z metodami zakończy się błędem. Wreszcie, stworzenie nowej klasy napis1 byłoby sprzeczne z pokazanym kodem, ponieważ żaden element składni nie sugeruje deklaracji klasy. W języku JavaScript klasy są definiowane z użyciem słowa kluczowego class, które w analizowanym kodzie nie występuje. Zrozumienie procesu tworzenia obiektów oraz wykorzystania klas i konstruktorów w JavaScript jest fundamentalne, aby efektywnie pisać oraz zarządzać kodem w tym języku. Poprawne rozpoznanie i stosowanie tych mechanizmów pozwala na tworzenie bardziej złożonych i elastycznych aplikacji.

Pytanie 2

Ile maksymalnie znaczników <td> może być zastosowanych w tabeli, która ma trzy kolumny oraz trzy wiersze, nie zawierając przy tym złączeń komórek i wiersza nagłówkowego?

A. 9
B. 3
C. 12
D. 6
Wybór odpowiedzi, która wskazuje na inną liczbę znaczników <td> niż 9 może wynikać z nieporozumienia dotyczącego struktury tabeli. Na przykład odpowiedzi sugerujące 3, 6 lub 12 mogą wskazywać na błędną interpretację liczby komórek w tabeli. Odpowiedź 3 mogła wynikać z założenia, że chodzi o liczbę wierszy. W rzeczywistości każdy wiersz zawiera 3 komórki, co prowadzi do błędnego wniosku. Odpowiedź 6 mogła zostać wybrana przez kogoś, kto pomylił się i zinterpretował liczbę jako wierszy w tabeli, myśląc, że istnieje tylko jeden wiersz. Z kolei 12 sugeruje, że uczestnik mógł pomylić liczbę kolumn z liczbą komórek, co jest istotnym błędem koncepcyjnym. Przy tworzeniu tabel HTML ważne jest, aby pamiętać, że każdy wiersz w tabeli musi zawierać 3 komórki, co z kolei wpływa na całkowitą liczbę użytych znaczników <td>. Błędy te mogą prowadzić do nieefektywnego projektowania interfejsów, gdzie zrozumienie struktury danych w HTML jest kluczowe dla prawidłowego renderowania treści na stronach internetowych.

Pytanie 3

Tabele Osoby oraz Zainteresowania są połączone relacją jeden do wielu. Jakie zapytanie SQL należy użyć, aby w oparciu o tę relację poprawnie wyświetlić imiona i odpowiadające im hobby?

Ilustracja do pytania
A. SELECT imie, hobby FROM Osoby JOIN Zainteresowania ON Osoby.Zainteresowania_id = Zainteresowania.id;
B. SELECT imie, hobby FROM Osoby, Zainteresowania;
C. SELECT imie, hobby FROM Osoby, Zainteresowania WHERE Osoby.id = Zainteresowania.id;
D. SELECT imie, hobby FROM Osoby.Zainteresowania_id = Zainteresowania.id FROM Osoby, Zainteresowania;
Odpowiedź numer 1 jest poprawna, ponieważ wykorzystuje składnię JOIN, która jest standardowym sposobem łączenia dwóch tabel w SQL. W tym przypadku tabele Osoby i Zainteresowania są połączone za pomocą klucza obcego Osoby.Zainteresowania_id, który odwołuje się do klucza głównego w tabeli Zainteresowania. Dzięki użyciu klauzuli ON możemy precyzyjnie określić warunek łączenia tych tabel. Takie podejście jest zgodne z dobrymi praktykami projektowania baz danych, ponieważ pozwala na efektywne zarządzanie relacjami między danymi. Stosowanie JOIN umożliwia również ograniczenie wyniku do konkretnych wierszy, co zwiększa wydajność zapytań. Praktyczne zastosowanie tego rodzaju zapytań obejmuje różne systemy zarządzania danymi, gdzie konieczne jest pobieranie powiązanych informacji z wielu źródeł danych. Warto również pamiętać, że JOIN-y są ustandaryzowanym elementem języka SQL, co gwarantuje ich poprawne działanie w różnych systemach bazodanowych, takich jak MySQL, PostgreSQL czy Oracle SQL. W kontekście relacyjnych baz danych stanowią one fundament w optymalizacji i organizacji danych, co jest kluczowe dla profesjonalistów z branży IT.

Pytanie 4

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 5

Poniżej przedstawiono fragment kodu w języku PHP. Jakie liczby wypisze ta pętla jako wynik swojego działania?

for ($i = 0; $i <= 20; $i += 4)
echo $i . ' ';
A. 0,4,8,12,16,20
B. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
C. 0,4,8,12,16
D. 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
Kiedy patrzymy na ten kod pętli for, musimy zrozumieć, jak działają trzy ważne rzeczy: co się dzieje na początku, jaki jest warunek do dalszego działania i jak zmieniamy naszą zmienną. W tym przypadku pętla zaczyna od 0 i dodaje 4, aż dojdzie do 20. Czasem błędne odpowiedzi wynikają z tego, że nie do końca rozumiemy, jak działa ten warunek, albo z jaką wartością inkrementujemy. Często myślimy, że pętla skończy się przed 20, a to nie jest prawda. Inną pułapką jest zrozumienie, że dodawanie 4 to nie to samo, co branie wszystkich liczb od 0 do 20. Dobrze jest znać zasady działania pętli for, bo to pomaga w rozwiązywaniu problemów w programowaniu i sprawia, że kod działa lepiej. Przy budowaniu takich pętli pamiętajmy o precyzyjnym definiowaniu warunków i tego, jak zmieniamy wartości, bo to ważne dla uzyskania wyników, które chcemy.

Pytanie 6

Jaką cechę wyróżnia format PNG?

A. kompresję bezstratną
B. możliwość obsługi animacji
C. niedostępność kanału alfa
D. możliwość reprezentacji grafiki wektorowej
Format PNG (Portable Network Graphics) jest znany przede wszystkim z bezstratnej kompresji, co oznacza, że pliki zapisane w tym formacie zachowują pełną jakość oryginalnych obrazów, niezależnie od ich rozmiaru. Bezstratna kompresja w PNG polega na tym, że dane obrazów są redukowane w sposób, który nie prowadzi do utraty jakichkolwiek informacji, co czyni go idealnym wyborem dla grafik wymagających wysokiej jakości, takich jak logo, ilustracje czy zdjęcia z przezroczystością. Przy zapisywaniu obrazu w formacie PNG, algorytm kompresji analizuje dane pikseli i stosuje różne techniki, takie jak kodowanie LZ77 i filtracja, aby zmniejszyć rozmiar pliku bez degradacji jakości. Dzięki temu, użytkownicy mogą swobodnie edytować i ponownie zapisywać obrazy PNG bez obaw o pogorszenie jakości. Format ten obsługuje również kanał alfa, co pozwala na uzyskiwanie przezroczystości w obrazach, co jest niezwykle istotne w projektowaniu graficznym i web designie. PNG stał się standardem w branży, potwierdzonym przez organizację W3C oraz powszechnie używany w Internecie, zwłaszcza w kontekście grafiki na stronach internetowych.

Pytanie 7

Jakie zapytanie umożliwi Administratorowi odebranie uprawnień do przeglądania oraz edytowania danych w bazie gazeta, dla użytkownika redaktor?

A. REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost';
B. REVOKE SELECT, UPDATE ON gazeta.* FROM 'redaktor'@'localhost';
C. GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost';
D. GRANT SELECT, ALTER ON gazeta.* TO 'redaktor'@'localhost';
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ mylą pojęcie przyznawania i odbierania uprawnień. Na przykład, odpowiedź z użyciem GRANT SELECT, UPDATE ON gazeta.* TO 'redaktor'@'localhost'; jest błędna, ponieważ GRANT służy do przyznawania uprawnień, a nie ich odbierania. Użytkownik, który rozważa tę opcję, może mieć fałszywe przekonanie, że jest możliwe przypisanie uprawnień w sytuacji, gdy celem jest ich cofnięcie. Podobnie, odpowiedzi zawierające ALTER, jak REVOKE SELECT, ALTER ON gazeta.* FROM 'redaktor'@'localhost'; wprowadzają dodatkowy zamęt, ponieważ ALTER nie jest związane z przeglądaniem lub aktualizowaniem danych, ale odnosi się do modyfikacji struktury bazy danych. Błędne rozumienie różnic między SELECT, UPDATE i ALTER może prowadzić do poważnych problemów w zarządzaniu bazą danych, na przykład do nieautoryzowanych zmian w strukturze danych. Użytkownicy mogą także popełniać błąd w zakresie lokalizacji użytkownika, co w przypadku odpowiedzi jest określone jako 'redaktor'@'localhost';, co może być mylące w sytuacji, gdy użytkownik jest przypisany do innego hosta. Właściwe zrozumienie i stosowanie uprawnień w bazach danych jest fundamentalne dla ochrony danych, a także dla zapewnienia, że tylko uprawnieni użytkownicy mają dostęp do krytycznych informacji.

Pytanie 8

Która z reguł dotyczących sekcji w języku HTML jest poprawna?

A. W sekcji <head> można zdefiniować szablon strony przy użyciu znaczników <div>
B. W sekcji <head> mogą znajdować się znaczniki <meta>, <title>, <link>
C. W sekcji <head> nie można umieszczać kodu CSS, jedynie odwołanie do pliku CSS
D. W sekcji <head> umieszcza się część <body>
Nieprawidłowe odpowiedzi zawierają koncepcje, które nie są zgodne z zasadami tworzenia struktury dokumentu HTML. W części <head> nie definiuje się szablonu strony za pomocą znaczników <div>, ponieważ znaczniki <div> są przeznaczone do strukturyzacji zawartości, a ich miejsce znajduje się w części <body>. Umieszczanie <div> w sekcji <head> jest niezgodne z semantyką HTML i nie wnosi żadnych korzyści, ponieważ przeglądarki ignorują takie znaczniki w kontekście interpretacji zawartości strony. Również nie jest poprawne stwierdzenie, że część <head> ma zawierać część <body>, ponieważ każda z tych sekcji pełni swoją unikalną rolę – <head> dostarcza metadanych, podczas gdy <body> zawiera widoczną treść strony. Dodatkowo, umieszczanie kodu CSS w <head> nie jest błędem; wręcz przeciwnie, stosowanie odwołania do zewnętrznego pliku CSS w tej sekcji jest standardową praktyką, która umożliwia organizację kodu oraz jego łatwiejszą obsługę i aktualizację. Ważne jest, aby dobrze zrozumieć, że część <head> służy do określenia ogólnych właściwości dokumentu, podczas gdy <body> zapewnia miejsce dla wszystkich elementów, które użytkownik widzi na stronie. Pojawiające się tutaj nieporozumienia często wynikają z braku zrozumienia struktury HTML oraz jej semantyki, co może prowadzić do niskiej jakości kodu i problemów z renderowaniem strony.

Pytanie 9

Polecenie w języku SQL w formie ALTER TABLE 'miasta' ADD 'kod' text?

A. w tabeli miasta modyfikuje nazwę kolumny kod na text
B. zmienia nazwę tabeli miasta na kod
C. dodaje do tabeli dwie kolumny o nazwach: kod i text
D. wprowadza do tabeli nową kolumnę o nazwie kod typu text
Polecenie ALTER TABLE w języku SQL jest używane do modyfikacji istniejących tabel w bazie danych. W tym przypadku, zapytanie ALTER TABLE 'miasta' ADD 'kod' text; dodaje nową kolumnę o nazwie 'kod' typu tekstowego do tabeli 'miasta'. Typ 'text' w SQL jest używany do przechowywania dużych łańcuchów tekstowych, co czyni go idealnym wyborem, gdy dane w tej kolumnie mogą być różnej długości. Poprawne użycie znaków apostrofu w tym kontekście (zamiast cudzysłowów) jest istotne, ponieważ w niektórych systemach baz danych, takich jak MySQL, apostrofy są używane do definiowania nazw tabel i kolumn. Przy dodawaniu kolumn warto również pamiętać o możliwościach modyfikacji, takich jak określenie wartości domyślnych lub ograniczeń dla nowej kolumny. W praktyce, po wykonaniu tego polecenia, każda istniejąca linia w tabeli 'miasta' będzie miała nową kolumnę 'kod', w której wartości będą domyślnie NULL, dopóki nie zostaną one uzupełnione. Ważne jest, aby przed wykonaniem takich operacji zawsze robić kopie zapasowe danych, aby uniknąć ich utraty.

Pytanie 10

Zastosowanie poniższej kwerendy SQL spowoduje usunięcie

DELETE FROM mieszkania WHERE status=1;
A. tabeli mieszkania z systemu baz danych
B. tabel, w których pole status ma wartość 1, z bazy danych mieszkania
C. pola o nazwie status w tabeli mieszkania
D. rekordów, dla których pole status ma wartość 1, z tabeli mieszkania
Odpowiedź, którą zaznaczyłeś, jest jak najbardziej trafna i dotyczy działania kwerendy SQL, szczególnie polecenia DELETE. W tym przypadku, to DELETE FROM mieszkania WHERE status=1 oznacza, że zamierzamy usunąć wszystkie rekordy z tabeli mieszkania, gdzie status jest równy 1. To jest ważne, bo w zarządzaniu bazami danych kluczowe jest precyzyjne ustalenie, które dane chcemy usunąć. Z mojej perspektywy, przed wykonaniem takiej operacji warto najpierw wykonać zapytanie SELECT z tymi samymi warunkami, żeby zobaczyć, co dokładnie usuniemy. Przykład? Możesz chcieć usunąć mieszkania, które są zarezerwowane lub niedostępne, co może być oznaczone statusem 1. To naprawdę dobra praktyka, bo pozwala na lepsze zarządzanie danymi i na utrzymanie porządku w bazie. A wiesz, co jeszcze? Zawsze warto zrobić kopię zapasową danych przed masowym usuwaniem, żeby nie stracić czegoś ważnego.

Pytanie 11

W formularzu dokumentu PHP znajduje się pole <input name="im">. Po tym, jak użytkownik wprowadzi ciąg znaków "Janek", aby dodać zawartość tego pola do bazy danych, w tablicy $_POST obecny jest element

A. Janek o indeksie im
B. Janek z następnym numerem indeksu
C. im z indeksem Janek
D. im z następnym numerem indeksu
Poprawna odpowiedź to "Janek o indeksie im", ponieważ w PHP, gdy formularz jest przesyłany, wartości pól formularza są przekazywane do tablicy globalnej $_POST, gdzie kluczami są nazwy pól, a wartościami są dane wprowadzone przez użytkownika. W przypadku pola <input name="im">, po wprowadzeniu przez użytkownika ciągu "Janek", w tablicy $_POST pojawi się element, w którym klucz to "im", a wartość to "Janek". Zgodnie z dobrymi praktykami programistycznymi, nazwy pól powinny być zrozumiałe i znaczące, co ułatwia późniejsze przetwarzanie danych. Przykładem może być sytuacja, w której tworzymy formularz rejestracyjny; odpowiednie nazewnictwo pól, takich jak "im" dla imienia, poprawia czytelność kodu oraz jego konserwowalność. Warto dodać, że dobrym zwyczajem jest również walidacja danych przed ich przetworzeniem, aby zapewnić bezpieczeństwo aplikacji oraz uniknąć potencjalnych ataków, takich jak SQL Injection.

Pytanie 12

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

1. if (a < b)
2. document.write(a);
3. document.write(" jest mniejsze");
4. else
5. document.write(b);
6. document.write(" jest mniejsze");
A. umieścić znaki $ przed nazwami zmiennych
B. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowach
C. w liniach 3 i 6 zamienić znaki cudzysłowu na apostrof, np. ' jest mniejsze'
D. dodać nawiasy klamrowe w sekcjach if oraz else
Wstawienie nawiasów klamrowych do sekcji 'if' oraz 'else' jest kluczowe dla prawidłowego działania kodu w JavaScript. Kiedy nie używamy nawiasów klamrowych, język domyślnie interpretuje tylko jedną linię jako część bloku 'if' lub 'else'. W sytuacji, gdy mamy więcej niż jedną operację do wykonania w ramach tego samego warunku, brak nawiasów prowadzi do błędów wykonania. Przykład: jeśli chcemy wyświetlić komunikat oraz wartość zmiennej 'a', musimy objąć te operacje nawiasami klamrowymi. Warto również pamiętać, że korzystanie z nawiasów klamrowych zwiększa czytelność kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Stosowanie tej zasady pozwala unikać niejednoznaczności i potencjalnych błędów w logicznych blokach kodu. Dodatkowo, pomocne jest testowanie kodu w środowiskach, które wyłapują błędy syntaktyczne, co ułatwia wczesne wykrywanie problemów.

Pytanie 13

Które z poniższych stwierdzeń dotyczy skalowania obrazu?

A. Powoduje zmianę wymiarów obrazu bez modyfikacji istotnej zawartości wizualnej
B. Łączy lub odejmuje figury
C. Polega na modyfikacji sposobu zapisu obrazu, aby zmienić metodę kompresji
D. Powoduje wycięcie określonego fragmentu z pierwotnego obrazu w celu uzyskania lepszego widoku
Skalowanie obrazu to proces, który polega na zmianie jego rozmiaru, zachowując przy tym kluczowe elementy wizualne. Istotne jest, aby w trakcie skalowania nie doszło do zniekształcenia ważnych detali czy proporcji obrazu. W praktyce, stosowanie algorytmów interpolacji, takich jak biliniowa czy bikubiczna, pozwala na uzyskanie wysokiej jakości powiększeń lub pomniejszeń obrazów, co jest fundamentem w grafice komputerowej, projektowaniu stron internetowych oraz w fotografii cyfrowej. Dzięki odpowiednim technikom, możemy skalować zdjęcia do różnych rozmiarów bez utraty istotnych informacji, co jest niezwykle ważne w kontekście przygotowywania materiałów do druku lub publikacji online. Dobrze wykonane skalowanie obrazu zapewnia estetyczny wygląd i zgodność z wymogami technicznymi, co jest kluczowe w mediach, marketingu i projektowaniu graficznym.

Pytanie 14

Ikona funkcji w edytorze grafiki rastrowej oznaczona jako „różdżka” pozwala na

Ilustracja do pytania
A. wybiórcze nakładanie koloru przy użyciu pędzla
B. ręczne zaznaczanie fragmentów poprzez przeciąganie kursora
C. zaznaczenie obszaru w oparciu o kolor
D. wybranie konkretnego koloru i ustawienie go jako aktywnego
Pierwsza odpowiedź sugeruje, że narzędzie różdżki służy do rozsmarowywania koloru za pomocą pędzla, co jest nieprawidłowym zrozumieniem jego funkcji. Rozsmarowywanie koloru to technika, która zwykle wykorzystuje narzędzie smudge, które jest przeznaczone do symulacji efektu fizycznego rozmazywania farby na płótnie. Różdżka nie ma tej zdolności, jej działanie opiera się na zaznaczaniu pikseli o zbliżonej kolorystyce. Odręczne zaznaczanie obszarów przez przeciąganie kursora, jak to opisano w drugiej odpowiedzi, jest zadaniem wykonywanym przez narzędzie lasso lub pióro. Różdżka działa automatycznie na podstawie koloru, nie wymaga ręcznego prowadzenia kursora po krawędziach obszaru. Czwarta odpowiedź odnosi się do funkcji pipety, która służy do pobierania koloru z obrazu i ustawiania go jako aktywnego do dalszego użytku w projekcie. Różdżka nie modyfikuje aktywnego koloru, ale pomaga w identyfikacji i zaznaczeniu obszarów o podobnej kolorystyce w celu ich edycji. Błędne postrzeganie tych funkcji często wynika z nieuwagi lub braku zrozumienia specyfiki narzędzi graficznych, co jest kluczowe w profesjonalnej pracy z obrazami i wymaga jasnego zrozumienia różnic oraz zastosowań poszczególnych narzędzi w edytorze graficznym. Aby unikać takich nieporozumień, zaleca się regularną praktykę oraz zapoznanie się z dokumentacją i tutorialami dotyczącymi używanego oprogramowania graficznego, co pozwoli na bardziej efektywne wykorzystanie potencjału dostępnych narzędzi.

Pytanie 15

W języku CSS przedstawione w ramce stylizacje będą miały następujące zastosowanie. Kolorem czerwonym zostanie zapisany

h1 i {color: red;}
A. jedynie tekst pochylony w nagłówku pierwszego stopnia
B. pełny tekst nagłówka pierwszego stopnia oraz cały tekst pochylony, bez względu na jego lokalizację na stronie
C. wyłącznie tekst pochylony we wszystkich nagłówkach
D. kompletny tekst nagłówka pierwszego stopnia oraz pochylony tekst akapitu
W przypadku analizowania podejść do formatowania w CSS, ważne jest zrozumienie, jak działają selektory. W analizowanym kodzie CSS 'h1 i' oznacza selektor złożony, który odnosi się wyłącznie do elementu <i> zagnieżdżonego w <h1>. Nie jest prawdą, że selektor ten wpłynie na wszystkie poziomy nagłówków, ponieważ jest on ograniczony do <h1>. Błędne rozumienie struktury selektorów często prowadzi do niewłaściwego stosowania stylów, co jest powszechnym problemem wśród początkujących. Również stwierdzenie, że cały tekst nagłówka <h1> będzie czerwony jest błędne, ponieważ selektor 'h1 i' dotyczy tylko zagnieżdżonego tekstu pochylonego. Wreszcie, twierdzenie, że cały tekst pochylony na stronie zmieni kolor jest błędne, ponieważ selektor jest specyficzny dla kontekstu nagłówka <h1>. Takie błędy mogą prowadzić do nieprzewidywalnych wyników i trudności w utrzymaniu spójności stylistycznej na stronie, dlatego zrozumienie i odpowiednie stosowanie selektorów złożonych i zagnieżdżonych jest kluczowe w profesjonalnym projektowaniu stron internetowych.

Pytanie 16

Które z pojęć programowania obiektowego w języku JavaScript odnosi się do dostępu do pól i metod jedynie z poziomu klasy, w której zostały one zadeklarowane?

A. public
B. static
C. const
D. private
Użycie słowa kluczowego 'const' w języku JavaScript odnosi się do deklaracji stałych, a nie do poziomu dostępu do pól i metod w klasach. 'const' pozwala na tworzenie zmiennych, których wartości nie mogą być zmieniane, co może prowadzić do nieporozumień w kontekście obiektowości. W rzeczywistości stałe są dostępne w zasięgu bloku, w którym zostały zadeklarowane, co nie ma związku z dostępem do pól i metod klas. Z kolei 'public' to słowo kluczowe, które oznacza, że pola i metody są dostępne z zewnątrz klasy, co stoi w kontraście do prywatnych elementów. Często programiści mylą te dwa podejścia, co prowadzi do błędów w projektowaniu systemów, które wymagają ukrycia implementacji. Dodatkowo, 'static' odnosi się do pól i metod, które są powiązane z klasą, a nie z instancją obiektu. Oznacza to, że takie elementy można wywoływać bez tworzenia instancji klasy. Jest to przydatne w sytuacjach, gdy nie zachodzi potrzeba operowania na danych instancji. Przy wyborze odpowiednich słów kluczowych kluczowe jest zrozumienie ich roli w kontekście obiektowym oraz ich wpływu na architekturę systemu. Dlatego warto przywiązywać wagę do technicznych niuansów, aby unikać typowych pułapek związanych z dostępem do danych.

Pytanie 17

Który atrybut należy dodać do znacznika <video>, aby wyciszyć dźwięk odtwarzanego w przeglądarce filmu?

<video>
    <source src="film.mp4" type="video/mp4">
</video>
A. muted
B. controls
C. loop
D. autoplay
Twoja odpowiedź jest poprawna. Atrybut 'muted' jest używany w znaczniku <video>, aby wyłączyć dźwięk dla filmu wyświetlanego w przeglądarce. Jest to sposób na sterowanie dźwiękiem bez konieczności korzystania z dodatkowych elementów kontrolujących odtwarzanie filmu. Jest to bardzo przydatne, gdy chcemy, aby film był odtwarzany w tle bez zakłócania użytkownika dźwiękiem, co jest często stosowane na stronach internetowych. Ważne jest to, że to atrybut 'muted' jest odpowiedzialny za początkowy stan dźwięku filmu, a nie za to, czy użytkownik będzie mógł go później włączyć. Dodatkowo, dobrą praktyką jest pozostawienie użytkownikowi możliwości sterowania dźwiękiem, nawet jeśli jest on domyślnie wyłączony, co można osiągnąć dodając atrybut 'controls'.

Pytanie 18

Aplikacja o nazwie FileZilla umożliwia

A. sprawdzanie poprawności plików HTML i CSS
B. publikację strony internetowej na zdalnym serwerze
C. importowanie bazy danych do systemu CMS Joomla!
D. przeprowadzanie testów aplikacji
Niektóre z wymienionych odpowiedzi zawierają powszechne nieporozumienia dotyczące funkcji i zastosowania programu FileZilla. Na przykład, uruchamianie testów aplikacji to zadanie, które zazwyczaj wykonuje się za pomocą środowisk programistycznych czy frameworków testowych, a nie klientów FTP jak FileZilla. Klient FTP koncentruje się na transferze plików, a nie na testowaniu kodu. Również walidacja plików HTML i CSS to proces związany z zapewnieniem poprawności kodu, często realizowany za pomocą dedykowanych narzędzi jak W3C Validator, a nie przez klienta FTP, który nie zajmuje się analizą poprawności kodu. Co więcej, załadowanie bazy danych do systemu zarządzania treścią (CMS) takiego jak Joomla! wymaga użycia innych narzędzi, takich jak phpMyAdmin, które są specjalnie zaprojektowane do zarządzania bazami danych. FileZilla nie jest odpowiednie do tego celu, ponieważ jego funkcjonalność ogranicza się do przesyłania plików, a nie interakcji z bazą danych. Często mylenie tych funkcji wynika z niepełnego zrozumienia roli, jaką różne narzędzia odgrywają w procesie tworzenia i zarządzania stronami internetowymi. Kluczowe jest zrozumienie, że każdy program ma swoje przeznaczenie i zastosowanie, a skuteczne zarządzanie projektami internetowymi wymaga używania odpowiednich narzędzi do konkretnych zadań.

Pytanie 19

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. nie zwracającą wyniku.
B. bezparametrową.
C. rekurencyjną.
D. abstrakcyjną.
Kod przedstawia funkcję `silnia($liczba)` w PHP, która oblicza silnię liczby naturalnej. Kluczową cechą tej funkcji jest to, że wewnątrz swojego ciała wywołuje samą siebie: `silnia($liczba - 1)`. To właśnie sprawia, że jest to funkcja rekurencyjna, a nie żadna z pozostałych podanych opcji. Warto zrozumieć, skąd mogą brać się błędne skojarzenia. Niektórzy patrzą na definicję i myślą, że skoro funkcja ma prostą postać, to może jest „bezparametrowa”. Tymczasem funkcja bezparametrowa to taka, która nie przyjmuje żadnych argumentów, np. `function test(){ ... }`. Tutaj mamy wyraźnie zdefiniowany parametr `$liczba`, który jest używany w warunku `if($liczba < 2)` oraz w obliczeniach, więc nie ma mowy o braku parametrów. Pojawia się też czasem mylne przekonanie, że skoro funkcja „coś robi”, to może nie musi zwracać wyniku. W tym przykładzie jasno widać słowo kluczowe `return` użyte w obu gałęziach instrukcji warunkowej: najpierw `return 1;`, a potem `return $liczba * silnia($liczba - 1);`. To jest funkcja, która zwraca konkretną wartość liczbową – wynik obliczenia silni – a nie funkcja typu „procedura”, która tylko wykonuje efekt uboczny. W PHP dobra praktyka jest taka, żeby funkcje obliczeniowe zawsze coś zwracały, zamiast np. tylko wypisywać dane na ekran. Opcja „abstrakcyjna” również nie pasuje do tego przykładu. Pojęcie funkcji abstrakcyjnej wiąże się z programowaniem obiektowym, klasami abstrakcyjnymi i interfejsami, gdzie definiujemy metodę bez implementacji (w PHP np. `abstract public function foo();`). Tutaj mamy zwykłą, w pełni zaimplementowaną funkcję globalną, bez słowa kluczowego `abstract` i bez kontekstu klasy. Z mojego doświadczenia często problem bierze się z mieszania pojęć: ktoś kojarzy abstrakcję z „czystą matematyką” silni i automatycznie myśli „abstrakcyjna funkcja”, ale w terminologii PHP to zupełnie coś innego. Poprawne rozpoznanie rekurencji wymaga zwrócenia uwagi tylko na jedną rzecz: czy funkcja wywołuje samą siebie i czy ma warunek końca. Tutaj oba te elementy są obecne, więc jedynym poprawnym opisem jest właśnie funkcja rekurencyjna.

Pytanie 20

Aby zdefiniować styl akapitu <p>, który występuje bezpośrednio po znaczniku <img>, należy w arkuszu stylów CSS zastosować związek

A. img + p
B. img > p
C. img [p]
D. img p
W tym zadaniu chodzi o zrozumienie tzw. kombinatorów w CSS, czyli znaków łączących selektory i określających relacje między elementami w drzewie DOM. Bardzo często mylenie tych relacji prowadzi do dokładnie takich błędnych odpowiedzi jak w tym pytaniu. Zapis „img p” to selektor potomka (descendant selector). Oznacza on: wybierz każdy element <p>, który znajduje się gdziekolwiek wewnątrz elementu <img>. Problem w tym, że w poprawnym HTML znacznik <img> jest pustym elementem, nie może mieć dzieci. W praktyce więc taki selektor nigdy nie zadziała w opisanym scenariuszu. To typowe nieporozumienie: ktoś myśli „obok obrazka jest paragraf, więc napiszę img p”, ale CSS rozumie to jako relację rodzic–potomek, a nie rodzeństwo. Z kolei zapis „img [p]” wynika zwykle z pomieszania składni selektorów atrybutów z selektorami elementów. Nawiasy kwadratowe w CSS służą do wybierania elementów na podstawie atrybutów, np. a[href], input[type="text"]. Konstrukcja [p] sugerowałaby atrybut o nazwie „p”, co w ogóle nie ma sensu w tym kontekście. Taka składnia jest po prostu niepoprawna merytorycznie, bo nie opisuje żadnej realnej relacji między <img> a <p>. Natomiast „img > p” to selektor dziecka (child combinator). Mówi on: wybierz elementy <p>, które są bezpośrednimi dziećmi elementu <img>. To znowu kłóci się z modelem HTML – obrazek nie może zawierać w sobie paragrafu. Ten selektor ma sens np. przy div > p, ale zupełnie nie pasuje do relacji „element po elemencie”. W tym zadaniu potrzebna jest relacja rodzeństwa: akapit stoi obok obrazka, a nie w środku. Prawidłowe podejście opiera się na zrozumieniu, że chcemy „bezpośredniego sąsiada” na tym samym poziomie, a nie potomka czy dziecka. Właśnie to zapewnia selektor sąsiedniego rodzeństwa, czyli konstrukcja z plusem. Typowy błąd myślowy polega na tym, że patrzymy na wygląd strony (obrazek nad akapitem) i nie analizujemy prawdziwej struktury DOM. Dobra praktyka frontendowa to zawsze przełożyć układ na dokładne relacje: rodzic–dziecko, przodek–potomek, rodzeństwo. Dopiero potem dobrać odpowiedni kombinator w CSS. Jeśli chcemy stylować element „bezpośrednio po”, używamy właśnie selektora z +, a nie spacji czy znaku >.

Pytanie 21

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

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

Pytanie 22

Skrypt PHP wyświetla aktualny czas w formacie godzina:minuta:sekunda, na przykład 15:38:20. Czas w tym formacie zostanie uzyskany dzięki funkcji

A. time("G:m:s");
B. date("G:m:s");
C. date("H:i:s");
D. time("H:i:s");
Wybór time("H:i:s") jako metody zwracającej aktualny czas w pożądanym formacie jest błędny, ponieważ funkcja time() nie formatuje daty ani czasu. Zamiast tego, time() zwraca czas w postaci znacznika czasu (timestamp) – liczby sekund, które upłynęły od 1 stycznia 1970 roku, co jest znane jako Unix Epoch. Dlatego wywołanie time("H:i:s") nie zadziała, ponieważ ta funkcja nie akceptuje parametrów formatujących. Kolejną nieprawidłową odpowiedzią jest date("G:m:s"). Chociaż funkcja date() jest stosowana do formatowania czasu, pole 'G' zwraca godziny w 24-godzinnym formacie, ale bez wiodących zer (tak jak 'H'), co może prowadzić do niepoprawnego wyświetlania godzin mniejszych niż 10. Dodatkowo, 'm' odnosi się do miesięcy, a nie minut, co czyni to podejście błędnym we wszystkich aspektach. Wreszcie, w odpowiedzi time("G:m:s") ponownie pojawia się problem ze zrozumieniem funkcji time(), która nie jest używana do formatowania czasu, a zamiast tego służy tylko do uzyskania znacznika czasu. Typowe błędy myślowe związane z tymi odpowiedziami obejmują mylenie funkcji do pozyskiwania danych z funkcjami do ich formatowania oraz niepełne zrozumienie składni i możliwości dostępnych funkcji PHP. Rekomenduje się zawsze dokładne zapoznanie się z dokumentacją PHP oraz praktyczne testowanie funkcji w różnych scenariuszach, aby lepiej zrozumieć ich zastosowanie i ograniczenia.

Pytanie 23

W CSS jednostką miary, która jest wyrażona w punktach edytorskich, oznaczana jest symbolem

A. px
B. em
C. in
D. pt
Jednostki 'em', 'px' oraz 'in' nie są związane z punktami edytorskimi, co czyni je nieodpowiednimi w tym kontekście. 'em' jest jednostką miary, która jest zależna od rozmiaru czcionki elementu nadrzędnego. To oznacza, że wartość '1em' odpowiada rozmiarowi czcionki zastosowanemu w danym kontekście. Używanie 'em' jest korzystne w przypadku responsywnego projektowania, ponieważ pozwala na skalowanie elementów w zależności od rozmiaru tekstu. Z kolei 'px', czyli piksel, to jednostka miary, która jest niezależna od rozmiaru czcionki i oznacza stałą wartość wyrażoną w pikselach. W świecie web designu, 'px' jest często preferowane ze względu na swoją przewidywalność i prostotę. Ostatnią z jednostek, 'in', oznacza cale i jest rzadko wykorzystywana w CSS, ponieważ jest bardziej związana z drukiem i rzadko stosowana w kontekście nawigacji webowej. W kontekście druku takie jednostki jak 'in' mogą być użyteczne, jednak w projektowaniu stron internetowych ich zastosowanie jest ograniczone. Każda z wymienionych jednostek ma swoje zastosowanie, ale nie można ich stosować zamiennie z 'pt', która jest jednoznacznie związana z punktami edytorskimi.

Pytanie 24

Jakie słowo kluczowe wykorzystuje się do deklaracji zmiennej w języku JavaScript?

A. variable
B. instanceof
C. var
D. new
W JavaScript, żeby zadeklarować zmienną, używa się słowa 'var'. To jeden z najważniejszych elementów tego języka. Używając 'var', tworzysz zmienną, która może mieć zasięg tylko w danej funkcji albo być dostępna globalnie, w zależności od tego, jak ją zadeklarujesz. Jeśli na przykład napiszesz 'var x = 10;', to stworzysz zmienną 'x' i przypiszesz jej wartość 10. Warto jednak zauważyć, że od momentu, gdy wprowadzono ES6, zaleca się używanie 'let' oraz 'const' do deklaracji zmiennych, bo są bardziej przewidywalne, zwłaszcza jeśli chodzi o zasięg zmiennych (block scope). Mimo to, 'var' wciąż można spotkać w wielu starych projektach i dobrze jest znać to słowo, żeby lepiej rozumieć, jak działa JavaScript. Fajnie jest ograniczać 'var' na rzecz 'let' i 'const', bo dzięki temu kod staje się bardziej przejrzysty i łatwiejszy do ogarnienia w większych projektach.

Pytanie 25

Podaj nazwę Systemu Zarządzania Treścią, którego logo jest pokazane na dołączonym rysunku?

Ilustracja do pytania
A. MediaWiki
B. WordPress
C. Drupal
D. Joomla!
Drupal WordPress i MediaWiki to również popularne systemy zarządzania treścią jednak różnią się one znacząco od Joomla! pod względem funkcjonalności i przeznaczenia. Drupal to zaawansowany CMS często wybierany do dużych i złożonych projektów które wymagają wysokiego poziomu personalizacji i rozbudowanej struktury danych. Z kolei WordPress początkowo rozwinięty jako platforma bloggingowa jest obecnie najczęściej używanym systemem CMS na świecie dzięki prostocie użycia i szerokiej gamie wtyczek co czyni go idealnym narzędziem do tworzenia blogów i mniejszych stron biznesowych. MediaWiki natomiast to oprogramowanie stworzone z myślą o prowadzeniu wiki co sprawia że jest świetnym narzędziem do gromadzenia i organizacji wiedzy w formie stron edytowanych przez wielu użytkowników ale nie jest to narzędzie o szerokim zastosowaniu w kontekście typowych stron internetowych. Często popełnianym błędem jest zakładanie że wszystkie CMS-y pełnią te same funkcje podczas gdy każdy z nich ma swoje unikalne cechy i zastosowania. Wybór systemu powinien być uzależniony od specyficznych wymagań projektu oraz oczekiwań dotyczących funkcjonalności i skalowalności. Rozpoznawanie logo poszczególnych CMS-ów jest praktyczną umiejętnością pomocną w identyfikacji właściwego narzędzia dla określonej potrzeby projektowej co jest istotne dla profesjonalistów z branży web developmentu. Zrozumienie różnic między tymi systemami pozwala na trafniejsze podejmowanie decyzji projektowych i efektywne wykorzystanie dostępnych technologii.

Pytanie 26

Jaką wartość wyświetli standardowe wyjście dla podanego w ramce fragmentu kodu w języku C++?

Ilustracja do pytania
A. 0
B. 2
C. 32
D. 3
W analizowanym fragmencie programu funkcja obliczenia modyfikuje swój argument x poprzez operację x %= 3 co oznacza że oblicza resztę z dzielenia x przez 3. W przypadku x równego 32 reszta z dzielenia przez 3 wynosi 2. Następnie instrukcja x++ zwiększa wartość x o 1 co daje wynik końcowy równy 3. Wiedza o operatorach arytmetycznych takich jak % oraz o inkrementacji ++ jest kluczowa przy programowaniu w C++. Operator % jest powszechnie używany do określania parzystości liczb lub cyklicznych wzorców w algorytmach. Zrozumienie jak te operacje wpływają na przepływ danych w programie pozwala unikać błędów logicznych i poprawiać wydajność kodu. Inkrementacja jest również istotna w wielu strukturach sterujących takich jak pętle co czyni ją niezbędnym elementem w rozwiązywaniu problemów algorytmicznych. Tego typu operacje są fundamentem w standardach programowania ponieważ pozwalają na precyzyjne kontrolowanie wartości zmiennych w trakcie wykonywania programów. Warto ćwiczyć te koncepcje aby w pełni wykorzystać potencjał języka C++ szczególnie w kontekście optymalizacji i wydajności aplikacji.

Pytanie 27

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

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

Pytanie 28

W jaki sposób zostanie uporządkowana lista, stworzona z wszystkich kolumn tabeli uczniowie, zawierająca uczniów z średnią powyżej 5, która zostanie zwrócona jako rezultat przedstawionego zapytania?

Ilustracja do pytania
A. Rosnąco według parametru klasa
B. Rosnąco według parametru srednia
C. Malejąco według parametru klasa
D. Malejąco według parametru srednia
Sortowanie listy wynikowej w SQL jest kluczową operacją, wpływającą na prezentację danych użytkownikowi końcowemu. W kontekście przedstawionego pytania, kluczowym elementem było zrozumienie różnicy między sortowaniem rosnącym a malejącym. Odpowiedzi sugerujące sortowanie według parametru średnia wskazują na brak uwzględnienia kluczowej części zapytania dotyczącej klauzuli ORDER BY, która wyraźnie określała sortowanie według klasy. Błędne zrozumienie kierunku sortowania, czyli rosnąco lub malejąco, wskazuje na pominięcie znaczenia DESC w zapytaniu. DESC to skrót od descending, co oznacza porządek malejący, z kolei jej brak domyślnie oznaczałby sortowanie rosnące (ASC). SQL jest językiem, w którym precyzja składni ma kluczowe znaczenie, a drobne różnice w poleceniach mogą prowadzić do odmiennych wyników. Wybierając parametry sortowania, dobrze jest zrozumieć, jak wpływają one na sposób prezentacji danych. Częstym błędem jest nieuwzględnienie priorytetu sortowania, który w praktyce projektowania baz danych może mieć wpływ na wydajność zapytań, zwłaszcza gdy bazy danych zawierają duże ilości danych. Dlatego też, aby uniknąć typowych błędów, warto dokładnie analizować każde polecenie i jego wpływ na wynikowy zestaw danych.

Pytanie 29

Który z poniższych zapisów w HTML określa kodowanie znaków stosowane w dokumencie?

A. <encoding="UTF-8">
B. <meta encoding="UTF-8">
C. <charset="UTF-8">
D. <meta charset="UTF-8">
Odpowiedzi <charset="UTF-8">, <encoding="UTF-8"> oraz <meta encoding="UTF-8"> są niepoprawne i wskazują na pewne nieporozumienia w zakresie składni HTML oraz roli metadanych. Pierwszy zapis, <charset="UTF-8">, jest nieprawidłowy, ponieważ nie jest to poprawna konstrukcja HTML. Element <meta> jest niezbędny, aby deklarować kodowanie znaków, a sam atrybut 'charset' musi być jego częścią. Bez elementu <meta> nie będzie można skutecznie ustalić kodowania, co prowadzi do problemów z wyświetlaniem tekstu. Druga odpowiedź, <encoding="UTF-8">, również jest błędna, ponieważ nie istnieje taki atrybut w kontekście elementu <meta>. Elementy HTML muszą przestrzegać określonej składni, a atrybut 'encoding' nie jest uznawany za standard w HTML. Ostatnia odpowiedź, <meta encoding="UTF-8">, jest niepoprawna, ponieważ właściwy atrybut to 'charset', a nie 'encoding'. To typowe błędy, które mogą wynikać z nieznajomości standardów HTML i ich ewolucji. Użycie niewłaściwych atrybutów może prowadzić do frustracji programistycznej oraz problemów z efektywnością strony, dlatego tak istotne jest zrozumienie i przestrzeganie dobrych praktyk w zakresie kodowania stron internetowych.

Pytanie 30

Funkcję Clean Project środowiska IDE stosuje się do

A. debugowania skompilowanego i uruchomionego projektu.
B. usuwania wyników kompilacji projektu.
C. kompilowania projektu, gdy pliki źródłowe zostały zmienione.
D. usuwania całego projektu.
Funkcja „Clean Project” w środowisku IDE bywa mylona z kilkoma zupełnie innymi operacjami i stąd często biorą się błędne skojarzenia. Warto to sobie dobrze poukładać, bo w pracy z większymi projektami, szczególnie webowymi, znajomość tych różnic mocno ułatwia życie. Po pierwsze, Clean nie służy do usuwania całego projektu. IDE nie kasuje Twoich plików źródłowych, katalogów z kodem, konfiguracji, zasobów graficznych czy plików HTML, CSS, PHP, JS. Gdyby tak było, byłoby to po prostu niebezpieczne i kompletnie sprzeczne z dobrymi praktykami. Usuwanie projektu to zupełnie inna, osobna akcja, zwykle nazwana wprost „Delete project”, „Remove from workspace” itp. Clean ingeruje tylko w to, co zostało wygenerowane automatycznie podczas kompilacji lub procesu buildowania, czyli w artefakty, które w razie czego można bezpiecznie odtworzyć z kodu. Drugi częsty błąd to traktowanie funkcji Clean jako mechanizmu kompilowania projektu po zmianie plików źródłowych. W większości IDE kompilacją zajmują się polecenia typu „Build”, „Rebuild”, „Run”, ewentualnie system automatycznego builda po zapisaniu pliku. Clean sam z siebie nie kompiluje – on przygotowuje pole do ponownego, pełnego builda, usuwając stare binaria. Można to porównać do posprzątania warsztatu przed rozpoczęciem nowej pracy, a nie do samego naprawiania. Trzecie nieporozumienie to łączenie Clean z debugowaniem. Debugowanie polega na uruchamianiu skompilowanego programu z podpiętym debuggerem, stawianiu breakpointów, podglądaniu zmiennych, stosu wywołań itd. Funkcja Clean nie uruchamia aplikacji ani nie wchodzi w tryb debugowania, tylko czyści katalogi z wynikami wcześniejszych kompilacji. Typowy błąd myślowy polega na mieszaniu tych trzech etapów: porządkowania artefaktów (Clean), kompilacji/builda (Build/Run) i analizy działania programu (Debug). W praktyce, poprawna sekwencja przy dziwnych błędach to: Clean, potem pełny Build, a dopiero później ewentualne Debug. Takie rozdzielenie ról narzędzi jest standardem w większości popularnych IDE i systemów buildowania i dobrze jest się do niego przyzwyczaić, bo potem łatwiej przenosić się między różnymi technologiami i środowiskami.

Pytanie 31

Podczas tworzenia formularza konieczne jest dodanie kontrolki, która odnosi się do kontrolki w innym formularzu. Jakie działania w bazie danych Access są w tym przypadku możliwe?

A. możliwe o ile dotyczą danych liczbowych.
B. niemożliwe we wszystkich trybach z wyjątkiem trybu projektowania.
C. niemożliwe.
D. możliwe poprzez określenie ścieżki do kontrolki w atrybucie „Źródło kontrolki”.
No więc, dobrze zrozumiałeś, że można ustawić kontrolkę, żeby odnosiła się do innej w innym formularzu przez wybór odpowiedniej ścieżki w właściwości „Źródło kontrolki”. W Accessie to naprawdę działa! Dzięki temu masz możliwość dynamicznego wczytywania danych do formularzy, co jest mega przydatne. Wyobraź sobie, że masz formularz A, który korzysta z danych z formularza B – po prostu wpisujesz odpowiednią ścieżkę i wszystko działa. To w sumie jest zgodne z tym, co się robi w projektowaniu baz danych, gdzie ważne jest, żeby unikać zbędnego powielania danych. Dzięki temu, jeśli zaktualizujesz coś w jednym miejscu, to automatycznie odbija się to w innym, co naprawdę ułatwia życie. W praktyce, takie podejście sprawia, że praca z dużymi aplikacjami staje się znacznie prostsza i bardziej efektywna.

Pytanie 32

Jaką wartość zwróci funkcja napisana w języku C++, gdy jej argumentami są a = 4 i b = 3?

long int fun1(int a, int b) {
    long int wynik = 1;
    for (int i = 0; i < b; i++)
        wynik *= a;
    return wynik;
}
A. 64
B. 1
C. 16
D. 12
Wartości, które nie są prawidłowymi odpowiedziami, mogą wynikać z błędnych interpretacji działania funkcji. Na przykład, odpowiedź wskazująca na 1 sugeruje, że wynik funkcji zacząłby się od wartości zerowej, co jest nieprawidłowe, ponieważ każda potęga liczby wynosi co najmniej 1, o ile podstawą jest liczba różna od zera. Pomocne w zrozumieniu tego jest zapoznanie się z regułą mnożenia, która mówi, że każda liczba podniesiona do zera wynosi 1, ale w tym przypadku mamy do czynienia z dodatnimi argumentami. Z kolei odpowiedzi 12 i 16 mogą wynikać z błędnego zrozumienia liczby mnożenia, gdzie użytkownik mógłby przekonwertować działanie funkcji na inne operacje, takie jak dodawanie lub mnożenie bez zrozumienia, że przykład ilustruje potęgowanie. Tego typu błędy myślowe często prowadzą do mylnego rozumienia algorytmów, w których istotne jest, aby śledzić, co dzieje się z każdą iteracją pętli. Zrozumienie zasady działania pętli i ich zastosowania w kontekście potęgowania jest kluczem do poprawnego rozwiązywania zadań programistycznych. Dlatego ważne jest, aby dokładnie analizować działanie kodu i stosować dobrych praktyk, takich jak testowanie poszczególnych części kodu, aby upewnić się, że rozumiemy, co się dzieje w każdej iteracji.

Pytanie 33

Jakim poleceniem SQL można zlikwidować z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc LIKE "%sto%"
B. DELETE FROM artykuly WHERE tresc = "%sto%"
C. DELETE * FROM artykuly WHERE tresc = "%sto%"
D. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
Wybór odpowiedzi "DELETE * FROM artykuly WHERE tresc = '%sto%';" jest po prostu zły z paru powodów. Po pierwsze, w SQL nie używamy znaku '*' przy DELETE. Jak chcemy usunąć wiersze, to piszemy tylko "DELETE FROM nazwa_tabeli". To '*' sugeruje, że chcesz usunąć jakieś konkretne kolumny, a to w SQL się nie sprawdzi. Druga sprawa to operator '=' zamiast 'LIKE'. '=' używamy do porównania wartości, nie do wyszukiwania wzorców, a tu właśnie szukamy wystąpienia słowa 'sto' w dłuższym tekście. Dlatego operator LIKE z wildcardami jest tu konieczny, by znaleźć i usunąć te wiersze, które mają 'sto' gdziekolwiek. Często ludzie mylą te operatory w SQL, co prowadzi do problemów i nieefektywnego wyszukiwania.

Pytanie 34

Aby grupować sekcje na poziomie bloków, które będą stilizowane za pomocą znaczników, jakiego należy użyć?

A. <param>
B. <p>
C. <span>
D. <div>
Znak <div> jest jednym z podstawowych elementów HTML, który służy do grupowania i organizowania zawartości w dokumentach HTML. Umożliwia on stosowanie stylów CSS oraz skryptów JavaScript na grupach elementów, co czyni go niezwykle użytecznym w budowie responsywnych i złożonych układów stron. W przeciwieństwie do znaku <p>, który zarezerwowany jest dla akapitów tekstu, lub <span>, który jest używany do izolowania niewielkich fragmentów tekstu w ramach większego kontekstu, <div> działa jako kontener wypełniający swoje otoczenie. Ponadto, <div> jest znacznikiem blokowym, co oznacza, że zajmuje całą szerokość dostępnego miejsca w swoim rodzicu, co jest kluczowe w projektowaniu układów. W praktyce może być używany do tworzenia sekcji strony, nagłówków, stopki czy artykułów, co pozwala na lepszą organizację kodu i stylów. W kontekście standardów, <div> jest częścią W3C HTML5, co zapewnia jego szeroką akceptację i zgodność z przeglądarkami. Użycie <div> do grupowania obszarów na poziomie bloków jest zatem najlepszą praktyką w nowoczesnym web designie.

Pytanie 35

Aby grupować obszary na poziomie bloków, które będą stylizowane za pomocą znacznika: należy wykorzystać

A. <div>
B. <span>
C. <param>
D. <p>
Element <div> to naprawdę ważna część HTML-a, bo pozwala na porządne grupowanie treści na stronie. Dzięki niemu możemy lepiej zorganizować dokument, co nie tylko wygląda estetycznie, ale też ma znaczenie dla semantyki. Używając <div>, łatwiej podpinamy style CSS i skrypty JavaScript, co bardzo pomaga w budowaniu responsywnych układów. Na przykład, gdy tworzymy stronę z nagłówkiem, głównym tekstem i stopką, to dobrze jest wrzucić te sekcje w odpowiednie <div>, bo potem łatwiej je stylizować i edytować. Trzeba pamiętać, że <div> nie ma swojej domyślnej semantyki, więc jego znaczenie zależy tylko od kontekstu, w jakim go użyjemy, co czyni go naprawdę wygodnym narzędziem w tworzeniu nowoczesnych stron.

Pytanie 36

Jaki kolor reprezentuje zapis heksadecymalny #0000FF?

A. niebieski
B. czarny
C. zielony
D. czerwony
Zrozumienie kolorów w notacji heksadecymalnej jest niezbędne do prawidłowego zastosowania ich w projektach graficznych i webowych. Wiele osób mylnie interpretuje wartości w tej notacji, prowadząc do błędnych wyborów kolorów. Na przykład, odpowiedzi sugerujące, że kolor #0000FF to zielony, czerwony lub czarny, pokazują typowe błędy związane z niewłaściwym odczytem wartości heksadecymalnych. Zielony zapisany byłby w notacji heksadecymalnej jako #00FF00, gdzie '00' w pozycji czerwonej i niebieskiej oznacza zerową intensywność tych kolorów, a 'FF' pełną intensywność zielonego. Z kolei czerwony to #FF0000, gdzie intensywność zielonego i niebieskiego wynosi zero, a czerwonego maksymalna. Czarny kolor z kolei to #000000 - oznacza brak jakiegokolwiek światła w RGB. Aby uniknąć takich pomyłek, warto zrozumieć podstawy systemu RGB oraz praktykować pracę z paletami kolorów w narzędziach do projektowania, które pozwalają na łatwe wizualizowanie i dobieranie barw. Rekomenduje się również korzystanie z dokumentacji oraz zasobów internetowych, które wyjaśniają zasady działania kolorów w sieci. Dobrze jest również testować kolory na różnych ekranach, ponieważ ich wyświetlanie może się różnić w zależności od technologii wyświetlacza, co jest istotne dla zapewnienia spójności wizualnej.

Pytanie 37

Po wykonaniu poniższego kodu JavaScript, co będzie przechowywać zmienna str2?

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. avaS
B. vaSc
C. vaScri
D. nvaScr
W przypadku analizy kodu JavaScript kluczowym aspektem jest zrozumienie działania metody substring która służy do wyodrębniania fragmentów łańcuchów znaków. Metoda przyjmuje dwa parametry: indeks początkowy oraz opcjonalny indeks końcowy. W kontekście pytania błędnym podejściem jest niedokładna interpretacja tych indeksów. Pierwsza niepoprawna odpowiedź avaS zakłada że wyodrębniane są znaki od 0 do 3 co jest niezgodne z podanymi indeksami 2 i 6. Druga odpowiedź vaScri zakłada że metoda substring obejmuje znaki aż do indeksu 6 włącznie co jest błędnym zrozumieniem zakresu działania tej metody. Metoda substring kończy wybieranie na znaku poprzedzającym indeks końcowy dlatego indeks 6 nie jest uwzględniany przy wyborze znaków. Kolejna niepoprawna odpowiedź nvaScr próbuje wybrać znaki rozpoczynając od indeksu 1 co jest błędnym startowym punktem dla zakresu 2 do 6. W kontekście dobrych praktyk programistycznych istotnym jest zrozumienie że indeksowanie od zera ma wpływ na rezultaty metod operujących na łańcuchach znaków. Częstym błędem początkujących programistów jest nieuwzględnienie tego faktu co prowadzi do niepoprawnych wyników i błędów logicznych w aplikacjach. Znajomość tych zasad pozwala efektywnie wykorzystywać możliwości języka JavaScript w codziennej pracy programistycznej.

Pytanie 38

Na stronie internetowej zdefiniowano styl, który ma być stosowany tylko do określonych znaczników (takich jak niektóre nagłówki i wybrane akapity). W takim kontekście, aby przypisać styl do konkretnych elementów, najlepiej jest użyć

{ text-align: right; }
A. seletora akapitu
B. klasy
C. identyfikatora
D. pseudoklasy
Użycie selektora akapitu nie jest odpowiednie w sytuacji gdy chcemy przypisać styl tylko do niektórych znaczników tego typu ponieważ selektory takie jak p stylizują wszystkie elementy danego typu na stronie bez rozróżnienia Jeżeli chcemy stylizować tylko określone akapity musielibyśmy użyć klas lub identyfikatorów Identyfikator z kolei charakteryzuje się tym że powinien być unikalny dla każdego elementu na stronie Stosowanie identyfikatora do stylizowania grupy elementów naruszałoby zasadę unikalności co może prowadzić do problemów z walidacją HTML oraz trudności w przyszłej modyfikacji kodu Pseudoklasy są używane do stylizowania elementów w konkretnych stanach takich jak hover focus czy active i nie nadają się do przypisywania ogólnych stylów do grupy elementów Ich głównym przeznaczeniem jest reagowanie na interakcje użytkownika a nie stylizacja stała W kontekście pytania najlepszym podejściem jest użycie klas które pozwalają na przypisanie stylów dokładnie tam gdzie są potrzebne bez konieczności nadmiernego komplikowania kodu i naruszania dobrych praktyk Kod staje się bardziej elastyczny i łatwiejszy w zarządzaniu co jest kluczowe dla długoterminowego utrzymania projektu Krótko mówiąc klasy oferują najskuteczniejszy sposób na przypisanie stylu do określonych grup elementów zapewniając przy tym zgodność ze standardami i najlepsze praktyki w tworzeniu stron internetowych

Pytanie 39

Podczas tworzenia tabeli w SQL określono pole, w którym wartości muszą być unikalne. Którego atrybutu należy użyć w jego definicji?

A. IDENTITY
B. UNIQUE
C. DEFAULT
D. NOT NULL
Atrybut DEFAULT nie jest właściwym wyborem, gdyż jego głównym celem jest przypisanie domyślnej wartości do pola, gdy nie zostanie podana żadna inna. Na przykład, jeśli w tabeli produkcji mamy pole 'status', możemy ustawić DEFAULT na 'aktywny', co oznacza, że nowo dodawany rekord automatycznie otrzyma ten status, jeśli nie określimy go inaczej. Nie zapewnia to jednak unikalności wartości w tym polu i wprowadza nieporozumienie w kontekście wymogu o braku powtarzalności. Atrybut IDENTITY jest używany w kontekście automatycznego generowania wartości dla pól, co jest typowe dla kluczy głównych, ale również nie pomaga w utrzymaniu unikalności w szerszym kontekście pola. Przykładowo, kiedy używamy IDENTITY w tabeli, baza danych generuje kolejne liczby dla danego pola, co działa doskonale, ale nie odnosi się do przypadku, w którym chcemy zapewnić unikalność innego pola, jak adres e-mail. Ostatecznie, atrybut NOT NULL określa, że dane pole nie może być puste, co jest ważne dla integracji danych, ale nie ma wpływu na unikalność wartości. Problemy z rozpoznawaniem właściwych atrybutów mogą wynikać z mylnego założenia, że wszystkie te atrybuty mają na celu osiągnięcie unikalności, co jest błędne. Prawidłowe zrozumienie roli każdego z tych atrybutów jest kluczowe dla efektywnego projektowania baz danych i zapewnienia ich integralności.

Pytanie 40

Ogólne tablice służące do przechowywania informacji o ciasteczkach oraz sesjach: $_COOKIE oraz $_SESSION są elementem języka

A. Perl
B. C#
C. PHP
D. JavaScript
Odpowiedź PHP jest poprawna, ponieważ $_COOKIE i $_SESSION to superglobalne tablice, które są integralną częścią języka PHP. Umożliwiają one przechowywanie i zarządzanie danymi sesji oraz informacjami o ciasteczkach. $_COOKIE służy do odczytywania i zapisywania danych, które są przechowywane w urządzeniu użytkownika w postaci ciasteczek. Z kolei $_SESSION pozwala na przechowywanie danych sesyjnych na serwerze, co jest kluczowe dla utrzymania stanu użytkownika podczas przeglądania strony. Dzięki temu, programiści mogą tworzyć aplikacje webowe, które identyfikują użytkowników, zachowują ich preferencje oraz dane logowania, co poprawia doświadczenia użytkownika. Praktycznym zastosowaniem tych tablic jest na przykład realizacja systemów logowania, gdzie dane o użytkownikach są przechowywane w sesji, a ciasteczka mogą być używane do zapamiętywania ich preferencji na przyszłość. Często stosowanym standardem w branży jest dbanie o bezpieczeństwo danych sesyjnych, co można osiągnąć poprzez odpowiednie zarządzanie czasem życia sesji oraz używanie bezpiecznych ciasteczek.