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: 30 kwietnia 2026 14:06
  • Data zakończenia: 30 kwietnia 2026 14:15

Egzamin niezdany

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

Który efekt został zaprezentowany na filmie?

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

Pytanie 2

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_query($zapytanie)
B. mysqli_fetch_array($zapytanie)
C. mysqli_free_result($zapytanie)
D. mysqli_num_fields($zapytanie)
Funkcja mysqli_fetch_array($zapytanie) jest używana do pobierania wyników zapytania SQL w formie tablicy asocjacyjnej lub indeksowanej. W kontekście podanego kodu, po wykonaniu zapytania SELECT do bazy danych, wyniki są zwracane jako zasób, który musi być przetworzony. Mysqli_fetch_array pozwala na iteracyjne przetwarzanie każdego wiersza z zestawu wyników, co umożliwia dostęp do poszczególnych wartości pól za pomocą indeksów lub kluczy. Jest to przydatne w sytuacjach, gdzie dane muszą być wyświetlane lub przetwarzane w pętli, jak w przykładowym kodzie. Tablica zwracana przez mysqli_fetch_array może zawierać pola zarówno z indeksami numerycznymi, jak i nazwami kolumn, co daje elastyczność w dostępie do danych. Zgodnie z dobrymi praktykami programistycznymi, zawsze należy sprawdzić, czy zapytanie zostało wykonane poprawnie, zanim zacznie się przetwarzać jego wyniki, oraz zwolnić pamięć po zakończeniu przetwarzania wyników. Stosowanie odpowiednich mechanizmów obsługi błędów i zabezpieczeń, takich jak przygotowane zapytania, jest również kluczowe dla bezpieczeństwa aplikacji.

Pytanie 3

Który z poniższych skryptów pokazuje bieżącą datę oraz czas w formacie 2024-04-14 13:45:19?

A. <?php date("Y-m-d”) + time("G:i:s"); ?>
B. <?php echo date("Ymd Gis"); ?>
C. <?php date("Y-m-d G:i:s"); ?>
D. <?php echo date("Y-m-d G:i:s"); ?>
W pierwszej odpowiedzi użycie date oraz time jest niepoprawne, ponieważ funkcja time w PHP nie przyjmuje parametrów i zwraca znacznik czasu Unix, który nie formatuje czasu w sposób czytelny dla użytkownika. Próba dodawania tych dwóch funkcji powoduje błąd składniowy, ponieważ nie można łączyć wyników funkcji za pomocą operatora + w ten sposób. Druga odpowiedź używa funkcji echo poprawnie, ale formatowanie daty i czasu jest błędne. W tej odpowiedzi brakuje łączników pomiędzy elementami daty i czasu, co powoduje nieczytelny wynik, taki jak 20190923 105816. Ponadto, nie zastosowano dwukropków pomiędzy godziną minutami i sekundami, co jest kluczowe dla zrozumienia przez użytkownika. Trzecia odpowiedź zawiera poprawne formatowanie daty i czasu, ale nie używa funkcji echo, co oznacza, że wynik nie zostanie wyświetlony użytkownikowi. W PHP funkcja date musi być połączona z echo lub print, aby jej wynik był widoczny na stronie. Typowy błąd myślowy polega na nierozróżnieniu między formatowaniem a wyświetlaniem danych, co jest kluczowe w programowaniu webowym. Zrozumienie tych zasad jest fundamentalne dla tworzenia dynamicznych i interaktywnych aplikacji.

Pytanie 4

Funkcją przedstawionego kodu PHP będzie wypełnienie tablicy

$tab = array();
for ($i = 0; $i < 10; $i++) {
    $tab[$i] = rand(-100, 100);
}

foreach ($tab as $x) {
    if ($x < 0) echo "$x ";
}
A. 100 losowymi wartościami, a następnie wypisanie wartości dodatnich
B. 10 losowymi wartościami, a następnie wypisanie wartości ujemnych
C. Kolejnymi liczbami od 0 do 9 i wypisanie ich
D. Kolejnymi liczbami od -100 do 100 i wypisanie wartości ujemnych
Analizując błędne odpowiedzi, warto zauważyć, że niektóre z nich sugerują nieprawidłowe zrozumienie działania funkcji rand() i pętli for w PHP. Kod pokazuje, że pętla for jest używana do iteracji 10 razy, co oznacza, że tablica będzie wypełniona 10 wartościami, a nie 100. Funkcja rand(-100,100) generuje liczby z przedziału od -100 do 100, a nie tylko dodatnie czy kolejne liczby, co wyklucza możliwość wypełnienia tablicy kolejnymi liczbami od 0 do 9 czy od -100 do 100. Dalsze nieporozumienia mogą wynikać z błędnego zrozumienia instrukcji warunkowej w pętli foreach, która wyświetla tylko wartości ujemne, a nie dodatnie. Częste błędy to także założenie, że wszystkie elementy są przetwarzane jednakowo bez sprawdzenia warunku. Dobre praktyki programistyczne wymagają uważnego czytania i analizy kodu, aby zrozumieć jego logikę. Zrozumienie mechaniki działania pętli i instrukcji warunkowych jest kluczowe w programowaniu i często stanowi podstawę bardziej zaawansowanych algorytmów. Ostatecznie skuteczne przetwarzanie danych w PHP wymaga dokładnego zrozumienia struktury kodu i jego funkcji, co może być wyzwaniem, jeśli koncepcje te są źle zinterpretowane. Ważne jest, aby programista dokładnie rozumiał, jakie wartości są generowane i które z nich są wyświetlane, aby uniknąć niezamierzonych rezultatów w aplikacji.

Pytanie 5

Informacje o ciasteczkach są przechowywane w tablicy

A. $_COOKIE
B. $_SERVER
C. $_POST
D. $_GET
Odpowiedź $_COOKIE jest prawidłowa, ponieważ to właśnie ten superglobalny zbiór w PHP przechowuje dane ciasteczek w postaci tablicy asocjacyjnej. Ciasteczka są małymi plikami danych, które są przechowywane na komputerze użytkownika przez przeglądarkę internetową. Umożliwiają one stronom internetowym przechowywanie informacji na temat sesji użytkownika, preferencji lub stanu logowania. W praktyce, aby uzyskać wartość konkretnego ciasteczka, można użyć składni $_COOKIE['nazwa_ciasteczka']. Na przykład, jeśli mamy ciasteczko o nazwie 'user', możemy uzyskać jego wartość przez $_COOKIE['user']. Warto pamiętać, że ciasteczka są limitowane do 4KB danych oraz mają różne daty wygaśnięcia, co czyni je elastycznym narzędziem do zarządzania sesjami i preferencjami użytkowników w aplikacjach webowych. Dobre praktyki mówią, aby nie przechowywać w ciasteczkach informacji wrażliwych, a zamiast tego stosować mechanizmy szyfrowania, aby zwiększyć bezpieczeństwo przechowywanych danych.

Pytanie 6

Zamieszczony kod HTML formularza zostanie wyświetlony przez przeglądarkę w sposób:

<form>
stanowisko: <input type="text"><br>
obowiązki: <br>
<input type="checkbox" name="obowiazek1" value="1" disabled checked>sporządzanie dokumentacji<br>
<input type="checkbox" name="obowiazek2" value="2" checked>pisanie kodu<br>
<input type="checkbox" name="obowiazek3" value="3">testy oprogramowania<br>
</form>

A.

stanowisko: obowiązki: sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

B.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

C.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania

D.

stanowisko:
obowiązki:
sporządzanie dokumentacji
pisanie kodu
testy oprogramowania
A. D.
B. C.
C. A.
D. B.
Przy ocenie, jak przeglądarka wyświetli formularz HTML, warto mieć na uwadze, że przeglądarki internetowe trzymają się dość sztywno tego, co wynika bezpośrednio z kodu źródłowego. Bardzo typowym błędem jest nadmierne skupienie się na samych polach wyboru czy zawartości formularza, bez uwzględnienia układu wynikającego z użycia znaczników <br> – to właściwie one decydują o tym, gdzie pojawiają się nowe linie. Ktoś może sądzić, że kolejność checked lub disabled zmieni znacząco wygląd – ale to nieprawda, bo atrybuty te wpływają na stan i interaktywność, a nie na rozmieszczenie. W jednej z błędnych propozycji pomieszano, które checkboxy są zaznaczone, a które nie, co prowadzi do przekłamań względem rzeczywistego kodu. Zdarza się też, że przy kopiowaniu kodu pomija się disabled lub checked przy konkretnym polu i całość wygląda inaczej niż powinna – tak po prostu nie działa przeglądarka. Ważne jest też zrozumienie, że disabled powoduje, iż pole jest wyszarzone i nie można na nim operować, natomiast checked przy polu checkbox ustawia je domyślnie jako zaznaczone. Pominięcie <br> po polu tekstowym sprawia, że kolejne elementy formularza lądują w jednej linii – co w praktyce bardzo rzadko się zdarza, bo narusza czytelność, a kod źródłowy wyraźnie tego nie przewiduje. Z mojego doświadczenia widziałem wiele formularzy, które przez nieuwagę programistów wprowadzały użytkownika w błąd przez złe rozmieszczenie elementów – nie chodzi tylko o „ładny wygląd”, ale też o funkcjonalność i dostępność. W praktyce branżowej trzymanie się tego, co wynika z kodu HTML, to podstawa, bo zapewnia przewidywalność działania na wszystkich platformach. Dobrym zwyczajem jest zawsze sprawdzić, jak kod wyświetla się w przeglądarce i porównać go z tym, co chcieliśmy osiągnąć. Dzięki temu unikamy nieporozumień i nieprawidłowych założeń, które mogą prowadzić do błędów zarówno w warstwie frontendowej, jak i podczas przetwarzania danych na serwerze.

Pytanie 7

Wskaż PRAWIDŁOWE stwierdzenie dotyczące polecenia: CREATE TABLE IF NOT EXISTS ADRES(ulica VARCHAR(70) CHARACTER SET utf8);

A. Do tabeli nie można wprowadzać ulic, które zawierają w nazwie polskie znaki
B. IF NOT EXISTS jest stosowane opcjonalnie, aby upewnić się, że tabela nie istnieje już w bazie danych
C. Rekordem tabeli nie może być 3 MAJA
D. Klauzula CHARACTER SET utf8 jest wymagana
Stwierdzenie, że 'IF NOT EXISTS' stosuje się opcjonalnie, aby upewnić się, że brak w bazie danych takiej tabeli, jest jak najbardziej prawdziwe. Klauzula ta jest używana w kontekście tworzenia tabel, aby uniknąć błędu, który wystąpiłby, gdyby tabela o tej samej nazwie już istniała. Dzięki temu programista może mieć pewność, że operacja tworzenia tabeli przebiegnie pomyślnie, bez konieczności wcześniejszego sprawdzania, czy tabela już istnieje. Przykładowo, w praktyce programistycznej, podczas automatyzacji skryptów do zarządzania bazami danych, często wykorzystuje się tę klauzulę, aby zapewnić, że skrypty są odporne na błędy wynikające z istniejących obiektów. Jest to zgodne z dobrymi praktykami w programowaniu baz danych, które koncentrują się na minimalizowaniu ryzyka i poprawie efektywności pracy.

Pytanie 8

Kto z wymienionych zajmuje się stałym przygotowaniem systemu bazy danych do działania w produkcji, zarządzaniem kontami użytkowników oraz instalowaniem nowych wersji systemu bazodanowego?

A. Projektanci i programiści Systemu Zarządzania Bazą Danych
B. Administratorzy serwerów oraz sieci komputerowych
C. Administratorzy systemu bazy danych
D. Twórcy narzędzi programistycznych
Administratorzy systemu bazy danych (DBA) odgrywają kluczową rolę w zarządzaniu bazami danych w organizacji. Ich głównym zadaniem jest zapewnienie ciągłej dostępności systemu bazy danych, co obejmuje zarówno przygotowanie środowiska do pracy produkcyjnej, jak i monitorowanie jego wydajności. DBA są odpowiedzialni za zarządzanie użytkownikami, co oznacza, że tworzą i usuwają konta użytkowników oraz przydzielają odpowiednie uprawnienia dostępu, co jest istotne dla bezpieczeństwa danych. Dodatkowo, DBA instalują nowe wersje systemu bazodanowego, co wiąże się z aktualizacjami oprogramowania, które często zawierają poprawki błędów oraz nowe funkcje. Przykładem takiej praktyki jest regularne tworzenie kopii zapasowych danych oraz ich przywracanie w przypadku awarii. DBA muszą także znać standardy i dobre praktyki branżowe, takie jak modelowanie danych czy optymalizacja zapytań SQL, co wpływa na efektywność działania bazy danych. Współpraca z innymi działami IT, takimi jak programiści czy inżynierowie systemowi, jest również niezbędna dla sprawnego funkcjonowania systemów opartych na bazach danych.

Pytanie 9

Jaką funkcję spełnia atrybut value w polu formularza XHTML?

<input type="text" name="name" value="value">
A. określa domyślną wartość
B. definiuje maksymalną długość pola
C. określa nazwę pola
D. czyni pole jedynie do odczytu
Atrybut value w polu formularza XHTML określa domyślną wartość, jaka pojawi się w polu tekstowym po załadowaniu strony. Jest to przydatne, gdy chcemy zasugerować użytkownikowi domyślne dane lub ułatwić wprowadzanie informacji. Przykładem może być formularz logowania, gdzie atrybut value jest używany do wczytywania zapisanego wcześniej adresu e-mail użytkownika. W formularzach XHTML stosuje się ten atrybut zgodnie z dobrymi praktykami, aby poprawić doświadczenie użytkownika i ułatwić interakcję z witryną. Warto zauważyć, że w przypadku innych typów pól formularzy, na przykład checkbox lub radio, atrybut value określa wartość, która zostanie przesłana, gdy dane pole zostanie zaznaczone. W kontekście dobrych praktyk należy także pamiętać o zabezpieczeniach formularzy, takich jak walidacja danych po stronie serwera, aby zapobiec potencjalnym lukom bezpieczeństwa wynikającym z nieoczekiwanych danych wejściowych. Stosowanie atrybutu value w sposób przemyślany pozwala również na lepszą integrację formularzy z mechanizmami autouzupełniania przeglądarek, co jest korzystne dla użytkowników

Pytanie 10

Ile razy należy użyć instrukcji warunkowej, aby wdrożyć w danym języku programowania przedstawiony algorytm?

Ilustracja do pytania
A. Trzykrotnie
B. Jednokrotnie
C. Dwukrotnie
D. Czterokrotnie
W programowaniu, liczba użytych instrukcji warunkowych często odpowiada liczbie punktów decyzyjnych w algorytmie. Diagram przedstawiony w pytaniu zawiera dwie decyzje, co oznacza, że potrzebne są dwie instrukcje warunkowe. Wybór jednego razu świadczyłby o niezrozumieniu, że pojedyncza instrukcja nie wystarczy do pokrycia dwóch odrębnych ścieżek logicznych. Trzy lub cztery instrukcje byłyby zbędne i mogłyby prowadzić do nadmiernej komplikacji kodu. Często popełnianym błędem jest też zbyt częste używanie instrukcji warunkowych dla prostych problemów, co negatywnie wpływa na czytelność i wydajność kodu. Dobre praktyki programowania, jak te opisane w 'Clean Code' Roberta C. Martina, zalecają minimalizację złożoności kodu poprzez używanie tylko niezbędnej ilości instrukcji warunkowych. Warto również zwrócić uwagę na to, aby każda instrukcja warunkowa była dobrze przemyślana i adekwatna do danego problemu, co pozwala na uniknięcie błędów logicznych i ułatwia przyszłe modyfikacje kodu.

Pytanie 11

Który kod HTML zapewni identyczny efekt formatowania jak na przedstawionym obrazku?

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML
A. <p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
B. <p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
C. <p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
D. <p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania</i> tekstu w HTML</p>
Odpowiedź numer 2 jest poprawna, ponieważ używa odpowiednich znaczników HTML do formatowania tekstu. Znacznik <i> stosowany jest do oznaczania tekstu kursywą, a znacznik <b> do pogrubienia. W tym przypadku tekst 'paragrafie' i 'sposoby formatowania' są otoczone znacznikiem <i>, co zgodnie z HTML oznacza kursywę. Natomiast słowo 'zobaczysz' jest otoczone zarówno <b> jak i <i>, co skutkuje pogrubieniem i kursywą jednocześnie. Taka struktura jest zgodna z konwencją hierarchii znaczników, która mówi, że znaczniki mogą być zagnieżdżane, aby uzyskać różne efekty formatowania. HTML pozwala na takie zagnieżdżanie, co jest częścią elastyczności tego języka w prezentowaniu treści. Dobrą praktyką jest także zapewnienie dostępności, gdzie znaczniki semantyczne mają szczególne znaczenie. Wykorzystanie <b> i <i> zamiast odpowiednio <strong> i <em> jest bardziej stylistyczne niż semantyczne, co ma swoje uzasadnienie w kontekście projektowym, ale w nowoczesnych praktykach powinno się również rozważyć znaczenie semantyczne i używać <strong> i <em> dla lepszego zrozumienia przez czytniki ekranowe.

Pytanie 12

Używa się zapytania z klauzulą JOIN, aby

A. uzyskać dane z dwóch tabel, które są ze sobą powiązane
B. otrzymać wynik tylko z jednej tabeli
C. wykonać funkcję agregującą
D. określić klucz obcy dla tabeli
Zastosowanie klauzuli JOIN w zapytaniach SQL jest często mylone z innymi operacjami na tabelach, co prowadzi do nieporozumień i błędnych koncepcji. Definiowanie klucza obcego dla tabeli jest procesem, który nie ma bezpośredniego związku z samym zapytaniem. Klucz obcy, który służy do utrzymania integralności referencyjnej między tabelami, jest konfigurowany podczas tworzenia lub modyfikacji struktury bazy danych, a nie podczas pisania zapytań. Ponadto, wywoływanie funkcji agregujących, takich jak SUM czy COUNT, może być przeprowadzane niezależnie od tego, czy w zapytaniu wykorzystujemy JOIN. Funkcje te mogą działać na danych z jednej tabeli, co jest sprzeczne z błędnym stwierdzeniem, że JOIN jest niezbędny do ich wywołania. Ostatnim nieporozumieniem jest idea, że można otrzymać wyniki tylko z jednej tabeli. W praktyce, wiele zapytań wymaga współpracy między tabelami, aby uzyskać pełniejszy kontekst danych. Dobrą praktyką w projektowaniu baz danych jest jednak unikanie nieefektywnego łączenia tabel, jeżeli nie jest to konieczne, co może prowadzić do nieoptymalnej wydajności zapytań. Znajomość różnicy między operacjami na poziomie struktury bazy danych a zapytaniami pozwala na lepsze projektowanie i wykorzystanie systemów bazodanowych.

Pytanie 13

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(21, 16, 254)
B. rgb(15, 10, FE)
C. rgb(21, 16, 255)
D. rgb(21, 16, FE)
Wartości RGB w heksadecymalnym nie zawsze są oczywiste i często trzeba je przeliczać. Odpowiedzi rgb(15, 10, FE) i rgb(21, 16, 255) nie są do końca poprawne, bo źle zinterpretowano wartości z formatu hex. W pierwszym przypadku użyto dobrego formatu, ale liczby 15 i 10 zostały źle przeliczone na dziesiętny. '15' z hex to 21, '10' to 16, więc to jest ok, ale 'FE' powinno dać 254, a nie zostać jako 'FE' lub przeliczone na 255. W drugiej błędnej odpowiedzi, pamiętaj, że wartości RGB muszą się mieścić w przedziale 0-255, a przeliczenie 'FE' na 255 to duża pomyłka. Często się zdarza, że ludzie pomijają te obliczenia i przyjmują wartości hex bez konwersji, co powoduje zamieszanie w kolorach w projektach graficznych i aplikacjach. Zrozumienie przeliczenia heksadecymalnych wartości na RGB to klucz do tworzenia fajnych wizualizacji.

Pytanie 14

SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;
Podane zapytanie wybierze:
A. nazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
B. nazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.
C. nazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
D. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
Zapytanie z klauzulą GROUP BY i funkcją AVG bywa mylone z sumowaniem danych lub zwykłym wybieraniem rekordów jeden po drugim. W tym konkretnym przypadku bardzo łatwo pomylić średnią z sumą albo nie zauważyć, że grupowanie usuwa powtórzenia wartości w kolumnie grupującej. Warto to uporządkować. Funkcja AVG(pensja) jest klasyczną funkcją agregującą, której zadaniem jest obliczenie średniej arytmetycznej z wartości w danej grupie rekordów. Nie dodaje ona wszystkich pensji „na kupę” tak jak SUM, tylko dzieli ich sumę przez liczbę rekordów w grupie. Jeżeli ktoś spodziewa się sumy, to patrzy bardziej w stronę SUM(pensja), a nie AVG(pensja). To jest typowy błąd: widzimy funkcję agregującą i automatycznie myślimy „to pewnie suma”, bez dokładnego przeczytania nazwy funkcji. Druga kwestia to powtórzenia miast. Klauzula GROUP BY miasto mówi silnikowi bazy danych: pogrupuj wszystkie wiersze według wartości w kolumnie miasto. W efekcie wszystkie rekordy z tym samym miastem są łączone w jedną grupę. Dla każdej takiej grupy zwracany jest dokładnie jeden wiersz wyniku. To oznacza, że w rezultacie zapytania nie ma powtórzonych nazw miast, nawet jeśli w tabeli jest tysiąc pracowników z Warszawy czy Krakowa. Częsty błąd myślowy polega na przenoszeniu intuicji z prostego SELECT bez GROUP BY, gdzie miasto faktycznie się powtarza, na zapytanie z agregacją, gdzie logika jest już inna. W odpowiedziach, które sugerują „z powtórzeniami”, ignorowane jest działanie GROUP BY. Z kolei odpowiedzi mówiące o „sumie pensji” mylą AVG z SUM, co w praktyce może prowadzić do bardzo poważnych błędów analitycznych – wyobraź sobie raport płacowy, w którym zamiast średniej ktoś pokaże sumę wynagrodzeń i na tej podstawie będzie porównywał miasta. Moim zdaniem dobrą praktyką jest zawsze czytanie zapytania fragment po fragmencie: najpierw jakie kolumny są wybierane, potem jakie funkcje agregujące są użyte, a na końcu po czym następuje grupowanie. Taka metoda pozwala uniknąć właśnie takich nieporozumień i lepiej rozumieć, co dokładnie zwróci baza danych, co jest kluczowe przy pracy z realnymi systemami produkcyjnymi.

Pytanie 15

W tabeli zadania znajduje się pole tekstowe status. Jakie zapytanie należy użyć, aby usunąć te zadania, które mają status 'zamknięte'?

A. DELETE FROM zadania;
B. TRUNCATE TABLE zadania WHERE status = 'zamknięte';
C. TRUNCATE TABLE zadania;
D. DELETE FROM zadania WHERE status = 'zamknięte';
Odpowiedź DELETE FROM zadania WHERE status = 'zamknięte' jest poprawna, ponieważ wykorzystuje standardową składnię SQL do usuwania rekordów z tabeli na podstawie zadanych warunków. W tym przypadku, kwerenda ta usuwa tylko te wiersze, które mają wartość 'zamknięte' w polu status. Jest to podejście zgodne z dobrymi praktykami, ponieważ pozwala na precyzyjne określenie, które dane mają zostać usunięte, co minimalizuje ryzyko przypadkowego usunięcia innych rekordów. Na przykład, w systemie zarządzania projektami, możemy mieć wiele zadań z różnymi statusami, takimi jak 'otwarte', 'w trakcie', czy 'zamknięte'. Użycie tej kwerendy pozwala na oczyszczenie bazy danych z nieaktualnych zadań, co jest kluczowe dla utrzymania porządku i efektywności w zarządzaniu projektami. Ponadto, stosując tę metodę, możemy w przyszłości łatwo modyfikować warunki usuwania, na przykład zmieniając status na 'wstrzymane', zachowując elastyczność w zarządzaniu danymi.

Pytanie 16

Przedstawiony w ramce kod języka PHP oznacza, że zmienna $liczba2 jest

Ilustracja do pytania
A. iloczynem logicznym ze zmienną $liczba1
B. referencją do $liczba1
C. wskaźnikiem do $liczba1
D. negacją logiczną zmiennej $liczba1
Kod $liczba2 = &$liczba1; w PHP często bywa mylony z różnymi innymi mechanizmami, bo ten sam znak & występuje także w innych kontekstach. Tutaj jednak nie mamy ani wskaźnika w sensie znanym z języka C, ani operacji logicznej. Silnik PHP traktuje taki zapis jako utworzenie referencji, czyli dwóch nazw dla tej samej wartości w pamięci. To jest dość wysokopoziomowa konstrukcja, a nie bezpośrednia manipulacja adresami. Mylenie tego zapisu ze wskaźnikiem bierze się z analogii do C/C++, gdzie & kojarzy się z adresem. W PHP programista nie dostaje jednak do ręki adresów pamięci, nie może ich inkrementować, przesuwać ani wykonywać typowych operacji wskaźnikowych. Referencja w PHP jest bardziej mechanizmem zarządzania zmiennymi przez silnik, ukrytym pod prostą składnią. Dlatego mówienie, że $liczba2 jest wskaźnikiem do $liczba1, jest merytorycznie błędne – to inny poziom abstrakcji. Kolejne częste nieporozumienie dotyczy logiki. Operator negacji logicznej w PHP to !, a nie &, więc zapis &$liczba1 nie może oznaczać negacji. Ampersand w kontekście logicznym w PHP w ogóle nie występuje jako samodzielny operator, więc łączenie go z pojęciem negacji jest całkowicie chybione. Podobnie w przypadku iloczynu logicznego: w PHP używa się && albo and, natomiast pojedyncze & ma inne znaczenie – w starszych wersjach języka było też używane do operacji bitowych oraz właśnie do referencji. Żaden z tych wariantów nie pasuje do odpowiedzi o iloczynie logicznym zmiennej $liczba1. Typowy błąd myślowy polega na tym, że ktoś kojarzy sam znak & z „jakąś logiką” lub „adresami pamięci” i na tej podstawie strzela odpowiedź, zamiast odnieść się do konkretnej składni PHP. W programowaniu webowym, szczególnie w PHP, warto patrzeć na pełny kontekst: gdzie stoi &, czy jest przed nazwą zmiennej w definicji funkcji, przy przypisaniu, czy może pomiędzy wyrażeniami. Dopiero z tego wynika prawidłowa interpretacja. W tym zadaniu kontekst jest jasny: mamy operator referencji przy przypisaniu, więc chodzi wyłącznie o powiązanie dwóch zmiennych z tą samą wartością, a nie o logikę czy wskaźniki w niskopoziomowym znaczeniu.

Pytanie 17

Zapytanie z użyciem klauzuli JOIN jest wykorzystywane w celu

A. uzyskania wyników tylko z jednej tabeli
B. określenia klucza obcego dla tabeli
C. wywołania funkcji agregującej
D. pozyskania wyników z dwóch tabel, które są ze sobą powiązane
Wybór odpowiedzi, który wskazał na funkcje agregujące albo klucze obce, pokazuje, że mogło dojść do pewnego zamieszania z podstawami relacyjnych baz danych. Funkcje agregujące, jak SUM czy COUNT, robią co innego – one działają na zbiorach danych, a nie łączą tabel. Klucz obcy to fajny mechanizm do tworzenia relacji między tabelami, ale sam w sobie nie generuje wyników. Wiem, że klucze obce są ważne, ale nie mają bezpośredniego związku z klauzulą JOIN, która służy do łączenia różnych tabel. Ograniczenie wyników do tylko jednej tabeli nie ma sensu, bo TO nie jest cel klauzuli JOIN. To, że nie zrozumiesz tej zasady, może prowadzić do dużych problemów przy projektowaniu bazy oraz trudności w zbieraniu potrzebnych informacji. Ważne jest, żeby wiedzieć, jak i kiedy używać JOIN, ponieważ bez tego stracisz wiele możliwości. Często ludzie mylą operacje na tabelach z operacjami na pojedynczych wartościach, co jest największym błędem do uniknięcia w SQL.

Pytanie 18

Aby włączyć zewnętrzny skrypt JavaScript o nazwie skrypt.js, konieczne jest umieszczenie w kodzie HTML

A. <script> skrypt.js </script>
B. <script src="/skrypt.js"></script>
C. <link rel="script" href="/skrypt.js" />
D. <link rel="JavaScript" type="js" href="/skrypt.js" />
W niepoprawnych odpowiedziach widać, że mogą występować nieporozumienia związane z HTML czy z osadzaniem zewnętrznych plików. Na przykład, użycie <script> skrypt.js </script> jest błędne, bo nie wskazuje na źródło pliku. W związku z tym przeglądarka nie wie, skąd wziąć ten skrypt. Koniecznie trzeba użyć atrybutu src, żeby powiedzieć, gdzie jest plik. Co do <link rel="script" href="/skrypt.js" />, to jest totalnie mylące, bo tag <link> jest do stylów CSS, a nie do skryptów JavaScript. Takie coś spowoduje błędy, bo przeglądarka nie załadowałaby skryptu, co w efekcie prowadzi do braku funkcjonalności w aplikacji. Jeszcze w przypadku <link rel="JavaScript" type="js" href="/skrypt.js" /> mamy problem, bo atrybut rel powinien dotyczyć typu relacji i nie ma opcji dla skryptów. Ważne jest, aby zrozumieć różnice między tagami HTML i umieć je stosować poprawnie. Jak nie będziesz przestrzegał tych zasad, mogą pojawić się kłopoty z działaniem aplikacji.

Pytanie 19

W języku JavaScript, w programowaniu obiektowym, zapis this.zawod w przedstawionym kodzie oznacza

function Uczen(){
  this.imie = "";
  this.nazwisko = "";
  this.technik = 'informatyk';
  this.zawod = function(){
    return this.technik;
  };
}
A. metodę
B. konstruktor
C. właściwość
D. klasę
Kod JavaScript używa funkcji do tworzenia obiektów, co może być mylące. Kiedy wskazujesz this.zawod, to pokazujesz, że to jest metoda, ale wybór odpowiedzi klasa jest nieprawidłowy. JavaScript nie działa z klasami jak w Javie czy C#. Klasy pojawiły się dopiero w ES6 jako taki dodatek do funkcji konstrukcyjnych. Odpowiedź metoda to w sumie strzał w dziesiątkę, bo w obiektach funkcja przypisana do właściwości to właśnie metoda, która działa na danych obiektu. Wybór konstruktor też jest błędny, bo konstruktor to specjalna funkcja do tworzenia nowych obiektów, i w naszym przykładzie to ta funkcja Uczen. Z kolei odpowiedź właściwość jest myląca, bo choć this.zawod to właściwość, która trzyma funkcję, to jest też metodą. Warto zrozumieć różnice między właściwościami a metodami, bo to jest kluczowe w programowaniu obiektowym w JavaScript.

Pytanie 20

Które wyrażenie należy wstawić w miejsce ??? w pętli zapisanej w języku C++, aby zostały wyświetlone jedynie elementy tablicy tab

int tab[6];
for (int i = 0; ???; i++)
cout << tab[i];
A. i >= 6
B. i > 6
C. i < 6
D. i <= 6
Odpowiedź 'i >= 6' jest błędna, bo prowadzi do tego, że pętla opuści wszystkie elementy tablicy. Gdy i osiągnie 6 lub więcej, pętla staje, więc nic się nie wyświetli, bo przecież indeksy zaczynają się od 0, a kończą na 5. To jest typowy błąd, który wynika z nie do końca zrozumienia, jak działają tablice w C++. Z kolei 'i <= 6' też nie jest ok, bo wtedy pętla zakończy się po wyświetleniu elementu z indeksem 6, co prowadzi do niezdefiniowanego zachowania – a to nie jest fajne, bo nie ma takiego elementu w tablicy z sześcioma elementami. Odpowiedź 'i > 6' też jest źle, bo nie wykona żadnej iteracji, znowu pomijając całą tablicę. Ważne jest, żeby pamiętać, że indeksy tablic zaczynają się od 0, a ostatni indeks przy rozmiarze n wynosi n-1. Stosowanie złych warunków w pętlach może prowadzić do sporych problemów z pamięcią, więc trzeba uważać i pisać warunki, które dobrze pokazują rzeczywisty rozmiar tablicy.

Pytanie 21

W tabeli podzespoly należy zaktualizować wartość pola URL na 'toshiba.pl' dla wszystkich rekordów, gdzie pole producent to TOSHIBA. W języku SQL ta zmiana będzie wyglądała następująco

A. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';
B. UPDATE podzespoly SET URL='toshiba.pl';
C. UPDATE producent='TOSHIBA' SET URL='toshiba.pl';
D. UPDATE podzespoly.producent='TOSHIBA' SET URL='toshiba.pl';
W analizowanych odpowiedziach występuje szereg błędów w zakresie składni SQL oraz koncepcji użycia klauzuli UPDATE. W pierwszej z niepoprawnych odpowiedzi brak jest warunku WHERE, co skutkuje aktualizacją URL dla wszystkich rekordów w tabeli 'podzespoly', co może prowadzić do niepożądanych zmian w bazie danych. Przy podejmowaniu decyzji o modyfikacji danych, klauzula WHERE jest kluczowa dla ograniczenia zakresu aktualizacji tylko do tych rekordów, które spełniają określone kryteria. Dodatkowo, w kolejnej odpowiedzi zastosowanie składni UPDATE producent='TOSHIBA' SET URL='toshiba.pl'; jest błędne, ponieważ nie reprezentuje ona poprawnej sekwencji SQL. W SQL nie można używać operatora równości bezpośrednio w kontekście instrukcji UPDATE. Ponadto, ostatnia odpowiedź również myli koncepcję, ponieważ sugeruje aktualizację na poziomie producenta, a nie rekordu w tabeli podzespoly. Stosowanie niewłaściwej składni oraz brak zrozumienia kontekstu aktualizacji prowadzi do poważnych błędów w pracy z bazami danych. Kluczowym błędem myślowym jest brak uznania, że każda operacja na bazie danych powinna być przemyślana pod kątem jej wpływu na integralność i spójność danych.

Pytanie 22

Jak nazywa się domyślny plik konfiguracyjny dla serwera Apache?

A. configuration.php
B. .configuration
C. htaccess.cnf
D. .htaccess
Plik htaccess.cnf nie jest standardowym plikiem konfiguracyjnym serwera Apache i nie ma on znaczenia w kontekście zarządzania ustawieniami serwera. Często używana jest konwencja .cnf dla plików konfiguracyjnych w innych aplikacjach, jednak nie w przypadku Apache, który do lokalnych ustawień używa właśnie pliku .htaccess. Nazwa .configuration również jest niepoprawna, ponieważ nie odpowiada żadnemu uznanemu formatowi pliku konfiguracyjnego w ekosystemie Apache. Plik konfiguracyjny serwera Apache znajduje się zazwyczaj w lokalizacji /etc/httpd/conf/httpd.conf lub /etc/apache2/apache2.conf, a nie w formie pliku ukrytego z kropką na początku. Trzecią niepoprawną odpowiedzią jest configuration.php, która jest typowa dla aplikacji opartych na PHP, takich jak WordPress czy Joomla, ale nie ma zastosowania w kontekście konfiguracji samego serwera Apache. Tego typu pliki PHP są używane do przechowywania ustawień specyficznych dla aplikacji, a nie serwera. Użycie niepoprawnych nazw plików konfiguracyjnych może prowadzić do nieprawidłowego działania serwera, w tym błędów konfiguracyjnych czy problemów z dostępem i bezpieczeństwem strony. Dlatego ważne jest, aby administratorzy serwerów stosowali się do uznawanych standardów i konwencji w konfiguracji Apache.

Pytanie 23

W HTML znacznik tekst będzie wyświetlany przez przeglądarkę w taki sam sposób jak znacznik

A. <big>tekst</big>
B. <b>tekst</b>
C. <sub>tekst</sub>
D. <h1>tekst</h1>
Znacznik <sub> służy do wyświetlania tekstu jako dolny indeks, co oznacza, że jego zastosowanie jest całkowicie inne niż w przypadku <strong> i <b>. Dolny indeks jest często używany w kontekście chemii lub matematyki, gdzie wyrażenia muszą być prezentowane w sposób zrozumiały dla specjalistów, co nie ma związku z semantyką wyróżnienia tekstu. Podobnie, <big> zmienia rozmiar tekstu, jednak nie nadaje mu żadnej dodatkowej wartości semantycznej. Użycie <big> w celu wyróżnienia tekstu jest nieefektywne, ponieważ nie przekazuje żadnej konkretnej informacji o znaczeniu tekstu. Znacznik <h1> oznacza nagłówek najwyższego poziomu, co jest całkowicie innym zastosowaniem niż w przypadku <strong>. Zastosowanie <h1> dla tekstu, który nie jest nagłówkiem, może wprowadzać w błąd zarówno użytkowników, jak i wyszukiwarki, co jest sprzeczne z zasadami SEO. Typowe błędy myślowe prowadzące do tych błędnych wyborów to nieodróżnianie semantyki od stylizacji wizualnej oraz brak zrozumienia, jak znaczniki HTML wpływają na dostępność i interpretację treści przez maszyny. Warto zaznaczyć, że stosowanie semantycznych znaczników HTML w odpowiedni sposób jest kluczowe dla tworzenia dostępnych i zrozumiałych stron internetowych.

Pytanie 24

Podany kod źródłowy ma na celu pokazanie

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
B. wylosowane liczby od 1 do 99
C. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
D. kolejne liczby od 1 do 100
Odpowiedzi, które sugerują, że kod generuje kolejne liczby od 1 do 100, wylosowane liczby od 1 do 99, czy też wczytane z klawiatury liczby, zawierają fundamentalne błędy w interpretacji logiki działania przedstawionego kodu. Po pierwsze, pętla while w kodzie analizowanym opiera się na losowym generowaniu liczb z wykorzystaniem funkcji rand(), a nie na sekwencyjnym przydzielaniu wartości. Kod nie generuje przyrostu numerycznego, jak sugeruje odpowiedź sugerująca liczby od 1 do 100. Ponadto, nie ma żadnej logiki, która wprowadzałaby wartości do programu z klawiatury, co całkowicie wyklucza odpowiedzi sugerujące wczytywanie liczb. Ważne jest, aby zrozumieć, że w kontekście programowania różnica pomiędzy losowym generowaniem a sekwencyjnym przydzielaniem wartości ma kluczowe znaczenie. Niepoprawne koncepcje pochodzą często z mylenia pojęć losowości i deterministycznych sekwencji, co prowadzi do błędnych wniosków. Każdy programista musi być świadomy tych różnic, aby unikać nieporozumień w kodzie, co jest istotne zarówno w codziennej praktyce programistycznej, jak i w bardziej złożonych projektach, gdzie precyzyjne działanie kodu jest kluczowe dla uzyskania oczekiwanych wyników.

Pytanie 25

Podaj definicję metody, którą trzeba umieścić w miejscu kropek, aby na stronie WWW pojawił się tekst: Jan Kowalski

Ilustracja do pytania
A. A
B. B
C. D
D. C
Pozostałe odpowiedzi zawierają błędy związane z niepoprawnym użyciem kontekstu this lub niekompletną definicją funkcji. W opcji B metoda dane została zdefiniowana jako funkcja globalna, co powoduje, że this nie odnosi się do obiektu osoba, ale do obiektu globalnego, co uniemożliwia poprawne odwołanie się do właściwości imie i nazwisko. To prowadzi do błędnych lub niezdefiniowanych wyników, ponieważ this w tym kontekście nie zawiera oczekiwanych właściwości. Opcja C nie używa słowa kluczowego this, co oznacza, że zmienne imie i nazwisko są traktowane jako zmienne globalne, a nie właściwości obiektu osoba. Jeżeli takie zmienne globalne nie istnieją, powoduje to błąd w wykonaniu, ponieważ kod próbuje odwołać się do niezdefiniowanych zmiennych. W opcji D użycie funkcji bez return powoduje, że metoda dane nie zwraca żadnej wartości, co skutkuje przypisaniem undefined do innerHTML, co jest oczywistym błędem w kontekście oczekiwanego wyświetlenia tekstu. Wszystkie te błędne podejścia wynikają z niepoprawnego zarządzania kontekstem obiektowym w JavaScript, co podkreśla znaczenie zrozumienia wiązania dynamicznego słowa kluczowego this i dobrych praktyk w projektowaniu metod obiektowych w JavaScript. Kluczowym aspektem jest zapewnienie, że metody mają dostęp do właściwości obiektu, w ramach którego zostały zdefiniowane, co jest osiągane przez poprawne użycie this w kontekście metody wewnętrznej obiektu.

Pytanie 26

Przyjmując, że użytkownik Adam nie miał dotychczas żadnych uprawnień, polecenie SQL przyzna mu prawa jedynie do

GRANT CREATE, ALTER ON sklep.* TO adam;
A. dodawania i modyfikacji danych we wszystkich tabelach bazy sklep
B. tworzenia oraz modyfikowania struktury w tabeli sklep
C. tworzenia i zmiany struktury wszystkich tabel w bazie sklep
D. dodawania i modyfikacji danych w tabeli sklep
To, co zaznaczyłeś, jest jak najbardziej na miejscu. W tym SQL-u, 'GRANT CREATE, ALTER ON sklep.* TO adam;' dajesz użytkownikowi, czyli adamowi, możliwości tworzenia i zmieniania struktury wszystkich tabel w bazie 'sklep'. Słowo 'CREATE' pozwala mu na tworzenie nowych tabel, a 'ALTER' umożliwia mu wprowadzanie zmian w tych istniejących, na przykład dodawanie czy usuwanie kolumn. Ważne, żeby ogarnąć, że 'sklep.*' oznacza wszystkie tabele w danej bazie, co jest zgodne z dobrymi praktykami w zarządzaniu bazami danych. No bo jakby adam miał ochotę dodać nową tabelę albo zmodyfikować istniejącą, to musi mieć odpowiednie uprawnienia. Przykładem może być sytuacja, gdy administrator daje programiście dostęp do zmian w strukturze tabel, żeby móc dodać nowe funkcje do aplikacji – to naprawdę ważne dla rozwoju systemu.

Pytanie 27

W systemach bazodanowych, aby przedstawić dane, które spełniają określone kryteria, należy stworzyć

A. makropolecenie
B. relację
C. raport
D. formularz
Formularze, makropolecenia i relacje to różne rzeczy, które używamy w bazach danych, ale nie nadają się do tworzenia raportów. Formularz to narzędzie do wprowadzania danych, jego głównym celem jest to, żeby użytkownik mógł dodawać lub edytować informacje w bazie. Choć są przydatne do zbierania danych, to już do ich analizy czy prezentacji się nie nadają. Makropolecenia to z kolei instrukcje, które pomagają w automatyzacji powtarzalnych zadań, ale znowu – nie są do raportów. Użytkownicy mogą myśleć, że makropolecenia zastąpią raporty, ale to zupełnie inne rzeczy. Relacje dotyczą sposobu łączenia tabel w bazie danych, co jest ważne dla struktury, ale też nie ma to nic wspólnego z prezentacją danych. Warto wiedzieć, jakie są różnice między tymi pojęciami, bo to może pomóc w lepszym zarządzaniu danymi i uniknięciu nieporozumień.

Pytanie 28

Aby przeprowadzić walidację kontrolek formularza w momencie, gdy użytkownik wprowadza dane, można wykorzystać zdarzenie

A. onLoad
B. onClick
C. onKeyDown
D. onFocusOut
Odpowiedź 'onKeyDown' jest poprawna, ponieważ jest to zdarzenie, które jest wywoływane, gdy użytkownik naciśnie klawisz podczas interakcji z polem formularza. Użycie tego zdarzenia pozwala na walidację danych w czasie rzeczywistym, co oznacza, że programista może natychmiast reagować na wprowadzone znaki. Dzięki temu można na przykład sprawdzić, czy wprowadzone dane spełniają określone kryteria, takie jak format e-maila, długość hasła czy obecność cyfr. Praktyczne zastosowanie zdarzenia onKeyDown polega na tym, że można wprowadzić logikę walidacji bez konieczności czekania na zakończenie wprowadzania danych. Zamiast tego, możemy w realnym czasie informować użytkowników o ewentualnych błędach, co znacznie poprawia doświadczenia użytkowników. Ponadto, zgodnie z dobrymi praktykami, zaleca się używanie zdarzeń związanych z klawiaturą, takich jak onKeyDown czy onInput, które są bardziej odpowiednie dla dynamicznych interakcji niż na przykład onBlur, które może być mniej responsywne. Warto również zauważyć, że onKeyDown działa przed onKeyUp, co umożliwia szybsze reagowanie na wprowadzane dane, co jest kluczowe w kontekście walidacji w czasie rzeczywistym.

Pytanie 29

Jaki zestaw terminów określa interfejs użytkownika witryny internetowej?

A. Przyciski, menu, interakcja użytkownika z aplikacją
B. Przesyłanie zapytań do bazy, skrypty PHP
C. Szkic strony, diagram witryny, diagram przepływu informacji
D. Obróbka danych, system zarządzania treścią, projektowanie informacji
Pierwszy zestaw pojęć, obejmujący wysyłanie kwerend do bazy oraz skrypty PHP, odnosi się do technologii backendowych, które nie są bezpośrednio związane z interfejsem użytkownika. Wysyłanie kwerend do bazy danych to proces, w którym aplikacja zyskuje dostęp do informacji przechowywanych w bazie, co jest kluczowe dla funkcjonalności strony, ale nie definiuje, jak użytkownik będzie korzystał z tej strony. Również skrypty PHP, będące językiem programowania po stronie serwera, odpowiadają za logikę aplikacji, a nie za wizualizację i interakcję z użytkownikiem. Kolejny zestaw pojęć, składający się ze szkicu strony, diagramu witryny oraz diagramu przepływu informacji, dotyczy planowania i architektury informacji, co jest niezbędne w procesie projektowania, ale nie odnosi się bezpośrednio do komponentów interfejsu użytkownika. Te narzędzia pomagają zrozumieć strukturę i organizację treści, ale same w sobie nie definiują sposobu, w jaki użytkownik będzie wchodził w interakcję z danym systemem. Ostatni zestaw pojęć, obejmujący przetwarzanie informacji, system zarządzania treścią i projektowanie informacji, również nie odnosi się bezpośrednio do interfejsu. Przetwarzanie informacji to proces dotyczący obróbki danych, a system zarządzania treścią skupia się na tworzeniu i publikowaniu treści, co, mimo że jest istotne, nie definiuje fizycznych elementów interfejsu, które są niezbędne do interakcji z użytkownikiem. Wszystkie te odpowiedzi pomijają kluczowy aspekt UI, jakim jest bezpośrednia interakcja z użytkownikiem.

Pytanie 30

Ile razy zostanie wykonana pętla w języku PHP, jeśli zmienna kontrolna pozostaje niezmienna podczas działania pętli?

for($i=0; $i<=10; $i++) {
        .......
}
A. 0
B. Nieskończoność
C. 11
D. 10
Rozpatrując pętlę for w kontekście języka programowania PHP należy zwrócić uwagę na strukturę i logikę jej działania. Pętla zaczyna się od inicjalizacji zmiennej sterującej w tym przypadku $i=0. Warunek końcowy to $i<=10 co oznacza że pętla będzie kontynuowana dopóki wartość $i jest mniejsza lub równa 10. W praktyce oznacza to że pętla wykona się dla wartości od 0 do 10 włącznie co daje 11 iteracji. Błędne wyobrażenie że pętla wykona się 10 razy może wynikać z niepoprawnego zrozumienia warunku końcowego. Wartość logiczna $i<=10 pozwala na dodatkową iterację dla wartości $i=10. Kolejny błąd mógłby dotyczyć nieskończonej liczby iteracji co mogłoby być prawdziwe w przypadku braku prawidłowo określonego warunku końcowego lub błędu logicznego zmieniającego warunek w nieskończoność ale nie w tym przypadku. Warunek $i++ poprawnie i przewidywalnie zwiększa wartość $i w każdej iteracji unikając takich problemów. Zrozumienie działania pętli for i poprawne określenie warunków początkowych i końcowych oraz kroku iteracji jest kluczowe dla prawidłowego stosowania tej struktury kontrolnej w programowaniu. Takie zrozumienie pozwala na efektywne wykorzystanie pętli w różnych zadaniach programistycznych unikając potencjalnych błędów logicznych i zapewniając że kod działa zgodnie z założeniami.

Pytanie 31

Aby móc edytować nałożone na siebie poszczególne części obrazu, zachowując inne elementy w niezmienionej formie, należy użyć

A. kadrowania
B. warstwy
C. kanału alfa
D. histogramu
Histogram, jako narzędzie analizy tonów i kolorów na obrazie, jest przydatny w dostosowywaniu ekspozycji czy kontrastu, ale nie można go stosować do edytowania nakładających się fragmentów. Histogram przedstawia rozkład wartości jasności pikseli, co pozwala na ocenę balansu tonów w obrazie, jednak nie umożliwia manipulacji poszczególnymi elementami. Kanał alfa z kolei odnosi się do przezroczystości poszczególnych pikseli w obrazie, co jest pomocne w tworzeniu efektów przezroczystości, ale nie ma zastosowania w edytowaniu fragmentów obrazu, które zachowują pełną nieprzezroczystość. Kadrowanie, jako technika przycinania obrazu, ma na celu zmianę jego rozmiaru lub proporcji, co również nie pozwala na edytowanie fragmentów wewnątrz obrazu. Używanie kadrowania w kontekście nakładających się elementów nie pozwala na ich indywidualną edycję, a jedynie na usunięcie części obrazu. W związku z tym, histogram, kanał alfa i kadrowanie są narzędziami, które nie spełniają wymagań dotyczących precyzyjnej edycji nakładających się fragmentów.

Pytanie 32

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 1
B. Efekt 2
C. Efekt 4
D. Efekt 3
Wybór błędnej odpowiedzi może wynikać z niepełnego zrozumienia działania właściwości CSS które kontrolują wygląd elementów HTML W przypadku efektu 1 tekst jest pogrubiony ale kolor tła jest ciemny co nie odpowiada żadnej z właściwości podanych w stylu CSS Styl CSS zakłada jasne tło z niebieskim obramowaniem co nie jest odzwierciedlone w tym przykładzie Również tekst nie jest odpowiednio ułożony w środkowej przestrzeni jak to zakłada padding 20px Efekt 2 mimo że zawiera niebieski kolor tekstu i obramowanie ma bardzo cienką czcionkę bez odpowiedniego pogrubienia co jest wymagane przez font-weight 900 Ta niezgodność wskazuje na nieprawidłowe zastosowanie właściwości CSS Sytuacja z efektem 4 wygląda podobnie mimo że tekst jest pogrubiony obramowanie jest zbyt grube a tekst nie ma wystarczającej przestrzeni wokół niego co wskazuje na brak ustawienia padding na 20px Zrozumienie tych różnic pomaga w poprawnym stosowaniu stylów CSS w praktyce co jest kluczowe dla tworzenia spójnych i atrakcyjnych wizualnie projektów internetowych Kluczowe jest również testowanie i przeglądanie kodu aby upewnić się że wszystkie właściwości są odpowiednio zdefiniowane i zastosowane we właściwych kontekstach przy projektowaniu interfejsów użytkownika

Pytanie 33

W języku PHP znajduje się instrukcja pętli umieszczona w ramce. Ile razy zostanie wykonana ta pętla, o ile zmienna kontrolna nie jest zmieniana w jej wnętrzu, a także nie dodano instrukcji przerywającej pętlę, takiej jak break?

Ilustracja do pytania
A. 100 powtórzeń
B. 10 powtórzeń
C. 11 powtórzeń
D. 9 powtórzeń
W kontekście pętli for w języku PHP ważne jest zrozumienie jak parametry inicjalizacji warunku zakończenia i modyfikacji wpływają na liczbę iteracji. W przypadku tej konkretnej pętli analizując inicjalizację zmiennej sterującej $i=10 oraz warunek zakończenia $i<=100 można zauważyć że pętla wykona się dla wartości $i od 10 do 100 włącznie przyrosty co 10. Często błędne rozumienie polega na nieuwzględnieniu ostatniego warunku <= co skutkuje błędnym oszacowaniem liczby iteracji np. 9 zamiast 10. Innym częstym błędem jest zakładanie że pętla zawsze kończy się przed spełnieniem warunku co w przypadku <= nie jest prawdą. Dodatkowo błędne interpretacje mogą wynikać z założenia że modyfikator $i+=10 wpływa na większy zakres iteracji niż w rzeczywistości to jest co może prowadzić do obliczenia 11 lub 100 powtórzeń. Wszystkie te nieporozumienia można wyeliminować przez skrupulatną analizę każdego elementu składni pętli co jest kluczowe dla efektywnego i bezbłędnego programowania. Zrozumienie precyzyjnej roli jaką pełni każda część instrukcji for pozwala nie tylko unikać błędów ale także poprawiać jakość i czytelność kodu w długofalowym rozwijaniu projektów programistycznych. Przy projektowaniu algorytmów należy zawsze testować ich działanie w różnych scenariuszach aby przeciwdziałać potencjalnym błędom i zapewnić ich poprawne funkcjonowanie w różnych warunkach operacyjnych.

Pytanie 34

Aby wprowadzić rekord do tabeli Pracownicy, jakie polecenie SQL należy zastosować?

A. INSERT VALUES (Jan, Kowalski) INTO Pracownicy;
B. INSERT (Jan, Kowalski) INTO Pracownicy;
C. INSERT VALUES Pracownicy INTO (Jan, Kowalski);
D. INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);
Odpowiedź 'INSERT INTO Pracownicy (imie, nazwisko) VALUES (Jan, Kowalski);' jest poprawna, ponieważ jest zgodna z ogólną składnią polecenia SQL do dodawania danych do tabeli. W składni tej najpierw wskazujemy, do której tabeli chcemy wprowadzić dane, używając frazy 'INSERT INTO', a następnie w nawiasach podajemy nazwy kolumn, do których mają być wprowadzone wartości. Wartości te umieszczamy po słowie kluczowym 'VALUES', również w nawiasach. Takie podejście jest zgodne z normami SQL i zapewnia, że dane będą poprawnie wstawione. Przykładem praktycznym może być dodanie nowego pracownika do bazy danych firmy, co jest kluczowym elementem zarządzania informacjami o pracownikach. Prawidłowa składnia pozwala również na łatwe wprowadzenie wielu rekordów jednocześnie, co jest efektywne w dużych systemach baz danych. Ponadto, użycie poprawnej składni ułatwia przyszłe modyfikacje oraz optymalizację zapytań, co jest istotne w kontekście dobrą praktyką w programowaniu baz danych.

Pytanie 35

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

Ilustracja do pytania
A. Joomla!
B. Drupal
C. WordPress
D. MediaWiki
Odpowiedź Joomla! jest poprawna ponieważ logo przedstawione na rysunku jest oficjalnym znakiem identyfikacyjnym tego systemu zarządzania treścią CMS. Joomla! to jeden z najpopularniejszych systemów CMS używany do tworzenia stron internetowych oraz aplikacji. Dzięki swojej elastyczności i dużej liczbie dostępnych rozszerzeń Joomla! pozwala na tworzenie zarówno prostych stron wizytówkowych jak i zaawansowanych serwisów e-commerce. Główne zalety Joomla! to intuicyjny interfejs użytkownika który ułatwia zarządzanie treściami oraz silna społeczność użytkowników zapewniająca wsparcie techniczne i rozwój oprogramowania. Joomla! jest zgodna z wieloma standardami webowymi co czyni ją wszechstronnym narzędziem do wdrażania profesjonalnych projektów internetowych. Korzystanie z Joomla! umożliwia szybkie i efektywne tworzenie responsywnych stron które dobrze współdziałają na różnych urządzeniach mobilnych. Praktyczne zastosowanie Joomla! obejmuje tworzenie stron korporacyjnych portali społecznościowych oraz serwisów informacyjnych. Dzięki modulowej architekturze użytkownicy mogą łatwo dostosowywać funkcjonalność swoich stron do specyficznych potrzeb branżowych co jest zgodne z dobrymi praktykami projektowania zorientowanego na użytkownika. Platforma Joomla! obsługuje także wielojęzyczność i różne metody uwierzytelniania co czyni ją idealnym rozwiązaniem dla międzynarodowych projektów.

Pytanie 36

Rodzaj programowania, w którym seria poleceń (sekwencja instrukcji) jest traktowana jako program, nazywa się programowaniem

A. stanowym
B. imperatywnym
C. logicznym
D. funkcyjnym
Programowanie imperatywne to podejście, w którym programy są definiowane jako ciąg instrukcji, które komputer wykonuje w określonej kolejności. W tym modelu programista precyzyjnie określa kroki, które należy wykonać, aby osiągnąć zamierzony cel. Kluczowym elementem programowania imperatywnego jest zmiana stanu programu, co odnosi się do manipulacji danymi i kontrolowania przepływu wykonania. Przykładem mogą być języki programowania takie jak C, Java czy Python, które umożliwiają wykorzystanie zmiennych, pętli i instrukcji warunkowych. W praktyce, programowanie imperatywne jest często wykorzystywane w tworzeniu aplikacji, które wymagają precyzyjnego sterowania przepływem danych, na przykład w systemach operacyjnych czy oprogramowaniu sterującym. Zgodnie z zasadami dobrych praktyk, programowanie imperatywne promuje modularność, dzięki czemu kod jest bardziej zrozumiały i łatwiejszy w utrzymaniu. To podejście jest fundamentem dla wielu technik programistycznych, jak na przykład programowanie obiektowe, które rozszerza te zasady poprzez organizowanie kodu w oparciu o obiekty i klasy.

Pytanie 37

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. metodę
B. właściwość
C. klasę
D. konstruktor
W programowaniu obiektowym w JavaScript słowo kluczowe this odnosi się do kontekstu bieżącego obiektu. W przedstawionym kodzie mamy do czynienia z funkcją konstrukcyjną Uczen, która jest używana do tworzenia nowych obiektów. Wewnątrz tej funkcji, this związuje się z nowo tworzonym obiektem. Metoda this.zawod, która jest zdefiniowana jako funkcja, odwołuje się do właściwości technik za pomocą słowa this i zwraca jej wartość. W JavaScript metody są funkcjami, które są przypisane do właściwości obiektu i które mogą być wywoływane jako część tego obiektu. Zapis this.zawod = function() { return this.technik; } definiuje metodę zawod w kontekście obiektu tworzonego przez konstruktor Uczen. Praktyczne zastosowanie tej metody umożliwia dostęp do wartości właściwości technik w sposób kontrolowany, co jest zgodne z dobrymi praktykami programowania obiektowego, gdzie enkapsulacja i zarządzanie dostępem do danych są kluczowymi elementami. Metody w JavaScript są podstawowym elementem umożliwiającym realizację zachowań obiektów dzięki czemu programy są bardziej modularne i łatwiejsze do utrzymania

Pytanie 38

Które z formatowań nie jest wyrażone w języku CSS?

Ilustracja do pytania
A. Formatowanie 2
B. Formatowanie 1
C. Formatowanie 3
D. Formatowanie 4
W tym zadaniu kluczowe jest rozróżnienie, co tak naprawdę jest wyrażone w języku CSS, a co jest tylko "udawanym" formatowaniem, opartym o stare atrybuty HTML. W trzech pokazanych fragmentach stylowania tła strony faktycznie użyto CSS, tylko w różnych formach. W jednym przypadku styl został umieszczony w sekcji `<style>` wewnątrz dokumentu HTML. Taki zapis jest standardowym przykładem tzw. stylu wbudowanego w dokument i zgodnie ze specyfikacją CSS używa selektora `body` oraz deklaracji `background-color: yellow;`. W innym przykładzie ten sam kod znalazł się w osobnym pliku `.css`. To zewnętrzny arkusz stylów, który jest uznawany za najlepszą praktykę przy większych projektach, bo pozwala centralnie zarządzać wyglądem wielu stron. Trzecia forma to atrybut `style` wpisany bezpośrednio w znacznik `<body>`, np. `style="background-color: yellow;"`. Chociaż wygląda to trochę inaczej, w środku atrybutu nadal znajduje się zwykły kod CSS: nazwy właściwości, wartości, średniki – wszystko tak jak w arkuszu stylów. To wciąż jest CSS, tylko tzw. styl inline. Z mojego doświadczenia bywa on nadużywany, ale technicznie nie można powiedzieć, że nie jest to CSS. Jedyną formą, która nie korzysta z języka CSS, jest zapis z atrybutem `bgcolor`, czyli `<body bgcolor="yellow">`. Tutaj kolor tła jest określony przez specjalny, prezentacyjny atrybut HTML, który pochodzi z czasów, gdy CSS jeszcze raczkował. Ten sposób formatowania jest dziś uznawany za przestarzały i niezgodny z nowoczesnym podejściem "separation of concerns" – oddzielania struktury dokumentu od warstwy prezentacji. Typowym błędem jest myślenie, że skoro coś zmienia wygląd strony, to na pewno jest CSS. Tymczasem liczy się język i mechanizm, a nie sam efekt wizualny. Właśnie dlatego, analizując takie pytania, warto patrzeć na składnię: jeżeli widzimy selektory, nawiasy klamrowe i pary `właściwość: wartość;`, to mamy do czynienia z CSS, nawet jeśli jest wpisany inline. Jeśli natomiast widzimy stare atrybuty typu `bgcolor`, to jest to czysto HTML‑owe, historyczne rozwiązanie, które w nowych projektach lepiej omijać szerokim łukiem.

Pytanie 39

W jakim formacie powinien być zapisany obraz, aby mógł być wyświetlany na stronie internetowej z zachowaniem przezroczystości?

A. JPG
B. BMP
C. PNG
D. CDR
Format PNG (Portable Network Graphics) jest szeroko stosowany w sieci internetowej, ponieważ obsługuje przezroczystość, co jest kluczowe przy tworzeniu grafik, które mają być używane na stronach internetowych. Przezroczystość pozwala na nałożenie grafik na różne tła bez widocznych prostokątów czy kolorowych krawędzi, co znacznie poprawia estetykę oraz elastyczność projektów graficznych. PNG wykorzystuje kompresję bezstratną, co oznacza, że jakość obrazu nie ulega pogorszeniu podczas jego zapisywania, co jest istotne dla profesjonalnych projektów. Przykłady zastosowania formatu PNG obejmują ikony, logotypy oraz różnego rodzaju ilustracje, które muszą być wyświetlane na różnych tłach. W branży internetowej dobrym standardem jest używanie PNG do grafik wymagających przezroczystości, szczególnie w kontekście responsywnych projektów, gdzie różne elementy mogą mieć różne tła w zależności od urządzenia. Ponadto, PNG obsługuje kolor 24-bitowy oraz przezroczystość 8-bitową, co daje możliwość tworzenia bardziej złożonych efektów wizualnych. Zastosowanie tego formatu jest zgodne z dobrymi praktykami w projektowaniu stron, co czyni go preferowanym wyborem w wielu sytuacjach.

Pytanie 40

Z jakich elementów składa się tabela generowana przez poniższy kod?

<table border="1">
<tr>
<td> 1 </td>
<td> 2 </td>
</tr>
</table>
A. jednego wiersza oraz jednej kolumny
B. dwóch wierszy oraz jednej kolumny
C. dwóch wierszy i dwóch kolumn
D. jednego wiersza oraz dwóch kolumn
Podstawowe zrozumienie struktury HTML jest kluczowe do prawidłowego interpretowania kodu tabeli. Zrozumienie ilości wierszy i kolumn wymaga analizy znaczników <tr> i <td>. Często popełniany błąd polega na myleniu ilości wierszy i kolumn z ilością znaczników <td> w jednym <tr>. Znacznik <tr> definiuje wiersz w tabeli, a każdy <td> wewnątrz <tr> to oddzielna kolumna. W przedstawionym przykładzie mamy jeden wiersz z dwoma kolumnami, co jest podstawową konfiguracją tabeli. Mylenie tej koncepcji z dwoma wierszami lub inną liczbą kolumn jest często wynikiem niepełnej analizy struktury kodu. Warto zwrócić uwagę na semantykę HTML, która jest istotna z punktu widzenia dostępności i SEO. Stosowanie tabeli powinno być ograniczone do prezentacji danych tabularycznych, a nie jako narzędzie do ogólnej struktury strony, co jest niezgodne z nowoczesnymi standardami. Poznanie i zrozumienie tych zasad jest niezbędne dla efektywnego tworzenia stron internetowych i unikania typowych błędów w kodzie HTML. W przypadku tworzenia bardziej złożonych układów, zaleca się korzystanie z CSS Grid lub Flexboxa, które oferują większą elastyczność i kontrolę nad wyglądem strony.