Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 27 kwietnia 2026 01:34
  • Data zakończenia: 27 kwietnia 2026 01:35

Egzamin niezdany

Wynik: 10/40 punktów (25,0%)

Wymagane minimum: 20 punktów (50%)

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

Jaką cechę wyróżnia format PNG?

A. możliwość obsługi animacji
B. kompresję bezstratną
C. możliwość reprezentacji grafiki wektorowej
D. niedostępność kanału alfa
Odpowiedzi dotyczące obsługi animacji, braku obsługi kanału alfa oraz reprezentacji grafiki wektorowej są niepoprawne na poziomie technicznym. Format PNG nie wspiera animacji, co czyni go innym od formatów takich jak GIF, które pozwalają na tworzenie prostych animacji. PNG został zaprojektowany do przechowywania statycznych obrazów, co jest istotną różnicą w jego zastosowaniach w porównaniu do animowanych formatów graficznych. Ponadto, PNG obsługuje kanał alfa, co oznacza, że można tworzyć obrazy z przezroczystością, umożliwiając projektantom używanie tego formatu do tworzenia złożonych kompozycji wizualnych z różnymi poziomami przezroczystości. Na koniec, PNG nie jest formatem do reprezentacji grafiki wektorowej. Grafika wektorowa opiera się na matematycznych opisach kształtów, a typowymi formatami dla takich zastosowań są SVG lub AI. PNG natomiast jest formatem rastrowym, który składa się z pikseli, co ogranicza jego zastosowanie do ilustracji złożonych z bitmap, a nie z definicji wektorowych. Dlatego dla każdego z wymienionych punktów istnieją konkretne podstawy techniczne, które potwierdzają, dlaczego nie są one odpowiednie dla opisanego formatu.

Pytanie 2

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

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

Pytanie 3

Selektor CSS a:link {color:red} w arkuszach stylów nazywanych kaskadowymi określa

A. klasę.
B. identyfikator.
C. pseudoklasę.
D. pseudoelement.
Wybór odpowiedzi związanej z klasą, identyfikatorem lub pseudoelementem nie uwzględnia kluczowej różnicy między tymi pojęciami a pseudoklasami. Klasa w CSS definiuje grupę elementów, które mają wspólne cechy stylistyczne, natomiast identyfikator jest unikalny dla jednego elementu na stronie i powinien być używany tylko raz. Klasy i identyfikatory są przypisywane za pomocą atrybutów 'class' i 'id' w HTML, co czyni je bardziej statycznymi, podczas gdy pseudoklasy odnoszą się do konkretnego stanu elementu, co wprowadza element dynamiki. Pseudoelementy, takie jak '::before' lub '::after', również różnią się, ponieważ pozwalają na stylizację części elementu, a nie jego całego stanu. Typowe błędy myślowe związane z myleniem tych pojęć wynikają często z braku zrozumienia, jak działa kaskadowość i dziedziczenie w CSS. Kluczowe jest zrozumienie, że pseudoklasy są narzędziem do reakcji na interakcje użytkownika, co pozwala na bardziej zaawansowane i intuicyjne projektowanie stron internetowych. Ignorowanie tych różnic prowadzi do nieefektywnego stylowania i może obniżać jakość interfejsów użytkownika.

Pytanie 4

Funkcja zaprezentowana w PHP

function dzialania(int $x, float $y) {
  $z = $x + $y;
  return $z;
}
A. jest zadeklarowana z dwoma parametrami rzeczywistymi.
B. zwraca wynik.
C. przyjmuje dwa argumenty z wartością domyślną.
D. nie zwraca wyniku.
Przedstawiona funkcja w języku PHP to przykład funkcji, która zwraca wartość. Z definicji funkcja działa na określonych wejściach, które w tym przypadku są typu int i float, a następnie wykonuje operację dodawania tych wejść. Zmienna $z przechowuje wynik dodawania, który jest następnie zwracany poprzez instrukcję return. Instrukcja ta kończy działanie funkcji, przekazując wynik na zewnątrz, co czyni funkcję użyteczną w kontekście programowania modularnego, gdzie wyniki obliczeń mogą być dalej przetwarzane lub wykorzystywane. W PHP zwracanie wartości z funkcji jest powszechną praktyką, szczególnie w kontekście aplikacji, gdzie funkcje pomagają w organizacji kodu, testowaniu jednostkowym oraz utrzymaniu. Dobre praktyki programistyczne zalecają zwracanie wartości, gdy funkcja ma wykonywać obliczenia lub przetwarzanie danych, co zwiększa jej elastyczność i ponowne użycie w różnych częściach programu. Funkcje zwracające wartości są często wykorzystywane w aplikacjach webowych do przetwarzania danych z formularzy czy generowania dynamicznych treści, co ilustruje ich wszechstronność i znaczenie w nowoczesnym programowaniu.

Pytanie 5

Znacznik

<pre> </pre>
służy do prezentacji:
A. znaku wielokropka
B. treści czcionką o stałej szerokości
C. treści polską czcionką
D. znaku przekreślenia
Interpretacja znacznika <pre> jako narzędzia do wyświetlania znaku przekreślenia lub wielokropka jest błędna, ponieważ te elementy nie mają związku z funkcją, jaką pełni <pre>. W kontekście HTML, znacznik <pre> nie jest zaprojektowany do formatowania treści na podstawie stylów czcionek, takich jak 'polska czcionka', ale skupia się na zachowaniu oryginalnego formatowania tekstu. Próba zrozumienia <pre> w kontekście czcionek wyłącznie ze względu na ich wygląd prowadzi do pomyłek, ponieważ nie dotyczy to głównego celu tego znacznika. Ponadto, używanie <pre> dla treści, które nie wymagają stałej szerokości czcionki, może prowadzić do złożonych problemów w responsywności układu strony oraz trudności w dostosowaniu treści do różnych urządzeń. Znaki przekreślenia i wielokropka są raczej reprezentowane przez inne znaczniki HTML, takie jak <s> lub <span>, które są bardziej odpowiednie do stylizacji tekstu. Właściwe zrozumienie roli każdego znacznika HTML jest kluczowe dla skutecznego projektowania stron internetowych i aplikacji, co podkreśla znaczenie edukacji w zakresie web developmentu.

Pytanie 6

Jaką wartość zwróci funkcja w języku C++, jeśli parametry wynoszą a = 4 oraz 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. 16
B. 12
C. 1
D. 64
Rozpatrując niepoprawne odpowiedzi należy zauważyć że błędne zrozumienie działania pętli for oraz operacji w niej zawartych może prowadzić do niepoprawnych wyników. Niektórzy mogą błędnie zakładać że funkcja wykonuje dodawanie a nie mnożenie co prowadzi do odpowiedzi takich jak 12 lub 16. W rzeczywistości pętla for w tej funkcji przemnaża wartość zmiennej wynik przez a dla każdej iteracji co oznacza że wynik końcowy jest a podniesione do potęgi b. Błąd polegający na uznaniu że wynik to 12 może wynikać z pomyłki i traktowania operacji jak klasycznego dodawania zamiast przemnożenia a z kolei wynik 16 mógłby wynikać z błędnego wnioskowania że pętla wykonuje inną liczbę iteracji niż w rzeczywistości. Kolejnym częstym błędem jest nieprawidłowe przypisanie wartości początkowej do wyniku albo niezrozumienie że pętla zaczyna od 0 i iteruje do b-1. Takie błędne założenia mogą wynikać z niezrozumienia podstawowej składni i logicznych kroków algorytmu. Zrozumienie tego jak działa pętla for oraz jak operacje na zmiennych zmieniają ich wartości w trakcie iteracji jest kluczowe aby poprawnie przewidzieć wynik działania funkcji. Kluczem do poprawnego rozwiązania jest metodyczne sprawdzenie każdego kroku algorytmu co pozwoli uniknąć podobnych błędów w przyszłości. Zasady te są fundamentalne dla każdego programisty a ich zrozumienie ma zastosowanie w szerokim zakresie zagadnień programistycznych i algorytmicznych zapewniając nie tylko poprawność ale również efektywność pisanych programów. Poprawne zrozumienie tych podstaw umożliwia tworzenie bardziej złożonych i wydajnych algorytmów co jest kluczowe w środowisku zawodowym.

Pytanie 7

tr:nth-child(even) {background-color: #F2F2F2;}
Zastosowane formatowanie selektora tr:nth-child(even) spowoduje:
A. wypełnienie szarym tłem parzystych wierszy tabeli.
B. wypełnienie wszystkich wierszy tabeli szarym tłem.
C. wypełnienie szarym tłem nieparzystych wierszy tabeli.
D. oddzielenie wierszy nieparzystych od parzystych wierszem z szarym tłem.
W tym zadaniu kluczowe jest zrozumienie, jak dokładnie działa funkcja nth-child() w CSS oraz co oznaczają słowa kluczowe even i odd. Wiele osób intuicyjnie myli te pojęcia i zakłada, że selektor zadziała trochę „magicznie”, np. tylko na wybrane elementy, albo że numeracja zaczyna się od zera. Tymczasem przeglądarka liczy dzieci danego elementu rodzica od 1 w górę, w kolejności ich występowania w drzewie DOM. Słowo kluczowe even oznacza wszystkie elementy o indeksach parzystych: 2, 4, 6, 8 itd. Dlatego tr:nth-child(even) nie może oznaczać wypełnienia nieparzystych wierszy tabeli – do tego służyłby selektor tr:nth-child(odd). Pomylenie even z odd to bardzo typowy błąd, zwłaszcza na początku nauki CSS, bo nazwy są krótkie i łatwo je skojarzyć odwrotnie, niż trzeba. Kolejne nieporozumienie to przekonanie, że nth-child(even) obejmuje wszystkie wiersze tabeli. Gdyby chodziło o wszystkie wiersze <tr>, wystarczyłby prosty selektor tr bez nth-child. Funkcja nth-child() zawsze wybiera tylko pewien podzbiór dzieci, zgodnie z podanym wzorem, więc mówienie, że styl z taką funkcją dotyczy wszystkich elementów, jest po prostu sprzeczne z definicją tej konstrukcji w specyfikacji CSS. Pojawia się też czasem myśl, że taka reguła ma jakiś „separujący” charakter, czyli że wstawia wizualny wiersz oddzielający nieparzyste i parzyste rekordy. CSS nie dodaje nowych elementów do DOM, on tylko styluje te, które już istnieją. tr:nth-child(even) nie tworzy żadnego dodatkowego wiersza, nie wstawia separatorów, po prostu zmienia tło wybranych istniejących wierszy, zgodnie z parzystością ich indeksu. W praktyce, jeśli chcemy mieć efekt wyraźnego rozdzielenia wierszy, używa się obramowań (border), cieni lub właśnie naprzemiennego kolorowania, ale zawsze w ramach istniejących <tr>. Dobrym nawykiem jest też pamiętanie, że nth-child() liczy wszystkie dzieci danego rodzica, więc jeśli w tabeli mamy thead, tbody i tfoot, to często stosuje się selektor tbody tr:nth-child(even), żeby uniknąć nieoczekiwanych przesunięć numeracji przez nagłówki. Zrozumienie tej zasady bardzo ułatwia późniejsze korzystanie z bardziej złożonych wzorów nth-child, jak np. 2n+1 czy 3n.

Pytanie 8

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

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

Pytanie 9

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl" id= "a">tekst</p>
B. <p class= "stl" style= "color: #F00 ">tekst</p>
C. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
D. <p class= "stl">tekst</p>
Pozostałe odpowiedzi nie zawierają błędów, które mogłyby skutkować odrzuceniem przez walidator HTML5. W pierwszym przypadku użycie atrybutu class w tagu <p> jest w pełni zgodne z HTML5, co pozwala na przypisanie stylu do elementu. Atrybut class jest standardowym sposobem klasyfikacji elementów, co umożliwia ich stylizację z użyciem CSS. W drugim przykładzie, dodanie atrybutu id do tagu <p> również nie narusza zasad poprawności HTML i pozwala na jednoznaczne identyfikowanie elementu na stronie. Identyfikatory są istotnym narzędziem w programowaniu front-end i są często wykorzystywane w JavaScript oraz przy stylizacji CSS. W trzecim przypadku stylowanie bezpośrednie na elemencie <p> przy użyciu atrybutu style jest akceptowalne w HTML5, mimo że nie jest to najlepsza praktyka ze względu na zasady separacji treści i stylu. Współczesne podejścia do programowania zalecają korzystanie z zewnętrznych arkuszy stylów, aby poprawić organizację kodu i jego ponowne użycie. Wszystkie te przykłady ilustrują biegłość w korzystaniu z HTML5 i jego atrybutów, co jest niezbędne do tworzenia semantycznych i dostępnych stron internetowych.

Pytanie 10

W przedstawionym kodzie PHP, co powinno się wyświetlić zamiast znaków zapytania?

$x = mysql_query('SELECT * FROM mieszkancy');
if(!$x)
echo "???????????????????????";
A. Błąd w trakcie przetwarzania zapytania
B. Nieprawidłowe hasło do bazy danych
C. Zapytanie zostało zrealizowane pomyślnie
D. Niepoprawna nazwa bazy danych
W przypadku odpowiedzi Nieprawidłowe hasło do bazy danych taki komunikat pojawiłby się raczej na wcześniejszym etapie procesu nawiązywania połączenia z bazą danych a nie podczas przetwarzania samego zapytania SQL Błąd związany z hasłem jest związany z funkcją mysql_connect a nie z mysql_query co wskazuje na niepoprawne zrozumienie sekwencji działań w PHP Podobnie odpowiedź Nieprawidłowa nazwa bazy danych sugeruje problem na etapie nawiązywania połączenia z bazą danych zanim jakiekolwiek zapytanie zostanie wykonane Takie błędy zwykle wynikają z podania niepoprawnych parametrów w funkcji łączącej z bazą danych a nie podczas wykonywania zapytania Dodatkowo wybór tej odpowiedzi wskazuje na brak zrozumienia jak działa mechanizm wyboru bazy danych w PHP Odpowiedź Zapytanie przetworzono pomyślnie jest logicznie błędna w kontekście użycia bloku if(!x) który wyraźnie wskazuje na reakcję na niepowodzenie zadania więc nie może być wybrana jako prawidłowa w sytuacji gdy oczekiwane jest wystąpienie błędu Takie błędy myślowe często wynikają z niezrozumienia struktury warunkowej w PHP oraz sposobu obsługi błędów Praktyczną wskazówką jest zawsze testowanie i logowanie komunikatów zwracanych przez funkcje PHP co jest zgodne z dobrymi praktykami programistycznymi i pozwala unikać takich pomyłek

Pytanie 11

Który składnik języka HTML jest niezbędny, aby uniknąć błędu w walidacji HTML5?

A. <body>
B. przynajmniej jednego <h1>
C. prologu <!DOCTYPE html>
D. <meta name="author" content="....">
Prolog <!DOCTYPE html> jest kluczowym elementem każdego dokumentu HTML5, który definiuje typ dokumentu i jego wersję. Jego obecność umożliwia przeglądarkom internetowym prawidłowe interpretowanie i renderowanie treści strony. Bez tego prologu przeglądarka nie ma informacji o tym, że strona powinna być interpretowana jako dokument HTML5, co może prowadzić do nieprzewidywalnych wyników w renderowaniu i działaniu strony. W praktyce, dodanie <!DOCTYPE html> na początku dokumentu HTML jest fundamentalnym krokiem, który powinien być zawsze przestrzegany. Standardy W3C jasno określają, że prolog jest niezbędny, aby zapewnić zgodność z HTML5 i uniknąć błędów walidacji. Na przykład, jeśli zapomnimy o tym elemencie, nasza strona może nie wyświetlać się poprawnie w różnych przeglądarkach, co z kolei wpłynie na doświadczenia użytkowników oraz pozycjonowanie strony w wyszukiwarkach. Dlatego każdy programista powinien traktować <!DOCTYPE html> jako nieodłączny element kodu HTML, zapewniając tym samym stabilność i spójność prezentowanej treści.

Pytanie 12

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości dla bloków: 1, 2,
3, 4 (blok 5 nie ma ustawionej szerokości), powinno zawierać właściwość

Ilustracja do pytania
A. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
B. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
C. clear: both dla wszystkich bloków.
D. float: left dla wszystkich bloków.
Twoja odpowiedź jest poprawna. Bloki 1, 2, 3 i 4 powinny być ustawione obok siebie na stronie. Możemy tego dokonać, stosując dla nich właściwość 'float: left' w CSS, która sprawia, że elementy są wyświetlane po lewej stronie swojego kontenera. Często stosuje się tę technikę przy projektowaniu layoutów stron internetowych, umożliwiając rozmieszczenie bloków w jednym rzędzie. Blok 5 powinien natomiast znajdować się poniżej tych bloków, co osiągniemy stosując właściwość 'clear: both'. Ta właściwość zapewnia, że element nie będzie obok żadnego z poprzednich bloków, nawet jeśli mają one ustawiony float. Jest to szczególnie przydatne w sytuacjach, gdy chcemy, aby pewien element (np. stopka strony) był wyświetlany poniżej innych bloków, niezależnie od ich położenia czy szerokości. W praktyce, prawidłowe zastosowanie tych dwóch właściwości jest kluczowe dla tworzenia responsywnych i atrakcyjnych layoutów stron.

Pytanie 13

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 OR obrot > 4000
B. SELECT sprzedaz FROM kontrahent WHERE obrot > 4000
C. SELECT sprzedaz FROM kontrahent WHERE grupa_cenowa = 2 AND obrot > 4000
D. SELECT kontrahent FROM sprzedaz WHERE grupa_cenowa = 2 AND obrot > 4000
Wszystkie pozostałe odpowiedzi zawierają błędne konstrukcje zapytań SQL, które nie prawidłowo realizują wymagania postawione w pytaniu. W pierwszej propozycji brak jest odpowiedniego wskazania na konkretne pole, które ma być wybrane. W SQL polecenie 'SELECT sprzedaz' nie jest poprawne, gdyż zamiast tego należy wskazać konkretne kolumny, które nas interesują. Z kolei w drugiej odpowiedzi, użycie operatora OR zamiast AND prowadzi do sytuacji, w której wynikiem zapytania mogą być kontrahenci z grupy 2, ale także każdy inny kontrahent, którego obrót przekracza 4000 zł, co jest sprzeczne z zamierzonym celem wyszukiwania. Tego rodzaju błędy często wynikają z nieprecyzyjnego zrozumienia logiki zapytań SQL, co może prowadzić do uzyskiwania niezamierzonych wyników. Ważne jest, aby zawsze przy tworzeniu zapytań jasno określić, jakie warunki muszą być spełnione, aby uzyskać pożądane dane. Kolejną częstą pułapką jest użycie niepoprawnych nazw tabel czy pól. W dobrych praktykach programistycznych sugeruje się, aby dokładnie zweryfikować struktury bazy danych przed formułowaniem zapytań, co pozwala uniknąć typowych błędów i nieporozumień w wynikach. Konsekwentne stosowanie operatorów logicznych oraz upewnienie się, że każda część zapytania jest odpowiednio sformułowana, jest kluczowe dla efektywności i skuteczności pracy z bazami danych.

Pytanie 14

Wskaż styl CSS za pomocą, którego uzyskano przedstawiony efekt

Styl 1.
img {
  width: 100px;
  border-radius: 10%;
}
Styl 2.
img {
  width: 100px;
  border-radius: 50px;
}
Styl 3.
img {
  width: 100px;
  border: 50% green;
}
Styl 4.
img {
  width: 100px;
  shape: circle;
}
Ilustracja do pytania
A. Styl 2.
B. Styl 3.
C. Styl 1.
D. Styl 4.
Niestety, wybrałeś niepoprawną odpowiedź. Poprawną odpowiedzią jest 'Styl 2.', który wykorzystuje właściwość CSS border-radius z wartością 50px do zaokrąglania rogów obrazka. Zobaczmy, dlaczego pozostałe style są niepoprawne. 'Styl 1.' ma za małą wartość zaokrąglenia, co nie daje oczekiwanego efektu. Właściwość border-radius musi mieć odpowiednią wartość, aby uzyskać pożądane zaokrąglenie. 'Styl 3.' zawiera niepoprawną wartość, a mianowicie kolor. Kolor nie jest właściwą wartością dla border-radius, co pokazuje, jak ważne jest zrozumienie, jakie wartości są akceptowane dla różnych właściwości CSS. 'Styl 4.' używa właściwości shape, która nie istnieje w CSS. To jest błąd typowy dla osób, które nie są jeszcze pewne, które właściwości są dostępne w CSS. Jest to jasnym przykładem, dlaczego nauka i praktyka CSS są tak ważne do tworzenia atrakcyjnych i funkcjonalnych stron internetowych.

Pytanie 15

Mamy do czynienia z tablicą o nazwie tab, która zawiera liczby całkowite różniące się od zera. Zawarty w języku PHP kod ma na celu:

foreach ($tab as &$liczba)
    $liczba = $liczba * (-1);
unset($liczba);
A. obliczyć wartość bezwzględną elementów tej tablicy
B. zmienić wszystkie elementy tablicy na liczby o przeciwnym znaku
C. wyliczenie iloczynu wszystkich wartości w tablicy
D. przekształcić elementy tablicy na wartości zapisane w zmiennej liczba
Analizując przedstawione odpowiedzi, ważne jest zrozumienie, dlaczego pozostałe opcje są nieprawidłowe w kontekście podanego kodu PHP. Pierwsza z nich sugeruje, że kod oblicza iloczyn wszystkich liczb w tablicy. Jednakże, kod ten nie prowadzi do żadnej operacji akumulacji wartości, nie jest stosowana zmienna do przechowywania wyniku, a operacja wykonywana w pętli to jedynie zmiana znaku każdej liczby. Druga odpowiedź, mimo że błędna jako wybór, w rzeczywistości jest poprawną odpowiedzią zgodnie z pytaniem egzaminacyjnym. Trzecia sugeruje, że elementy tablicy zostaną zastąpione wartością przechowywaną w zmiennej liczba. Kod, który by tego dokonywał, musiałby inicjalizować zmienną z konkretną wartością i przypisywać ją każdemu elementowi tablicy, co nie jest realizowane przez przedstawiony fragment kodu. Czwarta odpowiedź mówi o obliczaniu wartości bezwzględnej elementów tablicy. Aby to osiągnąć, w PHP należałoby użyć funkcji abs(), której tutaj nie zastosowano. Typowym błędem prowadzącym do takich niepoprawnych wniosków jest nieprawidłowe zrozumienie działania operatorów i funkcji w kontekście języka PHP. Kluczowe jest, aby rozumieć, że kod bezpośrednio modyfikuje wartości w tablicy przez mnożenie przez -1, a nie wykonuje żadnych innych operacji matematycznych czy przypisania wartości.

Pytanie 16

W języku SQL, aby usunąć tabelę należy zastosować polecenie

A. TRUNCATE TABLE
B. UNIQUE
C. DROP TABLE
D. DELETE
Poprawne polecenie do usunięcia całej tabeli w SQL to „DROP TABLE”. To polecenie działa na poziomie struktury bazy danych, a nie tylko na danych. Innymi słowy: nie usuwasz rekordów z tabeli, tylko samą tabelę jako obiekt – razem z jej definicją, indeksami, constraintami (klucze obce, klucze główne, unikalne, check) itp. Przykładowo, jeśli masz tabelę użytkownicy, to jej usunięcie wygląda tak: DROP TABLE uzytkownicy; Po wykonaniu tej komendy tabela przestaje istnieć w schemacie bazy. Próba SELECT * FROM uzytkownicy po takim DROP-ie zakończy się błędem typu „table does not exist”. Moim zdaniem warto zapamiętać, że DROP to operacja DDL (Data Definition Language), czyli zmienia definicję bazy, w odróżnieniu od DELETE, który jest DML (Data Manipulation Language) i modyfikuje tylko zawartość. W praktyce w projektach produkcyjnych polecenia DROP TABLE stosuje się ostrożnie, zwykle po wykonaniu kopii zapasowej lub na środowiskach deweloperskich/testowych, bo operacja jest destrukcyjna i w wielu silnikach baz danych nieodwracalna bez backupu. Dobrą praktyką jest też sprawdzenie zależności, np. kluczy obcych z innych tabel, bo DROP TABLE może się nie udać, jeśli inne tabele się do niej odwołują. W wielu systemach stosuje się wariant: DROP TABLE IF EXISTS nazwa_tabeli; co pozwala uniknąć błędu, gdy tabela już została wcześniej usunięta. Warto też mieć świadomość, że w normalnych projektach zmiany struktury bazy (w tym DROP TABLE) wykonuje się przez migracje lub skrypty wersjonujące, a nie „z palca” na produkcji, co po prostu zwiększa bezpieczeństwo i porządek w bazie.

Pytanie 17

Po wykonaniu kodu PHP zostanie wyświetlona aktualna data zawierająca jedynie
echo date("Y");

A. miesiąc i rok
B. rok
C. dzień i miesiąc
D. dzień
W przypadku odpowiedzi wskazujących na inne aspekty daty, takie jak \"dzień\" czy \"miesiąc i rok\", warto zrozumieć, że te odpowiedzi są niepoprawne ze względu na sposób działania funkcji `date()` w PHP. Funkcja ta, w kontekście zapytania, jest zdefiniowana tak, że zwraca jedynie czterocyfrowy rok, a nie konkretne dni czy miesiące. Użytkownicy mogą czasami mylić ten aspekt, sądząc, że funkcja `date()` może zwracać więcej informacji jednocześnie, co jest nieprawdziwe w przypadku podanego formatu. Na przykład, odpowiedzi, które wskazują na \"dzień\" i \"miesiąc\", mogą wynikać z założenia, że `date()` automatycznie wprowadza wszystkie elementy daty, co jest błędne. Dobrą praktyką jest zrozumienie, jakie formaty można używać z funkcją `date()`, aby prawidłowo wykorzystać jej możliwości. Każdy z formatów, takich jak \"d\" dla dnia czy \"m\" dla miesiąca, musi być wywołany oddzielnie, co prowadzi do błędnych wniosków, jeśli nie jest to uwzględnione w programowaniu. Zrozumienie tego mechanizmu jest kluczowe dla efektywnego korzystania z PHP w kontekście pracy z datami.

Pytanie 18

Wskaż zdanie, które jest fałszywe w odniesieniu do poniższej definicji funkcji w języku C++?

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja zwraca wartość
B. Funkcja nie zwraca żadnej wartości
C. Funkcja korzysta z parametrów przez referencję
D. Funkcja ma dwa argumenty
Jednym z typowych nieporozumień jest mylne interpretowanie funkcji deklarowanych z użyciem 'void'. Wbrew niektórym założeniom, taka funkcja nie zwraca żadnych wartości. Jej celem jest wykonanie pewnych operacji na danych wejściowych, często poprzez modyfikację ich wartości, jak w tym przypadku, gdzie funkcja dokonuje zamiany. Pojęcie zwracania wartości należy do funkcji o określonym typie zwracanym, takich jak 'int', 'float', itp. Zrozumienie różnicy między przekazywaniem przez wartość a przekazywaniem przez referencję jest kluczowe. W sytuacji, gdy parametry są przekazywane przez referencję, jak w omawianym przykładzie, funkcja ma bezpośredni dostęp do zmiennych zewnętrznych, umożliwiając ich modyfikację bez zwracania żadnej wartości. To podejście jest często stosowane w przypadku operacji na dużych strukturach danych, gdzie kopiowanie może być kosztowne. Niepoprawne założenie, że funkcja nie posiada parametrów lub że nie operuje na nich przez referencję, wynika z braku zrozumienia odnośnie technik efektywnego zarządzania pamięcią i zasobami w C++. Programowanie z użyciem referencji jest bardziej wydajne i pozwala na tworzenie kodu, który jest zarówno szybki, jak i czytelny. Ważne jest, aby nie mylić pojęcia parametrów funkcji z wartością zwrotną, ponieważ prowadzi to do błędnych założeń i niepoprawnego działania kodu w praktyce.

Pytanie 19

Polecenie serwera MySQL postaci

REVOKE DELETE, UPDATE ON pracownicy FROM 'tKowal'@'localhost'
sprawi, że użytkownikowi tKowal zostaną
A. przydzielone uprawnienia do usuwania i aktualizowania danych w tabeli pracownicy
B. odebrane uprawnienia usuwania i dodawania rekordów w tabeli pracownicy
C. odebrane uprawnienia usuwania i modyfikowania danych w tabeli pracownicy
D. przydzielone uprawnienia do wszelkiej zmiany struktury tabeli pracownicy
Wszystkie niepoprawne odpowiedzi dotyczą różnych aspektów zarządzania uprawnieniami w MySQL, ale nie odzwierciedlają skutków działania polecenia REVOKE. W pierwszej z nieprawidłowych odpowiedzi stwierdza się, że użytkownik otrzymuje prawa do usuwania i aktualizowania danych w tabeli 'pracownicy'. Jest to nieprawda, ponieważ komenda REVOKE ma na celu odebranie, a nie przydzielenie jakichkolwiek uprawnień. Kolejna odpowiedź sugeruje, że użytkownik traci prawa do usuwania i dodawania rekordów w tabeli. Chociaż uprawnienie do usuwania jest słuszne, dodawanie rekordów (INSERT) nie zostało wymienione w poleceniu REVOKE, więc ta odpowiedź jest myląca. Ostatnia niepoprawna opcja wskazuje, że użytkownik zyskuje prawa do zmiany struktury tabeli 'pracownicy'. W rzeczywistości REVOKE nie ma nic wspólnego z uprawnieniami związanymi ze strukturą tabeli, takimi jak ALTER czy CREATE. Właściwe zrozumienie mechanizmów zarządzania uprawnieniami jest kluczowe dla zapewnienia bezpieczeństwa danych oraz skutecznego zarządzania bazą danych w MySQL.

Pytanie 20

Która z definicji CSS określa formatowanie nagłówka h1: tekst nadkreślony, z odstępami między wyrazami 10 px i czerwonym kolorem tekstu?

h1{
  text-decoration: overline;
  word-spacing: 10px;
  color: red;
}                       A.

h1{
  text-decoration: overline;
  letter-spacing: 10px;
  color: red;
}                       B.

h1{
  text-transform: none;
  line-height: 10px;
  color: rgb(255,0,0);
}                       C.

h1{
  text-decoration: underline;
  line-height: 10px;
  color: rgb(255,0,0);
}                       D.
A. C.
B. B.
C. D.
D. A.
Niektóre z odpowiedzi, które wybrałeś, zawierają nieprawidłowe pojęcia i błędy w zrozumieniu CSS. Polecenie 'letter-spacing' stosowane w odpowiedzi B jest służy do określania odległości między literami, nie między wyrazami. Jest to różnica kluczowa, która ma duży wpływ na wygląd i czytelność tekstu. Odpowiedź C nie zawiera żadnego z wymaganych stylów, co pokazuje brak zrozumienia dla zadania. Używanie 'underline' zamiast 'overline', jak to miało miejsce w odpowiedzi D, prowadzi do podkreślenia tekstu zamiast nadkreślenia. To ilustruje błąd w zrozumieniu różnych stylów tekstu dostępnych w CSS. W codziennej praktyce, zrozumienie różnicy między tymi dwoma stylami jest kluczowe dla efektywnego formatowania tekstu. W CSS, jest ważne aby dokładnie rozumieć, co każde polecenie robi, oraz jak te polecenia wpływają na ostateczny wygląd strony.

Pytanie 21

Który z parametrów obiektu graficznego zmieni się po zmianie wartości kanału alfa?

A. Kolejność wyświetlenia pikseli
B. Przezroczystość
C. Ostrość krawędzi
D. Nasycenie barw
Kanał alfa jest kluczowym parametrem w zarządzaniu przezroczystością obiektów graficznych. Przezroczystość definiuje, w jakim stopniu dany obiekt jest widoczny na tle innych elementów graficznych. W systemach graficznych, takich jak Adobe Photoshop czy GIMP, kanał alfa może przyjmować wartości od 0 (całkowicie przezroczysty) do 255 (całkowicie nieprzezroczysty). Kiedy zmieniamy wartość kanału alfa, manipuluje to stopniem przezroczystości danego obiektu, co ma kluczowe znaczenie w projektowaniu graficznym oraz w tworzeniu efektów wizualnych. Przykładowo, w projektowaniu interfejsów użytkownika często stosuje się przezroczystość do uzyskania efektów wizualnych, które poprawiają estetykę oraz funkcjonalność. Dobrą praktyką jest używanie przezroczystości w celu tworzenia głębi i warstwowości w grafice, co może być przydatne w animacjach oraz w aplikacjach mobilnych, gdzie przejrzystość elementów interfejsu wpływa na użyteczność i doświadczenie użytkownika. Warto pamiętać, że manipulowanie kanałem alfa powinno być wcześniej przemyślane, aby osiągnąć zamierzony efekt wizualny bez negatywnego wpływu na czytelność i odbiór projektu.

Pytanie 22

Badania dotyczące skalowalności oprogramowania mają na celu sprawdzenie, czy aplikacja

A. jest chroniona przed nieautoryzowanymi operacjami, takimi jak dzielenie przez zero
B. jest odpowiednio opisana dokumentacją
C. jest w stanie funkcjonować przy przewidzianym oraz większym obciążeniu
D. posiada właściwą funkcjonalność
Odpowiedzi takie jak 'ma odpowiednią funkcjonalność', 'jest odpowiednio udokumentowana' oraz 'jest zabezpieczona przed niedozwolonymi operacjami' odnoszą się do zupełnie innych aspektów jakości oprogramowania. Funkcjonalność dotyczy tego, czy aplikacja spełnia określone wymagania i jest w stanie realizować zamierzone zadania. Choć jest to istotna cecha, nie jest bezpośrednio związana ze skalowalnością, która koncentruje się na możliwości dostosowania się systemu do zwiększających się obciążeń. Dokumentacja jest równie ważna, ponieważ pozwala na zrozumienie architektury i funkcji systemu, lecz nie wpływa na jego zdolność do obsługi większej ilości użytkowników. Zabezpieczenia przed błędami, takimi jak dzielenie przez zero, są kluczowe dla stabilności i bezpieczeństwa aplikacji, ale również nie mają związku z jej skalowalnością. Często występującym błędem myślowym jest zakładanie, że wszystkie aspekty jakości oprogramowania są ze sobą ściśle powiązane i mogą być używane zamiennie. W rzeczywistości, każdy z tych elementów stanowi niezależny komponent większej całości, a ich ocena wymaga różnorodnych podejść i technik testowania. Aby poprawnie ocenić skalowalność, należy skupić się na pomiarze wydajności w warunkach dużego obciążenia, co wymaga zastosowania specyficznych metodologii testowych, takich jak testy obciążeniowe oraz analizę wydajności systemu w realnych scenariuszach użytkowania.

Pytanie 23

Aby za pomocą instrukcji SELECT uzyskać listę nazwisk osób mieszkających na osiedlu, przy czym nazwiska te nie mogą się powtarzać, należy sformułować zapytanie w następujący sposób

A. SELECT nazwisko FROM mieszkancy ORDER BY nazwisko
B. SELECT TOP 10 nazwisko FROM mieszkancy
C. SELECT AVG(nazwisko) FROM mieszkancy
D. SELECT DISTINCT nazwisko FROM mieszkancy
Odpowiedzi, które nie wykorzystują klauzuli DISTINCT, nie są w stanie spełnić wymogu eliminacji duplikatów w wynikach zapytania. Na przykład, użycie "SELECT nazwisko FROM mieszkancy ORDER BY nazwisko;" tylko sortuje wyniki według nazwisk, ale nie eliminuje powtarzających się rekordów. To jest typowy błąd w myśleniu, gdzie użytkownicy mogą myśleć, że sortowanie wystarczy, aby uzyskać unikalne wyniki. Jeżeli w tabeli znajduje się wiele osób o tym samym nazwisku, zapytanie to nadal zwróci wszystkie wystąpienia, co prowadzi do niepożądanych rezultatów. Z kolei "SELECT TOP 10 nazwisko FROM mieszkancy;" ogranicza wyniki do tylko 10 pierwszych rekordów, ale nie zapewnia ich unikalności. W zależności od kolejności, w jakiej dane są prezentowane, wynik może zawierać duplikaty, co nie spełnia wymagań zadania. Dodatkowo, "SELECT AVG(nazwisko) FROM mieszkancy;" ma na celu obliczenie średniej, co jest nonsensowne w kontekście kolumny tekstowej jak 'nazwisko', ponieważ średnia nie jest miarodajną miarą dla danych tekstowych. Takie podejście demonstruje niewłaściwe zrozumienie typów danych i ich zastosowań w SQL. W każdej sytuacji, umiejętność poprawnego formułowania zapytań SQL jest kluczowa dla efektywnej pracy z bazami danych i unikania błędów analitycznych.

Pytanie 24

Jakie słowo kluczowe w języku SQL należy zastosować, aby usunąć powtarzające się rekordy?

A. GROUP BY
B. LIKE
C. ORDER BY
D. DISTINCT
Wybór LIKE, ORDER BY i GROUP BY do eliminacji duplikatów to nie jest dobry pomysł, bo każde z tych słów kluczowych ma swoje inne zastosowania. LIKE służy do szukania wzorców w tekstach. Jak użyjesz LIKE, to znajdziesz rekordy z jakimś ciągiem znaków, ale to nie eliminuje duplikatów. Z kolei ORDER BY to po prostu sortowanie wyników według jakiejś kolumny, a nie eliminacja powtórzeń. Nawet jak posortujesz wyniki, to duplikaty wciąż będą. GROUP BY z kolei grupuje wyniki na podstawie wartości w kolumnach, zazwyczaj używa się go z funkcjami agregującymi, jak COUNT() czy SUM(). Mimo że GROUP BY może pomóc w analizie danych, to nie służy do eliminacji duplikatów, bo tworzy grupy na podstawie kolumn. Każde z tych słów ma swoje zastosowanie, ale żadne z nich nie działa jak DISTINCT, który robi to naprawdę dobrze.

Pytanie 25

W formularzu HTML użyto znacznika <input>. Pole to będzie służyło do wprowadzania maksymalnie

<input type="password" size="30" maxlength="20">
A. 20 znaków, które nie są widoczne w polu tekstowym
B. 30 znaków, które są widoczne w trakcie wprowadzania
C. 20 znaków, które są widoczne w trakcie wprowadzania
D. 30 znaków, które nie są widoczne w polu tekstowym
Odpowiedzi sugerujące, że w polu tekstowym mogą być widoczne znaki, są nieprawidłowe z kilku istotnych powodów. Przede wszystkim znaczenie atrybutu 'type' w znaczniku <input> jest kluczowe. Użycie 'type="password"' jednoznacznie wskazuje, że wprowadzone znaki będą maskowane, co ma na celu ochronę prywatności użytkownika. Odpowiedzi wskazujące na 30 znaków, które są widoczne, są całkowicie błędne, ponieważ atrybut 'size' definiuje szerokość pola, a nie maksymalną liczbę znaków, które można wprowadzić. To może prowadzić do mylnego wrażenia, że użytkownik ma pełen wgląd w wprowadzane dane, co nie jest zgodne z zamierzeniem tego typu pól. Oprócz tego, maksymalna liczba znaków 'maxlength' nie ma żadnego wpływu na to, czy znaki są widoczne, czy nie. Typowe błędy myślowe związane z tym zagadnieniem mogą obejmować niepoprawne zrozumienie roli atrybutów 'size' i 'maxlength'. Kluczowe jest, aby użytkownicy rozumieli, że odpowiednie projektowanie formularzy powinno zawsze uwzględniać bezpieczeństwo danych oraz ich ochronę, zwłaszcza w przypadku haseł. Dobre praktyki w zakresie UX/UI zalecają korzystanie z pól typu 'password' w sytuacjach wymagających ochrony danych, co przyczynia się do zwiększenia bezpieczeństwa aplikacji webowych.

Pytanie 26

Jak można zweryfikować spójność danych w bazie MySQL?

A. CHECK TABLE
B. mysqldump
C. mysql
D. REPAIR TABLE
Wybór polecenia mysql jako odpowiedzi na pytanie o sprawdzanie spójności danych w bazie MySQL jest niewłaściwy, ponieważ mysql to polecenie do interakcji z bazą danych poprzez konsolę, a nie narzędzie do diagnozowania stanu tabel. Umożliwia ono jedynie uruchamianie zapytań i zarządzanie bazą danych, ale nie oferuje mechanizmów do analizy integralności danych. Mysqldump również nie jest właściwym wyborem, ponieważ jego głównym celem jest tworzenie kopii zapasowych danych, a nie ich diagnostyka. Choć mysqldump może pomóc w zabezpieczeniu danych przed utratą, nie dostarcza informacji na temat ich spójności. REPAIR TABLE, choć związane z naprawą uszkodzonej tabeli, nie służy do weryfikacji stanu danych. Może być zastosowane dopiero po wykryciu problemu, a nie jako narzędzie proaktywne do monitorowania integralności. Typowe błędy w myśleniu mogą wynikać z nieznajomości funkcji i możliwości poszczególnych poleceń w MySQL. Właściwe podejście do zarządzania bazą danych wymaga zrozumienia, że różne narzędzia mają różne zastosowania i nie każde polecenie jest odpowiednie do każdej sytuacji. Dlatego kluczowe jest przyswojenie sobie funkcji oferowanych przez bazę danych, co pozwala na efektywne i prawidłowe zarządzanie danymi.

Pytanie 27

Model fizyczny replikacji bazy danych pokazany na ilustracji jest modelem

Ilustracja do pytania
A. rozproszonym
B. centralnego subskrybenta
C. równorzędnym
D. centralnego wydawcy
Model centralnego subskrybenta polega na tym że jeden serwer subskrybuje dane z wielu wydawniczych serwerów co jest odwrotnością modelu centralnego wydawcy. Tego typu rozwiązanie jest mniej popularne ze względu na potrzebę zarządzania synchronizacją z wielu źródeł co komplikuje proces replikacji i zwiększa ryzyko konfliktów danych. Model równorzędny z kolei zakłada że każdy serwer w architekturze działa jako równy uczestnik mający zdolność zarówno publikowania jak i subskrybowania danych. Taka architektura jest bardziej złożona w zarządzaniu zwłaszcza przy dużej liczbie uczestników ponieważ wymaga zaawansowanych mechanizmów rozwiązywania konfliktów i zarządzania współbieżnością. Rozproszony model to rozwiązanie gdzie dane są przechowywane i zarządzane bez centralnego punktu co może być korzystne dla systemów wymagających wysokiej dostępności i elastyczności ale stwarza wyzwania w zakresie spójności danych i wymaga skomplikowanych algorytmów synchronizacji. Wybór modelu nieodpowiedniego dla danej infrastruktury może prowadzić do problemów z wydajnością i spójnością co jest typowym błędem myślowym wynikającym z niewłaściwego zrozumienia wymagań systemowych. Każdy z tych modeli ma swoje specyficzne zastosowania i wyzwania co wymaga odpowiedniej analizy i doświadczenia przy projektowaniu systemów bazodanowych.

Pytanie 28

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

A. nav { float: right; }
B. nav { float: right; } section { float: right; }
C. nav { float: left; } aside { float: left; }
D. aside {float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie. W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie. Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 29

Które z poniższych stwierdzeń na temat klucza głównego jest prawdziwe?

A. Jest unikalny dla danej tabeli
B. Składa się wyłącznie z jednego pola
C. Może przyjmować wyłącznie wartości liczbowe
D. W przypadku tabeli z danymi osobowymi może to być pole nazwisko
Wiele osób myli pojęcie klucza podstawowego z innymi właściwościami atrybutów w tabeli. Chociaż klucz podstawowy może składać się tylko z jednego pola, nie jest to warunek konieczny. Klucze podstawowe mogą również być złożone, co oznacza, że mogą składać się z wielu pól. Na przykład, w tabeli rejestrującej sprzedaż można wykorzystać kombinację kolumn takich jak 'ID produktu' i 'ID zamówienia' jako klucz podstawowy, co jest częstą praktyką w projektowaniu baz danych. Z kolei twierdzenie, że pole nazwisko może być kluczem podstawowym w tabeli danych osobowych, jest również problematyczne, ponieważ nazwiska mogą się powtarzać. W związku z tym, wybór atrybutów do klucza podstawowego powinien opierać się na ich unikalności oraz stabilności, a nie na ich powszechności. Ostatnia nieprawidłowa koncepcja sugeruje, że klucz podstawowy może przyjmować tylko wartości liczbowe, co jest wprowadzeniem w błąd. Klucz podstawowy może być zarówno liczbowy, jak i tekstowy; klucz identyfikujący użytkownika może zawierać np. adres e-mail, co jest także przykładem spójnego podejścia w projektowaniu baz danych. Typowe błędy myślowe prowadzące do takich wniosków to uproszczenia związane z rozumieniem właściwości atrybutów oraz zbyt wąskie podejście do koncepcji unikalności w kontekście baz danych.

Pytanie 30

W JavaScript funkcja document.getElementById(id) ma na celu

A. umieścić tekst o treści ’id’ na stronie internetowej
B. zweryfikować poprawność formularza o identyfikatorze id
C. zwrócić referencję do pierwszego elementu HTML o wskazanym id
D. pobrać wartości z formularza i przypisać je do zmiennej id
Niektóre twoje odpowiedzi trochę mylą rolę metody document.getElementById(id). Myślenie, że ta metoda pobiera dane z formularza i wkłada je do zmiennej id to zły trop. W rzeczywistości, ona służy do uzyskiwania dostępu do elementów, a jeśli chcesz odczytać wartości z pól formularzy, powinieneś użyć właściwości value. Mówienie o tym, że ta metoda sprawdza poprawność formularza, też nie jest na miejscu - do walidacji używa się innych funkcji, jak addEventListener() na zdarzenie 'submit' albo atrybutów HTML5, jak required. No i jeśli chodzi o wstawianie tekstu 'id' na stronę, to też nie tak to działa - document.getElementById(id) daje ci odnośnik do elementu, ale nie modyfikuje go w jakiś bezpośredni sposób. To błędy, które mogą wynikać z nie do końca jasnego zrozumienia, jak działają metody manipulacyjne w JavaScript.

Pytanie 31

Jaki zapis jest używany do definiowania klucza obcego w MySQL?

A. FOREIGN KEY(ID)
B. AUTO_INCREMENT(ID)
C. PRIMARY KEY(ID)
D. UNIQUE KEY(ID)
Odpowiedź FOREIGN KEY(ID) jest poprawna, ponieważ klucz obcy (foreign key) jest używany w bazach danych do ustanowienia i wymuszenia relacji pomiędzy dwiema tabelami. Klucz obcy w tabeli A wskazuje na klucz podstawowy (primary key) w tabeli B, co pozwala na utrzymanie integralności referencyjnej danych. Na przykład, jeżeli mamy tabelę 'Zamówienia', w której zapisujemy informacje o zamówieniach, i tabelę 'Klienci', w której mamy dane o klientach, możemy zastosować klucz obcy w tabeli 'Zamówienia', aby wskazywał na ID klienta w tabeli 'Klienci'. Dzięki temu, nie będzie możliwości dodania zamówienia dla nieistniejącego klienta, co zapewnia spójność i integralność bazy danych. Używanie kluczy obcych jest zgodne z najlepszymi praktykami projektowania baz danych, ponieważ pozwala na łatwiejsze zarządzanie danymi i ogranicza możliwość wystąpienia błędów. Warto również zauważyć, że klucze obce mogą być używane w kontekście kaskadowej aktualizacji lub usuwania, co dodatkowo ułatwia zarządzanie relacjami między tabelami.

Pytanie 32

Mamy tabelę firm, która zawiera takie kolumny jak: nazwa, adres, NIP, obrot (obrót w ostatnim miesiącu), rozliczenie, status. Wykonanie zapytania SQL SELECT spowoduje wyświetlenie

SELECT nazwa, NIP FROM firmy WHERE obrot < 4000;
A. tylko nazwę i numer NIP przedsiębiorstw, które w ostatnim miesiącu miały obrót mniejszy niż 4000 zł
B. wszystkie informacje o firmach, które w minionym miesiącu osiągnęły obrót poniżej 4000 zł
C. wszystkie dane o firmach, które w ostatnim miesiącu miały obrót na poziomie co najmniej 4000 zł
D. tylko nazwę i numer NIP przedsiębiorstw, które w poprzednim miesiącu miały obrót wynoszący przynajmniej 4000 zł
Prawidłowa odpowiedź odwołuje się do kwerendy SQL SELECT która wybiera jedynie kolumny nazwa oraz NIP z tabeli firmy pod warunkiem że kolumna obrot jest mniejsza niż 4000 Kwerenda ta jest przykład zastosowania filtracji danych w celu wyodrębnienia specyficznych informacji z bazy danych co jest kluczowe w analizie biznesowej Dzięki tej operacji można uzyskać listę firm które w ostatnim miesiącu osiągnęły niski obrót co może być istotne dla działów finansowych i marketingowych w celu identyfikacji klientów wymagających dodatkowego wsparcia Tego rodzaju selektywne przetwarzanie danych jest częścią codziennej pracy analityków danych oraz specjalistów od zarządzania relacjami z klientami W praktyce w infrastrukturze bazodanowej tego typu zapytania mogą być stosowane do generowania raportów okresowych lub alertów biznesowych Przy projektowaniu kwerend SQL ważne jest aby precyzyjnie określać które kolumny i wiersze danych są interesujące co nie tylko zwiększa efektywność zapytań ale także pozwala na lepsze zarządzanie zasobami serwera Dobra praktyka polega na optymalizacji zapytań w celu minimalizacji czasów odpowiedzi oraz obciążenia systemów bazodanowych co jest kluczowe dla utrzymania wydajności i niezawodności w dużych systemach informatycznych

Pytanie 33

W tabeli personel znajdują się pola: imię, nazwisko, pensja, staż. Aby obliczyć średnią pensję osób zatrudnionych z doświadczeniem od 10 do 20 lat włącznie, należy przeprowadzić kwerendę:

A. SELECT AVG(*) FROM personel WHERE staz >= 10 AND staz <= 20
B. SELECT COUNT(*) FROM personel WHERE staz >= 10 AND staz <= 20
C. SELECT AVG(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
D. SELECT COUNT(pensja) FROM personel WHERE staz >= 10 AND staz <= 20
Analizując błędne odpowiedzi, można zauważyć, że pierwsza z nich wykorzystuje funkcję COUNT, która zlicza liczbę rekordów spełniających określone warunki, a nie oblicza średniej wartości. W tym przypadku, nawet jeśli kwerenda zwróciłaby liczby pracowników z odpowiednim stażem, nie dostarczyłaby informacji o średniej pensji, co jest kluczowe w postawionym pytaniu. Kolejna błędna odpowiedź również odnosi się do funkcji COUNT, co jeszcze raz pokazuje brak zrozumienia celu analizy. Trzecia odpowiedź, z wykorzystaniem COUNT(*), podobnie jak poprzednie, skupia się na liczbie rekordów, a nie na wartościach numerycznych. W kontekście analizy danych, takie podejście prowadzi do niepełnych wniosków i może zniekształcać rzeczywistość finansową firmy. Wreszcie, ostatnia odpowiedź, wykorzystująca AVG(*) jest niepoprawna z technicznego punktu widzenia, ponieważ funkcja AVG wymaga podania konkretnego pola numerycznego, a nie symbolu ogólnego. W praktyce oznacza to, że użytkownik, który wybiera tę opcję, nie wykorzystuje pełni możliwości, jakie daje SQL, a także nie ma świadomości, jak ważne jest precyzyjne formułowanie zapytań. Podsumowując, błędne odpowiedzi wynikają z nieporozumienia dotyczącego zastosowania funkcji agregujących oraz ich roli w analizie danych.

Pytanie 34

Jakie zadanie wykonuje funkcja agregująca AVG w poniższym zapytaniu?

SELECT AVG(cena) FROM uslugi;
A. sprawdzić, ile usług znajduje się w tabeli
B. zsumować ceny wszystkich usług
C. obliczyć średnią arytmetyczną cen wszystkich usług
D. wyznaczyć największą cenę za usługi
Wskazanie, że AVG sumuje koszty wszystkich usług, to niezbyt trafne stwierdzenie. Prawda jest taka, że AVG nie sumuje, tylko liczy średnią. Do zsumowania wartości powinieneś użyć funkcji SUM, która podaje całkowity koszt. Również myślenie, że AVG pokazuje najwyższą cenę, jest mylne - do tego mamy funkcję MAX, która wyciąga największą wartość. Podobnie, pomysł, że AVG zlicza ilość usług, nie jest poprawny, bo do tego służy funkcja COUNT, która zlicza tylko niepuste wartości. Widać, że można się pogubić w tych funkcjach. Ważne, żeby wiedzieć, co każda z nich robi, zanim zaczniemy analizować dane. Funkcje AVG, SUM, MAX i COUNT mają różne zadania, i zrozumienie ich zastosowania to klucz do skutecznej analizy danych w bazach.

Pytanie 35

Dla akapitu zdefiniowano styl CSS. Które właściwości stylu CSS poprawnie określają dla akapitu czcionkę: Arial; rozmiar czcionki: 16 pt; oraz styl czcionki: pochylenie?

A. p{font-family: Arial; font-size: 16px; font-variant: normal;}
B. p{font-style: Arial; size: 16px; font-weight: normal;}
C. p{font-style: Arial; font-size: 16pt; font-variant: normal;}
D. p{font-family: Arial; font-size: 16pt; font-style: italic;}
Patrząc na inne odpowiedzi, widać tu sporo błędów dotyczących użytych właściwości CSS. W pierwszej odpowiedzi 'font-style' jest źle użyte, bo ta właściwość dotyczy stylizacji, a nie kroju czcionki. Do tego, 'size' zamiast 'font-size' to też błąd, bo 'size' nie działa w CSS, więc nie ma efektu w stylizacji. W drugim przypadku 'font-style' jest w porządku, ale powinno być ustawione na 'italic', a nie jako krój czcionki. Użycie '16pt' jest okej, ale brak 'font-family' oznacza, że nie ustaliliśmy kroju czcionki. W trzeciej odpowiedzi 'font-variant' to nie to, co potrzebujemy w kontekście pytania. Owszem, rozmiar czcionki '16pt' jest dobry, ale 'font-style' jest źle przypisany, co znów prowadzi do błędów. Te pomyłki pokazują, jak ważna jest znajomość terminów i ich odpowiednie stosowanie w CSS, co jest kluczowe, żeby projektować strony skutecznie i zgodnie z najlepszymi praktykami.

Pytanie 36

Zdefiniowana jest tabela uczniowie z polami id, nazwisko, imie oraz klasa. Jakie zapytanie SQL pozwoli nam uzyskać liczbę osób w danym klasa i wskazać jej nazwę?

A. SELECT COUNT(id), klasa FROM uczniowie ORDER BY klasa
B. SELECT SUM(id), klasa FROM uczniowie ORDER BY klasa
C. SELECT COUNT(id), klasa FROM uczniowie GROUP BY klasa
D. SELECT SUM(id), klasa FROM uczniowie GROUP BY klasa
Analizując nieprawidłowe odpowiedzi, można zauważyć kilka kluczowych błędów. Odpowiedź, która sugeruje użycie 'ORDER BY klasa', nie ma sensu w kontekście zliczania uczniów w klasach. Klauzula ORDER BY służy do sortowania wyników, ale nie agreguje danych, co jest niezbędne do uzyskania liczby uczniów w poszczególnych klasach. Z kolei użycie funkcji SUM na polu id jest niewłaściwe, ponieważ SUM sumuje wartości liczbowych, a id jest zazwyczaj unikalnym identyfikatorem, co może prowadzić do błędnych wyników. W kontekście SQL, SUM nie jest odpowiedni dla zliczania rekordów, tym bardziej, gdy celem jest uzyskanie liczby uczniów. W rezultacie, użycie SUM w tym przypadku może prowadzić do zupełnie nieadekwatnych wniosków o liczbie uczniów. Ponadto, takie podejścia mogą prowadzić do nieefektywnego przetwarzania danych, co jest sprzeczne z ideą optymalizacji zapytań w SQL. Kluczowym błędem myślowym w tych odpowiedziach jest niezrozumienie różnicy między funkcjami agregującymi a operacjami sortującymi oraz błędne założenie, że SUM może być użyte w kontekście zliczania. W praktyce, znajomość odpowiednich funkcji oraz ich zastosowania jest kluczowa dla efektywnego zarządzania bazami danych.

Pytanie 37

Jakie dane zostaną pokazane w wyniku wykonania podanego zapytania SQL na 8 rekordach w tabeli zwierzeta?

SELECT imie FROM zwierzeta
WHERE rodzaj = 2
AND szczepienie = 2016;
idrodzajimiewlascicielszczepienieopis
11FafikAdam Kowalski2016problemy z uszami
21BrutusAnna Wysocka2016zapalenie krtani
41SabaMonika Nowak2015antybiotyk
51AlmaJan KowalewskiNULLantybiotyk
62FigaroAnna KowalskaNULLproblemy z uszami
72DikaKatarzyna Kowal2016operacja
82FuksJan Nowak2016antybiotyk
A. Fafik, Brutus, Dika, Fuks
B. Dika, Fuks
C. Anna Kowalska, Jan Nowak
D. Figaro, Dika, Fuks
Analizując odpowiedzi, możemy zauważyć, że wybierając opcje inne niż Dika i Fuks, ignorujemy warunki postawione w zapytaniu SQL. Zapytanie używa operatora 'SELECT', aby wybrać dane z tabeli 'zwierzeta', ale tylko te, które spełniają konkretne kryteria określone za pomocą klauzuli 'WHERE'. Pierwszym warunkiem jest, że kolumna 'rodzaj' musi mieć wartość 2. Drugim warunkiem jest, że kolumna 'szczepienie' musi mieć wartość 2016. Kombinacja tych dwóch warunków za pomocą operatora 'AND' oznacza, że oba muszą być spełnione jednocześnie. Błędne odpowiedzi, takie jak Fafik, Brutus, Dika, Fuks oraz Figaro, Dika, Fuks sugerują, że nie wszystkie warunki były rozważone w analizie danych. W przypadku tych odpowiedzi niektóre z wymienionych imion nie spełniają wszystkich warunków zapytania, co jest błędem w interpretacji danych. Poprawne zapytanie wykorzystuje zarówno analizę logiczną, jak i znajomość struktury tabeli. Dla każdej kolumny i wiersza istotne jest dokładne zrozumienie, jakie dane są wymagane i jakie operatory logiczne są stosowane. Częsty błąd polega na nieuwzględnieniu jednego z warunków, co prowadzi do niepełnego lub błędnego wyniku. Dlatego ważne jest, aby zawsze dokładnie przemyśleć strukturę zapytania i dokładnie sprawdzić, jakie dane wpisujemy do każdego z warunków w klauzuli 'WHERE'. To pomoże uniknąć typowych błędów podczas pracy z bazami danych i zapewni, że wyniki są dokładne i zgodne z oczekiwaniami.

Pytanie 38

Aby przywrócić bazę danych o nazwie Sklep z pliku towary.sql, należy w miejsce gwiazdek wpisać nazwę użytkownika. Polecenie wygląda następująco:

mysql -u ******* -p Sklep < towary.sql
A. liczbę importowanych obiektów bazy.
B. adres IP bazy danych.
C. nazwę odzyskiwanej tabeli.
D. nazwę użytkownika.
W tym poleceniu kluczowy jest fragment „-u *******”. Przełącznik -u w kliencie mysql zawsze oznacza nazwę użytkownika bazy danych, pod której kontem chcemy się połączyć z serwerem MySQL/MariaDB. Dlatego w miejsce gwiazdek wpisujemy konkretną nazwę użytkownika, np. root, admin, albo konto utworzone specjalnie do obsługi danej aplikacji, np. sklep_user. To jest standardowa składnia narzędzia wiersza poleceń mysql: mysql -u NAZWA_UŻYTKOWNIKA -p NAZWA_BAZY < plik.sql. Opcja -p mówi, że program ma poprosić o hasło dla tego użytkownika (nie podajemy hasła wprost w poleceniu, ze względów bezpieczeństwa). Nazwa bazy danych, do której importujemy dane, pojawia się dalej, w tym przykładzie jest to Sklep. Z kolei po znaku < podajemy plik z kopią bazy, czyli skryptem SQL zawierającym instrukcje CREATE TABLE, INSERT i inne potrzebne do odtworzenia struktury i danych. W praktyce przy przywracaniu baz danych zawsze łączymy się jako użytkownik, który ma odpowiednie uprawnienia: przynajmniej do tworzenia tabel i wstawiania danych w tej bazie (INSERT, CREATE, ALTER, czasem DROP). W środowiskach produkcyjnych dobrą praktyką jest nie używać konta root, tylko dedykowanego użytkownika z ograniczonymi uprawnieniami. Moim zdaniem warto też pamiętać, że adres IP serwera bazy (opcjonalnie podawany przez -h) i port (-P) to zupełnie inne parametry niż -u. One określają, z jakim serwerem się łączymy, a -u i -p – kim się logujemy. To rozróżnienie jest bardzo ważne przy codziennej administracji i automatyzacji backupów oraz importów.

Pytanie 39

Metainformacja “Description" zawarta w pliku źródłowym HTML powinna zawierać

<head>
    <meta name="Description" content="..." >
</head>
A. opis, co znajduje się na stronie.
B. wyrazy kluczowe, z których korzystają wyszukiwarki sieciowe.
C. informację, kto jest autorem strony.
D. nazwę programu, przy użyciu którego została stworzona strona.
Należy podkreślić, że choć autor strony czy program, którym strona została stworzona, to informacje mogą być ciekawe, nie są one celem metainformacji 'Description'. Informacje o autorstwie czy narzędziach służących do stworzenia strony mogą zostać uwzględnione w innych metatagach lub sekcjach strony, ale nie w 'Description'. Na przykład, metatag 'author' jest przeznaczony do wskazywania autora strony. Podobnie, informacje o oprogramowaniu, które zostało użyte do stworzenia strony, zwykle są zawarte w metatagu 'generator'. Co do wyrazów kluczowych, to choć są one istotne dla optymalizacji strony pod kątem wyszukiwarek, nie powinny być jedyną zawartością metatagu 'Description'. Kluczowe słowa powinny być raczej wplecione w naturalny, czytelny dla użytkownika opis strony. W ten sposób 'Description' staje się efektywnym narzędziem SEO, które pomaga zwiększyć ruch na stronie.

Pytanie 40

W języku JavaScript zdefiniowano obiekt ```obiekt = { q: 1, w: 2, e: 3, r: 4 };``` W jaki sposób można uzyskać wartość właściwości ```w```?

A. obiekt:w
B. obiekt::w
C. obiekt->w
D. obiekt.w
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące składni języka JavaScript. Użycie obiekt:w sugeruje, że istnieje jakiś operator dostępu do właściwości za pomocą dwukropka, co jest niezgodne z zasadami składniowymi JavaScript. W rzeczywistości dwukropek w tym kontekście nie ma znaczenia i jest błędnie interpretowany. Podobnie, obiekt::w użytkuje podwójny dwukropek, co z kolei jest składnią nieznaną w JavaScript i nie ma zastosowania w kontekście odwoływania się do właściwości obiektu. Z kolei obiekt->w sugeruje, że programista próbuje skorzystać z operatora strzałki, który występuje w innych językach programowania, takich jak C++ czy PHP, ale nie jest on używany w JavaScript. W JavaScript stosuje się wyłącznie notację kropkową lub nawiasową do odwoływania się do właściwości obiektów. Chociaż różne języki programowania mogą mieć swoje własne konwencje dotyczące operatorów dostępu do właściwości, JavaScript pozostaje konsekwentny w swojej składni, co ułatwia zrozumienie i naukę. Ważne jest, aby programiści zapoznali się z podstawami składni JavaScript, aby unikać takich błędów i poprawnie wykorzystywać możliwości obiektowego modelu tego języka.