Przejdź do głównej treści
  1. Strona główna
  2. Wyniki egzaminu

Wyniki egzaminu

Nowy egzamin

Informacje o egzaminie

  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Rozpoczęcie: 17 września 2026 11:08
  • Zakończenie: 17 września 2026 11:10 

Egzamin niezdany

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

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ż 12% podejść do kwalifikacji INF.03.

Porównanie z 42020 zakończonymi podejściami do tej kwalifikacji (dane zbiorcze, bez wyników indywidualnych).

Zachowaj ten wynik na koncie

Załóż darmowe konto albo zaloguj się - ten egzamin przypiszemy do Twojego konta, więc wrócisz do swoich błędów, będziesz śledzić postęp i dostaniesz powtórki dobrane do Twoich odpowiedzi.

Analiza przebiegu egzaminu - sprawdź jak rozwiązywałeś pytania Przebieg egzaminu

Analiza przebiegu egzaminu

Odtwarzaj przebieg egzaminu krok po kroku i ucz się na własnych błędach - kolejność rozwiązywania, czas nad każdym pytaniem, momenty zmiany odpowiedzi.

  • Suwak czasu - przeglądaj pytania w kolejności rozwiązywania.
  • Tryb nauki - poprawne odpowiedzi i wyjaśnienia.
  • Analiza czasu - ile czasu nad każdym pytaniem.
  • Monitoring focusu - momenty opuszczenia zakładki.

Udostępnij swój wynik

Szczegółowe wyniki

Pytanie 1

Który format graficzny zapisuje fotografie z kompresją stratną i nie obsługuje przezroczystości?

A. PNG
B. GIF
C. JPGPoprawna odpowiedź
D. SVGTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe formaty różnią się od JPG sposobem zapisu. PNG koduje obraz bezstratnie i obsługuje przezroczystość - świetny do grafik i logo, ale pliki zdjęć bywają większe. GIF również jest bezstratny, lecz ogranicza paletę do 256 kolorów i służy głównie do prostych animacji oraz grafik z przezroczystością. SVG to w ogóle inny rodzaj grafiki - wektorowy, opisujący kształty za pomocą krzywych, więc nie nadaje się do fotografii. Stratną kompresję fotografii bez przezroczystości zapewnia JPG.

Pytanie 2

Która z wartości tekstowych nie odpowiada podanemu wzorcowi wyrażenia regularnego?

(([A-ZŁŻ][a-ząęóżźćńłś]{2,})(-[A-ZŁŻ][a-ząęóżźćńłś]{2,}))?
A. KowalskiTwoja odpowiedź
B. Jelenia GóraPoprawna odpowiedź
C. Nowakowska-Kowalska
D. Kasprowicza
Niepoprawna odpowiedź. Odpowiedzi takie jak 'Kasprowicza', 'Nowakowska-Kowalska' i 'Kowalski' są w porządku, bo pasują do wzoru wyrażenia regularnego. Wzór mówi, że tekst musi zaczynać się od wielkiej litery i mieć przynajmniej dwie małe litery zaraz po. 'Kasprowicza' to nazwisko, które zaczyna się od wielkiej litery, więc jest ok. 'Nowakowska-Kowalska' też jest good, bo ma segment po myślniku z kolejną wielką literą. Z 'Kowalskim' sprawa wygląda podobnie, bo również spełnia wymogi. Często ludzie mylą, co dokładnie oznacza wzór i co przynależne do niego. Wydaje się, że każde słowo z wielką literą pasuje, ale nie do końca tak to działa. Kluczowe jest, żeby zrozumieć dokładne zasady, bo wyrażenia regularne są bardzo precyzyjne i wymagają zwrócenia uwagi na detale. Dobrze jest też testować swoje wzory, by sprawdzić, czy działają w różnych sytuacjach.

Pytanie 3

Którą instrukcję pętli stosuje się do wykonania określonej (znanej z góry) liczby powtórzeń?

A.
foreach
B.
if
Twoja odpowiedź
C.
for
Poprawna odpowiedź
D.
switch
Niepoprawna odpowiedź. Pozostałe instrukcje nie realizują pętli o zadanej liczbie powtórzeń. switch wybiera jedną z gałęzi w zależności od wartości wyrażenia i wykonuje się raz, a nie wielokrotnie. foreach jest pętlą, ale przechodzi po kolejnych elementach tablicy - liczba obrotów zależy od jej rozmiaru, a nie od podanej liczby. if to instrukcja warunkowa, która tylko sprawdza warunek i nie powtarza kodu. Powtórzenie kodu znaną z góry liczbę razy zapewnia for z licznikiem, dlatego to ona jest poprawna.

Pytanie 4

Czego wymaga uruchomienie kodu JavaScript w przeglądarce?

A. debugowania
B. zamiany na kod maszynowy przez programistę
C. kompilowania
D. interpretowaniaTwoja odpowiedź
Poprawna odpowiedź. Kod JavaScript jest INTERPRETOWANY - przeglądarka czyta i wykonuje go na bieżąco, bez wcześniejszej kompilacji do osobnego pliku. Dlatego uruchomienie JS wymaga interpretowania.

Pytanie 5

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

A. nav { float: left; } aside { float: left; }Twoja odpowiedź
B. nav { float: right; } section { float: right; }Poprawna odpowiedź
C. aside {float: left; }
D. nav { float: right; }
Niepoprawna odpowiedź. W tym zadaniu kluczowe jest zrozumienie, jak naprawdę działa float, a nie tylko samo skojarzenie, że „left to lewo, right to prawo”. Wiele osób myśli, że wystarczy ustawić jeden element na lewo, drugi na prawo i wszystko magicznie się poukłada. W praktyce przeglądarka trzyma się bardzo konkretnych reguł: najpierw liczy kolejność elementów w HTML, potem dopiero stosuje float i układa je możliwie jak najwyżej i jak najbliżej odpowiedniej krawędzi.

Jeśli nada się float tylko dla aside albo tylko dla nav, to zmienia się ich pozycja, ale układ trzech bloków nie spełni warunku z zadania: aside i nav nie zamienią się miejscami z pozostawieniem section w środku. Przykładowo, samo float: left na aside niczego nie „zamieni”, bo element i tak pojawia się jako pierwszy w kodzie, więc będzie u góry, tylko że „przyklejony” do lewej. Z kolei ustawienie nav na prawą stronę bez odpowiedniego floatowania section prowadzi do sytuacji, gdzie section nadal zachowuje się jak normalny blok, zwykle ląduje pod elementami pływającymi albo obok nich w sposób mało przewidywalny dla początkującego.

Częsty błąd myślowy polega też na tym, że ktoś próbuje wszystkim elementom dać float: left, licząc na to, że przeglądarka „ułoży je po swojemu”. Wtedy jednak wszystkie te bloki ustawiają się w jednym kierunku, w kolejności z HTML, więc nie ma mowy o świadomym „zamienianiu miejsc”. Brak zrozumienia, że float wyjmuje element z normalnego przepływu i wpływa na to, jak kolejne elementy zawijają się wokół niego, prowadzi właśnie do takich błędnych odpowiedzi. Z mojego doświadczenia lepiej jest najpierw narysować sobie prosty schemat: w jakiej kolejności idą znaczniki i które z nich mają pływać w prawo, a które zostać w naturalnym układzie. Dopiero wtedy dobiera się konkretne deklaracje CSS. Takie myślenie przydaje się nie tylko przy float, ale też przy nauce flexboxa czy grida, gdzie kolejność w DOM i własności układu też grają ogromną rolę.

Pytanie 6

Jakie znaczniki <header>, <article>, <section>, <footer> są typowe dla języka?

A. HTML 4.01 Transitional
B. XHTML 1.1
C. HTML5Poprawna odpowiedź
D. HTML 4.01 StrictTwoja odpowiedź
Niepoprawna odpowiedź. Wybierając XHTML 1.1, HTML 4.01 Strict lub HTML 4.01 Transitional, można nie dostrzegać kluczowych różnic między tymi standardami a HTML5. XHTML 1.1 jest bardziej restrykcyjną wersją HTML, która wprowadza zasady XML, co skutkuje tym, że wszystkie elementy muszą być poprawnie zagnieżdżone i zamknięte. Choć XHTML wprowadza pewne nowe możliwości, nie oferuje semantycznych znaczników, które są dostępne w HTML5, co ogranicza jego użyteczność w kontekście nowoczesnych aplikacji webowych. HTML 4.01 Strict i HTML 4.01 Transitional to starsze standardy, które również nie zawierają semantycznych znaczników. Standard Strict wymagał ścisłego przestrzegania reguł HTML, co mogło być uciążliwe dla deweloperów, natomiast Transitional wprowadzał pewne elementy przestarzałe, co nie sprzyjało dążeniu do czystego i nowoczesnego kodu. Użycie starszych standardów skutkuje brakiem możliwości implementacji nowoczesnych funkcji i ogranicza dostępność treści dla użytkowników oraz robotów wyszukiwarek. W związku z tym, opieranie się na tych technologiach jest nieadekwatne w kontekście obecnych wymagań webowych, które preferują semantykę, dostępność i zgodność z nowoczesnymi standardami. Brak zrozumienia ewolucji HTML może prowadzić do błędnych praktyk w tworzeniu stron internetowych, co w dłuższej perspektywie może wpłynąć na ich użyteczność oraz widoczność w wyszukiwarkach.

Pytanie 7

Tabela samochody zawiera poniższe rekordy.

idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
Po wykonaniu podanego zapytania SQL, jakie dane zostaną zwrócone?
SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel";
A. opel zafira; opel insignia
B. opel zafiraTwoja odpowiedź
C. zafiraPoprawna odpowiedź
D. zafira; insignia
Niepoprawna odpowiedź. W tym zapytaniu trzeba bardzo dokładnie rozdzielić dwie sprawy: filtrowanie rekordów i wybór kolumn do wyświetlenia. Warunek WHERE rocznik > 2017 AND marka = 'opel' nie oznacza, że należy pokazać wszystkie ople z tabeli. Operator AND wymaga spełnienia obu warunków naraz, więc opel insignia z rocznika 2017 odpada, bo 2017 nie jest większe od 2017. To drobny detal, ale w SQL znak > jest ścisły, czyli nie obejmuje wartości równej. Gdyby miało przejść także 2017, trzeba by użyć rocznik >= 2017. Częstym błędem jest też dopisywanie do wyniku marki, na przykład traktowanie wyniku jako „opel zafira”. Tymczasem SELECT model jasno mówi, że zwracana jest tylko kolumna model, bez kolumny marka. Baza danych nie dopisuje automatycznie innych pól tylko dlatego, że były użyte w warunku WHERE. Podobnie wynik „zafira; insignia” bierze się zwykle z zauważenia marki opel, ale pominięcia ograniczenia na rocznik. Natomiast „opel zafira; opel insignia” miesza oba błędy naraz: pokazuje zbyt wiele rekordów oraz zbyt wiele kolumn. Z mojego doświadczenia najlepiej analizować takie zapytanie etapami: najpierw odfiltrować wiersze po roczniku, potem po marce, a dopiero na końcu spojrzeć, co jest w SELECT. Tak działa to też w realnych aplikacjach, np. przy wyszukiwarkach ofert, raportach i panelach administracyjnych.

Pytanie 8

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElement('p');
B. getElementById('p1');
C. getElementByClassName('p.1')[0];Twoja odpowiedź
D. getElementByTagName('p')[0];Poprawna odpowiedź
Niepoprawna odpowiedź. Wariant getElement('p') jest niepoprawny, ponieważ nie istnieje w JavaScript żadna funkcja o takiej nazwie. Odwoływanie się do elementów DOM w JavaScript wymaga stosowania precyzyjnych i zgodnych z dokumentacją metod, takich jak getElementById, getElementsByTagName czy querySelector. Kolejna opcja, getElementById('p1'), jest błędna w kontekście tego pytania, ponieważ getElementById wymaga podania unikalnego identyfikatora ID, który w tym przypadku nie został określony w kodzie HTML. Użycie tej metody odnosiłoby się do elementu posiadającego atrybut id równy 'p1', co nie pasuje do przedstawionego kodu. Z kolei getElementByClassName('p.1') jest niepoprawne z kilku powodów. Po pierwsze, funkcja ta szuka elementów na podstawie klasy, a w kodzie HTML nie ma klasy o nazwie 'p.1'. Po drugie, format 'p.1' sugeruje błędne użycie znaków, ponieważ kropka jest separatorem w nazwach klas, a nie ich częścią. Poprawne odwołanie do elementu pierwszego paragrafu wymaga zastosowania jednej z metod iterujących po elementach, jak getElementsByTagName, która zwraca listę elementów o danym tagu, a następnie użycia indeksowania, aby precyzyjnie wskazać pierwszy element tej listy. Zrozumienie tych różnic i odpowiednie stosowanie metod JavaScript jest kluczowe dla efektywnego zarządzania elementami DOM i tworzenia dynamicznych stron WWW. Zwracanie uwagi na poprawne identyfikatory, klasy i struktury metod to fundament przy pracy z JavaScript i DOM, który pozwala na uniknięcie wielu powszechnie popełnianych błędów.

Pytanie 9

Co powinno znaleźć się w dokumentacji TECHNICZNEJ aplikacji (dla programisty)?

A. instrukcja obsługi krok po kroku dla użytkownika
B. opis algorytmów i struktury kodu źródłowegoPoprawna odpowiedź
C. opis funkcji z perspektywy osoby obsługującej program
D. przewodnik pierwszego uruchomienia dla klientaTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe treści należą do dokumentacji UŻYTKOWNIKA. Instrukcja obsługi krok po kroku, przewodnik pierwszego uruchomienia i opis funkcji „z perspektywy obsługującego” są pisane dla użytkownika końcowego, a nie programisty. Dokumentacja techniczna zawiera opis algorytmów i struktury kodu źródłowego.

Pytanie 10

Kanał alfa jest wykorzystywany do określenia

A. wybranego fragmentu grafiki obiektu
B. podstawowych właściwości obiektu graficznego
C. przezroczystości grafiki obiektuTwoja odpowiedź
D. jasności oraz kontrastu barw
Poprawna odpowiedź. Kanał alfa w grafice komputerowej odnosi się do przezroczystości obiektów graficznych, co jest kluczowym elementem w zarządzaniu warstwami i efektami wizualnymi. Przezroczystość pozwala na tworzenie złożonych kompozycji, gdzie jeden obiekt może częściowo lub całkowicie ukrywać inny. Funkcja ta jest niezwykle istotna w aplikacjach graficznych, takich jak Photoshop czy GIMP, które obsługują kanały alfa w formatach obrazów takich jak PNG. Umożliwia to projektantom łatwe łączenie zdjęć i grafik, zachowując ich naturalną przezroczystość. W standardzie RGBA, kanał alfa przyjmuje wartości od 0 (pełna przezroczystość) do 255 (pełna nieprzezroczystość), co pozwala na precyzyjne dostosowanie efektów wizualnych. Dobre praktyki sugerują, aby zrozumieć działanie kanału alfa, aby efektywnie zarządzać przezroczystością i wpływać na postrzeganie wizualne w projektach graficznych, co jest szczególnie istotne w branży projektowania interfejsów użytkownika oraz gier komputerowych.

Pytanie 11

Która deklaracja w C++ przyjmuje argument typu RZECZYWISTEGO i zwraca wynik typu CAŁKOWITEGO?

A.
float fun1(int a);
Twoja odpowiedź
B.
void fun1(int a);
C.
int fun1(float a);
Poprawna odpowiedź
D.
float fun1(void a);
Niepoprawna odpowiedź. Typ przed nazwą to typ ZWRACANY, a w nawiasie jest typ ARGUMENTU. void fun1(int a) nic nie zwraca i bierze całkowity. float fun1(int a) ma odwrotnie - zwraca rzeczywisty, bierze całkowity. float fun1(void a) jest błędna. Zwraca całkowity, bierze rzeczywisty: int fun1(float a);.

Pytanie 12

Jak wygląda instrukcja przypisania wartości do elementu tablicy w języku JavaScript względem tablicy?

Tablica['technik'] = 'informatyk';
A. statycznej
B. numerycznejTwoja odpowiedź
C. asocjacyjnejPoprawna odpowiedź
D. wielowymiarowej
Niepoprawna odpowiedź. Wszystkie inne odpowiedzi są błędne z kilku kluczowych powodów. Statyczna tablica oznaczałaby, że jej rozmiar i elementy są ustalone podczas kompilacji i nie mogą być zmieniane w trakcie działania programu. W JavaScript tablice są dynamiczne, co w pełni przeczy koncepcji statyczności, ponieważ można dodawać, usuwać lub modyfikować elementy w trakcie działania programu. Numeryczne tablice w JavaScript odnoszą się do tablic, które są indeksowane przy użyciu liczb całkowitych. Choć tablice w JavaScript mają domyślnie numeryczną indeksację, w podanym przykładzie użycie stringa jako indeksu wskazuje na typ obiektu asocjacyjnego, a nie numerycznego. Wielowymiarowa tablica to pojęcie, które odnosi się do tablic zawierających inne tablice jako elementy, tworząc struktury o wielu wymiarach. Przykład 'Tablica[\'technik\'] = \'informatyk\';' nie tworzy wielowymiarowej tablicy, lecz jedynie dodaje nowy klucz do obiektu, a nie nową tablicę jako element. Reasumując, żadna z tych odpowiedzi nie zgadza się z właściwym zastosowaniem tablicy jako obiektu asocjacyjnego w JavaScript, co jest kluczem do zrozumienia elastyczności tego języka.

Pytanie 13

Który zapis w dokumencie HTML połączy stronę z zewnętrznym arkuszem stylów style.css?

A.
<link rel="stylesheet" href="/style.css">
Poprawna odpowiedź
B.
<a src="/style.css">
Twoja odpowiedź
C.
<link rel="stylesheet' src="/style.css">
D.
<a href="/style.css">
Niepoprawna odpowiedź. Pozostałe zapisy są błędne. <link> używa atrybutu href, a nie src (do tego w jednym wariancie jest niedomknięty cudzysłów). <a> tworzy hiperłącze, a nie dołącza arkusza stylów. Arkusz podłącza <link rel="stylesheet" href="/style.css">.

Pytanie 14

Jakie oprogramowanie służy do obróbki dźwięku?

A. AudacityPoprawna odpowiedź
B. Winamp
C. Brasero
D. RealPlayerTwoja odpowiedź
Niepoprawna odpowiedź. Wybór Brasero, Winampa czy RealPlayera jako programów do edycji dźwięku jest błędny, ponieważ każdy z nich pełni inną funkcję, która nie obejmuje zaawansowanej edycji audio. Brasero to program do nagrywania płyt, który umożliwia użytkownikom tworzenie obrazów dysków oraz nagrywanie danych na nośnikach optycznych. Jego głównym celem jest zarządzanie danymi, a nie edytowanie dźwięku, co czyni go nieodpowiednim w kontekście tego pytania. Winamp, z kolei, był popularnym odtwarzaczem multimedialnym, który skoncentrował się na odtwarzaniu plików audio i wideo, a jego funkcje ograniczały się do podstawowej obsługi dźwięku, bez zaawansowanych możliwości obróbczych. RealPlayer również skupia się głównie na odtwarzaniu materiałów wideo i audio, a jego funkcje edycyjne są bardzo ograniczone, co sprawia, że nie jest to narzędzie odpowiednie do poważnej edycji dźwięku. Użytkownicy mogą mylić te aplikacje z programami do edycji dźwięku z uwagi na ich popularność, jednak kluczowe jest zrozumienie różnicy między odtwarzaniem a edytowaniem audio. Właściwe podejście do wyboru narzędzi audio wymaga znajomości specyfikacji i zastosowania danego programu, co jest fundamentem w branży audio oraz w świecie produkcji dźwięku.

Pytanie 15

Instrukcja w języku SQL

GRANT ALL PRIVILEGES ON klienci TO pracownik
A. Przenosi uprawnienia z grupy klienci na użytkownika pracownikTwoja odpowiedź
B. Przyznaje uprawnienia grupie klienci do tabeli pracownik
C. Przyznaje wszystkie uprawnienia do tabeli klienci użytkownikowi pracownikPoprawna odpowiedź
D. Odbiera wszystkie uprawnienia pracownikowi do tabeli klienci
Niepoprawna odpowiedź. Wszystkie pozostałe odpowiedzi zawierają błędne interpretacje polecenia GRANT w SQL. Przykładowo, pierwsza odpowiedź sugeruje, że polecenie skopiuje uprawnienia z grupy klienci na użytkownika pracownik, co jest mylne. GRANT nie umożliwia kopiowania uprawnień, lecz ich nadawanie, co oznacza, że uprawnienia muszą być przypisane bezpośrednio do konkretnego użytkownika lub roli. Kolejne stwierdzenie, że polecenie odbiera uprawnienia pracownikowi do tabeli klienci, jest całkowicie nieprawdziwe; GRANT nie ma funkcji odbierania uprawnień, to polecenie służy wyłącznie ich przyznawaniu. Istnieje osobne polecenie REVOKE, które służy do odbierania już przyznanych uprawnień. Ostatnia odpowiedź, która mówi o nadawaniu uprawnień grupie klienci do tabeli pracownik, jest również nieprawidłowa, ponieważ polecenie odnosi się do tabeli klienci, a nie do pracownika jako grupy. W kontekście zarządzania bazami danych, zrozumienie, jak działają uprawnienia i jakie polecenia są odpowiedzialne za ich przyznawanie oraz odbieranie, jest kluczowe dla zapewnienia bezpieczeństwa i spójności danych. Użytkownicy często mylą funkcje GRANT i REVOKE, co prowadzi do błędów w konfiguracji uprawnień i potencjalnych luk w zabezpieczeniach.

Pytanie 16

Po przeprowadzeniu walidacji dokumentu HTML pojawił się błąd przedstawiony na zrzucie. Jak można go usunąć?

Ilustracja do pytania
A. dodać atrybut alt do grafikiTwoja odpowiedź
B. w znaczniku img zmienić nazwę atrybutu src na alt
C. zmienić zapis </h1> na <h1>
D. w znaczniku img zmienić nazwę atrybutu src na href
Poprawna odpowiedź. Atrybut alt w znaczniku img jest kluczowym elementem poprawnego i dostępnego kodu HTML. Służy on do dostarczenia tekstowego opisu zawartości obrazu co jest niezwykle ważne dla osób korzystających z technologii asystujących takich jak czytniki ekranu. Dodanie atrybutu alt poprawia również indeksowanie strony przez wyszukiwarki internetowe co wpływa na SEO. Zgodnie z wytycznymi W3C oraz WCAG każda grafika powinna posiadać ten atrybut aby zapewnić dostępność treści. Przykładowo jeśli obraz przedstawia logo firmy alt powinien zawierać nazwę firmy. W przypadku obrazów dekoracyjnych atrybut alt może być pusty co sygnalizuje że obraz nie niesie istotnej informacji. Takie praktyki wspierają budowanie witryn przyjaznych i zgodnych ze standardami co jest nie tylko wymogiem prawnym w wielu jurysdykcjach ale także dobrym nawykiem programistycznym. W związku z tym dodanie atrybutu alt jest nie tylko środkiem do eliminacji błędu walidacji ale również krokiem w stronę odpowiedzialnego tworzenia treści internetowych.

Pytanie 17

Aby uzyskać płynne przejście pomiędzy dwoma kolorami w grafice, należy zastosować:

A. antyaliasing
B. pikselizację
C. gradientTwoja odpowiedź
D. filtr szumu
Poprawna odpowiedź. Gradient to płynne, stopniowe przejście pomiędzy co najmniej dwoma kolorami. Definiuje się w nim kolory skrajne (i ewentualnie pośrednie) oraz kierunek przejścia - liniowy lub promienisty. Używa się go do teł, przycisków i efektów graficznych, a w CSS dostępny jest m.in. jako linear-gradient. Dlatego do uzyskania płynnego przejścia barw służy gradient.

Pytanie 18

Czym różnią się polecenia DROP TABLE i TRUNCATE TABLE?

A. oba usuwają tabelę z zawartością, ale TRUNCATE da się cofnąć
B. oba usuwają tylko zawartość, ale tylko DROP TABLE da się cofnąćTwoja odpowiedź
C. DROP TABLE usuwa tabelę, a TRUNCATE TABLE zmienia w niej dane wg warunku
D. DROP TABLE usuwa tabelę, a TRUNCATE TABLE usuwa wszystkie dane, zostawiając pustą tabelęPoprawna odpowiedź
Niepoprawna odpowiedź. Trzeba odróżnić usunięcie tabeli od jej opróżnienia. TRUNCATE nie usuwa danych „wg warunku” (to robi DELETE ... WHERE) - kasuje WSZYSTKIE wiersze naraz. DROP nie zostawia pustej tabeli, lecz usuwa ją w całości. Różnica: DROP TABLE usuwa tabelę, a TRUNCATE TABLE tylko jej zawartość, zostawiając pustą strukturę.

Pytanie 19

Który atrybut kolumny zapewnia automatyczne nadawanie kolejnych, unikalnych wartości (np. dla klucza głównego)?

A.
NOT NULL
Twoja odpowiedź
B.
AUTO_INCREMENT
Poprawna odpowiedź
C.
DEFAULT
D.
UNIQUE
Niepoprawna odpowiedź. Pozostałe atrybuty pełnią inne role. NOT NULL wymusza, by pole nie było puste, lecz żadnej wartości nie tworzy. DEFAULT wstawia ustaloną z góry wartość domyślną, gdy nie podano innej - ta sama dla każdego wiersza, a nie rosnący numer. UNIQUE gwarantuje, że wartości w kolumnie się nie powtórzą, ale to programista musi je dostarczyć. Automatyczne generowanie kolejnych liczb zapewnia AUTO_INCREMENT, dlatego to on jest poprawny.

Pytanie 20

Który zapis znacznika <meta> jest poprawny pod względem użytych atrybutów?

A.
<meta name="description" content="...">
Poprawna odpowiedź
B.
<meta title="Strona dla hobbystów">
Twoja odpowiedź
C.
<meta background="blue">
D.
<meta name="!DOCTYPE">
Niepoprawna odpowiedź. Pozostałe zapisy używają nieprawidłowych atrybutów. <meta name="!DOCTYPE"> myli <meta> z deklaracją typu dokumentu i nie ma content. <meta title="..."> i <meta background="blue"> stosują atrybuty title i background, które do <meta> nie należą. Poprawny jest <meta name="description" content="...">.

Pytanie 21

W języku HTML zapisano formularz. Który z efektów działania poniższego kodu zostanie wyświetlony przez przeglądarkę, zakładając, że w pierwsze pole użytkownik wpisał wartość "Przykładowy tekst"?

<form>
    <textarea rows="3" cols="30"></textarea><br>
    <input type="checkbox"> Opcja1<br>
    <input type="checkbox"> Opcja2
</form>
Ilustracja do pytania
A. Efekt 3.
B. Efekt 1.
C. Efekt 2.Twoja odpowiedź
D. Efekt 4.
Poprawna odpowiedź. Twoja odpowiedź jest poprawna. Wybrałeś odpowiedź 'Efekt 2', która jest zgodna z zachowaniem formularza HTML w opisanym scenariuszu. Formularz zawiera pole tekstowe i dwa pola typu checkbox. Kiedy wpiszesz do pola tekstowego wartość 'Przykładowy tekst' i wyświetlisz formularz w przeglądarce, zobaczysz ten tekst w polu tekstowym oraz dwa pola wyboru typu checkbox poniżej z etykietami 'Opcja1' i 'Opcja2'. To dokładnie taki układ, co pokazuje Efekt 2. Tworzenie formularzy HTML to ważna umiejętność w projektowaniu stron internetowych. Pozwalają one na interakcję z użytkownikiem oraz zbieranie od niego informacji. Pamiętaj, że dobry formularz powinien być intuicyjny w użyciu i jasno prezentować swoje funkcje użytkownikowi.

Pytanie 22

Jaką funkcją agregującą można uzyskać ilość rekordów?

A. NUMBER
B. COUNTPoprawna odpowiedź
C. AVG
D. SUMTwoja odpowiedź
Niepoprawna odpowiedź. Wybór funkcji SUM, AVG czy NUMBER nie jest najlepszy, jeśli chodzi o zliczanie rekordów. Funkcja SUM sumuje wartości w kolumnach, a nie zlicza rekordy. Na przykład, zapytanie SELECT SUM(wartość) FROM zamówienia pokaże nam całkowitą wartość zamówień, ale nie powie, ile ich było. Funkcja AVG natomiast oblicza średnią, więc też nie nadaje się do liczenia rekordów. Używając zapytania SELECT AVG(wiek) FROM pracownicy dostaniemy średni wiek, ale nie wiedząc, ile mamy pracowników. Co do NUMBER, to w SQL nie jest nawet standardową funkcją, więc może być tu jakieś nieporozumienie. Często mylimy te funkcje i to prowadzi do złych analiz. Zrozumienie, jakie są różnice między nimi, to klucz do robienia dobrych analiz danych. Dlatego warto zwracać na to uwagę.

Pytanie 23

Która funkcja PHP sortuje tablicę asocjacyjną według KLUCZY?

A.
asort()
Twoja odpowiedź
B.
rsort()
C.
ksort()
Poprawna odpowiedź
D.
sort()
Niepoprawna odpowiedź.asort() sortuje po WARTOŚCIACH (zachowując klucze), sort() po wartościach z resetem kluczy, a rsort() to samo malejąco. Po kluczach sortuje ksort().

Pytanie 24

Co oznacza jednostka ppi (pixels per inch)?

A. określa rozdzielczość grafiki wektorowej
B. określa rozdzielczość obrazów rastrowychPoprawna odpowiedź
C. to parametr cyfrowych urządzeń pomiarowych
D. określa rozdzielczość wydruków drukarek i ploterówTwoja odpowiedź
Niepoprawna odpowiedź. Pozostałe opisy mylą ppi z innymi parametrami. Rozdzielczość WYDRUKU drukarek i ploterów wyraża się w dpi (punkty na cal), a nie ppi. Grafika WEKTOROWA nie ma pikseli, więc nie opisuje się jej w ppi. To też nie parametr urządzeń pomiarowych. ppi określa rozdzielczość obrazów rastrowych.

Pytanie 25

W skrypcie JavaScript operatory: ||, && są klasyfikowane jako operatorzy

A. przypisania
B. logicznymiPoprawna odpowiedź
C. bitoweTwoja odpowiedź
D. arytmetyczne
Niepoprawna odpowiedź. Wybierając odpowiedzi z grupy operatorów arytmetycznych, bitowych czy przypisania, można wprowadzić się w błąd, co do funkcji operatorów || i && w JavaScript. Operatory arytmetyczne, takie jak +, -, *, /, służą do wykonywania obliczeń matematycznych na liczbach, a ich zastosowanie jest zupełnie inne niż w przypadku operatorów logicznych. Operator bitowy, jak np. &, działa na poziomie bitów w liczbach binarnych, co również różni się od operacji zwracających wartość logiczną. Z kolei operator przypisania = jest używany do przypisywania wartości zmiennym, co nie ma związku z oceną warunków. Typowe błędy myślowe, które prowadzą do nieprawidłowych odpowiedzi, wynikają z mylenia kontekstu użycia operatorów w programowaniu. Ważne jest, aby rozumieć, w jakim celu stosuje się poszczególne grupy operatorów i jak wpływają one na logikę programu. Przyjmowanie błędnych założeń dotyczących funkcji operatorów może prowadzić do poważnych błędów w kodzie, dlatego zaleca się przyswojenie podstawowych zasad dotyczących różnych operatorów i ich zastosowań w praktyce programistycznej. Znajomość tych różnic jest kluczowa dla realizacji skutecznych i poprawnych programów.

Pytanie 26

W języku CSS atrybut font-size przyjmuje, zgodnie z nazwami, wartości

A. zaledwie big oraz smallTwoja odpowiedź
B. jedynie small, smaller, large, larger
C. wyłącznie small, medium, large
D. z zestawu xx-small, x-small, medium, large, x-large, xx-largePoprawna odpowiedź
Niepoprawna odpowiedź. W kontekście właściwości font-size w CSS, niektóre odpowiedzi zawierają błędne założenia, które mogą prowadzić do niepełnego zrozumienia możliwości tej właściwości. Warto zauważyć, że ograniczenie się jedynie do wartości small, smaller, large i larger ignoruje szerszy zestaw dostępnych opcji, które są kluczowe dla dokładnego dostosowania rozmiaru tekstu. Wartości takie jak medium, small, and large są jedynie częścią zdefiniowanego standardu, który obejmuje również bardziej szczegółowe rozmiary, takie jak xx-small, x-small, x-large oraz xx-large. Użytkownicy często mylą pojęcia związane z nazwami wartości, co prowadzi do mniejszych możliwości stylizacji. Przykładem jest niewłaściwe skupienie się na biedniejszych zasobach słownych, takich jak big i small, które nie są standardowymi wartościami CSS. Taki błąd myślowy ogranicza możliwość pełnego wykorzystania CSS, co jest kluczowe dla tworzenia nowoczesnych, responsywnych stron internetowych. W praktyce, pełne zrozumienie i umiejętność wykorzystania wszystkich dostępnych wartości w CSS nie tylko ułatwia pracę nad projektem, ale również przyczynia się do lepszej dostępności i doświadczeń użytkowników. Zastosowanie poprawnych terminów i wartości jest niezbędne, aby zachować profesjonalizm w projektowaniu stron.

Pytanie 27

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

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

Pytanie 28

Dla przedstawionego fragmentu kodu

<img src="kwiat.jpg alt="kwiat">
walidator HTML zwróci błąd, ponieważ
A. nie zamknięto cudzysłowuPoprawna odpowiedź
B. użyto nieznanego atrybutu alt
C. nie odnaleziono pliku kwiat.jpgTwoja odpowiedź
D. użyto niewłaściwego znacznika do wyświetlenia grafiki
Niepoprawna odpowiedź. Z tego, co widzę, użycie znacznika do wyświetlenia obrazu jest, wiesz, jakby nie do końca poprawne, bo <img> jest standardem w HTML. Więc nie można tego traktować jako błąd. A co do atrybutu alt - on jest ważny dla dostępności i SEO, więc nie można go bagatelizować. Pomaga on osobom, które nie widzą obrazów, dowiedzieć się, co one przedstawiają. Jak chodzi o ten problem z plikiem kwiat.jpg, to jest sprawa bardziej związaną ze strukturą plików na serwerze i nie do końca dotyczy samej składni HTML. Wiesz, błędy w HTML mogą mieć różne przyczyny, a żeby je zrozumieć, trzeba znać nie tylko składnię, ale i kontekst, w którym ten kod działa. Dlatego warto przestrzegać standardów i dobrych praktyk, żeby uniknąć typowych problemów w przyszłości.

Pytanie 29

W stylu CSS ustalono obramowanie pojedyncze, które ma następujące kolory dla krawędzi:

border: solid 1px; border-color: red blue green yellow;
A. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta
B. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółtaPoprawna odpowiedź
C. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta
D. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółtaTwoja odpowiedź
Niepoprawna odpowiedź. Przy definiowaniu obramowania za pomocą CSS warto zrozumieć jak działa właściwość border-color. Gdy podajemy cztery wartości kolorów w tej właściwości dotyczą one krawędzi w kolejności zgodnej ze wskazówkami zegara: górna prawa dolna i lewa. To oznacza że pierwsza wartość odnosi się do krawędzi górnej druga do prawej trzecia do dolnej a czwarta do lewej. Częstym błędem jest przypisywanie kolorów w innej kolejności co prowadzi do błędnych interpretacji i niewłaściwego wyświetlania na stronie. Należy również zwrócić uwagę na to że brak zrozumienia tej kolejności może skutkować niespójnym wyglądem różnych części interfejsu co obniża jakość projektu. W praktyce warto przetestować różne konfiguracje obramowań aby upewnić się że interfejs jest nie tylko estetyczny ale i funkcjonalny. Właściwe stosowanie CSS do stylizacji obramowań jest kluczowe dla tworzenia profesjonalnych i atrakcyjnych stron internetowych co jest uznawane za dobrą praktykę w branży.

Pytanie 30

Tabele: Studenci, Zapisy, Zajecia są powiązane relacją. Aby wybrać jedynie nazwiska studentów oraz odpowiadające im idZajecia dla studentów z grupy 15, należy wydać kwerendę

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;Twoja odpowiedź
B. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;Poprawna odpowiedź
C. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
D. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
Niepoprawna odpowiedź. Pierwszym istotnym problemem w niepoprawnych zapytaniach jest brak prawidłowego połączenia tabel na właściwych kluczach. W relacyjnych bazach danych, aby sensownie połączyć dane z różnych tabel, należy wykorzystać klucze główne i obce, które jasno definiują powiązania między obiektami. Jeśli zapomni się o warunku JOIN albo połączy się tabele po błędnych kolumnach (na przykład próbując połączyć idStudenta z idZajecia lub pomijając warunek ON), baza zwróci błędne wyniki lub wręcz nie pozwoli wykonać zapytania. To typowy błąd początkujących, którzy nie zawsze rozumieją, jak bardzo ważne jest precyzyjne określenie relacji – w rzeczywistych bazach danych relacji jest wiele, a niewłaściwe powiązanie może prowadzić do powstawania kartuzjańskiego iloczynu, czyli powielania danych bez rzeczywistego sensu. Brak filtru WHERE grupa = 15 skutkuje wyciągnięciem danych dla wszystkich studentów, co może być ogromnym problemem przy dużych bazach i całkowicie rozmija się z celem kwerendy. Moim zdaniem, wiele osób zapomina, że filtrowanie to podstawa – bez tego, szczególnie przy produkcyjnych bazach, można zarówno błędnie interpretować wyniki, jak i mocno przeciążyć system niepotrzebnym ruchem. Takie błędy wynikają często z braku systematycznego podejścia do projektowania zapytań i nieuważnego czytania struktury tabel. Warto od razu przyzwyczajać się do pracy zgodnie z konwencjami, bo to przekłada się na bezpieczeństwo, wydajność i poprawność działania całego systemu. W praktyce – nawet drobny błąd w składni JOIN lub brak filtrowania na kluczowej kolumnie może wywołać lawinę problemów, zwłaszcza gdy kwerenda staje się częścią większej aplikacji biznesowej lub raportu dla zarządu.

Pytanie 31

Który znacznik umieszcza się w sekcji <body> dokumentu HTML?

A.
<h2>
Poprawna odpowiedź
B.
<title>
Twoja odpowiedź
C.
<link>
D.
<meta>
Niepoprawna odpowiedź. Pozostałe znaczniki należą do <head> (metadane dokumentu). <link> dołącza zasoby (np. CSS), <title> ustawia tytuł karty, a <meta> podaje metadane. W <body> umieszcza się treść, np. <h2>.

Pytanie 32

Jaką funkcję w języku PHP należy wykorzystać, aby nawiązać połączenie z bazą danych o nazwie zwierzaki?

A. $polacz = sql_connect('localhost', 'root','','zwierzaki')
B. $polacz = mysqli_connect('localhost', 'root','','zwierzaki')Twoja odpowiedź
C. $polacz = server_connect('localhost', 'root','','zwierzaki')
D. $polacz = db_connect('localhost', 'root','','zwierzaki')
Poprawna odpowiedź. Odpowiedź $polacz = mysqli_connect('localhost', 'root','','zwierzaki'); jest poprawna, ponieważ używa funkcji mysqli_connect, która jest standardowym sposobem nawiązywania połączenia z bazą danych MySQL w PHP. Funkcja ta pozwala na określenie hosta, użytkownika, hasła oraz nazwy bazy danych, co jest niezbędne do skutecznego nawiązania połączenia. Mysqli jest rozszerzeniem PHP przeznaczonym do pracy z bazami danych MySQL, wprowadzającym nowe funkcjonalności w porównaniu do starszego mysql. Ponadto, mysqli_connect obsługuje zarówno połączenia proceduralne, jak i obiektowe, co daje programistom elastyczność w wyborze stylu programowania. Przykładowo, po poprawnym połączeniu, można wykonywać zapytania do bazy danych w sposób zorganizowany, co sprzyja tworzeniu aplikacji webowych. Należy również pamiętać o dobrych praktykach, takich jak użycie try-catch do obsługi błędów przy nawiązywaniu połączenia, co zapewnia stabilność i niezawodność aplikacji. Stosowanie mysqli jest obecnie zalecane w dokumentacji PHP, a także w praktyce branżowej.

Pytanie 33

W algorytmie jeden z bloków zawiera akcję „Wypisz liczbę”. Jaki kształt może mieć ta akcja?

Ilustracja do pytania
A. Kształt 1Poprawna odpowiedź
B. Kształt 2
C. Kształt 4Twoja odpowiedź
D. Kształt 3
Niepoprawna odpowiedź. W algorytmach i schematach blokowych każdy kształt ma swoje specyficzne zastosowanie i znaczenie, co jest kluczowe dla zrozumienia i projektowania schematów przepływu. Użycie nieodpowiedniego kształtu może prowadzić do nieporozumień i błędnej interpretacji działania algorytmu. Prostokąt, często wybierany przez początkujących, jest symbolem operacji obliczeniowej, a nie wypisywania danych. Użycie go zamiast równoległoboku może sugerować, że w danym miejscu algorytm wykonuje przetwarzanie danych, co wprowadza w błąd. Romb, z kolei, jest używany do reprezentowania decyzji, czyli punktu, w którym algorytm wybiera jedną z kilku możliwych ścieżek na podstawie określonego warunku. Użycie rombu do opisania operacji wypisywania mogłoby sugerować, że wybieramy między różnymi możliwościami wyjścia danych, co byłoby błędne. Zastosowanie specjalnych kształtów, takich jak trapez, też jest nietypowe i nie znalazło umocowania w standardach. Właściwe użycie symboli to część dobrych praktyk w projektowaniu schematów, co ułatwia współpracę i zrozumienie pomiędzy programistami oraz ułatwia rozpoznanie błędów we wczesnym etapie projektowania. Zrozumienie tego aspektu pozwala na poprawę jakości tworzonych algorytmów i ich zgodności z ogólnymi standardami branżowymi ISO/IEC 19515:2017.

Pytanie 34

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. tablicy z 50 elementami o składowych typu łańcuchowego
B. tablicy z 50 elementami o składowych strukturalnychTwoja odpowiedź
C. struktury z 50 elementami o składowych typu tablicowego
D. klasy z 50 elementami typu tablicowego
Poprawna odpowiedź. Wybór tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 35

Na stronie www znajduje się formularz, do którego należy zaimplementować następujące funkcje: walidacja: podczas wypełniania formularza w czasie rzeczywistym sprawdzana jest poprawność danych, oraz przesyłanie danych: po wypełnieniu formularza i jego zatwierdzeniu informacje są przesyłane do bazy danych na serwerze. Aby wprowadzić tę funkcjonalność w najprostszy sposób, trzeba zapisać

A. walidację i przesyłanie danych w języku JavaScriptTwoja odpowiedź
B. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHPPoprawna odpowiedź
C. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
D. walidację i przesyłanie danych w języku PHP
Niepoprawna odpowiedź. Mówiąc szczerze, podejście, które zakłada walidację i przesyłanie danych tylko w PHP, to nie za bardzo dobry pomysł. Dlaczego? Bo każde weryfikowanie danych po stronie serwera wymaga przesyłania ich tam, co powoduje zbędne obciążenie. To z kolei może spowalniać interakcję z użytkownikiem, co jest frustrujące, zwłaszcza w przypadku większych formularzy. A walidacja w PHP i przesyłanie w JavaScript? Znowu nie jest to najlepsze rozwiązanie. Walidacja po stronie serwera nie jest natychmiastowa, więc użytkownik może czekać, co zazwyczaj nie jest fajne. Gdy ktoś weźmie niepoprawne dane, to musi czekać na odpowiedź serwera i to jest czasochłonne. Najlepiej łączyć walidację w JavaScript, bo to poprawia interakcję, a wysyłanie danych do serwera robić w PHP, bo on dba o bezpieczeństwo i kontakt z bazą danych. Takie rozdysponowanie zadań sprawia, że wszystko chodzi sprawnie i łatwiej to potem rozwijać, co jest zgodne z aktualnymi standardami.

Pytanie 36

Przedstawione zapytanie MySQL ma za zadanie

ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL;
A. zmienić nazwę kolumny w tabeli ksiazki.
B. usunąć kolumnę tytul z tabeli ksiazki.Twoja odpowiedź
C. zmienić typ kolumny tytul w tabeli ksiazki.Poprawna odpowiedź
D. dodać do tabeli ksiazki kolumnę tytul.
Niepoprawna odpowiedź. Zapytanie ALTER TABLE ksiazki MODIFY tytul VARCHAR(100) NOT NULL; często bywa mylone z innymi operacjami na strukturze tabeli, bo wszystkie tego typu polecenia wyglądają do siebie dość podobnie. Warto więc uporządkować, co ono dokładnie robi, a czego na pewno nie robi. W MySQL słowo kluczowe MODIFY służy do zmiany definicji istniejącej kolumny, czyli głównie jej typu danych, długości, atrybutów takich jak NOT NULL, domyślna wartość czy np. AUTO_INCREMENT. Kluczowe jest to, że nazwa kolumny pozostaje taka sama, modyfikujemy tylko jej właściwości techniczne.
Częsty błąd myślowy polega na wrzucaniu do jednego worka wszystkich operacji ALTER TABLE i zakładaniu, że każde takie polecenie może np. usuwać lub dodawać kolumny. Do usuwania kolumny służy jednak zupełnie inna składnia: ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny;. Tutaj nie ma słowa MODIFY, więc zapytanie z pytania na pewno nie usuwa kolumny tytul. Podobnie z dodawaniem nowej kolumny – używa się słowa kluczowego ADD, np. ALTER TABLE ksiazki ADD tytul VARCHAR(100);. W naszym przypadku kolumna tytul już musi istnieć, bo inaczej MODIFY zakończy się błędem.
Pojawia się też czasem przekonanie, że MODIFY zmienia nazwę kolumny. W MySQL do zmiany nazwy wykorzystuje się ALTER TABLE ... CHANGE stara_nazwa nowa_nazwa typ;, gdzie trzeba podać zarówno starą, jak i nową nazwę oraz pełną definicję typu. W poleceniu z zadania nazwa tytul występuje tylko raz i nigdzie nie ma nowej nazwy, więc nie ma tu mowy o zmianie nazwy, a jedynie o modyfikacji typu i atrybutu NOT NULL. Dobrą praktyką w pracy z SQL jest dokładne kojarzenie słów kluczowych: ADD – dodaj, DROP – usuń, CHANGE – zmień nazwę i definicję, MODIFY – zmień definicję bez ruszania nazwy. Mylenie tych pojęć prowadzi później do niepotrzebnych błędów w migracjach bazy, a czasem nawet do utraty danych, dlatego warto mieć te różnice naprawdę dobrze poukładane w głowie.

Pytanie 37

W tabeli podzespoly należy zaktualizować wartość pola URL na "toshiba.pl" dla wszystkich rekordów, w których pole producent jest równe TOSHIBA. Jak będzie wyglądała ta zmiana w języku SQL?

A. UPDATE podzespoly.producent='TOSHIBA' SET URL = 'toshiba.pl';
B. UPDATE podzespoly SET URL='toshiba.pl' WHERE producent='TOSHIBA';Poprawna odpowiedź
C. UPDATE producent='TOSHIBA' SET URL = 'toshiba.pl';
D. UPDATE podzespoly SET URL = 'toshiba.pl';Twoja odpowiedź
Niepoprawna odpowiedź. Wszystkie odpowiedzi, które nie zawierają poprawnej składni SQL, prowadzą do błędów w wykonywaniu aktualizacji. Przykładowo, pierwsze podejście do aktualizacji polega na usunięciu klauzuli WHERE, co skutkuje zaktualizowaniem wartości URL dla wszystkich rekordów w tabeli, a nie tylko dla tych, które dotyczą producenta 'TOSHIBA'. Taki błąd może prowadzić do masowej utraty danych, co jest niedopuszczalne w zarządzaniu bazami danych. W drugiej niepoprawnej odpowiedzi następuje zmiana w logicznym układzie zapytania, co prowadzi do błędu składniowego. Nie możemy zacząć od przypisania wartości do pola producent, a następnie ustawić URL; składnia aktualizacji wymaga innego porządku. Trzecia odpowiedź również jest niepoprawna, ponieważ sugeruje użycie kropki w odniesieniu do pola producent, co jest sprzeczne z konwencjami SQL. W SQL nie stosuje się kropki do oddzielania pól i tabeli w kontekście aktualizacji. Takie błędy składniowe mogą prowadzić do tego, że zapytanie nie zostanie wykonane, a użytkownik nie osiągnie zamierzonego efektu aktualizacji. Użycie niepoprawnej składni w SQL nie tylko ogranicza funkcjonalność, ale może również generować poważne problemy w zarządzaniu danymi.

Pytanie 38

Kolor Chartreuse przedstawiony w formie heksadecymalnej jako #7FFF00 odpowiada wartości RGB wynoszącej

A. rgb(192, 255, 0)
B. rgb(127, 255, 0)Poprawna odpowiedź
C. rgb(128, 255, 0)Twoja odpowiedź
D. rgb(64, 255, 0)
Niepoprawna odpowiedź. Analizując pozostałe odpowiedzi, można zauważyć, że każda z nich nieprawidłowo interpretuje wartości heksadecymalne koloru Chartreuse, co prowadzi do błędnych konwersji na model RGB. Na przykład, odpowiedź z rgb(64, 255, 0) błędnie interpretuje wartość czerwonego odcienia jako 64, podczas gdy w rzeczywistości wartość ta wynosi 127. Błąd ten wynika z nieprawidłowego przeliczenia heksadecymalnej wartości 7F na system dziesiętny, co może być spowodowane błędnym założeniem, że każdy z dwóch symboli heksadecymalnych oznacza jedną z dwóch składowych RGB. Podobnie, odpowiedzi rgb(128, 255, 0) oraz rgb(192, 255, 0) również nie zgadzają się z rzeczywistą wartością, co jest wynikiem niewłaściwego zrozumienia zasady konwersji. Wartości te są zbyt wysokie, co może sugerować, że osoba udzielająca tych odpowiedzi nie miała pełnej wiedzy o systemie kolorów. W praktyce, niepoprawne obliczenia lub pomyłki w konwersji kolorów mogą prowadzić do niezgodności w projektach graficznych, co w efekcie wpływa na estetykę oraz spójność wizualną. Dlatego kluczowe jest zrozumienie, że system heksadecymalny jest oparty na szesnastkowej reprezentacji kolorów, gdzie każdy kolor składa się z trzech wartości: czerwonej, zielonej i niebieskiej, a ich prawidłowe przeliczenie jest podstawą profesjonalnego projektowania.

Pytanie 39

W bazie danych wykonano poniższe polecenia dotyczące uprawnień użytkownika adam:

GRANT ALL PRIVILEGES ON klienci TO adam;
REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam;
Po wykonaniu tych instrukcji użytkownik adam uzyska dostęp do:
A. zmiany danych oraz przeglądania tabeli klienciTwoja odpowiedź
B. przeglądania tabeli klienci oraz dodawania do niej rekordów
C. usunięcia tabeli lub jej rekordówPoprawna odpowiedź
D. tworzenia tabeli klienci i modyfikowania w niej danych
Niepoprawna odpowiedź. Odpowiedzi, które sugerują, że <b>adam</b> nie ma uprawnień do usunięcia tabeli lub jej rekordów, mogą wynikać z niepełnego zrozumienia pojęcia uprawnień w bazach danych. Przede wszystkim, użytkownik z uprawnieniami ALL PRIVILEGES zyskuje pełny zestaw możliwości, co obejmuje również prawo do usuwania danych. W związku z tym, stwierdzenie, że użytkownik może tylko aktualizować dane i przeglądać tabelę, jest błędne. Ponadto, nieprawidłowe twierdzenie, że <b>adam</b> może tworzyć tabelę <b>klienci</b>, jest także mylące, ponieważ przydzielone uprawnienia dotyczą już istniejącej tabeli, a nie tworzenia nowych struktur. Użytkownik przyznany ALL PRIVILEGES na konkretnej tabeli nie ma automatycznie możliwości tworzenia nowych tabel w bazie danych; wymaga to oddzielnego przydziału uprawnień. Kluczowym błędem w myśleniu jest założenie, że uprawnienia administracyjne dotyczą jedynie wstawiania i przeglądania danych, podczas gdy tak naprawdę obejmują one również usuwanie. W praktyce, zarządzając uprawnieniami, należy jasno zdefiniować, jakie konkretne działania są dozwolone, aby zapewnić bezpieczeństwo bazy danych oraz uniknąć nieautoryzowanych modyfikacji. Dobre praktyki w zarządzaniu użytkownikami wskazują na potrzebę ograniczonego dostępu, co może ułatwić kontrolę nad danymi i zachować ich integralność.

Pytanie 40

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

void zamien(float &x, float &y) {
    float tmp;
    tmp = x;
    x = y;
    y = tmp;
}
A. Funkcja zwraca wartośćTwoja odpowiedź
B. Funkcja nie zwraca żadnej wartości
C. Funkcja ma dwa argumenty
D. Funkcja korzysta z parametrów przez referencję
Poprawna odpowiedź. Funkcja w języku C++ z deklaracją 'void' na początku oznacza, że nie zwraca żadnej wartości. Jest to zgodne z poprawną odpowiedzią nr 3. Tego typu funkcje używane są często w sytuacjach, gdy nie jest konieczne przekazywanie wyniku, a operacje są wykonywane na danych wejściowych. Deklaracja parametrów przez referencję 'float &x, float &y' pozwala na bezpośrednią modyfikację wartości przekazanych do funkcji zmiennych. Oznacza to, że wszelkie zmiany dokonane na tych parametrach wewnątrz funkcji są odzwierciedlane w zmiennych oryginalnych. Taka technika jest szeroko stosowana w programowaniu, aby zwiększyć efektywność i zmniejszyć ilość niepotrzebnych kopii danych. Funkcja 'zamien' ilustruje wymianę wartości dwóch zmiennych przy użyciu tymczasowej zmiennej 'tmp', co jest klasycznym podejściem do tego problemu programistycznego. Zachowanie funkcji bez zwracania wartości jest zgodne z zasadami projektowania funkcji użytkowych, które realizują pewne operacje proceduralne na danych. Stosowanie referencji zwiększa kontrolę nad pamięcią i wydajność programu, co jest krytyczne w aplikacjach o wysokiej wydajności. Zrozumienie tego aspektu jest istotne dla prawidłowego biegu programu i efektywnego zarządzania zasobami.