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: 8 czerwca 2026 16:16
  • Data zakończenia: 8 czerwca 2026 16:35

Egzamin zdany!

Wynik: 20/40 punktów (50,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Kolor zielony to szesnastkowo #008000. Jaki to zapis RGB?

A.
rgb(0, 128, 0)
B.
rgb(0, 160, 0)
C.
rgb(0, 80, 0)
D.
rgb(0, 100, 0)
W zapisie szesnastkowym #008000 pary oznaczają kolejno czerwony, zielony i niebieski. Środkowa para 80 to szesnastkowo 128 (8×16), a skrajne 00 to zera - więc w RGB jest to rgb(0, 128, 0). Dlatego to zielony rgb(0, 128, 0).

Pytanie 2

Na stronie internetowej dodano grafikę w kodzie HTML. Co się stanie, jeśli plik rysunek.png nie zostanie odnaleziony przez przeglądarkę?

<img src="rysunek.png" alt="pejzaż">
A. wyświetli tekst "pejzaż" w miejscu grafiki
B. zademonstruje błąd wyświetlania strony w miejscu grafiki
C. nie pokaże strony internetowej
D. wstawi tekst "rysunek.png" zamiast grafiki
Kiedy używasz elementu <img> w HTML, warto ogarnąć, jak przeglądarka radzi sobie z jego atrybutami. Gdy obrazek pod danym adresem nie jest dostępny, przeglądarka nie wyświetli błędu dla całej strony. Strona dalej będzie działać normalnie, a przeglądarka po prostu nie wyświetli obrazka. W takim przypadku dostaniesz tekst z atrybutu alt jako zamiennik. Jeśli zapomniałbyś o tym atrybucie, to użytkownik nie dowie się, co tam miało być na tym obrazku. Może się wydawać, że przeglądarka wyświetli nazwę brakującego pliku graficznego, ale tak nie jest. Często wynika to z tego, że nie wszyscy znają zasady poprawnego projektowania stron, gdzie stosowanie tekstu alternatywnego to standardowa praktyka, która wspiera dostępność i użyteczność aplikacji webowych.

Pytanie 3

Dostępna jest tabela z danymi o mieszkaniach, zawierająca kolumny: adres, metraż, liczba_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. Wszystkie informacje o tych mieszkaniach, które mają minimum 3 pokoje
B. Metraż oraz koszt tych mieszkań, które mają przynajmniej 3 pokoje
C. Wszystkie informacje poza adresem tych mieszkań, które mają więcej niż 3 pokoje
D. Metraż oraz koszt tych mieszkań, które mają więcej niż 3 pokoje
Czasami odpowiedzi są niepoprawne, bo trudno zrozumieć, jak działają podstawowe elementy SQL. Na przykład, często ludzie mylą operator > z >=, co może prowadzić do złych wyników, bo źle interpretują warunki filtrowania. W zapytaniu SELECT, jeżeli nie wybieramy konkretnych kolumn, to domyślnie będą wybierane wszystkie, co nie jest to, co chcemy. W tej sytuacji interesują nas tylko metraż i cena, a nie wszystkie dane. Zrozumienie, jakie dane się pojawią, wymaga uważności przy pisaniu zapytań SQL. Dobre praktyki to jasne warunki logiczne i dokładne określenie, co chcemy wyciągnąć i kiedy. Często popełnia się błąd, nie uwzględniając operatorów logicznych oraz jak wpływają na końcowy rezultat. Operator > jasno mówi, że chcemy mieszkania z więcej niż trzema pokojami, więc odpowiedzi, które sugerują mieszkania z co najmniej trzema pokojami, są błędne. Te błędy pokazują, jak ważne jest, żeby dokładnie czytać i rozumieć zapytania SQL, bo to naprawdę się przydaje w codziennej pracy z danymi.

Pytanie 4

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 2 razy
B. 3 razy
C. 26 razy
D. 27 razy
Pętla do-while w JavaScript wykonuje się co najmniej raz ze względu na swoją konstrukcję. W tym przypadku pętla zaczyna się od wartości x równej 1 i w każdej iteracji mnoży x przez 3. Zmienna i jest inkrementowana przy każdej iteracji, co zlicza liczbę wykonanych iteracji. Pętla kontynuuje aż do momentu, gdy x osiągnie wartość 27. Przebieg pętli wygląda następująco: początkowo x=1, po pierwszej iteracji x=3, po drugiej x=9, a po trzeciej x=27. Gdy x osiąga wartość 27, warunek pętli x!=27 przestaje być spełniony i pętla się kończy. Dlatego pętla wykonuje dokładnie 3 iteracje. Zrozumienie działania pętli do-while jest kluczowe, zwłaszcza w kontekście sytuacji, gdzie musimy zagwarantować, że blok kodu wykona się przynajmniej raz niezależnie od warunku na końcu. Tego typu pętle są często używane w aplikacjach wymagających walidacji danych wejściowych, gdzie przynajmniej jedna próba przetworzenia danych musi być wykonana.

Pytanie 5

Formularz, który pełni rolę pośrednika w nawigacji po bazie danych pomiędzy formularzami i kwerendami dostępnymi w systemie, określany jest jako formularz

A. zagnieżdżonym
B. głównym
C. sterującym
D. pierwotnym
Wybór odpowiedzi nie jest trafny, ponieważ w kontekście baz danych i interfejsów użytkownika pojęcia pierwotny, zagnieżdżony i główny nie oddają prawidłowo roli formularza sterującego. Formularz pierwotny nie jest pojęciem standardowym w kontekście baz danych; może on być mylnie interpretowany jako formularz, na którym bazują inne formularze, co nie jest odpowiednie w tym kontekście, ponieważ nie pełni on funkcji nawigacyjnej. Z kolei formularz zagnieżdżony odnosi się do formularzy umieszczonych wewnątrz innych formularzy, co służy do organizacji danych w sposób hierarchiczny, ale nie jest to jego główna funkcjonalność. Zagnieżdżone formularze mogą być użyteczne w specyficznych scenariuszach, ale nie są one odpowiednie do sterowania nawigacją pomiędzy różnymi sekcjami aplikacji. Odpowiedź „główny” również nie oddaje meritum, gdyż sugeruje, że formularz główny pełni tę funkcję, co jest mylące, gdyż w rzeczywistości to formularz sterujący odpowiada za organizację i kontrolę nawigacji w bazie danych. Formułując odpowiedzi, często można pomylić terminy oraz ich funkcje, co prowadzi do nieporozumień w zrozumieniu architektury aplikacji. W praktyce, kluczowe jest zrozumienie roli formularza sterującego jako centralnego elementu interfejsu użytkownika, który ma na celu uproszczenie interakcji z danymi.

Pytanie 6

Jakie obiekty w bazie danych służą do podsumowywania, prezentacji oraz drukowania danych?

A. formularz
B. raport
C. zestawienie
D. zapytanie
Zapytanie, formularz i zestawienie również są ważnymi elementami pracy z bazami danych, jednak żaden z tych obiektów nie spełnia wszystkich funkcji przypisywanych raportom. Zapytanie to instrukcja w języku zapytań, najczęściej SQL, która służy do pobierania danych z bazy danych. Choć zapytania mogą generować dane do późniejszego wykorzystania w raportach, same w sobie nie są narzędziem służącym do ich prezentacji ani podsumowywania. Formularz natomiast to struktura, która umożliwia użytkownikom wprowadzanie danych do bazy danych. Używa się go głównie do zbierania informacji, ale nie do ich analizy czy podsumowywania w formie raportów. Zestawienie to termin, który odnosi się do ogólnego podsumowania danych, ale również nie oferuje tak zaawansowanej i zorganizowanej prezentacji jak raport. Typowym błędem myślowym jest mylenie tych terminów, co może prowadzić do nieporozumień przy projektowaniu systemów informacyjnych. Ważne jest, aby zrozumieć, że każdy z tych elementów pełni inną rolę w zarządzaniu danymi. Aby poprawnie wykorzystać potencjał baz danych, należy umiejętnie dobierać narzędzia do konkretnego zadania.

Pytanie 7

Co powinno znaleźć się w KAŻDEJ tabeli, aby baza działała poprawnie i spójnie?

A. klucz PRIMARY KEY (unikalny i niepusty)
B. klucz obcy z NOT NULL i UNIQUE
C. klucz FOREIGN KEY z NOT NULL
D. klucze PRIMARY KEY i FOREIGN KEY
Każda tabela powinna mieć klucz główny (PRIMARY KEY) - pole o wartościach UNIKALNYCH i NIEPUSTYCH, które jednoznacznie identyfikuje każdy wiersz. Bez niego trudno odróżnić rekordy i utrzymać spójność. Dlatego w każdej tabeli potrzebny jest klucz główny.

Pytanie 8

W wyniku wykonania przedstawionego poniżej kodu JavaScript zmienna x ma wartość:

<script>
    var x = 10;
    x++;
    console.log(x);
</script>
A. 10 i zostanie wypisana w dokumencie HTML.
B. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
C. 11 i zostanie wypisana w oknie pop-up.
D. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript:

<script>
var x = 10;
x++;
console.log(x);
</script>

Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu.

Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego.

Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 9

Podczas definiowania pola id w tabeli MySQL użyto AUTO_INCREMENT. Co to oznacza?

id int NOT NULL AUTO_INCREMENT
A. wartość pola id zostanie nadana automatycznie przez bazę i będzie to losowo wygenerowana liczba całkowita
B. możliwe jest dodanie rekordu z dowolną wartością pola id
C. pole id może przyjmować takie wartości jak: NULL, 1, 2, 3, 4 i tak dalej
D. wartości dla tego pola będą generowane automatycznie przy dodawaniu nowego rekordu do bazy
Wartości pola AUTO_INCREMENT nie są generowane losowo lecz według określonego schematu liczbowego zaczynającego się zwykle od jedynki i rosnącego z każdym nowym rekordem. Koncepcja losowego nadawania wartości jest błędna ponieważ główna cecha AUTO_INCREMENT polega na przewidywalnym wzroście wartości co jest kluczowe dla zachowania integralności danych przy użyciu kluczy głównych. Z kolei możliwość dodawania rekordu z dowolną wartością id jest ograniczona gdyż w przypadku AUTO_INCREMENT to baza narzuca wartość tego pola co zabezpiecza przed duplikacją i kolizjami identyfikatorów. Pole id w kontekście AUTO_INCREMENT nie może przyjmować wartości NULL a jedynie wartości liczbowych zaczynających się od jedynki lub innej wartości początkowej jeśli zostanie zdefiniowana na etapie tworzenia tabeli. Mylenie tych koncepcji wynika często z niezrozumienia mechanizmów generowania kluczy w bazach danych gdzie klucz główny musi być unikalny a AUTO_INCREMENT to jeden z najczęściej stosowanych sposobów osiągania tego celu zgodnie z dobrymi praktykami projektowania baz danych. Zrozumienie funkcji AUTO_INCREMENT pozwala na efektywne zarządzanie rekordami i utrzymanie spójności danych w aplikacjach wykorzystujących bazy danych.

Pytanie 10

Funkcja agregująca AVG wykorzystana w zapytaniu

SELECT AVG(cena) FROM uslugi;
ma na celu
A. zsumowanie wszystkich kosztów usług
B. obliczenie liczby dostępnych usług w tabeli
C. wyliczenie średniej arytmetycznej cen wszystkich usług
D. znalezienie najwyższej ceny za usługi
Funkcja agregująca AVG w języku SQL oblicza średnią arytmetyczną wartości w określonej kolumnie, w tym przypadku w kolumnie 'cena' tabeli 'uslugi'. W kontekście baz danych, obliczanie średniej jest kluczowym narzędziem analitycznym, które pozwala na uzyskanie ogólnego obrazu wartości danej kolumny. W praktyce, analiza średnich cen usług może być użyteczna dla menedżerów chcących dostosować strategię cenową lub dla działów finansowych oceniających wydajność sprzedaży. Przykładowo, jeżeli średnia cena usług wynosi 100 zł, a kolejny miesiąc przynosi spadek do 80 zł, jest to sygnał do analizy powodów obniżenia przychodów. Stosowanie funkcji AVG jest zgodne z najlepszymi praktykami w zakresie analizy danych, gdyż pozwala na podejmowanie decyzji opartych na faktach i liczbach. Warto również zauważyć, że do obliczeń średnich często używa się danych z różnych grup, co może pomóc w zrozumieniu trendów oraz wzorców w zachowaniach klientów na rynku.

Pytanie 11

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

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

Pytanie 12

Aby wyciszyć dźwięk w filmie odtwarzanym w przeglądarce, do podanej definicji znacznika <video> powinien zostać dodany atrybut <video> <source src="film.mp4" type="video/mp4"> </video>

A. muted
B. controls
C. autoplay
D. loop
Wydaje się, że zrozumienie roli atrybutów w znaczniku <video> jest kluczowe dla prawidłowego zarządzania odtwarzaniem filmów. Atrybut 'loop' służy do powtarzania odtwarzanego filmu, co może być przydatne w przypadku animacji lub prezentacji wizualnych, ale nie wpływa na dźwięk. Użytkownik może błędnie sądzić, że dodanie atrybutu 'loop' sprawi, że film nie będzie miał dźwięku, co oczywiście jest nieprawdziwe. Z kolei 'autoplay' automatycznie rozpoczyna odtwarzanie filmu po załadowaniu strony, co może być irytujące dla użytkowników, jeśli nie jest to poparte atrybutem 'muted' – w przeciwnym razie film z dźwiękiem może zaskoczyć odwiedzających. Atrybut 'controls' z kolei dodaje elementy sterujące, takie jak przycisk play/pause, co pozwala użytkownikom na aktywne zarządzanie odtwarzaniem, ale nie wpływa na to, czy dźwięk jest włączony czy wyłączony. Warto pamiętać, że stosowanie odpowiednich atrybutów w znaczniku <video> jest kluczowe dla poprawnego odbioru treści multimedialnych i zwiększa komfort użytkowników. Nieprawidłowe zrozumienie roli tych atrybutów może prowadzić do niepożądanych efektów oraz negatywnych doświadczeń użytkowników z interfejsem strony.

Pytanie 13

W języku JavaScript funkcja document.getElementById() ma na celu

A. sprawdzić poprawność formularza z identyfikatorem id
B. umieścić tekst o treści 'id' na stronie internetowej
C. zwrócić odnośnik do pierwszego elementu HTML o określonym id
D. pobrać dane z pola formularza i zapisać je do zmiennej id
Metoda document.getElementById() jest jedną z kluczowych funkcji w JavaScript, używaną do interakcji z elementami HTML w dokumentach DOM (Document Object Model). Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu w dokumencie HTML, który posiada określony atrybut id. Atrybut ten powinien być unikalny w obrębie dokumentu, co pozwala na jednoznaczną identyfikację elementu. Przykładowo, jeśli mamy element <div id='myElement'>Witaj świecie</div>, to użycie document.getElementById('myElement') zwróci nam ten konkretny element. Można następnie manipulować tym elementem, zmieniając jego zawartość, styl lub atrybuty, co jest nieocenione w tworzeniu dynamicznych aplikacji webowych. Warto zaznaczyć, że ta metoda jest częścią specyfikacji DOM Level 1 i jest szeroko wspierana przez wszystkie nowoczesne przeglądarki. W kontekście optymalizacji wydajności, uzyskiwanie dostępu do elementów za pomocą ich id jest znacznie szybsze i bardziej efektywne niż stosowanie selektorów CSS. W praktyce, użycie tej metody w kodzie JavaScript jest kluczowe dla wielu operacji DOM, co sprawia, że jest to fundament, na którym opiera się wiele aplikacji webowych.

Pytanie 14

Jakie rozwiązanie powinno być wdrożone w organizacji danych, aby przyspieszyć wykonanie zapytań w bazie danych?

A. Klucze podstawowe
B. Wartości domyślne
C. Reguły
D. Indeksy
Klucze podstawowe pełnią inną rolę w bazach danych niż indeksy. Służą one do jednoznacznej identyfikacji każdego wiersza w tabeli i zapewniają, że nie ma duplikatów danych. Choć klucze podstawowe mogą być automatycznie indeksowane przez system bazy danych, ich głównym celem jest zapewnienie integralności danych, a nie przyspieszanie wyszukiwania. Reguły, z drugiej strony, dotyczą logiki aplikacji i kontroli danych, ale nie wpływają na szybkość dostępu do danych. Mogą one być używane do walidacji danych przed ich zapisaniem w bazie, co jest ważne, lecz nie przyspiesza samego procesu wyszukiwania. Wartości domyślne definiują, jakie dane mają być wstawiane, gdy nie podano żadnej wartości, ale również nie mają wpływu na wydajność zapytań. Wszystkie te elementy mają swoje istotne miejsce w projektowaniu baz danych, jednak nie są bezpośrednio związane z optymalizacją szybkości zapytań jak to jest w przypadku indeksów. Często mylnie zakłada się, że klucze podstawowe i inne mechanizmy są wystarczające do poprawy wydajności, co może prowadzić do nieefektywnego projektowania i nieodpowiednich optymalizacji w systemie bazodanowym.

Pytanie 15

Który efekt został zaprezentowany na filmie?

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

Pytanie 16

W kodzie HTML przypisano pewne znaczniki do klasy o nazwie "nomargin". Jak można przeprowadzić operacje na tych znacznikach w języku JavaScript, korzystając z odpowiedniej funkcji?

A. getElement("nomargin")
B. getElementsByClassName("nomargin")
C. getElementById("nomargin")
D. getElementsByTagName("nomargin")
Odpowiedzi, takie jak 'getElement("nomargin")', 'getElementById("nomargin")' oraz 'getElementsByTagName("nomargin")', są niewłaściwe z różnych powodów, które warto szczegółowo przeanalizować. Pierwsza opcja, 'getElement("nomargin")', nie istnieje w standardzie JavaScript, co może prowadzić do błędów w kodzie. Właściwe metody umożliwiające selekcję elementów to bardziej specyficzne funkcje, jak getElementById, która z kolei wymaga unikalnego identyfikatora, a nie klasy. Przykład 'getElementById("nomargin")' działałby tylko wtedy, gdy 'nomargin' byłby przypisany jako identyfikator (id) jednego, unikalnego elementu. Jednak w HTML nie zaleca się stosowania tej metody do selekcji klas, co stwarza kolejne problemy. Ostatnia odpowiedź, 'getElementsByTagName("nomargin")', jest również błędna, ponieważ ta metoda służy do selekcji elementów na podstawie ich tagów HTML, a nie klas. Ponadto, brak zrozumienia różnic między tymi metodami może prowadzić do istotnych błędów w kodzie, które będą skutkować błędnym działaniem aplikacji webowych. Kluczowe jest, aby przy pracy z DOM stosować odpowiednie metody zgodnie z ich przeznaczeniem, co podnosi jakość kodu oraz jego czytelność.

Pytanie 17

Tabela Pracownicy zawiera informacje o zatrudnionych w różnych działach, co jest określone przez pole liczbowe dzial. Z uwagi na to, że zazwyczaj wykonuje się kwerendy jedynie dla działu równego 2, można uprościć zapytania do tej tabeli, tworząc wirtualną tabelę o nazwie Prac_dzial2 przy użyciu zapytania

A. VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
B. CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2
C. CREATE VIEW Prac_dzial2 FROM Pracownicy WHERE dzial=2
D. VIEW Prac_dzial2 SELECT FROM Pracownicy WHERE dzial=2
Odpowiedź 'CREATE VIEW Prac_dzial2 AS SELECT * FROM Pracownicy WHERE dzial=2;' jest poprawna, ponieważ syntaktycznie i semantycznie odnosi się do standardów SQL używanych do tworzenia widoków. Komenda 'CREATE VIEW' służy do zdefiniowania wirtualnej tabeli, która agreguje dane według określonych kryteriów. W tym przypadku, widok 'Prac_dzial2' wyciąga wszystkie rekordy z tabeli 'Pracownicy', które spełniają warunek, że wartość pola 'dzial' wynosi 2. Używanie widoków jest praktyką zalecaną, ponieważ pozwala na uproszczenie złożonych zapytań oraz zabezpiecza przed niepożądanym dostępem do danych. Dzięki temu, użytkownicy mogą łatwiej filtrować dane, co zwiększa wydajność zapytań i poprawia organizację kodu. Widoki są także korzystne w kontekście zarządzania danymi, ponieważ mogą być zaktualizowane, a ich struktura może być zmieniana w zależności od potrzeb użytkownika, co czyni je elastycznym narzędziem w bazach danych.

Pytanie 18

Gdzie umieścić informacje o autorze, opisie i słowach kluczowych strony?

A. w <body>, w znaczniku <html>
B. w <body>, w znaczniku <meta>
C. w <head>, w znaczniku <meta>
D. w <head>, w znaczniku <style>
Metadane należą do nagłówka, nie do treści. <style> zawiera reguły CSS, a nie opis strony. <meta> w <body> jest niepoprawne, a <html> to znacznik nadrzędny całego dokumentu. Autora, opis i słowa kluczowe podaje <meta> w <head>.

Pytanie 19

Które z pól są umieszczone w formularzu?





Studia podyplomowe Kurs

A. Textarea, Option, Input(Checkbox), Input(Checkbox), Input (Submit), Input(Reset)
B. Textarea, Select, Input(Radio), Input(Radio), Input(Reset), Input(Submit)
C. Input(Text), Input(Checkbox), Select, Select, Input(Submit), Input(Reset)
D. Input(Text), Select, Input(Radio), Input(Radio), Input (Submit), Input(Reset)
Twoja odpowiedź sugeruje pewne nieporozumienia co do typów pól używanych w formularzach html. Przykładowo, Textarea to pole wieloliniowego tekstu, które nie zostało użyte w tym formularzu. Podobnie, Element Option jest zazwyczaj używany wewnątrz elementu Select i nie jest samodzielnym polem formularza. Co więcej, Input(Checkbox) to pole wyboru, które pozwala na zaznaczenie wielu opcji. W tym formularzu, używane są przyciski wyboru (Input(Radio)), które są podobne, ale pozwalają tylko na wybór jednej opcji. Wreszcie, należy pamiętać, że nie wszystkie formularze muszą zawierać wszystkie typy pól. Różne typy pól są używane w zależności od tego, jakiego rodzaju informacje chcemy zebrać. Ważne jest, aby zrozumieć różnice między nimi i kiedy ich używać, aby stworzyć skuteczny formularz, który będzie łatwy do wypełnienia dla użytkowników i będzie zbierał potrzebne informacje.

Pytanie 20

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. Nieokreślonego (undefined)
B. Liczbowego
C. String (ciąg znaków)
D. Logicznego
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 21

Pokazane pole input pozwala na

<input type="checkbox" name="text1" value="text2">
A. wprowadzenie hasła
B. wybranie opcji
C. selekcję opcji z listy zawierającej wartości text1 oraz text2
D. wpisanie dowolnego ciągu znaków
Checkboxy różnią się sporo od innych form wprowadzania danych w HTML. Na przykład typ password, który maskuje wprowadzone znaki, by zapewnić ich poufność. Z kolei pole typu text to jeden z najprostszych elementów formularzy, ale nie można w nim zaznaczać opcji. Jak wybierasz coś z listy rozwijanej, to korzystasz z elementu select, który pozwala wybrać jedną z predefiniowanych wartości, ale to nie ma nic wspólnego z checkboxami. Wiele osób myli checkboxy z radiobuttonami, ale te drugie zawsze pozwalają wybrać tylko jedną opcję w grupie. Checkboxy mogą być zaznaczane w dowolnej liczbie, co daje większą elastyczność w projektowaniu. Etykiety label są też istotne, bo ułatwiają zrozumienie, co każdy checkbox robi, co jest ważne dla dostępności. Zrozumienie różnic między typami input to kluczowa sprawa, gdy tworzysz funkcjonalne formularze na stronach. Wiedza o przypisywaniu atrybutów i ich funkcjach to podstawowe umiejętności w HTML i frontendzie.

Pytanie 22

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

A. <?php echo date("Y-m-d G:i:s"); ?>
B. <?php date("Y-m-d G:i:s"); ?>
C. <?php echo date("Ymd Gis"); ?>
D. <?php date("Y-m-d”) + time("G:i:s"); ?>
Odpowiedź numer 4 jest poprawna, ponieważ używa funkcji echo do wyświetlenia wyniku funkcji date, która formatuje datę i czas w odpowiedni sposób. W tym przypadku użycie formatu Y-m-d G:i:s pozwala na wyświetlenie roku z czterema cyframi, miesiąca i dnia z dwoma cyframi oraz godziny w formacie 24-godzinnym bez wiodącego zera, a także minut i sekund z wiodącymi zerami. Funkcje PHP date i echo są standardem w języku PHP do pracy z datami i wyświetlaniem danych. Praktyczne zastosowanie tej funkcji jest szerokie, ponieważ umożliwia dynamiczne generowanie treści na stronach internetowych, takich jak wyświetlanie aktualnej daty w nagłówku strony czy w logach systemowych. Dobre praktyki sugerują, aby zawsze uwzględniać strefę czasową przy pracy z datami, co można osiągnąć za pomocą funkcji date_default_timezone_set. Dzięki temu kod będzie niezależny od ustawień serwera i zawsze dostarczał spójne wyniki. Warto również zaznaczyć, że manipulacje na datach i czasie są kluczowe w wielu aplikacjach, od rezerwacji po analizy czasu działań użytkowników.

Pytanie 23

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
B. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
C. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
D. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
Prawidłowa odpowiedź wskazuje, że pierwszym krokiem w procesie tworzenia bazy danych jest określenie celu, co jest kluczowe dla zrozumienia, jakie dane będą gromadzone i w jaki sposób będą one używane. Następnie, stworzenie tabel to fundament, na którym opiera się cała baza danych. Tabele definiują struktury danych, które będą przechowywane, a ich projektowanie powinno uwzględniać normalizację, czyli proces eliminowania redundancji danych i zapewniania ich integralności. Utworzenie relacji między tabelami jest kolejnym krokiem, który pozwala na efektywne łączenie danych w różnych tabelach, co z kolei umożliwia bardziej złożone zapytania. Normalizacja, będąca ostatnim krokiem, pozwala na optymalizację struktury bazy, co zwiększa wydajność operacji. Przykład zastosowania tej kolejności można zobaczyć w projektowaniu systemów zarządzania bazami danych w przedsiębiorstwach, gdzie dokładne określenie potrzeb biznesowych wpływa na przyszłe modele danych i ich relacje.

Pytanie 24

W formularzu dokumentu PHP znajduje się pole <input name="im">. Gdy użytkownik wprowadzi tekst "Janek", aby dodać wartość tego pola do bazy danych, w tablicy $_POST będzie obecny element

A. im o indeksie Janek
B. im z następującym numerem indeksu
C. Janek o indeksie im
D. Janek z następującym numerem indeksu
Odpowiedzi wskazujące na istnienie dodatkowych numerów indeksów lub powiązań między wartością a nazwą pola są błędne, ponieważ nie odzwierciedlają rzeczywistego działania PHP w kontekście formularzy. W przypadku, gdy użytkownik wpisuje "Janek" w polu o nazwie 'im', PHP nie przypisuje tej wartości do jakiegoś indeksu numerowanego. Tablica $_POST operuje na zasadzie klucz-wartość, gdzie klucz jest nazwą pola w formularzu, a wartość to wprowadzone dane. Zatem klucz 'im' w tablicy $_POST zostałby skojarzony bezpośrednio z wartością 'Janek' jako jego wartość. Każda inna koncepcja, taka jak dodawanie numerów indeksów czy zamiana wartości z kluczem, jest myląca. Typowe błędy myślowe związane z tym zagadnieniem obejmują niezrozumienie, że PHP nie tworzy dynamicznych kluczy w tablicach na podstawie wartości, a jedynie przypisuje wartości do zdefiniowanych kluczy. Z tego powodu, żeby skutecznie operować na danych z formularzy, programiści muszą dokładnie rozumieć, jak działa tablica $_POST oraz jak poprawnie przetwarzać dane wejściowe w PHP, unikając przy tym błędnych interpretacji ich struktury.

Pytanie 25

Jakie będą skutki wykonania podanego zapytania w tabeli?

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. dodanie kolumny nazwa2 z wartością domyślną typu DOUBLE
B. zmiana nazwy kolumny z nazwa1 na nazwa2
C. dodanie kolumny nazwa2 typu zmiennoprzecinkowego
D. zmiana wartości kolumny nazwa2 na DOUBLE
Pytanie dotyczy użycia polecenia SQL ALTER TABLE w celu modyfikacji struktury istniejącej tabeli. W przedstawionym zapytaniu ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL; widzimy, że użyto słowa kluczowego ADD co wskazuje na dodanie nowej kolumny do tabeli. Kolumna ta nazywa się nazwa2 i ma typ danych DOUBLE co oznacza, że będzie przechowywać wartości zmiennoprzecinkowe. Specyfikacja NOT NULL oznacza, że żadna wartość w tej kolumnie nie może być NULL co jest częstym wymogiem w bazach danych aby zapewnić spójność i prawidłowość danych. Dodawanie nowych kolumn do tabeli jest typową operacją w zarządzaniu bazami danych umożliwiającą rozbudowę ich struktury w celu spełnienia nowych wymagań biznesowych. Typ DOUBLE jest szczególnie użyteczny w przechowywaniu danych liczbowych wymagających dużej precyzji takich jak wartości finansowe czy pomiary naukowe. Ważne jest aby zawsze po dodaniu nowej kolumny dostosować aplikacje korzystające z bazy danych aby mogły poprawnie obsługiwać nowe dane co jest zgodne z najlepszymi praktykami w branży IT.

Pytanie 26

Które polecenie SQL przekazać do mysqli_query(), aby DODAĆ do bazy dane z formularza?

A.
INSERT INTO
B.
ALTER
C.
SELECT
D.
UPDATE
Aby DODAĆ nowy wiersz z danymi formularza, przekazuje się do mysqli_query() polecenie INSERT INTO, np. INSERT INTO ... VALUES .... Dlatego do dodania danych służy INSERT INTO.

Pytanie 27

W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
A. miasta i kodu pocztowego ze wszystkich zwróconych rekordów.
B. miasta i kodu pocztowego z pierwszego zwróconego rekordu.
C. ulicy i miasta ze wszystkich zwróconych rekordów.
D. ulicy i miasta z pierwszego zwróconego rekordu.
Niestety, wybrałeś niepoprawną odpowiedź. W twoim fragmencie kodu PHP, wykonujesz zapytanie SQL, które wybiera kolumny 'ulica', 'miasto', 'kod pocztowy' z tabeli 'adresy'. Następnie używasz funkcji mysqli_fetch_row(), która pobiera pierwszy zwrócony rekord jako indeksowaną tablicę. Funkcja echo wyświetla drugi i trzeci element tej tablicy (indeksy 1 i 2), które odpowiadają kolumnom 'miasto' i 'kod pocztowy'. Niepoprawne odpowiedzi sugerują, że twój kod wypisze 'ulicę i miasto' lub 'miasto i kod pocztowy' ze wszystkich zwróconych rekordów, co jest nieprawdą. Niezrozumienie, jak funkcje PHP działają z MySQL i jaki jest ich wynik, może prowadzić do poważnych błędów w kodzie. Wskazane jest dokładne zrozumienie, jakie dane są zwracane przez SQL i jak je przetwarzać w PHP.

Pytanie 28

Który z podanych znaczników HTML nie jest używany do formatowania tekstu?

A. <sub>
B. <strong>
C. <em>
D. <div>
Znaczniki <em>, <sub> oraz <strong> są używane do formatowania tekstu w HTML, co czyni je nieodpowiednimi odpowiedziami w kontekście tego pytania. <em> jest używane do oznaczania tekstu, który ma być wyrażony w sposób emfatyczny, co zazwyczaj przekłada się na wyświetlenie go w kursywie. Przykładowo, <em>ważne</em> może być użyte w zdaniu, aby podkreślić znaczenie określonego słowa. Z kolei <sub> służy do wyświetlania tekstu w dolnym indeksie, co jest typowe dla wzorów chemicznych, gdzie można spotkać H<sub>2</sub>O dla wody. Zastosowanie <sub> jest zatem ograniczone do specyficznych kontekstów, gdzie potrzebne jest obniżenie tekstu. Natomiast <strong> jest znacznikiem, który wskazuje na silny akcent, co często prowadzi do wyświetlenia tekstu w pogrubieniu. Użycie <strong> w taki sposób, jak w przypadku <strong>ważne</strong>, sygnalizuje dla użytkowników i wyszukiwarek, że dany tekst ma istotne znaczenie. Wszystkie te znaczniki są zatem używane do stylistycznego podkreślenia lub formatowania treści w HTML, co jest ich zasadniczą funkcją, a tym samym sprawia, że nie mogą być one poprawne w kontekście tego pytania o znacznikach, które nie są związane z formatowaniem tekstu.

Pytanie 29

Programista stworzył w języku C++ pętlę mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1; 
for (int i=1; i < 5; i++)
{
a = a * i;
}
cout << a;
A. Zmienna a powinna być inicjowana wartością 0 zamiast 1.
B. Parametr i pętli powinien być rozpoczęty od wartości 0 zamiast 1.
C. W drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
D. Parametr i pętli powinien być zmniejszany zamiast zwiększany.
W poprawnej odpowiedzi wskazano, że w drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5. W kontekście obliczania silni 5! (czyli 5*4*3*2*1), pętla for powinna iterować od 1 do 5, co oznacza, że końcowy warunek pętli powinien uwzględniać 5. W przeciwnym razie, ostatnia iteracja, w której i wynosi 5, nie będzie wykonana, co skutkuje błędnym wynikiem. Prawidłowa pętla powinna wyglądać tak: for (int i=1; i <= 5; i++) lub for (int i=1; i < 6; i++). Takie podejście jest zgodne z zasadami programowania, które zalecają, aby końcowy warunek pętli obejmował ostatnią wartość, która ma być przetwarzana. Dobrą praktyką w programowaniu jest również przemyślenie granic pętli, aby zapewnić, że wszystkie wymagane wartości są uwzględniane w obliczeniach, co jest kluczowe w takich obliczeniach matematycznych jak silnia.

Pytanie 30

W stylu CSS utworzono klasę uzytkownik. Na stronie będą wyświetlane czcionką w kolorze niebieskim: p.uzytkownik { color: blue; }

A. wszystkie elementy w sekcji <body> z przypisaną klasą uzytkownik.
B. jedynie elementy tekstowe takie jak <p>, <h1>.
C. wszystkie akapity.
D. akapitów, którym przypisano klasę uzytkownik.
Odpowiedź, że paragrafy przypisane do klasy 'uzytkownik' będą miały niebieską czcionkę, jest jak najbardziej trafna. W CSS używamy kropki, żeby zdefiniować klasę, co oznacza, że styl dotyczy tylko tych elementów HTML, które mają tę klasę. Więc jeśli masz coś takiego w HTML jak <p class='uzytkownik'>, to na pewno będzie to wyświetlane z niebieską czcionką, zgodnie z Twoją regułą CSS. Takie podejście super wspiera modularność i możliwość ponownego użycia kodu, co jest naprawdę ważne w tworzeniu stron. Dzięki klasom CSS łatwo da się ogarnąć styl w różnych miejscach w kodzie, a zmieniając kolor czcionki w pliku CSS, zmiana ta natychmiast zaktualizuje wszystkie elementy z tą klasą. Przykładowo, akapit <p class='uzytkownik'> będzie miał niebieski kolor i to fajnie wpływa na spójność wizualną strony. Pamiętaj też, że klasy CSS można stosować nie tylko do akapitów, ale też do innych znaczników, co daje większą swobodę w stylizacji treści.

Pytanie 31

Rozważ tabelę pracownicy. Jakie jest polecenie MySQL, które usuwa wszystkie wpisy z tabeli, gdzie pole rodzaj_umowy jest puste?

A. DROP pracownicy WHERE rodzaj_umowy IS NULL
B. DELETE pracownicy WHERE rodzaj_umowy ='brak'
C. DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL
D. DROP pracownicy FROM rodzaj_umowy = 0
Aby usunąć wszystkie rekordy z tabeli pracownicy, dla których pole rodzaj_umowy pozostaje puste, czyli ma wartość NULL, używamy polecenia DELETE FROM pracownicy WHERE rodzaj_umowy IS NULL. Klauzula DELETE FROM jest standardowym poleceniem SQL, które służy do usuwania danych z bazy danych. W tym przypadku warunek IS NULL jest kluczowy, ponieważ wskazuje, że chcemy usunąć jedynie te rekordy, w których pole rodzaj_umowy nie zawiera żadnej wartości. Warto zauważyć, że NULL w SQL oznacza brak wartości, co różni się od innych typów wartości, jak na przykład 0 czy pusty ciąg tekstowy. Przykład praktyczny użycia tego polecenia: jeśli w tabeli mamy pracowników z różnymi rodzajami umowy, w tym także takich, którzy nie mają przypisanego rodzaju, to powyższe polecenie usunie ich z bazy danych. Tego rodzaju operacje są niezwykle ważne w kontekście utrzymania bazy danych, gdyż pozwalają na eliminację nieaktualnych lub niekompletnych danych, co w efekcie prowadzi do poprawy jakości przechowywanych informacji i ułatwia późniejsze zapytania do bazy. Takie podejście jest zgodne z dobrymi praktykami w zakresie zarządzania danymi i normami ANSI SQL.

Pytanie 32

Wskaż prawdziwe stwierdzenie o poleceniu:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. klauzula IF NOT EXISTS jest opcjonalna i zapobiega błędowi, gdy tabela już istnieje
B. klauzula CHARACTER SET utf8 jest obowiązkowa
C. do tabeli nie można wpisywać ulic z polskimi znakami
D. rekordem tabeli nie może być „3 MAJA”
Klauzula IF NOT EXISTS jest OPCJONALNA i zabezpiecza CREATE TABLE - jeśli tabela o danej nazwie już istnieje, polecenie nie zgłosi błędu i nie utworzy jej ponownie. Dlatego prawdą jest, że IF NOT EXISTS jest opcjonalna i zapobiega błędowi przy istniejącej tabeli.

Pytanie 33

O zmiennej predefiniowanej

$_POST 
w języku PHP można stwierdzić, że
A. zawiera dane bezpośrednio dostarczone do skryptu z ciasteczka
B. jest odwzorowaniem tablicy $_COOKIE
C. jest rozwiniętą wersją tablicy $_SESSION
D. zawiera dane przesłane do skryptu za pośrednictwem formularza
Odpowiedź, że zmienna predefiniowana $_POST zawiera dane przesłane do skryptu z formularza, jest w pełni poprawna. W języku PHP, $_POST to jedna z superglobalnych tablic, która umożliwia dostęp do danych przesyłanych metodą POST. Metoda ta jest powszechnie stosowana w formularzach HTML, gdzie użytkownik może wprowadzać dane, które następnie są wysyłane do serwera. Na przykład, formularz kontaktowy, w którym użytkownik wprowadza swoje imię i adres e-mail, może być przetwarzany za pomocą $_POST, co pozwala na łatwą i bezpieczną obsługę danych. Dobrą praktyką jest również walidacja danych przed ich użyciem, aby zminimalizować ryzyko ataków, takich jak SQL Injection czy XSS. Dzięki zastosowaniu $_POST, programiści mogą przechwytywać i przetwarzać dane użytkowników w bardziej zaawansowany sposób, co pozwala na dynamiczne generowanie treści i interakcję z użytkownikami.

Pytanie 34

Emblemat systemu CMS o nazwie Joomla! to

Ilustracja do pytania
A. C.
B. A.
C. D.
D. B.
Logo systemu CMS Joomla! składa się z czterech kolorowych elementów ułożonych w ciekawy wzór, który od razu zwraca uwagę. Moim zdaniem, ten design dobrze oddaje ideę Joomla!, bo podkreśla współpracę i wspólnotę. To jeden z najpopularniejszych systemów do zarządzania treścią na świecie, a ludzie go używają do różnych rzeczy – od prostych blogów po naprawdę rozbudowane portale korporacyjne. Dzięki fajnym rozszerzeniom i szablonom można na prawdę spersonalizować swoją stronę. Co ważne, Joomla! wspiera dobre praktyki SEO, więc jest super opcją dla deweloperów, którzy chcą, żeby ich strony były dobrze widoczne w sieci. Widziałem, że to logo często pojawia się na stronach jako znak jakości, co pokazuje, jak bardzo jest rozpoznawalne i ważne w branży. Wybór tego logo jest więc trafiony i daje dobry punkt wyjścia do nauki o CMS-ach i ich zastosowaniach w realnym świecie.

Pytanie 35

W poniższym zapytaniu SQL, co oznacza symbol gwiazdki w jego wyniku?

SELECT * FROM mieszkancy WHERE imie = 'Anna';
A. pokazanie pola o nazwie '*' (gwiazdka)
B. wyświetlenie wszystkich kolumn z tabeli mieszkancy
C. wyświetlenie wszystkich rekordów z tabeli mieszkancy
D. zignorowanie warunku dotyczącego imienia
W zapytaniu SQL znak gwiazdki (*) nie oznacza wyświetlenia wszystkich rekordów w tabeli, lecz wskazuje, że w wyniku zapytania mamy otrzymać wszystkie kolumny. To ważne rozróżnienie, ponieważ mylenie tych pojęć prowadzi do nieporozumień dotyczących struktury wyników. Każde zapytanie z gwiazdką ograniczone jest jedynie kolumnami nie rekordami. W tym przypadku część WHERE imie = 'Anna' dodatkowo sie mplementuje ograniczenie do konkretnych rekordów co należy do odrębnej części logiki zapytania. Z kolei interpretacja gwiazdki jako pola o nazwie '*' jest błędnym założeniem ponieważ w standardzie SQL nie istnieje możliwość nadania pola o takiej nazwie poprzez użycie gwiazdki. Gdybyśmy chcieli wyświetlić pole o konkretnej nazwie musielibyśmy użyć jego dokładnej nazwy a nie gwiazdki. Interpretacja gwiazdki jako zignorowania warunku WHERE również jest niepoprawna ponieważ WHERE jest integralną częścią zapytania SQL określającą kryteria filtrowania rekordów i działa niezależnie od gwiazdki. Zrozumienie różnic między wyborem kolumn a wyborem rekordów jest kluczowe dla prawidłowego konstruowania zapytań SQL i optymalizacji ich działania w praktycznych zastosowaniach.

Pytanie 36

W języku PHP tablice asocjacyjne to tablice, w których

A. w każdej komórce tablicy przechowywana jest inna tablica.
B. elementy tablicy są zawsze indeksowane od liczby równej 0.
C. indeks jest dowolnym napisem.
D. istnieją przynajmniej dwa wymiary.
W PHP pojęcie tablicy asocjacyjnej bywa mylone z kilkoma innymi konstrukcjami, dlatego łatwo wpaść w pułapkę skojarzeń. Tablica asocjacyjna nie ma nic wspólnego z liczbą wymiarów – fakt, że jakaś tablica jest wielowymiarowa (np. tablica tablic), wcale nie oznacza, że jest asocjacyjna. Możesz mieć tablicę dwuwymiarową z indeksami czysto numerycznymi i będzie to po prostu zwykła tablica indeksowana liczbami, tylko zagnieżdżona. Sam „wymiar” dotyczy struktury zagnieżdżenia, a nie sposobu adresowania elementów. Podobnie nie jest prawdą, że w tablicy asocjacyjnej w każdej komórce musi być inna tablica. To jest raczej opis tablicy zagnieżdżonej (np. do reprezentowania wierszy i kolumn), a nie definicja tablicy asocjacyjnej. Elementem tablicy asocjacyjnej może być cokolwiek: liczba, string, obiekt, null, inna tablica – ale to, co ją wyróżnia, to klucze tekstowe, a nie typ przechowywanych wartości. Kolejne typowe nieporozumienie to przekonanie, że elementy w tablicy zawsze są indeksowane od zera. W wielu językach (np. w C, Javie) rzeczywiście tablice „klasyczne” startują od indeksu 0, więc łatwo to nawykowo przenieść do PHP. Natomiast PHP jest pod tym względem bardziej elastyczny: możesz mieć tablicę z kluczami 0, 1, 2, ale możesz też mieć klucze 'imie', 'email' albo nawet mieszane – częściowo numeryczne, częściowo tekstowe. W tablicy asocjacyjnej klucz jest wartością logicznie opisującą dany element, a nie tylko kolejnym numerem pozycji. Z mojego doświadczenia wynika, że wiele błędów w kodzie bierze się z tego, że ktoś traktuje tablicę asocjacyjną jak „zwykłą tablicę od zera”, a potem odwołuje się do nieistniejących indeksów numerycznych. Dobra praktyka to świadome korzystanie z kluczy, nadawanie im sensownych nazw i pamiętanie, że w PHP tablica asocjacyjna to po prostu struktura klucz → wartość, gdzie kluczem bardzo często jest właśnie napis, a nie liczba.

Pytanie 37

W firmie zajmującej się technologiami informacyjnymi otwarta jest rekrutacja na stanowisko administratora e-sklepu. Do jego zadań należy instalacja i konfiguracja systemu zarządzania treścią, który jest przeznaczony jedynie dla sklepu internetowego, zmiana szablonów wizualnych oraz dostosowanie grafiki. Jakie umiejętności powinien posiadać nowy pracownik?

A. CMS PrestaShop, CSS, Gimp
B. HTML, CSS, Photoshop
C. CMS WordPress, HTML, Gimp
D. Photoshop, Gimp, JavaScript
Podczas analizy innych odpowiedzi można zauważyć, że każda z nich zawiera nieodpowiednie elementy, które nie odpowiadają wymaganiom pracy administratora sklepu internetowego. W przypadku odpowiedzi zawierających Photoshop, Gimp oraz JavaScript, chociaż umiejętności graficzne są ważne, JavaScript nie jest priorytetowy w kontekście zarządzania treścią w systemach e-commerce, takich jak PrestaShop. JavaScript głównie służy do tworzenia dynamicznych interfejsów użytkownika, co może być mniej istotne, gdyż wiele funkcjonalności jest już zintegrowanych w CMS. Z kolei Photoshop i Gimp, choć przydatne, nie są kluczowe w administracji samego systemu. Ponadto, odpowiedzi związane z CMS WordPress, HTML i Gimp również mijają się z celem, ponieważ WordPress nie jest dedykowany wyłącznie do e-commerce, podczas gdy PrestaShop został stworzony specjalnie dla sklepów internetowych. HTML jest użyteczny, ale nie jest wystarczający dla administratora, który musi również znać specyfikę CMS-a. W rezultacie, brak pełnego zrozumienia różnic między platformami oraz ich zastosowaniami prowadzi do błędnych wniosków o wymaganych umiejętnościach, co podkreśla znaczenie dokładnej analizy potrzeb w kontekście danej roli zawodowej.

Pytanie 38

Która właściwość języka CSS może przyjmować wartości: underline, overline, line-through?

A. text-style
B. font-weight
C. text-decoration
D. font-style
Poprawna odpowiedź to właściwość CSS `text-decoration`. To właśnie ona odpowiada za dodawanie różnych „linii” do tekstu: podkreślenia (`underline`), nadkreślenia (`overline`) oraz przekreślenia (`line-through`). W praktyce zapis wygląda np. tak: `a { text-decoration: underline; }` – klasyczny przykład dla linków, albo `del { text-decoration: line-through; }` dla tekstu usuniętego. W nowszych specyfikacjach CSS (CSS Text Decoration Module Level 3) ta właściwość została trochę rozbita na bardziej szczegółowe, jak `text-decoration-line`, `text-decoration-style`, `text-decoration-color`, ale w codziennym kodowaniu dalej bardzo często używa się skrótu `text-decoration`.
Moim zdaniem warto od razu kojarzyć, że `text-decoration` nie służy do zmiany kroju pisma, pogrubienia czy kursywy, tylko właśnie do „ozdabiania” tekstu dodatkowymi liniami. Dobra praktyka jest taka, żeby świadomie używać tej właściwości przy stylowaniu linków: np. usuwamy podkreślenie `a { text-decoration: none; }`, a potem przy najechaniu myszką dajemy `a:hover { text-decoration: underline; }`. Dzięki temu interfejs jest czytelniejszy, a użytkownik widzi, że element jest klikalny.
Warto też wiedzieć, że `text-decoration` może przyjmować kilka wartości naraz, np. `text-decoration: underline overline;`, co rzadko się używa, ale czasem w jakichś specyficznych projektach UI może się przydać. Z mojego doświadczenia w projektach komercyjnych najczęściej korzysta się z `underline`, `none` i czasem `line-through` np. przy cenach promocyjnych: stara cena przekreślona, nowa obok. To jest taki mały szczegół CSS, ale bardzo często używany w praktyce.

Pytanie 39

W języku SQL dodanie nowej kolumny z nazwą miejscowości do istniejącej tabeli pracownicy umożliwia kwerenda

A. ALTER TABLE pracownicy ADD miejscowosc FLOAT(2);
B. CREATE TABLE pracownicy ADD miejscowosc FLOAT(2);
C. ALTER TABLE pracownicy DROP COLUMN miejscowosc;
D. ALTER TABLE pracownicy ADD miejscowosc VARCHAR(100);
Żeby dobrze zrozumieć to zadanie, trzeba rozdzielić trzy różne obszary: modyfikację istniejącej tabeli, tworzenie nowej tabeli oraz usuwanie elementów z tabeli. W pytaniu chodzi konkretnie o dodanie nowej kolumny do już istniejącej tabeli pracownicy. To od razu sugeruje użycie instrukcji ALTER TABLE z klauzulą ADD, bo właśnie ta kombinacja jest standardowym sposobem modyfikowania struktury tabeli w SQL.

Jednym z częstych nieporozumień jest użycie nieodpowiedniego typu danych. W niektórych odpowiedziach pojawia się typ FLOAT(2) dla nazwy miejscowości. FLOAT jest typem liczbowym zmiennoprzecinkowym, używanym do przechowywania wartości numerycznych, np. cen, pomiarów czy wyników obliczeń. Nazwa miasta to typowe dane tekstowe, czyli powinna być przechowywana w typie znakowym, takim jak VARCHAR czy ewentualnie CHAR. Próba użycia typu liczbowego do przechowywania tekstu jest po prostu sprzeczna z logiką projektowania baz danych i dobrymi praktykami normalizacji, bo utrudnia walidację i późniejsze operacje na danych.

Inny błąd to sięganie po instrukcję DROP COLUMN. DROP w kontekście ALTER TABLE oznacza usunięcie kolumny z tabeli, a nie jej dodanie. Jeśli ktoś nieuważnie czyta polecenie lub myli słowa kluczowe, może mu się wydawać, że DROP „coś zmienia w strukturze”, ale kierunek jest dokładnie odwrotny do wymaganego – kolumna miejscowosc zostałaby usunięta (o ile w ogóle istnieje), a nie dodana. W praktyce administracji bazą jest to bardzo niebezpieczna pomyłka, bo DROP COLUMN usuwa dane bezpowrotnie.

Zdarza się też pomylenie CREATE TABLE z ALTER TABLE. CREATE TABLE służy do zakładania całkowicie nowej tabeli, a nie do modyfikacji istniejącej. Składnia CREATE TABLE nie przewiduje klauzuli ADD w środku, tylko od razu listę kolumn w nawiasach. Próba napisania czegoś w stylu CREATE TABLE pracownicy ADD ... jest po prostu składniowo błędna w SQL i żadna sensowna baza nie przyjmie takiego polecenia. To typowy błąd osób, które pamiętają, że „ADD dodaje kolumnę”, ale nie łączą tego poprawnie z kontekstem ALTER TABLE.

Z mojego doświadczenia dobrą praktyką jest zawsze zadanie sobie dwóch pytań: czy tabela już istnieje, oraz czy chcę coś dodać, usunąć czy zmienić. Jeśli tabela istnieje i coś dokładamy – używamy ALTER TABLE ... ADD ..., dobierając typ danych zgodny z charakterem informacji. W tym zadaniu wszystkie błędne odpowiedzi łamią jedną z tych zasad: albo używają złego typu (FLOAT zamiast tekstu), albo złego słowa kluczowego (DROP zamiast ADD), albo złej instrukcji (CREATE TABLE zamiast ALTER TABLE).

Pytanie 40

Którego słowa kluczowego w C++ użyć przed typem, aby ograniczyć zakres do liczb NIEUJEMNYCH?

A.
const
B.
unsigned
C.
short
D.
long
Pozostałe słowa nie ograniczają znaku liczby. short i long zmieniają ROZMIAR (zakres) typu, ale nadal dopuszczają wartości ujemne. const czyni zmienną stałą (niezmienną), a nie nieujemną. Liczby nieujemne wymusza unsigned.