Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
Rozpoczęcie: 17 października 2026 02:27
Zakończenie: 17 października 2026 02:32
Egzamin zdany!
Wynik: 21/40 punktów (52,5%)
Wymagane minimum: 20 punktów (50%)
Pewność odpowiedzi
Żadna odpowiedź nie została oznaczona jako strzał.
Przy następnym egzaminie zaznaczaj niepewne odpowiedzi - zobaczysz wtedy, ile wyniku bierze się z wiedzy, a ile ze szczęścia.
Twój wynik na tle innych
Twój wynik jest lepszy niż 35% podejść do kwalifikacji INF.03.
Porównanie z 47885 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).
Poprawa! Poprzednio 37,5%, teraz 52,5% (+15,0 p.p.).
Zachowaj ten wynik na koncie
Załóż darmowe konto albo zaloguj się - ten egzamin trafi na Twoje konto, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.
W którym pliku konfiguracyjnym serwera Apache ustawia się przekierowanie 301 (z jednego URL na inny)?
A.
apacheConf
B.
configuration.php
C.
.htaccess
Twoja odpowiedź
D.
conf.php
Poprawna odpowiedź. Przekierowania (np. trwałe 301) na serwerze Apache ustawia się w pliku .htaccess - to plik konfiguracyjny katalogu, w którym definiuje się reguły przepisywania adresów. Dlatego przekierowanie 301 ustawia się w .htaccess.
Pytanie 2
Interpreter PHP zwróci błąd i zaniecha wykonania kodu, jeżeli programista
A. nie umieści średnika po wyrażeniu w instrukcji if, jeśli za nim znajduje się sekcja else
Twoja odpowiedź
B. będzie tworzył kod bez odpowiednich wcięć
C. będzie definiował zmienne w obrębie warunku
D. pobierze wartość z formularza, w którym pole input nie zostało wypełnione
Poprawna odpowiedź. Niepostawienie średnika po wyrażeniu w instrukcji if, gdy następuje sekcja else, prowadzi do błędu składniowego w PHP. W języku PHP średnik jest używany do zakończenia instrukcji, co oznacza, że każda linia kodu, która stanowi osobną instrukcję, powinna być zakończona średnikiem. W przypadku używania instrukcji warunkowej if z sekcją else, zastosowanie średnika po pierwszej instrukcji (if) jest kluczowe. Przykładowo, poprawny kod wyglądałby tak: "if ($warunek) { //kod } else { //kod }". Jeśli pominiemy średnik po instrukcji if, interpreter PHP nie będzie w stanie prawidłowo zinterpretować kodu, co skutkuje błędem. Jest to zgodne z dobrymi praktykami programowania, które zalecają dbałość o szczegóły w składni, aby uniknąć błędów podczas wykonywania skryptów. Praktyka ta jest istotna, szczególnie w większych projektach, gdzie błędy składniowe mogą prowadzić do trudnych do zdiagnozowania problemów.
Pytanie 3
Domyślna CAPTCHA
CAPTCHA - reCAPTCHA▼
W CMS Joomla! opcja konfiguracji globalnej, pokazana na ilustracji, służy do
A. dopuszczenia do przesyłania danych z formularzy wypełnionych tylko przez człowieka.
Twoja odpowiedź
B. zapobiegania atakom typu SQL Injection.
C. wyświetlenia okna umożliwiającego wyszukiwanie tekstu na stronie.
D. wyświetlania okna informującego o zgodzie użytkownika na pliki cookie.
Poprawna odpowiedź. Opcja pokazana na zrzucie w Joomla! dotyczy domyślnej CAPTCHA, czyli mechanizmu weryfikującego, czy formularz wypełnia człowiek, a nie automat (bot). W praktyce, gdy w konfiguracji globalnej wybierzesz np. „CAPTCHA – reCAPTCHA”, Joomla! będzie mogła używać tego mechanizmu we wszystkich formularzach, które potrafią z CAPTCHA współpracować, np. formularz rejestracji użytkownika, formularz kontaktowy, czasem logowanie czy dodawanie komentarzy w rozszerzeniach.
CAPTCHA działa tak, że dodaje do formularza dodatkowy krok: użytkownik musi zaznaczyć odpowiednie pole („Nie jestem robotem”) albo rozwiązać proste zadanie typu rozpoznanie obrazków. Po stronie serwera (tu: Joomla! + Google reCAPTCHA) sprawdzany jest specjalny token. Jeżeli token jest poprawny, dane z formularza są przyjmowane. Jeżeli nie – formularz jest odrzucany. Dzięki temu znacząco ogranicza się spam, masowe rejestracje fałszywych kont i automatyczne wysyłki z formularzy.
Moim zdaniem w każdym publicznym formularzu, szczególnie na stronach firmowych czy szkolnych, warto mieć poprawnie skonfigurowaną CAPTCHA. To jest jeden z podstawowych elementów dobrych praktyk bezpieczeństwa aplikacji webowych – obok filtrowania danych, ograniczania liczby żądań czy stosowania firewalli aplikacyjnych (WAF). Sama CAPTCHA nie zastąpi innych zabezpieczeń, ale bardzo skutecznie zmniejsza liczbę automatycznych ataków i spamu.
W Joomla! konfiguracja globalna jest o tyle wygodna, że ustawiasz raz domyślny typ CAPTCHA, a potem w poszczególnych komponentach (np. „Użytkownicy”, „Kontakty”) tylko zaznaczasz, że chcesz jej używać. W praktyce oznacza to, że formularze będą przyjmować dane tylko wtedy, gdy człowiek poprawnie przejdzie test CAPTCHA – dokładnie tak, jak opisuje poprawna odpowiedź.
Pytanie 4
Jak powinien być zapisany kolor 255 12 12 w modelu RGB na stronie www?
A. #EE0C0C
B. #FF0C0C
Poprawna odpowiedź
C. #AB1A1D
Twoja odpowiedź
D. #2551212
Niepoprawna odpowiedź. Wszystkie niepoprawne odpowiedzi zawierają błędy wynikające z niewłaściwej konwersji wartości RGB do formatu heksadecymalnego. W przypadku pierwszej z odpowiedzi, 2551212, zapis ten nie jest zgodny ze standardem heksadecymalnym, ponieważ nie uwzględnia formatu #RRGGBB, gdzie R, G, B to wartości szesnastkowe. Poza tym, wartości RGB powinny być przedstawione jako dwucyfrowe liczby heksadecymalne, co czyni tę odpowiedź nieprawidłową. Kolejna odpowiedź, #EE0C0C, sugeruje, że wartość czerwona wynosi 238 w systemie dziesiętnym, co jest znacznie niższe niż maksymalna wartość 255, co nie odpowiada zadanemu kolorowi. Wartość ta, po konwersji, powinna wynosić FF. Trzecia odpowiedź, #AB1A1D, również jest błędna, ponieważ wartości czerwona (AB) i zielona (1A) nie odpowiadają podanym wartościom RGB. W tym przypadku wartość czerwona jest zbyt niska, a wartość zielona jest nieodpowiednia, co prowadzi do całkowicie innego koloru. Dokładność konwersji kolorów RGB do heksadecymalnych jest kluczowa dla zapewnienia prawidłowego wyświetlania kolorów w projektach webowych, dlatego ważne jest, aby stosować poprawne techniki przeliczeniowe.
Pytanie 5
Tabela góry zawiera polskie pasma górskie wraz z ich szczytami - w kolumnie pasmo nazwę pasma, a w kolumnie wysokosc wysokość szczytu. Wskaż kwerendę liczącą dla każdego pasma górskiego średnią wysokość jego szczytów.
A.
SELECTpasmo,COUNT(wysokosc)FROMgoryORDERBYpasmo;
Twoja odpowiedź
B.
SELECTpasmo,AVG(wysokosc)FROMgoryGROUPBYpasmo;
Poprawna odpowiedź
C.
SELECTpasmo,SUM(wysokosc)FROMgoryGROUPBYpasmo;
D.
SELECTpasmo,AVG(wysokosc)FROMgoryLIMITpasmo;
Niepoprawna odpowiedź. Niestety, wybrana przez Ciebie odpowiedź jest błędna. Przyjrzyjmy się bliżej wszystkim niepoprawnym odpowiedziom. W odpowiedzi 'SELECT pasmo, AVG(wysokosc) FROM gory LIMIT pasmo;' użyto niepoprawnie klauzuli LIMIT. Klauzula LIMIT w SQL jest wykorzystywana do ograniczenia liczby zwracanych wierszy, a nie do grupowania wyników. W zapytaniu 'SELECT pasmo, COUNT(wysokosc) FROM gory ORDER BY pasmo;' użyto funkcji COUNT() zamiast AVG(). Funkcja COUNT() zlicza liczbę wartości, a nie oblicza ich średniej. Dodatkowo, zamiast grupowania wyników klauzulą GROUP BY, użyto klauzuli ORDER BY, która służy do sortowania wyników, a nie grupowania. Ostatnia błędna odpowiedź 'SELECT pasmo, SUM(wysokosc) FROM gory GROUP BY pasmo;' używa funkcji SUM() zamiast AVG(). Funkcja SUM() oblicza sumę wartości, a nie ich średnią. Klauzula GROUP BY jest poprawnie użyta do grupowania wyników. Pamiętaj, że wybór odpowiedniej funkcji agregującej i klauzuli jest kluczowy dla uzyskania prawidłowych wyników zapytania SQL.
Pytanie 6
W przedstawionym kodzie JavaScript linie zostały ponumerowane dla wygody. Kod ten zawiera błąd, ponieważ po jego uruchomieniu nie wyświetla się żaden komunikat. Aby usunąć ten błąd, należy
A. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowie
B. umieścić znaki $ przed nazwami zmiennych
C. dodać nawiasy klamrowe do sekcji if i else
Twoja odpowiedź
D. w liniach 3 i 6 zastąpić znaki cudzysłowu apostrofami, np. 'jest mniejsze'
Poprawna odpowiedź. Odpowiedź zakłada wstawienie nawiasów klamrowych do sekcji if oraz else co jest kluczowym elementem praktyki programowania w JavaScript. Nawiasy klamrowe zapewniają prawidłowe wykonanie bloku kodu w przypadku warunków jeśli i else co jest standardową praktyką w większości języków programowania. Nawet jeśli blok kodu zawiera tylko jedną linię dodanie nawiasów klamrowych zwiększa czytelność kodu i ułatwia jego przyszłą edycję. Użycie nawiasów klamrowych jest również kluczowe gdyż zapobiega błędom logicznym i nieoczekiwanym zachowaniom programu. W implementacji systemów produkcyjnych oraz podczas pracy z zespołem przestrzeganie takich standardów jest niezmiernie ważne ponieważ zapewnia spójność kodu i ułatwia jego zrozumienie przez innych programistów. Przykładowo dodanie nawiasów klamrowych do instrukcji if w kodzie który jest często aktualizowany minimalizuje ryzyko wprowadzenia błędów. Programiści zawsze powinni dążyć do pisania kodu który jest łatwy do zrozumienia utrzymania i modyfikacji co jest jednym z fundamentów inżynierii oprogramowania.
Pytanie 7
Instrukcją równoważną funkcjonalnie do przedstawionej instrukcji switch zapisanej w języku JavaScript jest
Poprawna odpowiedź. Kod 2 jest poprawny, ponieważ struktura instrukcji warunkowych w JavaScript jest równoważna z wyrażeniem switch przedstawionym w pytaniu. Instrukcja switch pozwala na wykonanie jednej z wielu gałęzi kodu w zależności od wartości wyrażenia, w tym przypadku zmiennej 'dzialanie'. Każdy 'case' w switch odpowiada warunkowi 'if' w strukturze if-else if. W Kodzie 2 każda operacja matematyczna, jak dodawanie czy odejmowanie, jest przypisana do odpowiedniego warunku dzięki zastosowaniu if-else if, co dokładnie odwzorowuje zachowanie switch. Jest to zgodne z dobrą praktyką programistyczną, gdzie wybór między switch a if-else if zależy od przejrzystości i liczby porównywanych przypadków. Kod 2 jest bardziej czytelny, co jest ważne w utrzymywaniu i rozwijaniu kodu produkcyjnego. Praktyczne zastosowanie takiej struktury można znaleźć w budowaniu aplikacji, gdzie decyzje podejmowane są na podstawie wielu możliwych wartości zmiennej.
Pytanie 8
Posiadając tabelę zawierającą zwierzeta z kolumnami nazwa, gatunek, gromada, cechy, dlugosc_zycia, aby uzyskać listę nazw zwierząt, które żyją co najmniej 20 lat oraz należą do ssaków, należy wykonać zapytanie:
Niepoprawna odpowiedź. Wybór zapytań, które nie zwracają oczekiwanych wyników, wynika z kilku kluczowych błędów w logice zapytania SQL oraz niezrozumienia operatorów logicznych. Na przykład, zapytanie, które wyłącznie filtruje na podstawie długości życia, czyli SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20, nie uwzględnia drugiego istotnego kryterium, jakim jest przynależność do gromady ssaków. To podejście może prowadzić do uzyskania wyników zawierających zwierzęta, które nie są ssakami, co jest sprzeczne z założeniem pytania. Warto zauważyć, że korzystanie z operatora OR, jak w zapytaniu SELECT nazwa FROM zwierzeta WHERE dlugosc_zycia >=20 OR gromada = 'ssak', również jest błędne, ponieważ zwraca wszystkie zwierzęta, które spełniają przynajmniej jeden z warunków, co może prowadzić do bardzo szerokiego i nieprecyzyjnego zbioru danych. Kluczowym błędem myślowym jest zatem zrozumienie, że aby uzyskać dane, które spełniają wszystkie wymagane warunki, należy używać operatora AND, który skutecznie filtruje wyniki zgodnie z określonymi kryteriami. Aby poprawnie zrealizować zapytanie, niezbędne jest precyzyjne określenie, jakie cechy muszą być spełnione przez zwierzęta, co pozwala na lepsze zarządzanie i analizę danych w kontekście biologicznym czy zoologicznym.
Pytanie 9
Jaką wartość zwróci funkcja w języku C++, jeśli parametry wynoszą a = 4 oraz b = 3?
long int fun1(int a, int b) { long int wynik = 1; for (int i = 0; i < b; i++) wynik *= a; return wynik; }
A. 16
B. 1
C. 64
Twoja odpowiedź
D. 12
Poprawna odpowiedź. Funkcja fun1 w języku C++ oblicza potęgę liczby a do b. Wykorzystuje pętlę for aby przemnożyć początkową wartość 1 przez a dokładnie b razy co daje wynik a do potęgi b. W tym przypadku gdy a = 4 i b = 3 funkcja wykonuje 3 iteracje mnożąc wynik początkowo równy 1 przez 4 daje 4 następnie 16 i ostatecznie 64. To podejście ilustruje podstawowe zastosowanie pętli for w obliczeniach iteracyjnych. Takie podejście do obliczania potęg jest efektywne dla małych potęg ale dla większych wartości można rozważyć algorytmy typu exponentiation by squaring które są optymalniejsze. W programowaniu C++ pętla for jest często stosowana do zadań o z góry określonej liczbie iteracji co czyni ją idealnym wyborem dla tego problemu. Ważne jest także zrozumienie jak zmienne takie jak wynik są wykorzystywane do przechowywania stanu w trakcie iteracji co jest kluczowe w wielu algorytmach programistycznych. Takie rozumowanie i wykorzystanie pętli for jest zgodne z dobrymi praktykami programowania.
Pytanie 10
Które narzędzie wiersza poleceń służy do OGÓLNEGO administrowania serwerem MySQL (np. status serwera, tworzenie bazy, zmiana hasła)?
A.
mysqldump
B.
mysqlcheck
C.
mysqladmin
Twoja odpowiedź
D.
truncate
Poprawna odpowiedź. Narzędzie mysqladmin służy do ogólnego administrowania serwerem MySQL z wiersza poleceń - sprawdzenia statusu, utworzenia lub usunięcia bazy, zmiany hasła czy zatrzymania serwera. Dlatego to mysqladmin.
Pytanie 11
Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości dla bloków: 1, 2, 3, 4 (blok 5 nie ma ustawionej szerokości), powinno zawierać właściwość
A. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
Twoja odpowiedź
B. float: left dla wszystkich bloków.
C. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
D. clear: both dla wszystkich bloków.
Poprawna odpowiedź. Twoja odpowiedź jest poprawna. Bloki 1, 2, 3 i 4 powinny być ustawione obok siebie na stronie. Możemy tego dokonać, stosując dla nich właściwość 'float: left' w CSS, która sprawia, że elementy są wyświetlane po lewej stronie swojego kontenera. Często stosuje się tę technikę przy projektowaniu layoutów stron internetowych, umożliwiając rozmieszczenie bloków w jednym rzędzie. Blok 5 powinien natomiast znajdować się poniżej tych bloków, co osiągniemy stosując właściwość 'clear: both'. Ta właściwość zapewnia, że element nie będzie obok żadnego z poprzednich bloków, nawet jeśli mają one ustawiony float. Jest to szczególnie przydatne w sytuacjach, gdy chcemy, aby pewien element (np. stopka strony) był wyświetlany poniżej innych bloków, niezależnie od ich położenia czy szerokości. W praktyce, prawidłowe zastosowanie tych dwóch właściwości jest kluczowe dla tworzenia responsywnych i atrakcyjnych layoutów stron.
Pytanie 12
Funkcja zapisana w języku PHP ma przedstawioną postać. Jej zadaniem jest
Poprawna odpowiedź. Funkcja w języku PHP jest zapisana w taki sposób że przyjmuje jeden argument liczba i sprawdza czy jest on parzysty. Używa operatora modulo % który zwraca resztę z dzielenia. Jeśli liczba podzielona przez 2 daje resztę równą 0 oznacza to że jest parzysta. W takim przypadku funkcja zwraca wartość 1. W przeciwnym razie czyli gdy liczba jest nieparzysta funkcja zwraca 0. Takie podejście jest częstym wzorcem w programowaniu gdyż pozwala na szybkie i efektywne sprawdzenie parzystości liczby. Stosowanie operatora modulo jest standardem w wielu językach programowania dzięki czemu kod jest zrozumiały i łatwo go przenieść między różnymi platformami. W praktyce takie funkcje mogą być używane w algorytmach gdzie konieczne jest filtrowanie danych na podstawie parzystości lub innych podobnych kryteriów. Dobre praktyki w kodowaniu w PHP obejmują również jasne nazywanie funkcji i zmiennych co poprawia czytelność i utrzymanie kodu. Można także zastanowić się nad rozszerzeniem funkcji o dodatkowe sprawdzania lub logikę w zależności od potrzeb projektu.
Pytanie 13
W języku JavaScript zdefiniowano następującą funkcję:
functionfun1(f) {if(f<0)f=f*(-1);returnf;}
Jej celem jest:
A. Zwrócić wartość odwrotną do argumentu f
B. Wypisać wartość odwrotną do argumentu f
C. Wypisać wartość bezwzględną argumentu f
D. Zwrócić wartość bezwzględną argumentu f
Twoja odpowiedź
Poprawna odpowiedź. Funkcja w języku JavaScript przedstawiona w pytaniu realizuje zadanie zwracania wartości bezwzględnej z argumentu f. Wartość bezwzględna liczby jest jej odległością od zera na osi liczbowej i jest zawsze liczbą nieujemną. Mechanika działania funkcji polega na sprawdzeniu za pomocą instrukcji warunkowej if czy wartość przekazanego argumentu f jest mniejsza od zera. Jeśli tak, wartość ta jest mnożona przez -1 co przekształca ją w liczbę dodatnią. W przeciwnym razie liczba pozostaje bez zmian. Ostatecznie funkcja zwraca wynik operacji co jest typowym podejściem w programowaniu funkcyjnym. Warto zwrócić uwagę że takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ funkcja ma jednoznacznie określony cel i nie powoduje efektów ubocznych takich jak modyfikacja zmiennych globalnych. W realnych projektach często korzysta się z funkcji Math.abs która jest wbudowana w JavaScript i zwraca wartość bezwzględną liczby co jest bardziej wydajnym podejściem i zgodnym ze standardami języka
Pytanie 14
W kodzie HTML stworzono formularz, który wysyła informacje do pliku formularz.php. Po naciśnięciu przycisku typu submit, przeglądarka zostaje przekierowana na wskazany adres. Na podstawie podanego adresu /formularz.php?imie=Anna&nazwisko=Kowalska można stwierdzić, że dane do pliku formularz.php zostały wysłane za pomocą metody:
A. GET
Twoja odpowiedź
B. COOKIE
C. POST
D. SESSION
Poprawna odpowiedź. Poprawna odpowiedź wskazuje na metodę GET. Jako jedna z dwóch podstawowych metod przesyłania danych w protokole HTTP, GET przesyła informacje poprzez dołączenie ich do adresu URL. I tak, jeżeli na załączonym obrazku widzimy adres URL zawierający parametry (np. imię=Anna&nazwisko=Kowalska) dołączone do adresu pliku formularz.php, to oznacza, że dane zostały przesłane właśnie tą metodą. Jest to zgodne z dobrymi praktykami i standardami branżowymi, które zalecają użycie metody GET zwłaszcza przy przesyłaniu niewielkich ilości danych, które nie wymagają specjalnego zabezpieczenia. Ważne jednak jest zrozumienie, że metoda GET nie jest odpowiednia, gdy przesyłane dane są poufne, np. hasła, ponieważ są one widoczne w pasku adresu przeglądarki. Ponadto, warto zauważyć, że dane przesyłane metodą GET mogą być zapisane w historii przeglądarki, co również ma swoje implikacje bezpieczeństwa.
Pytanie 15
W języku PHP zapisano przedstawioną w ramce instrukcję pętli. Ile razy zostanie ona wykonana, o ile zmienna sterująca nie jest zmieniana w jej wnętrzu i nie dodano instrukcji przerywającej pętlę?
for($i=10;$i<=100;$i+=10)
A. 11 powtórzeń
B. 9 powtórzeń
C. 100 powtórzeń
D. 10 powtórzeń
Twoja odpowiedź
Poprawna odpowiedź. Pętla for w języku PHP została skonstruowana z trzech części: inicjalizacji zmiennej sterującej $i=10 warunku zakończenia $i<=100 oraz modyfikatora $i+=10. Analizując te elementy widzimy że pętla zaczyna się od wartości 10 i przy każdym przejściu zwiększa $i o 10 aż do osiągnięcia wartości 100 włącznie. Oznacza to że pętla wykona się dla wartości 10 20 30 40 50 60 70 80 90 oraz 100 co daje łącznie 10 powtórzeń. Takie podejście jest efektywne i zgodne z dobrymi praktykami programistycznymi które zakładają wyraźne określenie warunków wejściowych i wyjściowych pętli. W praktyce stosowanie pętli for dla iteracji o znanym zakresie jest preferowane ze względu na swoją przejrzystość i czytelność. Warto też dodać że pętle for są mniej podatne na błędy wynikające z nieodpowiedniego modyfikowania zmiennej sterującej co jest częstym problemem w przypadku pętli while. Przy programowaniu w PHP ważne jest aby zawsze sprawdzać poprawność warunków zapętlających by uniknąć pułapek związanych z nieskończonymi pętlami.
Pytanie 16
Jak nazywa się niepotrzebne POWIELANIE tych samych danych w wielu miejscach bazy?
A. spójnością danych
B. normalizacją
C. redundancją (nadmiarowością)
Twoja odpowiedź
D. integralnością referencyjną
Poprawna odpowiedź. Niepotrzebne POWIELANIE tych samych danych w wielu miejscach bazy to redundancja (nadmiarowość). Jest niepożądana: zajmuje miejsce i grozi niespójnością (zmiana w jednym miejscu, a w innym nie). Ogranicza ją normalizacja. Zapamiętaj: redundancja = ta sama informacja zapisana po wielokroć.
Pytanie 17
Który zapis CSS ustawi NIEBIESKIE tło bloku <div>?
A.
div{shadow:blue;}
B.
div{color:blue;}
C.
div{border-color:blue;}
D.
div{background-color:blue;}
Twoja odpowiedź
Poprawna odpowiedź. Kolor tła elementu ustawia właściwość background-color, więc div{background-color:blue;} daje niebieskie tło bloku <div>. Dlatego poprawny jest ten zapis.
Pytanie 18
Fragment kodu w języku PHP ma następującą postać: Zakładając, że zmienne: a, b, c przechowują wartości numeryczne, wynikiem działania warunku będzie wypisanie liczby
if ($a > $b && $a > $c) echo $a; else if ($b > $c) echo $b; else echo $c;
A. najmniejszej.
B. parzystej.
C. największej.
Twoja odpowiedź
D. nieparzystej.
Poprawna odpowiedź. Dobrze zrozumiałeś działanie warunków logicznych w języku PHP! Fragment kodu prezentowany na zdjęciu rzeczywiście wypisuje wartość największej zmiennej. Jest to wynik skumulowanego działania kilku warunków if oraz else if, które porównują wartości zmiennych a, b, c. Najpierw, warunek sprawdza, czy zmienna a jest większa od pozostałych. Jeśli tak, wartość a jest wypisywana. Jeżeli nie, przechodzi do kolejnego warunku, gdzie sprawdza, czy b jest większe od c. Jeżeli tak, wypisuje b, jeżeli nie - wypisze c. W ten sposób kod zawsze wypisze największą wartość. Zrozumienie tej logiki jest kluczowe w programowaniu, szczególnie w kontekście operacji porównania, które są podstawą wielu bardziej skomplikowanych algorytmów. To ważny fragment wiedzy, który pomaga w budowaniu efektywnych i optymalnych rozwiązań kodowych.
Pytanie 19
Jak nazywa się komponent oznaczony znakiem zapytania w architekturze platformy .NET, który pozwala na tworzenie własnych aplikacji za pomocą frameworków oraz przekształcanie skompilowanego kodu pośredniego na kod maszynowy procesora zainstalowanego w systemie?
A. Wspólne środowisko programistyczne (CLP)
B. Wspólne środowisko uruchomieniowe (CLR)
Twoja odpowiedź
C. Biblioteka klas bazowych (BCL)
D. Infrastruktura językowa (CLI)
Poprawna odpowiedź. CLR, czyli wspólne środowisko uruchomieniowe, to naprawdę ważny element platformy .NET. Odpowiada za to, jak programy napisane w różnych językach, na przykład C# czy VB.NET, są wykonywane. Działa trochę jak tłumacz między aplikacjami a systemem operacyjnym. Dzięki niemu mamy różne fajne funkcje, jak zarządzanie pamięcią, obsługa wyjątków czy bezpieczeństwo typów. CLR przekształca kod pośredni (MSIL) na kod, który rozumie procesor, co jest super, bo pozwala na działanie aplikacji na różnych sprzętach. Dobrym przykładem zastosowania CLR są aplikacje ASP.NET, gdzie zajmuje się zarządzaniem pamięcią i wydajnością kodu. Co ważne, CLR wspiera różne dobre praktyki programistyczne, takie jak DRY (Don't Repeat Yourself) czy modularność, co sprawia, że kod jest bardziej czytelny i łatwiejszy do ponownego wykorzystania. Tak więc, CLR to fundament całej platformy .NET, który pozwala na tworzenie niezawodnych i skalowalnych aplikacji.
Pytanie 20
Który z poniższych formatów NIE pozwala na zapis plików animowanych?
A. ACE
Poprawna odpowiedź
B. SVG
Twoja odpowiedź
C. SWF
D. GIF
Niepoprawna odpowiedź. Pozostałe formaty obsługują animację, więc nie są odpowiedzią. GIF przechowuje sekwencję klatek wyświetlanych w pętli - to klasyczny format prostych animacji. SWF to format technologii Flash, stworzony właśnie do animacji i interaktywnych aplikacji. SVG, choć wektorowy, również pozwala animować elementy obrazu. Formatem niesłużącym do animacji jest ACE - to archiwum do kompresji plików - dlatego ta odpowiedź jest poprawna.
Pytanie 21
Baza danych fizycznie umieszczona na wielu komputerach, ale logicznie traktowana jako jedna całość, oparta jest na architekturze:
A. rozproszonej
Poprawna odpowiedź
B. abstrakcyjnej
C. lokalnej
Twoja odpowiedź
D. relacyjnej
Niepoprawna odpowiedź. Pozostałe pojęcia nie opisują fizycznego rozmieszczenia na wielu maszynach. Architektura relacyjna dotyczy sposobu modelowania danych - tabel, kluczy i relacji między nimi - niezależnie od tego, gdzie fizycznie leżą. „Abstrakcyjna” nie jest nazwą architektury rozmieszczenia bazy. Baza lokalna mieści się w całości na jednym komputerze, więc jest przeciwieństwem opisanej sytuacji. Rozmieszczenie na wielu węzłach przy zachowaniu jednej logicznej całości to architektura rozproszona, dlatego to ona jest poprawna.
Pytanie 22
Jak nazywa się edytor stron, którego działanie tłumaczy się jako „otrzymujesz to, co widzisz”?
A. VISUAL EDITOR
B. WEB STUDIO
C. WYSIWYG
Twoja odpowiedź
D. IDE
Poprawna odpowiedź. WYSIWYG (What You See Is What You Get - „otrzymujesz to, co widzisz”) to edytor, w którym podczas pracy widać efekt zbliżony do finalnego wyglądu strony, bez konieczności pisania kodu. Dlatego mowa o edytorze WYSIWYG.
Pytanie 23
Która definicja tablicy asocjacyjnej w PHP jest składniowo poprawna?
A.
$wiek=array("Anna"=35,"Ewa"=37);
B.
$wiek=array({"Anna","35"});
C.
$wiek=array("Anna"=>"35","Ewa"=>"37");
Twoja odpowiedź
D.
$wiek=array([Anna,35],[Ewa,37]);
Poprawna odpowiedź. Tablica asocjacyjna w PHP przechowuje pary klucz-wartość, a do ich powiązania używa się operatora „strzałki” =>, np. $wiek=array("Anna"=>35,"Ewa"=>37); (lub w krótszym zapisie ["Anna"=>35]). Do wartości sięga się przez klucz: $wiek["Anna"]. Dlatego poprawna jest definicja z parami łączonymi =>.
Pytanie 24
<?php
setcookie('egzamin', '24', time() +60);
?>
Na podstawie przedstawionego kodu PHP wskaż, ile wynosi czas ważności ustawionego ciasteczka?
A. 1 godzina.
B. 24 doby.
C. 24 godziny.
Twoja odpowiedź
D. 1 minuta.
Poprawna odpowiedź
Niepoprawna odpowiedź. Ten fragment kodu PHP jest dobrym przykładem, jak łatwo pomylić się przy interpretowaniu czasu życia ciasteczka. Wiele osób widząc wartość '24' w nazwie albo w wartości ciasteczka automatycznie kojarzy to z 24 godzinami czy 24 dobami. Tymczasem w ogóle nie ma to znaczenia dla czasu ważności. O tym, jak długo cookie będzie żyło, decyduje wyłącznie trzeci parametr funkcji setcookie(), czyli tutaj: time() + 60. Funkcja time() zwraca aktualny czas w sekundach, a liczba 60 to po prostu 60 sekund. Nie ma tu żadnej „magii” powiązanej z liczbą 24. Częsty błąd polega na tym, że ktoś myśli kategoriami: godziny, dni, a nie sekund. W PHP czas wygaśnięcia w setcookie musi być podany jako konkretny znacznik czasowy UNIX, więc programista musi sam przeliczyć sobie minuty czy godziny na sekundy. Jeśli ktoś pomyśli, że 60 to np. 60 minut, to w praktyce pomyli się dokładnie 60 razy. Podobnie założenie, że skoro wartość ciasteczka to '24', to ciasteczko będzie ważne 24 godziny lub 24 doby, wynika z mieszania znaczenia logicznego danych z mechanizmem technicznym ich przechowywania. Wartość '24' to po prostu tekst przechowywany w cookie, bez żadnego automatycznego powiązania z czasem. Z mojego doświadczenia takie pomyłki biorą się też z porównywania do innych technologii, gdzie czas ustawia się np. w minutach. W PHP (i generalnie w mechanizmie UNIX time) wszystko liczymy w sekundach. Dlatego dobre praktyki mówią, żeby zawsze jawnie pisać wyrażenia typu 60 * 60 (godzina), 60 * 60 * 24 (doba), zamiast samego „3600” czy „86400”, bo to od razu sugeruje, o jaką jednostkę chodzi i ogranicza ryzyko złej interpretacji. Jeżeli programista nie rozumie tej konwencji, będzie projektował mechanizmy sesji, logowania czy koszyków zakupów z błędnymi czasami życia ciasteczek, co może prowadzić do irytujących sytuacji dla użytkownika, a nawet do problemów z bezpieczeństwem (np. zbyt długie przechowywanie wrażliwych informacji). Dlatego tak ważne jest, żeby przy każdym użyciu setcookie() świadomie przeliczać czas na sekundy i nie sugerować się nazwą ani wartością samego ciasteczka.
Pytanie 25
Podczas edytowania grafiki w programie do obróbki grafiki rastrowej należy usunąć kolory z obrazu, aby uzyskać wersję w odcieniach szarości. Do osiągnięcia tego efektu można wykorzystać funkcję
A. kadrowania
B. filtru rozmycia
C. desaturacji
Twoja odpowiedź
D. szumu RGB
Poprawna odpowiedź. Desaturacja to proces, który polega na usunięciu kolorów z obrazu, co skutkuje uzyskaniem odcieni szarości. Technika ta jest powszechnie wykorzystywana w edytorach grafiki rastrowej, takich jak Adobe Photoshop czy GIMP. Desaturacja obrazu można zrealizować na kilka sposobów, na przykład poprzez zastosowanie odpowiednich filtrów lub narzędzi. W praktyce, desaturując obraz, można uzyskać różne efekty wizualne, które podkreślają fakturę i kształt elementów, a także mogą być użyteczne w kontekście analizy zdjęć medycznych czy archiwalnych. Standardy dotyczące edycji grafiki, takie jak Adobe RGB czy sRGB, również uwzględniają desaturację jako istotny element przetwarzania kolorów. Warto zauważyć, że desaturacja nie jest tym samym co konwersja do odcieni szarości; pierwsza metoda zachowuje wartości jasności kolorów, podczas gdy druga przekształca je w jednolite odcienie szarości, co może prowadzić do utraty detali. Zastosowanie desaturacji jest szczególnie przydatne w przypadku fotografii czarno-białej, gdzie kluczowe jest zachowanie kontrastu i detali w obrazie.
Pytanie 26
W języku CSS zapis selektora
p>i{color:red;}
wskazuje, że kolorem czerwonym będzie sformatowany
A. jedynie ten tekst w znaczniku <i>, który znajduje się bezpośrednio wewnątrz znacznika <p>
Poprawna odpowiedź
B. wszystki tekst w znaczniku <p> lub wszelkie treści w znaczniku <i>
C. tylko ten tekst w znaczniku <p>, który ma przypisaną klasę o nazwie i
Twoja odpowiedź
D. wszystkie teksty w znaczniku <p> oprócz tych w znaczniku <i>
Niepoprawna odpowiedź. Jeśli wybrałeś inne odpowiedzi, to pewnie wynika to z nieporozumienia co do tego, jak działają selektory w CSS i co się dzieje w hierarchii dokumentów HTML. Gdy wybierasz błędne opcje, często wynika to z niejasnego pojmowania relacji między różnymi elementami na stronie. Na przykład, myślenie, że każdy tekst w <p> lub <i> dostanie ten sam styl, zupełnie pomija to, że selektor '>' mówi, że styl dotyczy tylko bezpośrednich dzieci. Odrzucenie tej relacji rodzic-dziecko prowadzi do błędnego wniosku, że wszystkie elementy <p> i <i> są równorzędne. Poza tym, twierdzenie, że tekst w <p>, z wyjątkiem <i>, będzie czerwony, jest nieprawidłowe, bo selektor '>' mówi, że nie obejmuje innych elementów, a nie, że je włącza. Błędne jest również myślenie, że styl dotyczy tekstu w <p> z określoną klasą, ponieważ tu chodzi o strukturę, a nie o klasy. Warto wiedzieć, że precyzyjne selektory, jak ten w pytaniu, są bardzo ważne dla tworzenia sensownych arkuszy stylów, a ich złe zrozumienie może prowadzić do bałaganu w stylach i kłopotów w projektach webowych.
Pytanie 27
Które tabele będą analizowane w wyniku tego polecenia?
CHECK TABLE pracownicy CHANGED;
A. Tabele, które zostały zmodyfikowane w bieżącej sesji
Twoja odpowiedź
B. Wyłącznie tabele, które nie zostały poprawnie zamknięte
C. Tabele, które zmieniły się od poprzedniej weryfikacji lub nie zostały poprawnie zamknięte
Poprawna odpowiedź
D. Jedynie tabele odwołujące się do innych
Niepoprawna odpowiedź. W kontekście podanych odpowiedzi, jedynie opcja pierwsza jest prawidłowa. Niepoprawne jest stwierdzenie, że polecenie CHECK TABLE będzie sprawdzać tylko tabele, które nie zostały poprawnie zamknięte, jak sugeruje druga odpowiedź. Taki scenariusz odnosi się do bardziej ograniczonej funkcji, podczas gdy w realnych zastosowaniach administracyjnych konieczne jest uwzględnienie wszelkich potencjalnych zmian w tabelach, które mogą wpływać na ich integralność. Trzecia odpowiedź wskazuje na tabele referujące do innych, co jest błędnym założeniem, ponieważ polecenie nie ogranicza się do takich relacji, lecz skupia się na detekcji zmian w danych. Ostatecznie, czwarta odpowiedź sugeruje sprawdzanie tabel zmienionych jedynie w bieżącej sesji, co jest nieprawidłowe, ponieważ polecenie z opcją CHANGED poszukuje zmian od ostatniego sprawdzenia bez ograniczenia czasowego do jednej sesji. Typowe błędy myślowe wynikają z niezrozumienia zakresu działania tej funkcji, która ma za zadanie identyfikację zmian wpływających na dane niezależnie od kontekstu czasowego, co jest fundamentalne dla zachowania integralności i poprawności operacji w ramach zarządzania bazą danych, zgodnie z dobrymi praktykami branżowymi w zarządzaniu systemami bazodanowymi.
Pytanie 28
W przedstawionym kodzie HTML zastosowany styl CSS jest stylem
<p style="color:red;">To jest przykładowy akapit.</p>
A. dynamicznym
B. nagłówkowym
C. zewnętrznym
Twoja odpowiedź
D. lokalnym
Poprawna odpowiedź
Niepoprawna odpowiedź. W kontekście analizy odpowiedzi, nagłówkowy styl CSS odnosi się do stylów aplikowanych do elementów nagłówkowych, takich jak <h1>, <h2>, itp. Nagłówki są często wykorzystywane do strukturalizacji treści na stronie, jednak w tym przypadku, ponieważ styl dotyczy konkretnego akapitu, a nie nagłówka, ta odpowiedź jest błędna. Dynamiczne style natomiast są związane z interaktywnymi efektami, które mogą być wprowadzane za pomocą JavaScript czy CSS3, takie jak animacje czy zmiany stylów w odpowiedzi na zdarzenia. W podanym przykładzie nie ma mowy o dynamice, ponieważ styl jest statyczny i przypisany na stałe do elementu. Zewnętrzne style są definiowane w oddzielnych plikach CSS, które są dołączane do dokumentu HTML. To podejście pozwala na większą elastyczność i łatwiejsze zarządzanie stylem w projektach z większą ilością stron. W przeciwieństwie do tego podejścia, lokalne style są przypisane bezpośrednio do elementu, co czyni je mniej odpowiednimi w kontekście organizacji stylów w większych projektach. W skrócie, każda z niepoprawnych odpowiedzi odnosi się do różnych aspektów stylizacji CSS, które nie mają zastosowania w analizowanym przykładzie, a zrozumienie tych różnic jest kluczowe dla efektywnego korzystania z CSS w praktyce.
Pytanie 29
Która jednostka rozmiaru w CSS jest WZGLĘDNA (skaluje się względem rozmiaru odniesienia)?
A.
pt
B.
px
Twoja odpowiedź
C.
cm
D.
em
Poprawna odpowiedź
Niepoprawna odpowiedź. Pozostałe jednostki są bezwzględne - mają stały rozmiar niezależny od kontekstu. px to piksel ekranowy o ustalonej wielkości, pt to punkt typograficzny (1/72 cala), a cm to fizyczny centymetr. Żadna z nich nie dopasowuje się do rozmiaru czcionki czy kontenera, więc utrudnia responsywność. Jednostką względną jest em (obok rem i procentów), dlatego to ona jest poprawna.
Pytanie 30
W regule CSS h1{color:blue} czym jest h1?
A. wartością
B. klasą
C. deklaracją
Twoja odpowiedź
D. selektorem
Poprawna odpowiedź
Niepoprawna odpowiedź. Trzeba odróżnić części reguły CSS. To, co w klamrach (np. color:blue), to DEKLARACJA, złożona z właściwości (color) i WARTOŚCI (blue). Klasa zaczyna się od kropki. Element wskazujący cel reguły to selektor, więc h1 jest selektorem.
Pytanie 31
Kwalifikatory dostępu private, protected i public definiują mechanizm
A. hermetyzacji
Poprawna odpowiedź
B. przeładowania
Twoja odpowiedź
C. rekurencji
D. polimorfizmu
Niepoprawna odpowiedź. To nie są mechanizmy przeładowania, polimorfizmu ani rekurencji - tamte dotyczą odpowiednio wielu wersji metody, różnego zachowania metody i samowywołania funkcji. Sterowanie dostępem do składowych to hermetyzacja.
Pytanie 32
Zapis selektora wskazuje, że kolor tła będzie brązowy dla
input[type=number]{background-color:Brown;}
A. wszystkich tekstów na stronie internetowej
B. wszystkich formularzy
C. formularzy, gdy użytkownik wprowadzi w nie jakąkolwiek cyfrę
D. formularzy, które są typu numerycznego
Twoja odpowiedź
Poprawna odpowiedź. Zapis selektora CSS `input[type=number] { background-color: Brown; }` odnosi się do pól edycyjnych, które są zdefiniowane jako typu numerycznego. Oznacza to, że wszystkie elementy <input>, które mają atrybut `type` ustawiony na `number`, będą miały brązowe tło. Tego typu selektory są przydatne, ponieważ pozwalają na precyzyjne stylizowanie elementów formularzy, co jest kluczowe dla poprawy doświadczeń użytkowników. Stosowanie odpowiednich typów elementów formularza, takich jak `number`, umożliwia kontrolowanie danych wprowadzanych przez użytkowników, co jest zgodne z dobrymi praktykami w zakresie walidacji danych. W praktyce, jeśli w formularzu istnieje pole do wprowadzania dat, które powinno przyjmować tylko wartości liczbowe, stylizowanie go w ten sposób może pomóc w natychmiastowym wizualnym wskazaniu użytkownikowi, że pole jest przeznaczone do wprowadzania numerów. Warto również pamiętać, że stosowanie odpowiednich typów wejściowych wspiera responsywność, umożliwiając na przykład wyświetlanie klawiatury numerycznej na urządzeniach mobilnych, co zwiększa komfort użytkowania.
Pytanie 33
Jakiej funkcji w języku PHP należy użyć, aby nawiązać połączenie z bazą danych pod nazwą zwierzaki?
A. $polacz = sql_connect('localhost', 'root', '', 'zwierzaki')
Twoja odpowiedź
B. $polacz = server_connect('localhost', 'root', '', 'zwierzaki')
C. $polacz = mysqli_connect('localhost', 'root', '', 'zwierzaki')
Poprawna odpowiedź
D. $polacz = db_connect('localhost', 'root', '', 'zwierzaki')
Niepoprawna odpowiedź. Funkcje zaproponowane w odpowiedziach 1, 2 i 3 nie są poprawne, ponieważ nie istnieją w standardowej bibliotece PHP do obsługi baz danych MySQL. Przykład $polacz = db_connect('localhost', 'root', '', 'zwierzaki'); sugeruje, że istnieje funkcja o nazwie db_connect, co jest mylnym przekonaniem. Tego typu nazewnictwo może powstać z pomyłki lub z nieznajomości dokumentacji PHP, a także z prób tworzenia własnych abstrakcji, które jednak wymagają dodatkowej implementacji. W przypadku drugiej odpowiedzi, $polacz = sql_connect('localhost', 'root', '', 'zwierzaki'); również nie jest poprawne, ponieważ nie istnieje funkcja sql_connect w żadnej wersji PHP. Może to wynikać z mylenia terminologii, ponieważ wielu programistów używa terminów SQL i MySQL zamiennie, nie zdając sobie sprawy, że MySQL jest specyficzną implementacją obsługi SQL. Ostatnia sugestia, $polacz = server_connect('localhost', 'root', '', 'zwierzaki'); jest także nieprawidłowa, ponieważ taka funkcja nie istnieje w kontekście PHP i jest przykładem błędnego wnioskowania, które może prowadzić do dezorientacji wśród programistów. W programowaniu niezwykle istotne jest trzymanie się udokumentowanych funkcji i standardów, aby uniknąć problemów z kompatybilnością, wydajnością oraz bezpieczeństwem aplikacji. Dlatego kluczowe jest zapoznanie się z dokumentacją PHP oraz zrozumienie, jak poprawnie łączyć się z bazami danych, aby móc efektywnie korzystać z ich możliwości.
Pytanie 34
W SQL, aby w tabeli Towar dodać kolumnę rozmiar typu znakowego z maksymalną długością 20 znaków, jakie polecenie należy wykonać?
A. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
Twoja odpowiedź
B. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
C. ALTER TABLE Towar ADD rozmiar varchar(20)
Poprawna odpowiedź
D. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
Niepoprawna odpowiedź. Podane odpowiedzi nie są poprawne z kilku powodów. Odpowiedź sugerująca użycie 'DROP COLUMN' jest myląca, ponieważ to polecenie służy do usuwania istniejącej kolumny z tabeli, a nie dodawania nowej. Usunięcie kolumny bez zrozumienia konsekwencji może prowadzić do utraty danych, co podkreśla znaczenie przemyślenia operacji modyfikujących strukturę bazy danych. Inna odpowiedź, która proponuje 'CREATE COLUMN', jest nieprawidłowa, ponieważ nie jest uznawana za standardową składnię w SQL; nie istnieje polecenie 'CREATE COLUMN'. Zamiast tego, kolumny są dodawane za pomocą 'ADD' w kontekście ALTER TABLE. W przypadku 'ALTER COLUMN' - to polecenie odnosi się do zmiany właściwości już istniejącej kolumny, a nie do dodawania nowej. Dlatego mylenie tych pojęć prowadzi do nieprawidłowych wniosków. Zrozumienie tych różnic jest kluczowe dla poprawnego posługiwania się SQL. Niezrozumienie zasad modyfikacji struktury tabeli może skutkować nieefektywnym zarządzaniem bazą danych oraz błędami w aplikacjach korzystających z danych.
Pytanie 35
W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję
A. grupowania.
Poprawna odpowiedź
B. wykluczenia.
C. sumy.
Twoja odpowiedź
D. części wspólnej.
Niepoprawna odpowiedź. W tym zadaniu łatwo się pomylić, bo w grafice wektorowej mamy kilka różnych funkcji, które na pierwszy rzut oka wyglądają podobnie: łączą obiekty w coś, co zachowuje się jak jeden element. Jednak ich działanie „pod maską” jest zupełnie inne. Funkcje typu suma, wykluczenie czy część wspólna to klasyczne operacje boolowskie na kształtach. One zmieniają geometrię obiektów, czyli tworzą nową ścieżkę wynikową na podstawie przecięcia lub połączenia istniejących. W praktyce oznacza to, że jeśli zastosujesz sumę na tekście i wielokącie, program najczęściej zamieni tekst na krzywe i połączy wszystko w jedną ścieżkę. Efekt wizualny może być fajny, ale edytowalność tekstu przepada. Nie możesz już po prostu zmienić czcionki czy liter, bo to nie jest tekst, tylko zestaw węzłów. Podobnie z wykluczeniem: ta operacja tworzy „dziurę” jednego obiektu w drugim. Używa się jej np. do wycinania napisu z tła lub tworzenia maski. To jest typowy trik przy projektach logotypów albo efektach dekoracyjnych. Ale z punktu widzenia pytania – to działanie jest destrukcyjne dla tekstu, bo znowu zamienia go na kształt i łączy z wielokątem w sposób nieodwracalny (poza cofnięciem operacji). Część wspólna działa jeszcze ostrzej: zostawia tylko obszar, w którym obiekty się nakładają. Reszta jest tracona. To też jest operacja geometryczna, a nie organizacyjna. Typowy błąd myślowy polega na założeniu, że „skoro po operacji mam jeden obiekt, to znaczy, że to jest to samo co grupowanie”. Niestety nie. Grupowanie nie modyfikuje kształtów, tylko tworzy kontener logiczny – tak jakbyś w folderze trzymał kilka plików. Możesz je potem rozgrupować i wszystko wraca do stanu sprzed grupowania. Operacje suma, wykluczenie, część wspólna są destrukcyjne względem oryginalnych obiektów, bo generują nową ścieżkę zamiast starych. W kontekście dobrych praktyk w grafice komputerowej i multimediach przyjmuje się, że dopóki chcesz zachować pełną edytowalność (szczególnie tekstów), używasz grupowania, warstw i wyrównywania, a dopiero na późnym etapie projektu stosujesz operacje boolowskie, i to świadomie, wiedząc, że cofasz się już tylko historią edycji. Dlatego w pytaniu, gdzie mowa jest wprost o połączeniu tekstu i wielokąta w jeden obiekt w sposób odwracalny, jedyną sensowną odpowiedzią jest funkcja grupowania, a nie suma, wykluczenie czy część wspólna.
Pytanie 36
Rekord w bazie danych jest jednoznacznie identyfikowany przez pole:
A. numeryczne
B. relacji
Twoja odpowiedź
C. klucza obcego
D. klucza podstawowego
Poprawna odpowiedź
Niepoprawna odpowiedź. Klucz OBCY służy do powiązań między tabelami, a nie do identyfikacji rekordu. Samo pole numeryczne nie gwarantuje unikalności, a „pole relacji” nie jest pojęciem identyfikatora. Rekord identyfikuje klucz podstawowy.
Pytanie 37
Podane w ramce polecenie SQL ma za zadanie
UPDATEUczenSETid_klasy=id_klasy+1;
A. ustawić wartość w kolumnie id_klasy na 1 dla wszystkich rekordów tabeli Uczen
B. zwiększyć o jeden wartość pola id_klasy w jednym rekordzie tabeli Uczen
Twoja odpowiedź
C. ustawić wartość pola id_klasy na 1 dla wszystkich rekordów tabeli Uczen
D. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
Poprawna odpowiedź
Niepoprawna odpowiedź. Analizując to polecenie SQL, warto na spokojnie rozłożyć je na części, bo większość nieporozumień bierze się z mylenia stałej wartości z wyrażeniem oraz z niezauważenia braku klauzuli WHERE. W zapisie UPDATE Uczen SET id_klasy = id_klasy + 1; po lewej stronie znaku równości mamy kolumnę, którą aktualizujemy, a po prawej – wyrażenie, które określa nową wartość. To wyrażenie nie jest stałą liczbą 1, tylko operacją: bieżąca wartość id_klasy plus 1. Dlatego nie można tego interpretować jako „ustaw wartość na 1”. Gdyby celem było ustawienie identycznej wartości dla wszystkich uczniów, składnia wyglądałaby np. tak: UPDATE Uczen SET id_klasy = 1; i wtedy rzeczywiście każdemu rekordowi przypisano by dokładnie 1, bez użycia dotychczasowej wartości. Druga częsta pomyłka dotyczy zakresu działania UPDATE. W SQL to klauzula WHERE zawęża liczbę modyfikowanych rekordów. Jeśli WHERE nie ma, silnik bazy danych zgodnie ze standardem SQL przyjmuje, że operacja dotyczy wszystkich wierszy tabeli. Nie istnieje domyślne założenie „tylko jeden rekord”, chyba że jawnie wskażemy warunek, który zwróci pojedynczy wiersz, np. WHERE id_ucznia = 5. Dlatego interpretacja, że polecenie zmienia tylko jeden rekord, jest po prostu sprzeczna z tym, jak działa mechanizm UPDATE. Z mojego doświadczenia typowy błąd myślowy polega na tym, że ktoś patrzy na przykład z dokumentacji, gdzie często pojawia się WHERE, i podświadomie zakłada, że on tam „zawsze jest”. A tu go po prostu nie ma, więc działanie jest globalne. Drugi błąd to utożsamianie zapisu „+ 1” z „ustaw na 1”, co jest bardzo niebezpieczne w prawdziwych systemach, bo łatwo wtedy masowo popsuć dane. Dobre praktyki w pracy z SQL mówią jasno: zawsze dokładnie analizuj część SET oraz obecność lub brak WHERE, a przed wykonaniem złożonego UPDATE warto najpierw uruchomić SELECT z tym samym warunkiem, żeby zobaczyć, które rekordy zostaną zmienione. Taka systematyka pozwala uniknąć właśnie takich nieporozumień, jakie widać w błędnych odpowiedziach.
Pytanie 38
Warunek zapisany w JavaScript jest prawdziwy, gdy zmienna x przechowuje:
if((!isNaN(x)) && (x> 0))
A. dowolną całkowitą wartość liczbową.
B. napis.
C. pusty napis.
Twoja odpowiedź
D. dowolną dodatnią wartość liczbową.
Poprawna odpowiedź
Niepoprawna odpowiedź. Warunek z zadania jest dobrym przykładem na to, jak JavaScript łączy sprawdzanie typu z logiką biznesową i gdzie często pojawiają się nieporozumienia. Kluczowe są tu dwie rzeczy: funkcja isNaN(x) oraz operator porównania x > 0. isNaN(x) zwraca true, gdy przekazana wartość „nie jest liczbą”, a więc !isNaN(x) oznacza, że x jest liczbą lub może zostać poprawnie zinterpretowane jako liczba. To automatycznie eliminuje typowe napisy, takie jak "abc" czy "test", bo one po konwersji dadzą NaN. Dlatego odpowiedź, że warunek jest prawdziwy dla napisu jako takiego, jest myląca – zwykły string tekstowy nie przejdzie tego filtra. Pusty napis też bywa źródłem zamieszania. W JavaScript isNaN("") zwraca false, bo pusty string jest konwertowany do 0, więc !isNaN("") jest prawdą. Jednak druga część warunku, czyli (x > 0), już nie przejdzie, bo 0 nie jest większe od zera. To pokazuje, że sam fakt „nie bycia NaN” nie wystarcza, potrzebny jest jeszcze sensowny zakres wartości. Częsty błąd polega na tym, że ktoś widzi isNaN i myśli tylko w kategoriach typu, a zapomina o tej części z porównaniem. Kolejny typowy skrót myślowy to przekonanie, że skoro jest sprawdzanie „czy to liczba”, to chodzi o dowolną wartość całkowitą. Tymczasem w warunku nie ma ani słowa o tym, że liczba musi być całkowita – nie ma tu żadnego sprawdzania modulo, parsowania przez parseInt, ani Math.floor. Warunek dopuszcza zarówno 1, jak i 1.5, 3.14 czy 0.0001, byle tylko były większe od zera i nie były NaN. W praktyce w JavaScript takie podejście jest zgodne z tym, jak działa typ number – reprezentuje zarówno liczby całkowite, jak i zmiennoprzecinkowe w jednym typie. Z mojego doświadczenia większość pomyłek przy takich zadaniach wynika z mieszania pojęć „napis, który wygląda jak liczba” z „napis jako tekst” oraz z ignorowania wpływu automatycznej konwersji typów. Dlatego przy projektowaniu walidacji wejścia warto zawsze myśleć o dwóch krokach: najpierw jawnie zamieniamy dane na liczbę, potem dopiero sprawdzamy zakres i warunki biznesowe, zamiast zakładać, że isNaN załatwi wszystko za nas.
Pytanie 39
Jakie uprawnienia będzie miał użytkownik jan po wykonaniu poniższych poleceń na bazie danych?
A. Będzie mógł przeszukiwać dane w tabeli klienci.
Twoja odpowiedź
B. Będzie mógł eliminować rekordy z tabeli klienci.
C. Będzie mógł dodawać rekordy do tabeli klienci.
D. Będzie mógł zmieniać strukturę tabeli klienci.
Poprawna odpowiedź
Niepoprawna odpowiedź. Wybór odpowiedzi, że jan będzie mógł usuwać rekordy z tabeli klienci, jest błędny. Polecenie REVOKE SELECT, INSERT, UPDATE, DELETE nałożone na użytkownika jan oznacza, że pozbawiono go możliwości wykonywania operacji, które są kluczowe dla zarządzania danymi w tej tabeli. W praktyce, zasady przyznawania uprawnień w bazach danych wymagają, aby użytkownicy mieli określone uprawnienia do przeprowadzenia operacji na danych. Usuwanie rekordów jest operacją, która wymaga posiadania odpowiednich uprawnień, a ponieważ jan został pozbawiony uprawnienia DELETE, nie może on już usuwać żadnych danych z tabeli klienci. Podobnie, stwierdzenie, że jan będzie mógł wyszukiwać dane, również jest błędne, ponieważ uprawnienie SELECT zostało odjęte. W kontekście administracji bazą danych, kluczowe jest zrozumienie, że przyznawanie lub odbieranie uprawnień powinno być zgodne z zasadą najmniejszych uprawnień, co oznacza, że użytkownicy powinni mieć tylko te uprawnienia, które są niezbędne do wykonywania ich pracy. W tym przypadku jan ma pełne uprawnienia do zmiany struktury tabeli, ale nie ma żadnej możliwości interakcji z danymi. Zatem, odpowiedzi dotyczące możliwości wstawiania rekordów również są błędne, ponieważ uprawnienie INSERT zostało zabrane, co uniemożliwia janowi dodawanie nowych danych do tabeli. W związku z powyższym, wybór odpowiedzi na pytanie egzaminacyjne powinien opierać się na dokładnej analizie przyznanych uprawnień oraz ich wpływu na możliwości działania użytkowników w systemie baz danych.
Pytanie 40
Który kod HTML zapewni identyczny efekt formatowania jak na przedstawionym obrazku?
W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML
A.
<p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania</i> tekstu w HTML</p>
Twoja odpowiedź
B.
<p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
C.
<p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
D.
<p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
Poprawna odpowiedź. Odpowiedź numer 2 jest poprawna, ponieważ używa odpowiednich znaczników HTML do formatowania tekstu. Znacznik <i> stosowany jest do oznaczania tekstu kursywą, a znacznik <b> do pogrubienia. W tym przypadku tekst 'paragrafie' i 'sposoby formatowania' są otoczone znacznikiem <i>, co zgodnie z HTML oznacza kursywę. Natomiast słowo 'zobaczysz' jest otoczone zarówno <b> jak i <i>, co skutkuje pogrubieniem i kursywą jednocześnie. Taka struktura jest zgodna z konwencją hierarchii znaczników, która mówi, że znaczniki mogą być zagnieżdżane, aby uzyskać różne efekty formatowania. HTML pozwala na takie zagnieżdżanie, co jest częścią elastyczności tego języka w prezentowaniu treści. Dobrą praktyką jest także zapewnienie dostępności, gdzie znaczniki semantyczne mają szczególne znaczenie. Wykorzystanie <b> i <i> zamiast odpowiednio <strong> i <em> jest bardziej stylistyczne niż semantyczne, co ma swoje uzasadnienie w kontekście projektowym, ale w nowoczesnych praktykach powinno się również rozważyć znaczenie semantyczne i używać <strong> i <em> dla lepszego zrozumienia przez czytniki ekranowe.