Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik programista
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 8 czerwca 2026 20:39
  • Data zakończenia: 8 czerwca 2026 21:35

Egzamin zdany!

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

Jaką wartość przyjmie zmienna a po wykonaniu poniższej sekwencji komend w PHP?

$a = 1;
$a++;
$a += 10;
--$a;
A. 11
B. 1
C. 10
D. 12
Początkowa wartość zmiennej a wynosi 1. Częstym błędem jest niewłaściwe zrozumienie działania operatorów inkrementacji i dekrementacji. W przypadku operatora postinkrementacji $a++ najpierw używana jest aktualna wartość zmiennej a a dopiero po tym następuje jej zwiększenie co daje 2. To zamieszanie może prowadzić do błędnego przekonania że wartość zmiennej wzrasta natychmiast co jest nieprawidłowe. Następnie instrukcja $a += 10 zwiększa wartość zmiennej o 10 co w rzeczywistości daje 12. Powszechnym błędem jest niedostateczne zrozumienie jak działają przypisania z dodawaniem co może skutkować nieoczekiwanymi wynikami. Ostatnia instrukcja --$a jest predekrementacją co oznacza że wartość zmiennej zmniejsza się przed jej użyciem co ostatecznie prowadzi do wartości 11. Często myli się to z postdekrementacją gdzie wartości byłyby używane przed zmniejszeniem co wpływa na kolejność operacji. Zrozumienie różnicy między pre- i post-operatorami jest niezbędne dla precyzyjnego przewidywania wyników kodu. Uwaga na te subtelności jest kluczowa dla unikania błędów logicznych w programowaniu i zapewnienia poprawnego działania aplikacji

Pytanie 2

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu JavaScript należy wykonać przed pętlą?

var text;
for(var i=0; i<tab.length; i++ ){
    text+=tab[i] + "<br>";
}
A. Upewnić się, że text jest typu string
B. Zainicjować zmienną text
C. Sprawdzić długość tablicy tab
D. Zadeklarować zmienną i
Zadeklarowanie zmiennej 'i' przed pętlą nie jest konieczne, ponieważ JavaScript automatycznie deklaruje zmienną 'i' w kontekście pętli. Deklaracja zmiennych przy pomocy 'var', 'let' lub 'const' jest wystarczająca w momencie ich użycia w pętli. Kolejnym aspektem jest sprawdzenie rozmiaru tablicy 'tab'. Choć podjęcie takiego sprawdzenia jest dobrym zwyczajem, nie jest to warunek konieczny do poprawnego działania kodu. Pętla for działa w oparciu o długość tablicy, więc jeżeli tablica jest pusta, pętla po prostu się nie wykona, co nie prowadzi do błędów. Ostatnim punktem jest sprawdzenie, czy 'text' jest typu znakowego. JavaScript jest językiem dynamicznie typowanym, co oznacza, że zmienne mogą przyjmować różne typy danych w trakcie działania programu. Na początku 'text' powinno być inicjalizowane jako pusty łańcuch, ale sprawdzanie jego typu w momencie, gdy jest używane w pętli, nie jest konieczne. Wszystkie powyższe odpowiedzi mogą być postrzegane jako dobre praktyki, ale nie są kluczowymi krokami, które należy wykonać przed rozpoczęciem pętli, aby program działał poprawnie.

Pytanie 3

Liczba 0x142, przedstawiona w skrypcie JavaScript, jest zapisywana w postaci

A. ósemkowej
B. szesnastkowej
C. dwójkowej
D. dziesiętnej
Odpowiedzi sugerujące, że liczba 0x142 jest zapisana w systemie dziesiętnym, dwójkowym lub ósemkowym, są błędne z kilku powodów. System dziesiętny, bazujący na podstawie 10, używa cyfr od 0 do 9. Gdyby 0x142 byłoby w systemie dziesiętnym, nie miałby prefiksu '0x', a jego wartość wynosiłaby 322, co jest całkowicie inną reprezentacją. Z kolei system dwójkowy, znany również jako binarny, używa tylko dwóch cyfr: 0 i 1. Liczba 0x142 w systemie binarnym wynosi 101000010, co jest zupełnie inną formą niż przedstawienie szesnastkowe. Na koniec, system ósemkowy, mający podstawę 8, obejmuje cyfry od 0 do 7. Aby wyrazić 0x142 w systemie ósemkowym, należałoby najpierw przekonwertować ją na dziesiętną, co dałoby 322, a następnie na ósemkowy, co dawałoby 502. Tak więc żadna z tych odpowiedzi nie jest poprawna, ponieważ 0x142 jest jednoznacznie zapisane w systemie szesnastkowym.

Pytanie 4

W tabeli produkt znajdują się artykuły wyprodukowane po roku 2000, posiadające pola nazwa oraz rok_produkcji. Jakie zapytanie SQL pokaże listę artykułów wyprodukowanych?

Ilustracja do pytania
A. po roku 2017
B. przed rokiem 2017
C. w roku 2017
D. w latach innych niż 2017
Klauzula SQL wykorzystuje funkcję SUBSTR aby wyekstrahować dwie cyfry z roku produkcji zaczynając od trzeciej pozycji. To oznacza że bierze dwie cyfry odpowiadające końcówce roku. W ten sposób SELECT * FROM produkt WHERE SUBSTR(rok_produkcji3 2)=17; wyszukuje przedmioty których rok produkcji kończy się na 17 co wskazuje że zostały wyprodukowane w 2017 roku. Jest to efektywna metoda pod warunkiem że dane w kolumnie rok_produkcji są przechowywane jako ciągi znaków i spełniają wymagany format YYYY. Praktyczne zastosowanie tego podejścia jest szczególnie przydatne w bazach danych gdzie mogą występować różne formaty zapisu dat. Ważne jest aby zawsze upewnić się że dane są odpowiednio ujednolicone. Korzystanie z funkcji jak SUBSTR jest standardową praktyką w SQL umożliwiającą dynamiczne manipulowanie tekstem co czyni zapytania bardziej elastycznymi. Zrozumienie tego mechanizmu jest kluczowe dla efektywnego zarządzania bazami danych w kontekście filtrowania danych na podstawie ich struktur tekstowych.

Pytanie 5

Która z właściwości grafiki wektorowej jest słuszna?

A. Grafika wektorowa nie podlega skalowaniu
B. Po utworzeniu nie jest możliwa edycja
C. Grafika wektorowa jest niezależna od rozdzielczości
D. Nie można jej przekształcić w grafikę rastrową
Grafika wektorowa jest niezależna od rozdzielczości, co oznacza, że można ją skalować do dowolnych rozmiarów bez utraty jakości. W przeciwieństwie do grafiki rastrowej, która składa się z pikseli, grafika wektorowa opiera się na matematycznych równaniach i wektora, co pozwala na zachowanie ostrości i detali niezależnie od tego, jak bardzo powiększymy lub pomniejszymy obraz. Przykłady zastosowań grafiki wektorowej obejmują logotypy, ilustracje w książkach i projektowanie interfejsów użytkownika, gdzie precyzja jest kluczowa. Standardy takie jak SVG (Scalable Vector Graphics) są powszechnie używane do tworzenia i publikowania grafiki wektorowej w Internecie, co dodatkowo potwierdza ich elastyczność. W praktyce, projektanci mogą tworzyć grafiki wektorowe w programach takich jak Adobe Illustrator czy CorelDRAW, a następnie swobodnie dostosowywać ich rozmiar do różnych mediów, co czyni je niezwykle uniwersalnym narzędziem w świecie grafiki komputerowej.

Pytanie 6

Jaki styl CSS umożliwi ustawienie tekstu do prawej strony?

A. <p style="text-align: right">tekst</p>
B. <p style="font: right">tekst</p>
C. <p style="position: right">tekst</p>
D. <p style="align: right">tekst</p>
Właściwe wyrównanie tekstu do prawej strony w CSS można osiągnąć za pomocą właściwości 'text-align'. Używając deklaracji 'text-align: right', umożliwiamy umiejscowienie zawartości elementu blokowego, takiego jak <p>, w taki sposób, aby tekst był wyrównany do prawej krawędzi kontenera. Przykładowo, stosując <p style='text-align: right'>Tekst wyrównany do prawej</p>, uzyskujemy efekt, w którym cały tekst w obrębie akapitu zostaje przesunięty do prawej strony. Warto również zaznaczyć, że 'text-align' jest zgodne z W3C CSS Specifications, co oznacza, że jest standardową właściwością CSS uznawaną przez większość przeglądarek. W praktyce, stosowanie 'text-align' jest nie tylko ograniczone do akapitów, ale może być używane także w innych elementach, takich jak nagłówki, divy i inne bloki, co czyni go bardzo wszechstronnym narzędziem w stylizacji stron internetowych. Dodatkowo, właściwość ta jest fundamentalna w kontekście responsywnego projektowania stron, gdzie dopasowanie tekstu do różnych układów jest kluczowe dla odbioru treści.

Pytanie 7

Program debugger służy do

A. analizy wykonywanego programu w celu lokalizacji błędów.
B. tłumaczenia kodu zapisanego językiem wyższego poziomu na język maszynowy.
C. analizy kodu źródłowego w celu odnalezienia błędów składniowych.
D. interpretacji kodu w wirtualnej maszynie Java.
W tym pytaniu łatwo się pomylić, bo kilka pojęć brzmi podobnie, ale dotyczy zupełnie innych narzędzi. Debugger nie służy ani do interpretacji kodu, ani do kompilacji, ani do sprawdzania samej składni. To narzędzie do analizy programu w trakcie jego działania. Czyli nie patrzymy tylko na kod źródłowy, ale na to, jak program faktycznie się wykonuje krok po kroku. Interpretacja kodu w wirtualnej maszynie Java to zadanie interpretera/JVM. Maszyna wirtualna Javy pobiera bajtkod (plik .class) i go wykonuje, optymalizuje, czasem kompiluje JIT-em do kodu maszynowego. To zupełnie inna warstwa niż debugowanie. Debugger może się podłączyć do JVM, ale sam z siebie nie interpretuje kodu. To typowe pomylenie roli środowiska uruchomieniowego z narzędziem diagnostycznym. Analiza kodu źródłowego w celu znalezienia błędów składniowych też nie jest zadaniem debuggera. Błędy składniowe wychwytuje kompilator albo linter, ewentualnie statyczna analiza kodu. Debugger działa dopiero, gdy program się kompiluje i da się go uruchomić. Jeśli są błędy składni, program w ogóle nie wystartuje, więc nie ma co debugować. Częsty błąd myślowy jest taki, że „narzędzie do błędów” musi ogarniać wszystkie rodzaje błędów. W praktyce dzieli się to na: składniowe (kompilator), logiczne i wykonania (debugger), a także problemy jakościowe (analiza statyczna, testy). Tłumaczenie kodu z języka wysokiego poziomu na maszynowy to z kolei klasyczna rola kompilatora. Kompilator generuje kod wynikowy (np. plik .exe czy .class), a debugger ten gotowy program tylko obserwuje i steruje jego wykonaniem. Moim zdaniem warto jasno rozdzielić te pojęcia: kompilator kompiluje, interpreter wykonuje, a debugger pomaga nam zrozumieć i naprawić działający program, śledząc jego zachowanie, zmienne i przepływ sterowania. To pomaga unikać mieszania narzędzi, co później bardzo ułatwia naukę bardziej zaawansowanych technologii.

Pytanie 8

Funkcja, która wywołuje samą siebie to

A. hermetyzacja
B. dziedziczenie
C. rekurencja
D. iteracja
Iteracja, hermetyzacja i dziedziczenie to pojęcia związane z programowaniem, ale nie odnoszą się do konceptu rekurencji. Iteracja to proces powtarzania zestawu instrukcji, aż do spełnienia określonego warunku. W przeciwieństwie do rekurencji, w iteracji nie zachodzi wywoływanie samej siebie, a raczej wykorzystuje się pętle, takie jak for czy while, aby przejść przez dane lub wykonywać operacje wielokrotnie. Hermetyzacja odnosi się do techniki programowania obiektowego, która polega na ukrywaniu wewnętrznych szczegółów implementacji obiektu i udostępnianiu jedynie niezbędnych interfejsów, co pozwala na zachowanie kontroli nad danymi i ich modyfikacjami. To z kolei wpływa na zwiększenie bezpieczeństwa oraz modularności kodu, ale nie ma związku z wywoływaniem funkcji samej siebie. Dziedziczenie to mechanizm, który umożliwia tworzenie nowych klas na podstawie już istniejących, dzieląc z nimi atrybuty oraz metody. Chociaż dziedziczenie jest fundamentalnym aspektem programowania obiektowego, nie dotyczy ono rekurencji ani sposobu, w jaki funkcje mogą się wywoływać. Każda z tych koncepcji ma swoje unikalne zastosowanie i znaczenie w programowaniu, ale są one odrębne od idei rekurencji.

Pytanie 9

W PHP operatorem odpowiedzialnym za sumę logiczną jest

A. !
B. ||
C. &&
D. +
Suma logiczna oznaczona jako ! to operator negacji, który zmienia wartość logiczną na przeciwną. Na przykład, jeśli warunek jest prawdziwy, użycie ! zwróci wartość fałszywą. Operator + w kontekście PHP nie jest przypisany do operacji logicznych, lecz do dodawania wartości liczbowych, co może prowadzić do nieporozumień. Operator && oznacza koniunkcję, co oznacza, że obie strony muszą być prawdziwe, aby wynik był prawdziwy. Często mylone jest znaczenie operatorów logicznych, co prowadzi do błędnych wniosków przy tworzeniu warunków. Kluczowe jest zrozumienie, że nie każdy operator logiczny działa w taki sam sposób - operator OR (||) zwraca prawdę, jeśli przynajmniej jedna z metod jest prawdziwa, podczas gdy operator AND (&&) wymaga, aby obydwie były prawdziwe. W praktyce, wykorzystanie złych operatorów w warunkach sterujących może prowadzić do błędnych decyzji w kodzie, co wpływa na stabilność aplikacji. Dlatego znajomość zastosowania operatorów logicznych w PHP jest niezbędna dla każdego programisty, aby unikać problemów w logice biznesowej aplikacji.

Pytanie 10

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

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

Pytanie 11

W programowaniu tylko jedna zmienna z wbudowanego typu może przyjmować zaledwie dwie wartości. Jakie to jest?

A. łańcuchowy
B. logiczy
C. znakowy
D. tablicowy
Typ logiczny, znany także jako boolean, jest jednym z podstawowych typów danych w większości języków programowania, które przyjmuje tylko dwie wartości: prawda (true) i fałsz (false). Ten typ danych jest kluczowy w logice programowania, ponieważ umożliwia podejmowanie decyzji i sterowanie przepływem programu na podstawie warunków. Na przykład, w języku Python można zdefiniować zmienną logiczną jako: 'is_active = True', co oznacza, że zmienna 'is_active' ma wartość prawda. Użycie typów logicznych jest fundamentalne dla struktur warunkowych, takich jak instrukcje if, które wykonują kod tylko wtedy, gdy warunek jest spełniony. Wartości logiczne są także wykorzystywane w operacjach logicznych, takich jak AND, OR oraz NOT, co pozwala na tworzenie bardziej złożonych warunków. W kontekście standardów, typ logiczny jest częścią specyfikacji języków programowania, takich jak C, Java czy JavaScript, co czyni go uniwersalnym narzędziem w programowaniu.

Pytanie 12

Rozdzielczość obrazów cyfrowych wyświetlanych na ekranie monitora wyrażona w liczbie pikseli na cal określa jednostka

A. lpi
B. spi
C. ppi
D. dpi
W tym pytaniu bardzo łatwo się pomylić, bo skróty ppi, dpi, spi i lpi są do siebie podobne i wszystkie gdzieś tam krążą wokół pojęcia rozdzielczości. Kluczowa sprawa jest taka: pytanie dotyczy obrazów cyfrowych wyświetlanych na ekranie monitora i jest mowa o liczbie pikseli na cal. To od razu ustawia nas na właściwy tor, bo piksele są elementami obrazu na ekranie, a nie kroplami tuszu czy liniami rastra. W świecie wyświetlaczy stosuje się jednostkę ppi – pixels per inch. To ona określa gęstość pikseli matrycy i decyduje o tym, jak szczegółowy wydaje się obraz przy danej przekątnej ekranu. Typowy błąd polega na automatycznym wybieraniu dpi, bo wiele osób kojarzy to słowo z „rozdzielczością” ogólnie. Tymczasem dpi, czyli dots per inch, odnosi się przede wszystkim do druku: kropek tuszu naniesionych przez drukarkę na papier. Owszem, niektórzy producenci urządzeń myląco używają dpi również przy opisach ekranów, ale z punktu widzenia poprawnej terminologii i dobrych praktyk branżowych dpi to świat drukarek, a ppi – świat ekranów. Kolejny skrót, spi (samples per inch), pojawia się głównie przy skanerach. Określa, ile próbek na cal pobiera skaner z oryginalnego obrazu. To ma znaczenie przy digitalizacji zdjęć lub dokumentów, ale nie opisuje rozdzielczości wyświetlania na monitorze. Lpi, czyli lines per inch, związane jest z technikami druku rastrowego – określa gęstość linii rastra w procesie drukarskim, na przykład przy druku offsetowym. W grafice komputerowej i multimedialnej do zastosowań ekranowych, szczególnie w kontekście projektowania interfejsu, stron WWW czy aplikacji, trzymanie się rozróżnienia ppi dla ekranów i dpi dla druku jest dobrą praktyką. Z mojego doświadczenia wynika, że osoby, które od początku nauczą się tego rozdzielenia, później mają mniej problemów przy przygotowywaniu grafik zarówno do sieci, jak i do materiałów drukowanych.

Pytanie 13

Zapis koloru w formacie #ff00e0 odpowiada zapisowi

A. rgb(f,0,e0)
B. rgb(ff,0,e0)
C. rgb(255,0,224)
D. rgb(255,0,128)
Analizując pozostałe odpowiedzi, można zauważyć kilka nieprawidłowości w ich interpretacji. Przy pierwszej odpowiedzi, zapis rgb(f,0,e0) jest błędny, ponieważ wartości w formacie RGB muszą być w przedziale od 0 do 255. 'f' jako wartość szesnastkowa odpowiada 15 w systemie dziesiętnym, co jest nieprawidłowe w kontekście całościowego zapisu koloru. Każda z trzech wartości RGB musi zawierać pełną gamę kolorów, co nie jest spełnione w tym przypadku. W drugiej odpowiedzi, rgb(ff,0,e0) również jest błędny, ponieważ zawiera nieprawidłowe dane. Chociaż 'ff' jest poprawnym zapisem szesnastkowym odpowiadającym wartości 255, to 'e0' nie zostało przeliczone na wartość dziesiętną, co skutkuje brakiem pełnej jasności koloru. Osoby zajmujące się projektowaniem powinny mieć na uwadze, że poprawne przeliczenie wartości jest kluczowe dla uzyskania zamierzonych efektów wizualnych. W trzeciej odpowiedzi, rgb(255,0,128) jest także błędne, ponieważ ta kombinacja odpowiada zupełnie innemu kolorowi, który jest mniej intensywnym odcieniem różowego. Wartości te przekładają się na kolor pomarańczowy, co nie jest zgodne z zadanym kolorem szesnastkowym #ff00e0. Przy projektowaniu graficznym, precyzyjność w definiowaniu kolorów jest niezwykle ważna, a każdy błąd w interpretacji wartości może prowadzić do niezamierzonych efektów.

Pytanie 14

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

SELECT imie FROM zwierzeta
WHERE rodzaj = 2
AND szczepienie = 2016;
idrodzajimiewlascicielszczepienieopis
11FafikAdam Kowalski2016problemy z uszami
21BrutusAnna Wysocka2016zapalenie krtani
41SabaMonika Nowak2015antybiotyk
51AlmaJan KowalewskiNULLantybiotyk
62FigaroAnna KowalskaNULLproblemy z uszami
72DikaKatarzyna Kowal2016operacja
82FuksJan Nowak2016antybiotyk
A. Figaro, Dika, Fuks
B. Dika, Fuks
C. Fafik, Brutus, Dika, Fuks
D. Anna Kowalska, Jan Nowak
W zapytaniu SQL określono, że chcemy wybrać kolumnę 'imie' z tabeli 'zwierzeta' dla rekordów, które spełniają dwa warunki: 'rodzaj' równa się 2 oraz 'szczepienie' równa się 2016. Analizując dane z tabeli, widzimy, że rekordy spełniające oba te kryteria to rekordy o ID 7 i 8, gdzie imiona to 'Dika' i 'Fuks'. Jest to poprawna odpowiedź, ponieważ jedynie te dwa rekordy mają 'rodzaj' równe 2 i 'szczepienie' równe 2016. Takie podejście do zapytań SQL jest zgodne z praktykami branżowymi, które uczą, by precyzyjnie definiować warunki filtrowania danych. Dzięki temu można efektywnie zarządzać danymi i uzyskiwać jedynie te informacje, które są istotne dla bieżącej analizy czy raportu. Warto zauważyć, że zastosowanie logicznej operacji 'AND' jest kluczowe, gdy chcemy, aby wszystkie określone warunki były spełnione jednocześnie. W różnych systemach baz danych, takich jak MySQL czy PostgreSQL, takie zapytania są powszechne i pomagają w utrzymaniu precyzyjnych i wydajnych operacji na danych.

Pytanie 15

Czynność, w której identyfikuje się i eliminuje błędy w kodzie źródłowym programów, to

A. normalizacja
B. kompilowanie
C. standaryzacja
D. debugowanie
Debugowanie to kluczowy proces w inżynierii oprogramowania, który polega na identyfikacji, lokalizacji oraz usuwaniu błędów (bugów) w kodzie źródłowym. W trakcie debugowania programista używa różnych narzędzi, takich jak debuggery, które pozwalają na analizę działania programu w czasie rzeczywistym. Przykłady takie jak GDB dla systemów Linux czy Visual Studio Debugger dla aplikacji na Windows ilustrują, jak można krok po kroku monitorować zmienne i wykonanie kodu. Proces ten jest niezbędny do zapewnienia wysokiej jakości oprogramowania, a jego znaczenie podkreślają standardy takie jak ISO/IEC 25010, które definiują jakość oprogramowania w kontekście użyteczności, wydajności oraz niezawodności. Debugowanie nie tylko poprawia działanie aplikacji, ale również przyczynia się do lepszego zrozumienia kodu przez programistów, co jest istotne w kontekście przyszłej konserwacji i rozwoju oprogramowania. Właściwe techniki debugowania, takie jak użycie punktów przerwania czy analizowanie stanu stosu, mogą znacząco przyspieszyć proces rozwoju i redukować liczbę wprowadzanego do produkcji kodu z błędami.

Pytanie 16

Atrybut wskazujący na lokalizację pliku graficznego w znaczniku <img> to

A. src
B. link
C. alt
D. href
Atrybut 'src' (source) jest kluczowym elementem znacznika <img>, ponieważ wskazuje lokalizację pliku graficznego, który ma być wyświetlony na stronie internetowej. Użycie tego atrybutu jest niezbędne, aby przeglądarka mogła zlokalizować i załadować odpowiedni obraz. Na przykład, jeśli chcesz wyświetlić grafikę logo na stronie, możesz użyć znacznika <img src='logo.png'>, gdzie 'logo.png' jest ścieżką do pliku graficznego. Ważne jest, aby pamiętać o dokładnym podaniu ścieżki, która może być względna lub absolutna. Zgodnie z najlepszymi praktykami, ważne jest również użycie atrybutu 'alt', który opisuje obraz dla osób z problemami wzrokowymi oraz w przypadku, gdy obraz nie może być załadowany. Przestrzeganie standardów W3C w zakresie HTML zapewnia lepszą dostępność i użyteczność stron internetowych.

Pytanie 17

W języku HTML, aby uzyskać następujący efekt formatowania
pogrubiony pochylony lub w górnym indeksie
należy zapisać kod:

A. <i>pogrubiony <b>pochylony lub w </i><sup>górnym indeksie</sup>
B. <i>pogrubiony </i><b>pochylony </b>lub w <sub>górnym indeksie</sub>
C. <b>pogrubiony </b><i>pochylony</i> lub w <sup>górnym indeksie</sup>
D. <b>pogrubiony <i>pochylony</i></b> lub w <sup>górnym indeksie</sup>
Odpowiedź, w której użyłeś znaczników <b> i <i> w odpowiednich miejscach, jest całkiem dobra. Znak <b> jest świetny do pogrubiania tekstu, co przydaje się, gdy chcesz podkreślić coś ważnego. Natomiast <i> pozwala na pochylanie tekstu, co dodaje mu charakteru i może sugerować cytaty czy tytuły. Co ciekawe, znacznik <sup> stosujemy, gdy chcemy pokazać górny indeks, np. przy potęgach czy jednostkach miar. Przykład takiego użycia byłby taki: <b>Waga</b> <i>w kilogramach</i> wynosi <sup>2</sup> dla dwóch jednostek. Jak widać, stosowanie HTML w odpowiedni sposób pozwala robić czytelne i estetyczne prezentacje, co jest zgodne z dobrymi praktykami w web designie oraz standardami W3C. Warto też pamiętać, że dobrze dobrane znaczniki mają znaczenie nie tylko wizualne, ale także pomagają w indeksowaniu treści przez wyszukiwarki, co z kolei wpływa na SEO.

Pytanie 18

Zgodnie z wytycznymi WCAG 2.x  na poziomie AA minimalny kontrast tekstu (o standardowym rozmiarze) do tła, spełniający wymogi dostępności serwisu WWW dla osób z ograniczoną percepcją wzrokową wynosi

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

Pytanie 19

Jakie zadania programistyczne należy wykonać na serwerze?

A. Weryfikacja danych wprowadzonych do pola tekstowego na bieżąco
B. Zmiana stylu HTML na stronie spowodowana ruchem kursora
C. Ukrywanie i wyświetlanie elementów strony w zależności od aktualnej pozycji kursora
D. Zapisanie danych pozyskanych z aplikacji internetowej w bazie danych
Zapisanie danych pobranych z aplikacji internetowej w bazie danych to zadanie, które powinno być wykonywane po stronie serwera ze względów bezpieczeństwa, integralności danych oraz zarządzania zasobami. Serwer jest odpowiedzialny za przechowywanie informacji, które mogą być wykorzystywane przez wielu użytkowników, co wymaga centralizacji ich przetwarzania. W przypadku aplikacji internetowych, dane są często przesyłane z klienta (przeglądarki) do serwera, gdzie są walidowane oraz zapisywane w bazach danych. Na przykład, gdy użytkownik rejestruje się w aplikacji, jego dane osobowe są wysyłane do serwera, który sprawdza poprawność tych informacji i zapisuje je w bazie danych. Właściwe implementacje powinny stosować bezpieczne połączenia (np. HTTPS), a także techniki, takie jak sanitizacja danych, aby unikać ataków typu SQL Injection. Dobrą praktyką jest także stosowanie ORM (Object-Relational Mapping), co umożliwia łatwiejsze zarządzanie danymi i ich relacjami. Przechowywanie danych po stronie serwera pozwala na efektywne zarządzanie zasobami i umożliwia późniejsze przetwarzanie informacji w sposób zorganizowany i bezpieczny.

Pytanie 20

Instrukcja języka PHP tworząca obiekt pkt dla zdefiniowanej w ramce klasy Punkt ma postać

class Punkt {  public $x;
                public $y;  }
A. pkt Punkt();
B. Punkt() pkt;
C. pkt = new Punkt();
D. pkt Punkt;
Twoja odpowiedź nie jest prawidłowa. Wybrałeś konstrukcję, która nie jest poprawnym sposobem tworzenia obiektu w języku PHP. PHP jest językiem obiektowym, a do tworzenia obiektów używamy konstrukcji z słowem kluczowym 'new' i nazwą klasy. Instrukcje, które wybrałeś, nie są poprawnymi instrukcjami w PHP i prawdopodobnie spowodują błąd składni. W odpowiedziach 2, 3 i 4 brakuje słowa kluczowego 'new', które jest niezbędne do tworzenia nowych instancji klas, a także brakuje znaku równości i prawidłowego ułożenia elementów. Rozumienie, jak tworzyć obiekty, jest kluczowe do efektywnego programowania w PHP, więc warto poświęcić temu więcej czasu. Spróbuj jeszcze raz, z pewnością sobie poradzisz!

Pytanie 21

Wskaż nieprawidłowy opis optymalizacji kodu generowanego przez program.

A. Powinna skutkować modyfikacją kodu źródłowego, aby działał on szybciej
B. Może być realizowana na różnych etapach działania w celu przyspieszenia wykonania kodu przez procesor
C. Jej celem jest zwiększenie efektywności działania programu
D. Jej celem jest sprawdzenie zgodności z wymogami formalnymi
Optymalizacja kodu wynikowego programu to proces, którego celem jest poprawa wydajności i szybkości działania aplikacji. Obejmuje różnorodne techniki, takie jak eliminacja zbędnych operacji, zmniejszenie liczby instrukcji i wykorzystanie efektywniejszych algorytmów. Przykłady obejmują refaktoryzację kodu, gdzie zmieniane są struktury danych lub algorytmy w celu osiągnięcia lepszej wydajności. Również optymalizacja na poziomie kompilacji, w której kompilatory mogą przeprowadzać różne techniki optymalizacji, takie jak inlining funkcji czy eliminacja martwego kodu, jest kluczowa. Standardy, takie jak C99 czy C11, często zawierają wytyczne dotyczące wydajności, co podkreśla znaczenie optymalizacji w tworzeniu nowoczesnych aplikacji. Istotne jest, aby proces ten był prowadzony na różnych etapach, od fazy projektowania po końcowe testy, aby zidentyfikować wąskie gardła i zwiększyć efektywność kodu.

Pytanie 22

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie? ``````

A. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```
B. ```SELECT '$a', '$b', '$c' FROM dane;```
C. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
D. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
Prawidłowa odpowiedź to "INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');" ponieważ wstawia dane do bazy danych w sposób zgodny z jej strukturą. W tabeli dane pierwsze pole jest kluczem głównym, który jest autoinkrementowany, co oznacza, że nie musimy go podawać ręcznie. Wartość NULL w tym przypadku pozwala bazie danych na automatyczne wygenerowanie nowego identyfikatora. Pozostałe zmienne, $a, $b i $c, zawierają dane, które chcemy wstawić do odpowiednich kolumn. Stosowanie przygotowanych zapytań (prepared statements) w PHP z wykorzystaniem mysqli jest najlepszą praktyką, ponieważ zapewnia ochronę przed atakami SQL injection oraz poprawia wydajność. Przykład zastosowania tego typu zapytania może obejmować dodawanie użytkowników do systemu, gdzie każdy użytkownik ma unikalny identyfikator generowany przez bazę danych. Warto również pamiętać o walidacji i sanitizacji danych przed ich wprowadzeniem do bazy.

Pytanie 23

Element bazy danych, którego podstawowym celem jest generowanie lub prezentowanie zestawień informacji, to

A. raport
B. makro
C. formularz
D. moduł
Raport to taki dokument w bazie danych, który ma za zadanie pokazać dane w przejrzysty i uporządkowany sposób. To jest mega ważne, zwłaszcza kiedy chcemy analizować różne informacje. Można je wykorzystać do robienia zestawień, statystyk, a nawet wykresów, co naprawdę ułatwia podejmowanie decyzji. Zazwyczaj raporty tworzy się na podstawie danych z różnych miejsc, jak tabele czy zapytania. W programach do zarządzania bazami, jak Microsoft Access, można korzystać z kreatora raportów, który pomaga ustawić wszystko tak, jak się chce – wybieramy źródło danych, układ i format. Oczywiście, do pozyskiwania danych często wykorzystuje się SQL, no i potem już te dane można analizować i przedstawiać w raportach. Jak sobie pomyślisz o przykładzie, to taki miesięczny raport sprzedaży to super narzędzie dla menedżerów, bo mogą ocenić, jak im idzie w sprzedaży i podejmować lepsze decyzje strategiczne.

Pytanie 24

W edytorze grafiki wektorowej zbudowano kształt, który składa się z dwóch figur: trójkąta oraz koła. Aby uzyskać ten kształt, po narysowaniu figur i ich odpowiednim ustawieniu, trzeba użyć funkcji

Ilustracja do pytania
A. różnicy
B. rozdzielenia
C. sumy
D. wykluczenia
Funkcja sumy w programach do grafiki wektorowej, takich jak Adobe Illustrator czy CorelDRAW, pozwala na połączenie dwóch lub więcej kształtów w jeden obiekt. To takie sprytne narzędzie! Sumowanie, znane też jako unia lub łączenie ścieżek, integruje geometrię wszystkich wybranych kształtów. Na przykład, jak narysujesz trójkąt i koło, a potem je odpowiednio ustawisz, to używając funkcji sumy, stworzysz nowy kształt, który obejmuje całą powierzchnię obu figur. Często to robi się przy projektowaniu logo, gdzie trzeba uprościć złożone kształty do jednej ścieżki. Taki sposób działania jest przyjęty w branży, bo ułatwia tworzenie czytelnych grafik, które są łatwe do edytowania. A co najważniejsze, połączenie figur w jedną upraszcza późniejsze zmiany i wpisuje się w zasady projektowania minimalistycznego, dzięki czemu można robić przejrzyste kompozycje. Warto mieć na uwadze, że takie podejście też ułatwia drukowanie i wycinanie, co jest mega ważne w produkcji materiałów reklamowych czy wyrobów przemysłowych.

Pytanie 25

O czym informuje przeglądarkę internetową zapis <!DOCTYPE html>?

A. Dokument został zapisany w języku HTML 5.
B. W dokumencie wszystkie tagi są zapisane wielkimi literami.
C. Dokument jest zapisany w wersji HTML 4.
D. W dokumencie każda etykieta musi być zamknięta, nawet te samozamykające.
Zapisywanie <!DOCTYPE html> na początku dokumentu informuje przeglądarkę, że dokument jest napisany w HTML5, co ma istotne znaczenie dla jego poprawnej interpretacji. HTML5 wprowadza wiele nowych elementów i atrybutów, które są kluczowe dla nowoczesnych aplikacji webowych, takich jak <header>, <footer>, <article> czy <section>, a także wspiera multimedia poprzez <audio> i <video>. Dzięki deklaracji <!DOCTYPE html> przeglądarki mogą stosować najnowsze standardy, co zapewnia lepszą zgodność i wsparcie dla responsywności, co jest niezbędne w erze urządzeń mobilnych. Ponadto, HTML5 wprowadza zasady dotyczące semantyki, co może poprawić SEO (optymalizację pod kątem wyszukiwarek) i dostępność treści dla osób z niepełnosprawnościami. W praktyce oznacza to, że tworząc nową stronę internetową, warto zawsze używać tej deklaracji, aby zapewnić, że przeglądarki renderują zawartość zgodnie z aktualnymi standardami.

Pytanie 26

Wskaż, który paragraf jest sformatowany przy użyciu podanego stylu CSS:

p {
    font-family: serif;
    background-color: Teal;
    color: white;
    font-style: italic;
}
Ilustracja do pytania
A. Paragraf 2
B. Paragraf 1
C. Paragraf 4
D. Paragraf 3
Analizując poszczególne paragrafy można zauważyć różnice w ich formatowaniu które nie odpowiadają przedstawionemu stylowi CSS. Przykładowo paragraf 1 choć posiada ciemnozielone tło i biały tekst nie jest zapisany kursywą co jest jednym z kluczowych wymogów stylu font-style: italic. Kolejną różnicą jest użyta czcionka która nie odpowiada krojowi szeryfowemu font-family: serif. Paragraf 2 wykazuje jeszcze większe odstępstwa od stylu CSS. Jego tło jest białe co nie zgadza się z background-color: Teal a także tekst ma inny kolor niż White. Dodatkowo choć tekst jest kursywą to użyta czcionka nie jest szeryfowa. Paragraf 3 mimo że posiada ciemnozielone tło i biały tekst nie jest napisany kursywą co jest wymagane przez font-style: italic a także tekst jest pogrubiony co nie wynika z przedstawionego stylu CSS. Typowe błędy pojawiające się przy analizie stylów CSS wynikają często z nieprawidłowego zrozumienia właściwości oraz braku uwagi na szczegóły takie jak krój czcionki czy szczegółowe ustawienia kolorów tła i tekstu. Właściwe rozumienie specyfikacji CSS oraz umiejętność rozpoznawania subtelnych różnic w stylach jest kluczowa w projektowaniu stron internetowych zgodnych z najlepszymi praktykami branżowymi.

Pytanie 27

Po awarii serwera bazy danych, aby jak najszybciej przywrócić pełne działanie bazy, konieczne jest wykorzystanie

A. kompletnej listy użytkowników serwera
B. aktualnej wersji kopii zapasowej
C. najświeższej wersji instalacyjnej serwera
D. opisu struktur danych w tabelach
Aby skutecznie przywrócić działanie bazy danych po jej uszkodzeniu, kluczowe jest wykorzystanie aktualnej wersji kopii zapasowej. Kopie zapasowe są fundamentem każdego planu odzyskiwania danych i powinny być regularnie tworzone zgodnie z polityką zarządzania danymi. Przykładowo, jeśli korzystamy z bazy danych w środowisku produkcyjnym, zaleca się wykonywanie codziennych kopii zapasowych oraz pełnych kopii co tydzień. W przypadku awarii, przywrócenie systemu do stanu sprzed incydentu za pomocą najnowszej kopii zapasowej minimalizuje utratę danych i przestoje. Praktyki takie jak backup w czasie rzeczywistym (real-time backup) mogą być również rozważane, aby ograniczyć ryzyko utraty danych. W kontekście standardów branżowych, organizacje powinny stosować zasady RTO (Recovery Time Objective) i RPO (Recovery Point Objective), które pomogą w określeniu najodpowiedniejszej strategii tworzenia kopii zapasowych i ich przechowywania. Zastosowanie aktualnych kopii zapasowych jest zatem najskuteczniejszym sposobem na przywrócenie funkcjonalności bazy danych.

Pytanie 28

Barwy kolorów reprezentowane na stożku można uzyskać w modelu

A. CIEXYZ
B. HSV
C. RGB
D. CMYK
Poprawna odpowiedź to HSV, bo właśnie ten model barw jest najczęściej przedstawiany w formie stożka (albo podwójnego stożka / walca). W HSV mamy trzy składowe: Hue (odcień), Saturation (nasycenie) i Value (jasność). Jeśli wyobrazisz sobie stożek: kąt wokół osi stożka to Hue – czyli przechodzenie przez kolory tęczy, od czerwieni przez zieleń do niebieskiego i z powrotem. Odległość od środka do krawędzi to Saturation – w środku szare, wypłowiałe barwy, na brzegu maksymalnie nasycone. Wysokość stożka to Value – na dole ciemno (prawie czerń), na górze jasno. Z mojego doświadczenia w grafice komputerowej i DTP model HSV jest dużo wygodniejszy przy doborze kolorów niż czyste RGB, bo jest bardziej „ludzki” – myślisz: chcę ten sam kolor, tylko jaśniejszy i mniej nasycony, a nie: zwiększę trochę składową G i zmniejszę B. W większości profesjonalnych programów graficznych (Photoshop, GIMP, Krita, narzędzia webowe typu Figma) koła barw i selektory kolorów bazują właśnie na HSV lub jego odmianach (HSL, HSB), często wizualizowanych jako stożek, walec albo koło z trójkątem. To jest zgodne z dobrymi praktykami projektowania interfejsów kolor-pickerów: użytkownik operuje na odcieniu, nasyceniu i jasności, a nie bezpośrednio na sygnałach składowych jak w RGB. W praktyce webowej możesz np. wygodnie generować palety kolorów, zmieniając tylko Value, żeby dostać całą serię odcieni do hoverów, borderów czy tła – i to właśnie sensowne jest w modelu HSV.

Pytanie 29

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

Ilustracja do pytania
A. Malejąco według parametru klasa
B. Rosnąco według parametru klasa
C. Rosnąco według parametru srednia
D. Malejąco według parametru srednia
Zapytanie SQL przedstawione w pytaniu wykorzystuje klauzule WHERE oraz ORDER BY. Klauzula WHERE ogranicza wyniki do tych, które spełniają określony warunek, w tym przypadku średnia większa niż 5. To oznacza, że na dalszym etapie przetwarzania znajdą się tylko rekordy uczniów mających średnią powyżej 5. Kolejnym kluczowym elementem jest klauzula ORDER BY, która określa sposób sortowania wyników. W zapytaniu użyto ORDER BY klasa DESC, co oznacza sortowanie malejące według kolumny klasa. DESC to skrót od descending, co w języku SQL oznacza porządek malejący. W praktyce porządkowanie malejące jest często używane, gdy chcemy uzyskać najwyższe wartości na początku listy wynikowej, co może być kluczowe w raportach rankingowych czy analizach dotyczących grup wiekowych. Dobre praktyki w programowaniu baz danych zalecają zawsze jasno określać sposób sortowania, aby uniknąć niejednoznaczności w interpretacji wyników i zapewnić spójność danych. Zrozumienie mechanizmu sortowania w SQL jest istotne w kontekście prezentacji danych, gdzie odpowiednie uporządkowanie wyników może znacząco poprawić czytelność i interpretację danych przez użytkownika końcowego.

Pytanie 30

Efekt przedstawiony w filmie powinien być zdefiniowany w selektorze

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

Pytanie 31

Baza danych gromadzi dane multimedialne, co wiąże się z koniecznością przechowywania znacznych ilości danych binarnych. Jakiego typu należy użyć dla takich danych?

A. DOUBLE
B. ENUM
C. BLOB
D. LONGTEXT
Typ ENUM jest używany do definiowania kolumn w bazach danych, które zawierają ograniczony zestaw wartości, przy czym każda wartość jest traktowana jako tekst. Zastosowanie ENUM nie jest odpowiednie dla danych multimedialnych, które wymagają przechowywania dużych bloków danych binarnych, ponieważ ENUM nie obsługuje danych binarnych i może przechowywać jedynie dane tekstowe. Typ DOUBLE to liczba zmiennoprzecinkowa, która również nie nadaje się do przechowywania danych multimedialnych, gdyż służy do reprezentacji wartości numerycznych z podwójną precyzją, co ogranicza jego zastosowanie do obliczeń matematycznych. LONGTEXT jest typem tekstowym, który pozwala na przechowywanie długich ciągów tekstowych, jednak w przypadku multimediów, gdzie dane są w formie binarnej, nie jest to odpowiednie rozwiązanie. Sugerowanie stosowania LONGTEXT w kontekście danych multimedialnych może prowadzić do błędów wydajnościowych oraz problemów z zarządzaniem danymi, ponieważ silnik bazy danych nie jest zoptymalizowany do obsługiwania takich danych w tym formacie. Dlatego ważne jest, aby przy wyborze typów danych w bazach danych kierować się ich przeznaczeniem oraz specyfiką przechowywanych informacji, aby uniknąć nieefektywności i problemów z wydajnością.

Pytanie 32

W SQL, przy użyciu polecenia ALTER, można

A. stworzyć nową tabelę
B. zmienić strukturę tabeli
C. dodać dane do tabeli
D. usunąć tabelę
Odpowiedź jest poprawna, ponieważ polecenie ALTER w języku SQL służy do modyfikacji istniejącej struktury tabeli. Umożliwia ono wykonywanie różnych operacji, takich jak dodawanie nowych kolumn, zmiana typu danych istniejących kolumn, a także usuwanie kolumn. Przykładem użycia może być zmiana typu danych kolumny 'wiek' w tabeli 'Użytkownicy' z INTEGER na VARCHAR, co można osiągnąć za pomocą zapytania: ALTER TABLE Użytkownicy MODIFY COLUMN wiek VARCHAR(3). Zmiana struktury tabeli jest istotna w kontekście dostosowywania bazy danych do zmieniających się wymagań aplikacji i użytkowników, co jest kluczowe dla utrzymania jej elastyczności i wydajności. Warto również pamiętać, że modyfikacje struktury tabeli powinny być przeprowadzane z zachowaniem zasad bezpieczeństwa danych oraz odpowiednich procedur kontroli wersji, aby zminimalizować ryzyko utraty danych lub wprowadzenia błędów. Dzięki zrozumieniu i umiejętnemu stosowaniu polecenia ALTER, administratorzy baz danych mogą skuteczniej zarządzać strukturą i integralnością danych.

Pytanie 33

Co oznacza pojęcie integralności referencyjnej?

A. Każdej wartości klucza obcego odpowiada dokładnie jedna wartość klucza podstawowego.
B. Baza jest odporna na błędy i awarie wynikające z zawodności sprzętu i oprogramowania.
C. Każda encja musi mieć zdefiniowany klucz podstawowy o wartości unikatowej i różnej od NULL.
D. Wartość atrybutu należy do jego dziedziny.
Pojęcie integralności referencyjnej bywa mylone z innymi rodzajami ograniczeń w bazie danych, dlatego łatwo tu o skrót myślowy. W relacyjnych bazach danych mamy kilka różnych typów integralności: integralność encji, integralność dziedzinową oraz właśnie integralność referencyjną. Każda z nich dotyczy trochę innego aspektu poprawności danych i warto je sobie w głowie rozdzielić, bo w praktyce projektowej to mocno pomaga. Stwierdzenie, że wartość atrybutu należy do jego dziedziny, opisuje integralność dziedzinową. Oznacza to, że np. kolumna typu DATE faktycznie przechowuje poprawne daty, kolumna z ograniczeniem CHECK mieści tylko dopuszczalne wartości, a kolumna typu INT nie zawiera losowego tekstu. To jest ważne, ale nie ma nic wspólnego z powiązaniem między dwiema tabelami. Tutaj mówimy o poprawności pojedynczej kolumny, a nie relacji klucz główny–klucz obcy. Z kolei odporność bazy na błędy sprzętu czy oprogramowania to już zupełnie inny obszar – to domena niezawodności systemu, mechanizmów transakcyjności, backupów, logów transakcyjnych, klastrów HA, replikacji itd. To są dobre praktyki administracyjne i architektoniczne, ale nie opisują integralności referencyjnej. Można mieć świetnie zabezpieczony serwer, a jednocześnie kompletnie rozwaloną spójność logiczną danych, jeśli nie ma poprawnie zdefiniowanych kluczy obcych. Wymóg, że każda encja ma unikalny klucz podstawowy, dotyczy integralności encji. Chodzi o to, żeby każdy rekord w tabeli dało się jednoznacznie zidentyfikować i żeby klucz główny nie był NULL. To jest fundament, ale nadal mówimy tylko o pojedynczej tabeli. Integralność referencyjna wchodzi dopiero wtedy, gdy jedna tabela „wskazuje” na drugą przez klucz obcy. Typowy błąd myślowy polega na wrzuceniu do jednego worka wszystkich zasad typu PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE i nazywaniu tego ogólnie integralnością. W rzeczywistości integralność referencyjna jest ściśle związana z relacjami między tabelami: pilnuje, żeby żaden klucz obcy nie wskazywał na nieistniejący rekord. Jeśli chcemy projektować bazy sensownie, trzeba świadomie odróżniać te pojęcia i korzystać z odpowiednich ograniczeń dokładnie tam, gdzie są potrzebne.

Pytanie 34

Jakim słowem kluczowym można zainicjować zmienną w JavaScript?

A. var
B. variable
C. instanceof
D. new
W języku JavaScript, deklaracja zmiennej przy użyciu słowa kluczowego 'var' jest jednym z podstawowych i fundamentalnych aspektów programowania. Słowo kluczowe 'var' umożliwia tworzenie zmiennych, które mogą przechowywać wartości zarówno typu prymitywnego, jak i obiektowego. Wartością dodaną użycia 'var' jest to, że zmienne zadeklarowane w ten sposób mają zasięg funkcji, co oznacza, że są dostępne w obrębie funkcji, w której zostały zadeklarowane, jak również w zasięgu globalnym, jeśli zostały zdefiniowane poza funkcją. Przykład użycia 'var': var liczba = 10; zmienna 'liczba' jest teraz dostępna w obrębie całej funkcji. Warto również zauważyć, że w nowszych standardach JavaScript, takich jak ECMAScript 6, wprowadzono dodatkowe słowa kluczowe takie jak 'let' i 'const', które oferują bardziej precyzyjny zasięg blokowy i zwiększają bezpieczeństwo kodu. 'Var' pozostaje jednak ważnym elementem do zrozumienia dla każdego programisty JavaScript, ponieważ jest fundamentem, na którym opiera się wiele starszych i nadal używanych skryptów.

Pytanie 35

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 4
B. Skrypt 1
C. Skrypt 3
D. Skrypt 2
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 36

Na ilustracji przedstawiono strukturę bloków na stronie internetowej. Który z poniższych fragmentów CSS odpowiada takim ustawieniom? (Dla uproszczenia pominięto właściwości dotyczące koloru tła, wysokości oraz czcionki)

Ilustracja do pytania
A. #pierwszy {float:left; width:30%; } #drugi {clear:both; width:70%; } #trzeci {float:left; width:70%; } #czwarty {clear:both; }
B. #pierwszy{float:left; width:30%;} #drugi {clear:both; width:70%;} #trzeci {clear:both; width:70%;} #czwarty {float:left; width:100%;}
C. #pierwszy {float:left; width:30%;} #drugi {float:left; width:70%;} #trzeci {float:left; width:70%;} #czwarty {clear:both; }
D. #pierwszy { width: 30%; } #drugi { width: 70%; } #trzeci { width: 70%; } #czwarty { width: 100%; }
Odpowiedź pierwsza jest prawidłowa, gdyż prawidłowo wykorzystuje właściwość float w stylach CSS, aby uzyskać pożądany układ bloków na stronie internetowej. Float pozwala elementom przemieszczać się na lewą lub prawą stronę kontenera, co jest kluczowe w tworzeniu layoutów. W tym przypadku #pierwszy, #drugi i #trzeci mają ustawione float:left, co umożliwia ich równoległe ustawienie w poziomie aż do momentu, gdy szerokości kontenera są zapełnione. Następnie blok #czwarty wymaga clear:both, aby przemieszczać się poniżej wszystkich poprzednich elementów z ustawionym float. To powszechna technika stosowana w projektowaniu responsywnych układów stron, gdzie równoległe pozycjonowanie elementów pozwala na efektywne wykorzystanie przestrzeni. Float w połączeniu z odpowiednimi szerokościami procentowymi pomaga tworzyć elastyczne projekty, które dobrze skalują się na różnych urządzeniach, co jest zgodne z nowoczesnymi standardami web developmentu. Ponadto zrozumienie działania float i clear jest fundamentem przy tworzeniu klasycznych layoutów typu grid przed wprowadzeniem nowoczesnych rozwiązań takich jak Flexbox czy CSS Grid, co pokazuje zrozumienie podstawowych zasad CSS.

Pytanie 37

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. trzy bloki operacyjne (procesy)
B. jedną pętlę
C. dwie pętle
D. jeden blok decyzyjny
Błędy w odpowiedziach mogą wynikać z mylnego odbioru diagramu. Posiadanie bloku decyzyjnego nie zawsze znaczy, że mamy pętlę, bo pętle potrzebują zarówno warunków, jak i mechanizmu powtarzania. Wydaje się, że są różne bloki, ale w rzeczywistości mamy tu dwa bloki decyzyjne i jeden operacyjny, co nie zgadza się z odpowiedzią. Na diagramie nie da się znaleźć dwóch pętli, co może sugerować, że nie do końca rozumiesz strukturę algorytmu. Często w takich analizach ludzie mylą bloki decyzyjne z pętlami, co jest błędne, bo pętle są bardziej złożonymi strukturami. Jak się programuje, ważne jest, żeby dobrze rozróżniać te elementy, bo to wpływa na jakość algorytmu. Mnie osobiście pomogło to w pisaniu lepszego kodu, dlatego warto poświęcić chwilę na zrozumienie różnic między tymi pojęciami.

Pytanie 38

Dostosowanie wyglądu witryny do indywidualnych preferencji użytkownika oraz jego identyfikacja w systemie są możliwe dzięki mechanizmowi

A. cookie
B. obiektów DOM
C. formularzy
D. łączenia z bazą
Odpowiedź dotycząca cookies jest dobra. To ważny element, bo dzięki nim można lepiej dopasować serwis do użytkowników. Cookies to takie małe pliki, które przeglądarka zapisuje na naszym urządzeniu. Pozwalają na zbieranie różnych informacji, jak na przykład co użytkownik lubi, co robi na stronie czy jego dane do logowania. Dzięki temu, gdy wracasz na stronę, serwis może sam dostosować, co widzisz, do tego, co robiłeś wcześniej. Przykłady to zapamiętywanie języka, zawartości koszyka w sklepach online czy automatyczne logowanie. Ważne jest, żeby serwisy informowały użytkowników o cookies i prosiły o zgodę, zwłaszcza w kontekście RODO. Znanie tych zasad jest istotne, jeśli myślisz o pracy w tworzeniu aplikacji webowych, bo to pomaga w lepszym zrozumieniu potrzeb użytkowników.

Pytanie 39

Jakiego rodzaju oprogramowanie narzędziowe powinno być zainstalowane, aby umożliwić użytkownikowi przeprowadzanie operacji na zgromadzonych danych?

A. System Zarządzania Bazą Danych (SZBD)
B. Klucz obcy
C. Obiektowy System Zarządzania Bazą Danych
D. Otwarty mechanizm komunikacji bazy danych
System Zarządzania Bazą Danych, czyli SZBD, to coś, co naprawdę ma duże znaczenie w organizacjach, jeśli mówimy o danych. Dzięki niemu możemy działać z danymi znacznie sprawniej – przechowywać je, aktualizować, usuwać i robić wiele innych rzeczy. To taki pomost między tym, co robią użytkownicy, a samymi danymi. Przy takich systemach jak MySQL, PostgreSQL czy Oracle Database, możemy korzystać z super funkcji, takich jak transakcje czy zarządzanie użytkownikami. To nie tylko ułatwia życie, ale też pozwala na lepsze działania. No i nie zapominaj, że standardy jak SQL to klucz do komunikacji z bazami, niezależnie od technologii. Można też mówić o dobrych praktykach, jak robienie kopii zapasowych czy monitorowanie wydajności. Właściwie, wprowadzenie takiego systemu to fundament do skutecznego zarządzania danymi w każdej organizacji, więc warto się tym zająć.

Pytanie 40

Instrukcją równoważną funkcjonalnie do przedstawionej instrukcji JavaScript jest

for (i = 0; i < 100; i += 10)
  document.write(i + ' ');
Kod 1.
while (i < 10) {
  document.write(i + ' ');
  i += 10;
}
Kod 2.
while (i < 100)
  document.write(i + ' ');
Kod 3.
i = 0;
while (i < 100) {
  document.write(i + ' ');
  i += 10;
}
Kod 4.
i = 0;
while (i < 10) {
  document.write(i + ' ');
  i++;
}
A. Kod 1.
B. Kod 4.
C. Kod 2.
D. Kod 3.
Gratulacje! Wybrałeś poprawną odpowiedź, która jest Kodem 3. Pętla for prezentowana na obrazku inicjuje zmienną i na 0, a następnie sprawdza warunek i < 100, wykonuje instrukcje w pętli for i zwiększa i o 10 za każdą iteracją. To jest standardowe zachowanie dla pętli for w języku programowania JavaScript. Kod 3 jest równoważny funkcjonalnie z pętlą for, ponieważ również inicjuje zmienną i na 0, a następnie w pętli while sprawdza warunek (i < 100), wykonuje instrukcje w pętli i zwiększa i o 10 w każdej iteracji. Zrozumienie różnych rodzajów pętli i ich równoważności jest kluczowe dla skutecznego programowania, ponieważ pozwala na optymalizację kodu i poprawę jego czytelności. Dobrą praktyką jest zrozumienie, kiedy używać różnych typów pętli w zależności od specyficznych wymagań danego problemu programistycznego.