Wyniki egzaminu

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

Egzamin niezdany

Wynik: 12/40 punktów (30,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Przedstawione zapytanie SELECT wykonane na tabeli przechowującej dane o uczestnikach konkursu ma za zadanie wybrać

SELECT MAX(wiek) - MIN(wiek) FROM uczestnicy;
A. minimalny oraz maksymalny wiek uczestników.
B. średnią arytmetyczną wieku uczestników.
C. liczbę najstarszych uczestników.
D. różnicę wieku pomiędzy najstarszym i najmłodszym uczestnikiem.
Gratulacje, ta odpowiedź jest poprawna. Zapytanie SQL używa funkcji agregujących MAX i MIN do określenia maksymalnej i minimalnej wartości wieku w tabeli uczestników. Użycie tych funkcji umożliwia nam zidentyfikowanie najstarszego i najmłodszego uczestnika. Następnie, zapytanie oblicza różnicę między tymi wartościami, co odpowiada różnicy wieku między najstarszym i najmłodszym uczestnikiem. To jest standardowe podejście w SQL do wykonywania tego typu zapytań. W praktyce, takie zapytania są często używane w analizie danych do określania różnorodności danych, takiej jak zakres wieku uczestników w danym konkursie. Pamiętaj, że funkcje agregujące w SQL, takie jak MAX i MIN, są niezwykle przydatne w analizie danych, umożliwiając nam podsumowanie i analizę dużych zbiorów danych.

Pytanie 2

W CSS określono styl paragrafu, który nada mu następujące właściwości:

background-color: red;
color: blue;
margin: 40px;
A. tło czerwone, kolor tekstu niebieski, marginesy wewnętrzne na poziomie 40 px
B. tło niebieskie, kolor tekstu czerwony, marginesy wewnętrzne na poziomie 40 px
C. tło czerwone, kolor tekstu niebieski, marginesy zewnętrzne na poziomie 40 px
D. tło niebieskie, kolor tekstu czerwony, marginesy zewnętrzne na poziomie 40 px
Wiele błędnych odpowiedzi opiera się na mylnym zrozumieniu właściwości CSS oraz ich roli w stylowaniu dokumentów HTML. W przypadku tła, koloru tekstu i marginesów istotne jest, aby poprawnie zidentyfikować, co każda z tych właściwości robi. Na przykład, w deklaracji 'background-color: red;' tło jest jednoznacznie określane jako czerwone, co wyklucza wszelkie inne kolory, jak niebieski, co jest mylnie sugerowane w niektórych odpowiedziach. Co więcej, właściwość 'color' ustala kolor tekstu, a nie tła, co oznacza, że nie może być jednocześnie czerwony i niebieski. Kolejnym częstym błędem jest mylenie marginesów zewnętrznych z wewnętrznymi. Marginesy zewnętrzne (margin) definiują przestrzeń wokół elementu, podczas gdy marginesy wewnętrzne (padding) dotyczą przestrzeni wewnątrz elementu. W kontekście tego pytania, 'margin: 40px;' odnosi się do marginesów zewnętrznych. Dlatego ważne jest, aby dokładnie zrozumieć, jak różne style CSS wpływają na wygląd i układ elementów na stronie, co jest kluczowe w profesjonalnym projektowaniu webowym. Błędne interpretacje mogą prowadzić do nieestetycznego układu i trudności w użytkowaniu stron, co jest szczególnie istotne w kontekście dostępności i użyteczności aplikacji internetowych.

Pytanie 3

Który atrybut HTML wyświetla podpowiedź (dymek) pokazywaną po najechaniu kursorem na element?

A.
id
B.
src
C.
alt
D.
title
Atrybut title można dodać do niemal każdego znacznika; przeglądarka pokazuje jego treść jako mały dymek (tooltip) po zatrzymaniu kursora nad elementem. Służy do krótkiej dodatkowej podpowiedzi, np. wyjaśnienia odnośnika czy ikony. Dlatego dymek z podpowiedzią wyświetla atrybut title.

Pytanie 4

Wskaż stwierdzenie, które jest prawdziwe dla następującej definicji stylu:

<style type="text/css">
<!--
  p {color: blue; font-size: 14pt; font-style: italic}
  a { font-size: 16pt; text-transform: lowercase; }
  td.niebieski { color: blue }
  td.czerwony { color: red }
-->
</style>
A. Jest to styl lokalny.
B. Odnośnik będzie pisany czcionką 14 punktów.
C. Zdefiniowano dwie klasy.
D. Akapit będzie transponowany na małe litery.
Gratulacje, dobrze odpowiedziałeś. W załączonym kodzie CSS zdefiniowano dwie klasy, a mianowicie 'niebieski' i 'czerwony'. Klasy te są przypisane do elementów TD, co oznacza, że komórki tabeli mogą mieć kolor niebieski lub czerwony w zależności od przypisanej klasy. Klasy CSS są jednym z podstawowych sposobów formatowania elementów na stronie internetowej, które pozwalają na stylizowanie grup elementów na podstawie wspólnego identyfikatora klasy. Zamiast formatować każdy element HTML osobno, możemy jednorazowo zdefiniować styl dla klasy, a następnie przypisać tę klasę do dowolnej liczby elementów. To jest zgodne z dobrymi praktykami programowania DRY (Don't Repeat Yourself), co zwiększa czytelność i utrzymanie kodu. W kontekście pytania, każda komórka tabeli przypisana do klasy 'niebieski' lub 'czerwony' będzie miała odpowiednio niebieski lub czerwony kolor.

Pytanie 5

Po wykonaniu poniższego kodu JavaScript, co będzie przechowywać zmienna str2?

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. vaScri
B. nvaScr
C. avaS
D. vaSc
W przypadku analizy kodu JavaScript kluczowym aspektem jest zrozumienie działania metody substring która służy do wyodrębniania fragmentów łańcuchów znaków. Metoda przyjmuje dwa parametry: indeks początkowy oraz opcjonalny indeks końcowy. W kontekście pytania błędnym podejściem jest niedokładna interpretacja tych indeksów. Pierwsza niepoprawna odpowiedź avaS zakłada że wyodrębniane są znaki od 0 do 3 co jest niezgodne z podanymi indeksami 2 i 6. Druga odpowiedź vaScri zakłada że metoda substring obejmuje znaki aż do indeksu 6 włącznie co jest błędnym zrozumieniem zakresu działania tej metody. Metoda substring kończy wybieranie na znaku poprzedzającym indeks końcowy dlatego indeks 6 nie jest uwzględniany przy wyborze znaków. Kolejna niepoprawna odpowiedź nvaScr próbuje wybrać znaki rozpoczynając od indeksu 1 co jest błędnym startowym punktem dla zakresu 2 do 6. W kontekście dobrych praktyk programistycznych istotnym jest zrozumienie że indeksowanie od zera ma wpływ na rezultaty metod operujących na łańcuchach znaków. Częstym błędem początkujących programistów jest nieuwzględnienie tego faktu co prowadzi do niepoprawnych wyników i błędów logicznych w aplikacjach. Znajomość tych zasad pozwala efektywnie wykorzystywać możliwości języka JavaScript w codziennej pracy programistycznej.

Pytanie 6

Stronę internetową zapisano w języku XHTML. Który z kodów stanowi implementację przedstawionego fragmentu strony, jeżeli żadne style CSS nie zostały zdefiniowane?

Początki HTML

W 1980 fizyk Tim Berners-Lee, pracownik CERN,
stworzył prototyp hipertekstowego systemu informacyjnego – ENQUIRE


A.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
B.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
C.
<b>Początki HTML</b>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<hr /> stworzył
<b>prototyp hipertekstowego systemu informacyjnego – <i>ENQUIRE</i></b></p>
D.
<h1>Początki HTML</h1>
<p>W 1980 fizyk <b>Tim Berners-Lee</b>, pracownik <i>CERN</i>,<br /> stworzył
<i>prototyp hipertekstowego systemu informacyjnego – <b>ENQUIRE</b></i></p>
A. C.
B. A.
C. D.
D. B.
Niestety, twoja odpowiedź nie była poprawna. Wybrany przez ciebie fragment kodu nie odpowiadał strukturze i hierarchii tagów HTML widocznej na obrazku. HTML jest językiem znaczników, który wykorzystuje różne tagi do definiowania struktury i formatowania treści na stronie internetowej. Możliwe, że niepoprawne rozumienie tagów HTML mogło skłonić cię do wybrania nieprawidłowej odpowiedzi. Na przykład, jeśli wybrałeś opcję zawierającą tagi <h2> zamiast <h1> dla nagłówka, to mogło to wynikać z niewłaściwego zrozumienia hierarchii nagłówków w HTML. Podobnie, jeśli wybrałeś opcję, która nie zawierała tagu <br />, mogło to wynikać z niewłaściwego zrozumienia funkcji tego tagu w tworzeniu przerw wiersza. Ważne jest zrozumienie, jak różne tagi HTML wpływają na prezentację i strukturę strony internetowej, aby uniknąć błędów podczas tworzenia stron.

Pytanie 7

Który format stosuje BEZSTRATNĄ kompresję dźwięku?

A. MP3
B. AAC
C. WWA
D. FLAC
Pozostałe formaty kompresują dźwięk STRATNIE - usuwają część informacji, by mocniej zmniejszyć plik (MP3, AAC). „WWA” nie jest standardowym formatem (mylone z WMA). Bezstratną kompresję zapewnia FLAC.

Pytanie 8

Tabela programy ma kolumny nazwa, producent, rokWydania. Która kwerenda zwróci producentów BEZ powtórzeń?

A.
SELECT producent FROM programy WHERE producent NOT DUPLICATE;
B.
SELECT UNIQUE producent FROM programy;
C.
SELECT producent FROM programy WHERE UNIQUE;
D.
SELECT DISTINCT producent FROM programy;
Pozostałe zapisy są błędne składniowo. SELECT UNIQUE producent używa słowa UNIQUE, które w SQL jest OGRANICZENIEM kolumny przy tworzeniu tabeli, a nie sposobem odsiewania duplikatów w zapytaniu (w MySQL nie zadziała). WHERE UNIQUE oraz WHERE producent NOT DUPLICATE to konstrukcje, które w SQL nie istnieją. Duplikaty usuwa SELECT DISTINCT producent FROM programy;.

Pytanie 9

Aby zainstalować system CMS Joomla!, potrzebne jest środowisko

A. IIS, Perl oraz MySQL
B. PHP oraz MySQL
C. Apache, PHP i MySQL
D. Apache oraz PHP
Aby uruchomić system CMS Joomla!, niezbędne jest środowisko składające się z serwera Apache, języka PHP oraz bazy danych MySQL. Apache jest jednym z najpopularniejszych serwerów WWW, który obsługuje zapytania HTTP i serwuje zawartość stron internetowych. PHP to skryptowy język programowania, który jest powszechnie używany do tworzenia dynamicznych stron internetowych i aplikacji webowych. W kontekście Joomla!, PHP jest odpowiedzialne za przetwarzanie kodu i interakcję z bazą danych. MySQL natomiast to system zarządzania relacyjnymi bazami danych, który przechowuje wszystkie dane potrzebne do działania Joomla!, takie jak informacje o użytkownikach, artykułach i ustawieniach systemowych. Współpraca tych trzech komponentów tworzy stabilne środowisko do działania Joomla!, zapewniając optymalizację wydajności oraz bezpieczeństwo. Warto również zaznaczyć, że Joomla! wymaga minimum wersji PHP 7.2 oraz MySQL 5.5, aby zapewnić pełną funkcjonalność i wsparcie dla nowoczesnych rozwiązań webowych.

Pytanie 10

Prezentowany blok kodu ilustruje proces

Ilustracja do pytania
A. podjęcia decyzji
B. realizacji zadania w pętli
C. załadowania lub wyświetlenia informacji
D. użycia zdefiniowanej procedury lub funkcji
Symbol przedstawiony na obrazku to romb który w diagramach przepływu algorytmów i schematach blokowych oznacza podjęcie decyzji Jest to kluczowy element w programowaniu i inżynierii oprogramowania używany do podejmowania decyzji lub wyrażania warunków logicznych Decyzja to punkt w programie gdzie przetwarzanie może podążać różnymi ścieżkami w zależności od spełnienia określonych warunków Na przykład w językach programowania takich jak Python lub Java warunek if-else jest używany do podjęcia decyzji w zależności od wartości logicznych Wyobraźmy sobie sytuację w której program ma zdecydować czy użytkownik jest pełnoletni W takim przypadku instrukcja if sprawdza warunek wiek użytkownika większy lub równy 18 i w zależności od tego wykonuje odpowiednie instrukcje Takie podejście jest zgodne z dobrymi praktykami programowania które kładą nacisk na klarowność kodu i jego elastyczność Dzięki temu programiści mogą tworzyć bardziej złożone systemy które reagują na różne scenariusze i dostosowują swoje działanie do dynamicznie zmieniających się warunków co jest kluczowe w projektowaniu skalowalnych i efektywnych rozwiązań

Pytanie 11

Kiedy zakończy się wykonanie poniższego fragmentu kodu w języku C/C++, do zmiennej zwanej zmienna2 zostanie przypisane:

...
int zmienna1 = 158;
int *zmienna2 = &zmienna1;
A. przypisana liczba w kodzie binarnym odpowiadająca wartości przechowywanej w zmienna1
B. przypisany adres zmiennej o nazwie zmienna1
C. przypisana ta sama wartość, co przechowywana w zmienna1
D. przypisana zamieniona na łańcuch wartość przechowywana w zmienna1
Wskaźniki w językach C/C++ są jednymi z fundamentalnych koncepcji, które pozwalają na efektywne zarządzanie pamięcią oraz manipulację danymi na niskim poziomie. Błędne rozumienie przypisania wskaźników może prowadzić do nieporozumień. Kiedy przypisujemy zmienną typu wskaźnikowego, jak w int *zmienna2 = &zmienna1, przypisywany jest adres, a nie wartość. Odpowiedzi sugerujące przypisanie bezpośredniej wartości, jej binarnej reprezentacji lub konwersji do łańcucha są niepoprawne, ponieważ ignorują działanie operatora '&' oraz specyfikę wskaźników. Operator '&' zawsze zwraca adres pamięci, co umożliwia wskaźnikowi przechowywanie tego adresu. Pomijanie tego faktu jest częstym błędem, wynikającym z braku zrozumienia mechanizmów pamięci i wskaźników. Zrozumienie różnicy między wskaźnikiem a zwykłą zmienną jest kluczowe. Wskaźniki nie przechowują wartości zmiennych, lecz ich adresy, co pozwala na manipulację danymi w ich oryginalnym miejscu w pamięci. Ignorowanie tego aspektu prowadzi do logicznych błędów w programach i potencjalnych problemów z zarządzaniem pamięcią.

Pytanie 12

W języku HTML stworzono definicję tabeli. Który z rysunków ilustruje jej działanie?

Ilustracja do pytania
A. Rysunek 3
B. Rysunek 1
C. Rysunek 2
D. Rysunek 4
Odpowiedzi które nie są zgodne z kodem HTML wynikają z błędnej interpretacji atrybutu colspan lub struktury tabeli. Na przykład jeden z rysunków przedstawia sytuację w której drugi wiersz tabeli zawiera dwie odrębne komórki podczas gdy kod HTML wyraźnie wskazuje na użycie atrybutu colspan=2 co powinno skutkować rozciągnięciem komórki z tekstem 'trzeci' na szerokość dwóch kolumn. Taki błąd często wynika z niepełnego zrozumienia jak działa atrybut colspan co jest kluczowe dla poprawnego tworzenia układów tabeli w HTML. Inny rysunek z kolei może przedstawiać brak rozciągnięcia komórki w dolnym wierszu co sugeruje brak zastosowania atrybutu colspan i wskazuje na brak synchronizacji między strukturą kodu a jego wizualizacją. Często spotykanym błędem jest także niezrozumienie różnicy między atrybutami colspan i rowspan które choć podobne mają zupełnie odmienne zastosowanie w kontekście organizacji układu tabeli. Zrozumienie tych różnic i umiejętne zastosowanie odpowiednich atrybutów pozwala na tworzenie bardziej złożonych i responsywnych układów stron internetowych w zgodzie z najlepszymi praktykami projektowymi. Analiza błędów w rozumieniu struktury tabeli i ich wizualizacji pomaga unikać takich pomyłek w przyszłości i sprzyja lepszemu projektowaniu interfejsów użytkownika które są nie tylko funkcjonalne ale i estetyczne co jest jednym z kluczowych wymogów nowoczesnego webdesignu. Poprawna interpretacja atrybutów i ich zastosowanie są fundamentalne w tworzeniu przejrzystych i łatwych w nawigacji stron co przekłada się bezpośrednio na lepsze doświadczenie użytkownika.

Pytanie 13

Gdzie należy umieścić znacznik meta w języku HTML?

A. w stopce strony internetowej
B. w sekcji nagłówkowej strony internetowej
C. między znacznikami body
D. między znacznikami paragrafu
Umieszczanie znaczników meta w stopce witryny, pomiędzy znacznikami paragrafu lub w obrębie body jest niezgodne z zasadami tworzenia struktury HTML i może prowadzić do wielu problemów. Znaczniki meta są przeznaczone do dostarczenia metadanych, które są przetwarzane przez przeglądarki oraz roboty wyszukiwarek. Ich umiejscowienie w stopce uniemożliwia dostęp do tych informacji w momencie ładowania strony, co negatywnie wpływa na SEO i wydajność witryny. Umieszczanie ich pomiędzy znacznikami paragrafu lub body powoduje, że stają się one częścią treści wizualnej, co jest technicznie błędne, ponieważ znaczniki meta nie mają na celu wyświetlania treści, a raczej dostarczania informacji kontekstowych. Warto pamiętać, że poprawne umiejscowienie znaczników meta jest kluczowe dla efektywnego działania strony internetowej. Typowe błędy myślowe, które prowadzą do takich decyzji, często wynikają z braku zrozumienia różnicy między metadanymi a treścią strony. Zrozumienie struktury dokumentu HTML oraz zasad, które ją rządzą, jest fundamentem efektywnego projektowania stron internetowych.

Pytanie 14

W języku JavaScript funkcja getElementById() odnosi się do

A. klasy zdefiniowanej w CSS
B. elementu HTML o określonym id
C. elementu HTML o wskazanej nazwie klasy
D. zmiennej liczbowej
Metoda getElementById() jest jedną z najczęściej używanych funkcji w JavaScript, która pozwala na bezpośrednie odwołanie się do elementu DOM (Document Object Model) za pomocą atrybutu id. Gdy wywołujemy tę metodę, przekazujemy jej jako argument ciąg znaków odpowiadający wartości atrybutu id danego elementu HTML. Przykładowo, jeśli mamy znacznik `<div id='myDiv'></div>`, możemy uzyskać do niego dostęp za pomocą `document.getElementById('myDiv')`. Jest to bardzo efektywny sposób na manipulowanie elementami strony, umożliwiający m.in. zmianę ich zawartości, stylu czy atrybutów. Dzięki tej metodzie programiści mogą szybko i łatwo modyfikować interfejs użytkownika oraz reagować na zdarzenia, co jest zgodne z zasadami responsywnego projektowania i tworzenia dynamicznych aplikacji webowych. Warto również pamiętać, że użycie unikalnych identyfikatorów w HTML jest zgodne z dobrymi praktykami, ponieważ pozwala na łatwiejszą nawigację po strukturze dokumentu i unika konfliktów z innymi elementami.

Pytanie 15

Aby wymusić, by wartość w kolumnie odwoływała się do istniejącego rekordu w innej tabeli, należy zastosować:

A. indeks
B. klucz obcy
C. klucz główny
D. widok
Klucz obcy to kolumna (lub zestaw kolumn) wskazująca na klucz główny innej tabeli. Baza pilnuje, by można było wpisać tylko wartość istniejącą w tabeli nadrzędnej, dzięki czemu nie powstają „osierocone” rekordy. To podstawowy mechanizm integralności referencyjnej w relacyjnych bazach danych. Dlatego powiązanie z rekordem innej tabeli wymusza klucz obcy.

Pytanie 16

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 1
B. Kod 2
C. Kod 4
D. Kod 3
W przypadku analizy niepoprawnych odpowiedzi, ważne jest zrozumienie błędnych koncepcji, które mogą prowadzić do błędnych wniosków. W Kodzie 1 błędnie zastosowano mechanizm else, który prowadzi do tego, że ostatnia operacja jest wykonywana zawsze, gdy żaden poprzedni warunek nie jest spełniony. Może to prowadzić do nieprzewidywalnych wyników, jeśli wartość 'dzialanie' nie pasuje do żadnego z przypadków. Kod 3, z użyciem operatora !=, nie zapewnia prawidłowego działania, gdyż realizuje wszystkie operacje niezależnie od wartości 'dzialanie', co jest sprzeczne z zamiarem instrukcji switch. To powszechny błąd, gdzie brak pełnego zrozumienia logiki warunkowej prowadzi do pomyłek w implementacji. Z kolei, Kod 4 ma poprawną strukturę if-else if, ale różni się od poprawnej odpowiedzi nadmiarem zagnieżdżonych warunków, co może wprowadzać niepotrzebne komplikacje i zwiększać czas wykonania. Zrozumienie błędów w logice warunkowej jest kluczowe do pisania efektywnego i poprawnego kodu, co jest fundamentalne w programowaniu aplikacji o wysokiej niezawodności. Kluczem do unikania takich błędów jest praktyka i głębokie zrozumienie struktury danych oraz logiki w programowaniu.

Pytanie 17

Podaj polecenie SQL, które wprowadza kolumnę miesiacSiewu do istniejącej tabeli rosliny?

A. UPDATE rosliny ADD miesiacSiewu int
B. CREATE TABLE rosliny {miesiacSiewu int}
C. ALTER TABLE rosliny ADD miesiacSiewu int
D. INSERT INTO rosliny VALUES (miesiacSiewu int)
Wszystkie błędne odpowiedzi opierają się na nieprawidłowym rozumieniu funkcji i zastosowania instrukcji w SQL. Polecenie INSERT INTO rosliny VALUES (miesiacSiewu int) jest niewłaściwe, ponieważ służy do wstawiania nowych rekordów do tabeli, a nie do modyfikacji jej struktury. Wstawiając dane, należy określić wartości dla istniejących kolumn, a nie definiować nowego pola. Funkcja UPDATE rosliny ADD miesiacSiewu int również jest myląca, gdyż polecenie UPDATE jest używane do aktualizacji istniejących danych w tabeli, a nie do dodawania nowych kolumn. Ponadto, dodawanie kolumny powinno odbywać się za pomocą ALTER TABLE, a nie poprzez UPDATE. Ostatecznie, CREATE TABLE rosliny {miesiacSiewu int} jest niewłaściwe, ponieważ polecenie CREATE TABLE jest stosowane do tworzenia nowej tabeli, a nie do modyfikacji istniejącej. Warto zauważyć, że w SQL każda instrukcja ma swoje specyficzne zastosowanie; nie można ich dowolnie zamieniać. Typowe błędy w myśleniu o SQL mogą prowadzić do nieefektywnego zarządzania danymi, dlatego kluczowe jest zrozumienie różnic między instrukcjami, aby skutecznie korzystać z możliwości baz danych.

Pytanie 18

Ile razy zostanie wykonana poniższa pętla w PHP?

for($i = 0; $i < 25; $i += 5) { ... }
A. 5
B. 0
C. 26
D. 25
Pętla for w PHP jest jednym z fundamentalnych narzędzi kontrolnych używanych do wykonywania powtarzających się zadań. W przedstawionym przykładzie pętli mamy następującą składnię: for($i = 0; $i < 25; $i += 5). Pętla rozpoczyna się od wartości początkowej zmiennej $i równej 0, a warunek kontynuacji pętli określa, że $i musi być mniejsze niż 25. W każdym przebiegu pętli zmienna $i zwiększa się o 5. Dzięki tej konstrukcji pętla wykona się dla wartości $i wynoszących kolejno 0, 5, 10, 15 i 20, co oznacza, że pętla zostanie wykonana dokładnie 5 razy. Takie konstrukcje są powszechnie stosowane w programowaniu do iteracyjnego przetwarzania danych, takich jak iterowanie przez tablice lub generowanie ciągów. Warto zwrócić uwagę na dobre praktyki programistyczne, które nakazują klarowność i czytelność kodu, dzięki czemu inni programiści mogą go łatwo zrozumieć i utrzymywać. Projektowanie pętli z precyzyjnie zdefiniowanymi warunkami początkowymi i końcowymi jest kluczowe dla unikania błędów logicznych, takich jak nieskończone pętle lub błędne iteracje. Użycie odpowiednich inkrementacji, jak w tym przypadku $i += 5, pozwala na kontrolowanie tempa i liczby iteracji zgodnie z zamierzonymi celami algorytmu.

Pytanie 19

Który atrybut należy dodać do znacznika <video>, aby wyciszyć dźwięk odtwarzanego w przeglądarce filmu?

<video>
    <source src="film.mp4" type="video/mp4">
</video>
A. autoplay
B. controls
C. muted
D. loop
Twoja odpowiedź nie jest poprawna. Wybór atrybutu 'loop', 'autoplay' lub 'controls' nie spowoduje wyłączenia dźwięku filmu. Atrybut 'loop' jest stosowany do zapętlenia odtwarzania filmu, co oznacza, że film będzie odtwarzany ponownie, gdy dojdzie do końca. Atrybut 'autoplay' powoduje, że film zaczyna się odtwarzać automatycznie, jak tylko strona zostanie załadowana. Natomiast atrybut 'controls' dodaje elementy sterujące do filmu, takie jak przyciski do odtwarzania/pauzowania filmu, regulacji głośności, itp. żaden z tych atrybutów nie spowoduje wyłączenia dźwięku. Aby to osiągnąć, należy użyć atrybutu 'muted'. To ważne dla użytkownika, aby miał kontrolę nad dźwiękiem na stronie i aby nie był zaskoczony automatycznym odtwarzaniem dźwięku bez jego zgody. Dobrą praktyką jest domyślne wyłączenie dźwięku, ale pozostawienie użytkownikowi możliwości jego włączenia.

Pytanie 20

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: right; }
B. aside {float: left; }
C. nav { float: right; } section { float: right; }
D. nav { float: left; } aside { float: left; }
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 21

Definicja formularza została użyta na stronie internetowej, która przesyła dane do pliku napisanego w języku PHP. W jakiej tablicy będą dostępne dane z tego formularza?

Ilustracja do pytania
A. $_GET
B. $_COOKIE
C. $_POST
D. $_ACTION
Tablica $_POST w PHP służy do przechwytywania danych przesyłanych za pomocą metody POST. Jest to standardowa praktyka w przypadku formularzy, które zawierają dane wrażliwe lub dużą ilość informacji. Metoda POST przesyła dane w treści żądania HTTP, co oznacza, że nie są one widoczne w adresie URL, co zwiększa bezpieczeństwo w porównaniu do metody GET. Przykładem zastosowania mogą być formularze logowania czy przesyłania plików. W PHP dostęp do danych z formularza można uzyskać poprzez prostą składnię, na przykład $_POST['nazwa_pola']. Ważne jest, aby zawsze walidować i filtrować dane wejściowe, aby zabezpieczyć aplikację przed atakami typu SQL Injection czy XSS. Zastosowanie metody POST jest zgodne z ogólnymi zasadami bezpieczeństwa i standardami projektowania aplikacji webowych, które zalecają ograniczanie widoczności danych przesyłanych przez użytkownika. Dobre praktyki obejmują również stosowanie HTTPS, aby dodatkowo zaszyfrować dane przesyłane pomiędzy klientem a serwerem.

Pytanie 22

Aby obraz wstawiony na stronę internetową mógł dostosować się automatycznie do wymiarów ekranu, na którym jest wyświetlany, konieczne jest

A. ustawienie jego szerokości w wartościach procentowych
B. niezmienianie obu jego wymiarów za pomocą stylów CSS
C. ustawienie jednego z jego wymiarów w pikselach
D. ustawienie obu jego rozmiarów w pikselach
Ustawienie wymiarów obrazu w pikselach ogranicza jego elastyczność, co prowadzi do nieidealnego wyświetlania na różnych urządzeniach. Obrazy o stałych wymiarach mogą nie zmieścić się na ekranach o mniejszych rozmiarach, co skutkuje koniecznością przewijania w poziomie lub zniekształceniem obrazu, gdy przeglądarka jest zmniejszana. Ponadto, ustawienie jednego z wymiarów w pikselach również nie rozwiązuje problemu responsywności, ponieważ drugi wymiar nadal będzie stały, co może prowadzić do nieproporcjonalnego wyświetlania. Nie modyfikowanie obu wymiarów stylami CSS neguje możliwości dostosowania obrazów do zmieniających się rozmiarów ekranów, co jest istotnym aspektem nowoczesnego web designu. Praktyczna implementacja responsywnych zdjęć wymaga przemyślenia koncepcji elastyczności, co obejmuje użycie CSS, aby zapewnić optymalne wyświetlanie obrazów na wszystkich urządzeniach. Użytkownicy powinni być świadomi, że dobrą praktyką jest stosowanie technik takich jak media queries oraz CSS Flexbox, co pozwala na precyzyjne dostosowywanie layoutu do wymagań urządzenia. Podsumowując, podejście to nie tylko wpływa na estetykę strony, ale również na jej funkcjonalność i dostępność, co jest kluczowe w obecnych czasach, gdy użytkownicy korzystają z szerokiej gamy urządzeń.

Pytanie 23

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

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

Pytanie 24

Która funkcja PHP zamieni słowo "kota" na "mysz" w napisie "ala ma kota"?

A.
replace("kota", "mysz", "ala ma kota");
B.
str_replace("ala ma kota", "kota", "mysz");
C.
str_replace("kota", "mysz", "ala ma kota");
D.
replace("ala ma kota", "kota", "mysz");
Pozostałe wywołania są błędne. Funkcja replace() (bez str_) w PHP nie istnieje. Wariant str_replace("ala ma kota", "kota", "mysz") używa właściwej funkcji, ale w złej kolejności - jako pierwszy podaje cały tekst zamiast szukanego fragmentu. Poprawne jest str_replace("kota", "mysz", "ala ma kota").

Pytanie 25

Jak określa się podzbiór strukturalnego języka zapytań, który dotyczy formułowania zapytań do bazy danych przy użyciu polecenia SELECT?

A. SQL DDL (ang. Data Definition Language)
B. SQL DCL (ang. Data Control Language)
C. SQL DQL (ang. Data Query Language)
D. SQL DML (ang. Data Manipulation Language)
Wybór SQL DML, SQL DDL lub SQL DCL jako odpowiedzi na pytanie dotyczące podzbioru języka SQL, który służy do formułowania zapytań do bazy danych, wskazuje na pewne nieporozumienia dotyczące struktury i funkcji języka SQL. SQL DML (Data Manipulation Language) obejmuje polecenia takie jak INSERT, UPDATE i DELETE, które umożliwiają manipulację danymi w bazie, jednak nie jest to odpowiedź na zapytania, lecz na operacje modyfikujące dane. Z kolei SQL DDL (Data Definition Language) służy do definiowania struktury bazy danych, w tym tworzenia, modyfikowania i usuwania tabel oraz indeksów. Obejmuje polecenia takie jak CREATE, ALTER i DROP, które są kluczowe dla administracji bazy danych, ale nie dotyczą bezpośrednio pobierania danych. SQL DCL (Data Control Language) koncentruje się na zarządzaniu uprawnieniami i dostępem do danych w bazie, obejmując polecenia takie jak GRANT i REVOKE. Każda z tych odpowiedzi wprowadza w błąd, ponieważ nie odnosi się do kluczowych funkcji DQL, które skupiają się na wydobywaniu i analizie danych. Przy wyborze odpowiedzi ważne jest, aby zrozumieć różnice między tymi podzbiorami SQL i ich zastosowanie w praktyce. Typowe błędy myślowe obejmują mylenie manipulacji danymi z ich zapytaniem oraz niezrozumienie roli, jaką każda z tych kategorii pełni w zarządzaniu bazami danych. Kluczowe jest zatem, aby w kontekście pracy z bazami danych dokładnie rozróżniać te funkcje, co wpływa na efektywność i poprawność wykonywanych operacji.

Pytanie 26

Po wykonaniu instrukcji języka JavaScript  x = Math.ceil(2.4); wartość zmiennej x będzie wynosić

A. 3
B. 4
C. 2
D. 8
W tym zadaniu najczęstszy problem polega na pomyleniu różnych sposobów zaokrąglania liczb w JavaScript. Wiele osób odruchowo myśli o zwykłym zaokrąglaniu matematycznym i zakłada, że 2.4 powinno zostać zaokrąglone do 2, bo jest bliżej dwójki niż trójki. To byłoby prawdziwe dla Math.round(2.4), ale nie dla Math.ceil(2.4). I tu jest cały haczyk.
Math.ceil() nie patrzy, czy liczba jest bliżej niższego czy wyższego całkowitego. Ta funkcja zawsze zaokrągla w górę, czyli w stronę dodatniej nieskończoności. Jeżeli mamy 2.0001, 2.4 czy 2.9 – w każdym z tych przypadków Math.ceil() zwróci 3. Jedynie gdy liczba jest już całkowita, np. 2.0, wynik pozostanie 2. Odpowiedź 2 wynika więc z błędnego założenia, że ceil działa jak klasyczne „zaokrąglanie w dół przy małej części ułamkowej”. Tymczasem do zaokrąglania w dół służy Math.floor(), która z 2.4 zrobiłaby 2.
Zdarza się też, że ktoś mechanicznie przeskakuje o „więcej niż jedną” jednostkę i wybiera 4 albo nawet 8, jakby ceil miał coś wspólnego z podwajaniem wartości albo jakimś magicznym przeskokiem. To już kompletnie nie ma uzasadnienia w definicji funkcji. Math.ceil() nie skaluje liczby, nie mnoży jej, nie patrzy na „odległość” od kolejnych całkowitych, tylko wybiera najbliższą liczbę całkowitą większą lub równą podanej wartości.
Z mojego doświadczenia taki błąd często wynika z mieszania w głowie kilku funkcji naraz: ceil, floor, round, czasem jeszcze parseInt. Dobra praktyka jest taka, żeby kojarzyć je kierunkowo: floor – w dół, ceil – w górę, round – do najbliższej. W codziennym programowaniu webowym ma to ogromne znaczenie, np. przy paginacji, gdzie zazwyczaj właśnie Math.ceil() liczy liczbę stron, bo nie możesz obciąć „końcówki” wyników. Jeśli zaokrąglisz w dół, użytkownik straci część danych. Jeżeli zrozumiesz dokładnie różnicę między tymi funkcjami, takie pytania nie będą sprawiały żadnego problemu.

Pytanie 27

Która technika rozwiązywania konfliktów w firmie bywa niebezpieczna i może ZAOSTRZYĆ konflikt?

A. separacja
B. arbitraż
C. ignorowanie
D. kompromis
Ignorowanie konfliktu polega na udawaniu, że problemu nie ma - i właśnie dlatego bywa groźne: nierozwiązana sprawa narasta, emocje się kumulują, a strona, która czuje się lekceważona, reaguje coraz ostrzej. Zamiast wygasić spór, takie unikanie zwykle go zaostrza. Dlatego niebezpieczną techniką jest ignorowanie.

Pytanie 28

Która zasada dotycząca sekcji <head> w HTML jest POPRAWNA?

A. w sekcji <head> nie wolno umieszczać kodu CSS, tylko odwołanie do pliku
B. w sekcji <head> mogą wystąpić <meta>, <title>, <link>
C. w sekcji <head> buduje się szablon strony znacznikami <div>
D. w sekcji <head> zawiera się sekcja <body>
Sekcja <head> zawiera metadane i powiązania dokumentu - typowo <meta> (kodowanie, opis), <title> (tytuł karty) i <link> (np. arkusz CSS). Dlatego poprawne jest stwierdzenie o <meta>, <title> i <link>.

Pytanie 29

Na podstawie tabeli Towar wykonano następujące zapytanie SQL. Jaki będzie wynik tej operacji?

 SELECT nazwa_towaru FROM `Towar` WHERE cena_katalogowa < 65 ORDER BY waga DESC;
IDnazwa_towarucena_katalogowawagakolor
1Papier ksero A4112.3biel
2Zeszyt A54.20.13wielokolorowy
3Zeszyt A5 w linie3.50.12niebieski
4Kredki 24 kolory90.3wielokolorowy
5Plecak szkolny65.51.3zielony
A. Papier ksero A4, Kredki 24 kolory, Zeszyt A5, Zeszyt A5 w linie
B. Papier ksero A4, Kredki 24 kolory, Zeszyt A5 w linie, Zeszyt A5
C. Zeszyt A5 w linie, Zeszyt A5, Kredki 24 kolory, Papier ksero A4
D. Zeszyt A5, Zeszyt A5 w linie, Kredki 24 kolory, Papier ksero A4
Twoja odpowiedź jest niepoprawna. Wydaje się, że nie zrozumiałeś, jak działa zapytanie SQL w kontekście selekcji i sortowania danych. Zapytanie to zwracałoby nazwy towarów, które spełniają warunek ceny katalogowej mniejszej niż 65. Następnie sortuje te towary od najcięższego do najlżejszego. W przypadku podanej tabeli towary, które spełniają te warunki to: Papier ksero A4 (waga 2.3), Kredki 24 kolory (waga 0.3), Zeszyt A5 (waga 0.13) i Zeszyt A5 w linie (waga 0.12). Błędne odpowiedzi sugerują, że nie zrozumiałeś, w jaki sposób zapytanie SQL sortuje wyniki na podstawie wagi. Istotne jest zrozumienie, że SQL pozwala na filtrowanie danych za pomocą różnych operatorów, takich jak 'mniejszy od', a następnie sortowanie tych wyników za pomocą różnych kryteriów. W tym przypadku sortowanie odbywa się od najcięższego do najlżejszego towaru. Upewnij się, że rozumiesz te koncepcje, ponieważ są one kluczowe w pracy z bazami danych.

Pytanie 30

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. liczbie 4
B. liczbie 1
C. napisowi 'CZWARTEK'
D. napisowi "CZWARTEK"
W języku C++ typy wyliczeniowe, znane jako enum, są używane do definiowania zestawu nazwanych stałych całkowitych. Zrozumienie, jak działa inicjalizacja i przydzielanie wartości w ramach enum, jest kluczowe. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; PONIEDZIAŁEK jest jawnie zainicjalizowany wartością 1. Następne enumeratory automatycznie otrzymują kolejne wartości całkowite, o ile nie zostaną zainicjalizowane samodzielnie. W konsekwencji WTOREK otrzymuje wartość 2, ŚRODA 3, a CZWARTEK 4, co wynika z automatycznego zwiększania wartości o 1. Wybór odpowiedzi wskazujących, że CZWARTEK to napis, jest błędny ze względu na sposób działania enum, które przypisują wartości całkowite. Enum nie obsługuje przypisywania wartości tekstowych czy znakowych do enumeratorów, co wyklucza odpowiedzi zakładające taką możliwość. Rozumienie tych koncepcji jest kluczowe, ponieważ typy wyliczeniowe są szeroko stosowane w programowaniu, umożliwiając uporządkowane zarządzanie stałymi symbolicznymi. Ich użycie zwiększa czytelność i konserwowalność kodu poprzez eliminację magicznych liczb oraz ułatwia śledzenie stanu aplikacji dzięki zastosowaniu nazwanych wartości. Mylne interpretacje wynikają często z braku wiedzy o możliwości automatycznego przypisywania wartości enum, co prowadzi do niepoprawnych założeń o przypisaniach tekstowych.

Pytanie 31

Na czym polega parkowanie domeny?

A. na utworzeniu strefy DNS domeny i wskazaniu serwerów nazw
B. na zmianie właściciela domeny (cesji)
C. na zakupie (rejestracji) nowej domeny
D. na dodaniu rekordu CNAME (aliasu) dla domeny
Pozostałe odpowiedzi opisują inne czynności związane z domeną. Zakup (rejestracja) domeny to nabycie prawa do nazwy w danym rejestrze - pierwszy krok, ale jeszcze nie parkowanie. Dodanie rekordu CNAME to konkretna operacja na DNS (alias jednej nazwy na drugą), a nie całościowe skonfigurowanie domeny. Zmiana właściciela (cesja) to przeniesienie praw do domeny na inny podmiot. Parkowanie polega na ustawieniu strefy DNS i wskazaniu serwerów nazw, dlatego ta odpowiedź jest poprawna.

Pytanie 32

W pokazanym fragmencie zapytania w języku SQL, polecenie SELECT ma na celu uzyskanie wyników z komendy SELECT COUNT(wartosc) FROM....?

A. średnią wartości w tabeli
B. liczbę rekordów
C. średnią wartości w kolumnie wartosc
D. sumę wartości w kolumnie wartosc
W analizowanych odpowiedziach, wybór średniej tabeli, sumy w kolumnie wartosc oraz średniej w kolumnie wartosc jest niepoprawny z uwagi na różnice między funkcjami agregującymi. Średnia tabeli oznaczałaby zliczenie wartości i ich podzielenie przez liczbę elementów, co w przypadku użycia COUNT nie ma miejsca, ponieważ COUNT nie oblicza średniej, a jedynie zlicza ilość rekordów. Dodatkowo, funkcja SUM, która zlicza sumę wartości w określonej kolumnie, wymaga użycia innej syntaktyki, na przykład SELECT SUM(wartosc) FROM... Ponadto, gdyby celem zapytania było zwrócenie średniej wartości w kolumnie wartosc, należałoby użyć zapytania SELECT AVG(wartosc) FROM..., które jest odrębną funkcją od COUNT i ma zupełnie inny cel. W związku z tym, każda z wymienionych odpowiedzi, które sugerują zwrócenie średniej lub sumy, są technicznie błędne, ponieważ nie odpowiadają na zapytanie, które jest skoncentrowane na zliczaniu ilości wierszy, co jest fundamentalną funkcjonalnością polecenia COUNT w systemach baz danych.

Pytanie 33

Która definicja CSS wskazuje na formatowanie nagłówka h1: tekst z przekreśleniem, z odstępami między słowami wynoszącymi 10 px oraz w kolorze czerwonym?

Ilustracja do pytania
A. C
B. D
C. A
D. B
Błędne odpowiedzi są efektem nie do końca właściwego zastosowania CSS w kontekście tego, co pytanie wymagało. Odpowiedź B używa 'letter-spacing: 10px;', co zmienia odstępy między literami, a nie wyrazami, co jest dość istotne w stylizacji. Można się pomylić i myśleć, że to to samo, ale różnią się tym, co robią. Odpowiedź C używa 'line-height: 10px;', ale to też nie spełnia wymagań co do odstępów między wyrazami. Z kolei 'text-transform: none;' to nie to, czego szukasz w tym pytaniu, więc tu też można się pogubić. Odpowiedź D z kolei stosuje 'text-decoration: underline;', a to podkreślenie, a nie nadkreślenie, co też mija się z celem. Ważne, żeby znać te różnice między właściwościami CSS, bo to klucz do skutecznej stylizacji w zgodzie z tym, co projekt wymaga. Dobre użycie CSS nie tylko sprawia, że strona wygląda lepiej, ale też poprawia dostępność i użyteczność.

Pytanie 34

Którego słowa kluczowego SQL należy użyć, aby w wyniku zapytania wyeliminować powtarzające się wartości?

A.
ORDER BY
B.
DISTINCT
C.
LIKE
D.
GROUP BY
Pozostałe słowa robią co innego. LIKE dopasowuje wzorzec tekstu, ORDER BY sortuje wyniki, a GROUP BY grupuje wiersze do agregacji. Powtórzenia w wyniku usuwa DISTINCT.

Pytanie 35

Który atrybut nadać polu, aby przyjmowało automatycznie kolejne liczby całkowite?

A.
NOT NULL
B.
NULL
C.
AUTO_INCREMENT
D.
PRIMARY KEY
Pozostałe atrybuty nie generują wartości. PRIMARY KEY ustanawia klucz główny (wymóg unikalności), ale sam nie nadaje kolejnych liczb. NULL i NOT NULL określają tylko, czy pole może być puste. Automatyczne kolejne liczby daje AUTO_INCREMENT.

Pytanie 36

W tabeli artykuły wykonano następujące instrukcje dotyczące uprawnień użytkownika jan:

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
Po zrealizowaniu tych instrukcji pracownik jan będzie uprawniony do
A. edycji danych oraz przeglądania tabeli
B. wyświetlania zawartości tabeli
C. tworzenia tabeli oraz edytowania danych w niej
D. tworzenia tabeli i wypełniania jej danymi
Wybrane odpowiedzi, które nie są poprawne, nie uwzględniają szczególnych ograniczeń, które zostały nałożone na użytkownika Jana po wykonaniu polecenia REVOKE. W przypadku odpowiedzi sugerujących, że Jan mógłby aktualizować dane i przeglądać tabelę, brakuje zrozumienia znaczenia polecenia REVOKE, które jednoznacznie odmawia tych uprawnień. Aktualizowanie danych w tabeli wymaga posiadania uprawnienia UPDATE, które Jan utracił. Z kolei odpowiedzi sugerujące tworzenie tabeli i aktualizowanie w niej danych oraz przeglądanie tabeli są również mylące, ponieważ wykluczają kluczowy aspekt ograniczeń narzuconych przez polecenie REVOKE. Użytkownik Jan nie może przeglądać danych w tabeli, ponieważ nie ma aktualnie uprawnienia SELECT. Ponadto, w kontekście SQL, każdy użytkownik musi mieć przyznane konkretne uprawnienia do realizacji określonych operacji na danych, co w przypadku Jana oznacza, że jego uprawnienia do SELECT i UPDATE są nieodwracalnie usunięte, co czyni wszystkie te odpowiedzi nieaktualnymi.

Pytanie 37

Które zapytanie MySQL należy użyć, aby usunąć jedynie pracowników, którzy zarabiają nie mniej niż 500 i nie więcej niż 1000 zł oraz ich miejsce pracy zawiera frazę tx

A. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 AND miejsce_pracy LIKE '%tx%';
B. DELETE FROM pracownicy WHERE pensja > 500 AND pensja < 1000 AND miejsce_pracy LIKE '%tx%';
C. DELETE FROM pracownicy WHERE pensja IN (500,1000) AND miejsce_pracy LIKE '*tx*';
D. DELETE FROM pracownicy WHERE pensja BETWEEN 500 AND 1000 OR miejsce_pracy LIKE '%tx%';
W tym zadaniu widać kilka typowych pułapek związanych z SQL-em: składnią operatora LIKE, doborem zakresu liczbowego oraz użyciem spójników logicznych AND i OR. Zacznijmy od wzorca tekstowego. W MySQL, zgodnie ze standardową składnią SQL, do dopasowań wzorców używa się znaków % i _. Procent oznacza dowolny ciąg znaków, a podkreślnik pojedynczy znak. Natomiast gwiazdka * nie jest prawidłowym wildcardem w operatorze LIKE, więc zapis typu LIKE '*tx*' po prostu nie zadziała tak, jak większość osób intuicyjnie zakłada. To jest częsty błąd u osób, które mieszają składnię SQL z np. wyrażeniami w stylu systemów plików czy niektórych narzędzi linuksowych. Kolejna sprawa to warunki logiczne. W tym poleceniu chodziło o wybranie rekordów, które spełniają oba kryteria jednocześnie: pensja w określonym przedziale i miejsce pracy zawiera „tx”. Użycie operatora OR całkowicie zmienia znaczenie zapytania, bo wtedy wystarczy, że spełniony jest tylko jeden z warunków. W efekcie można by usunąć osoby, które mają odpowiednią pensję, ale w ogóle nie mają „tx” w miejscu pracy, albo odwrotnie – mają „tx” w miejscu pracy, ale zarabiają dużo mniej lub więcej niż zadany zakres. To klasyczny przykład nieprecyzyjnie dobranego spójnika logicznego, który na produkcyjnej bazie może zakończyć się masowym usunięciem nie tych danych, co trzeba. Trzeci problem dotyczy interpretacji zakresu. Operator IN z wartościami (500,1000) nie wybiera przedziału od 500 do 1000, tylko dokładnie dwie wartości: 500 i 1000. To nie ma nic wspólnego z „między 500 a 1000”, więc zadanie nie byłoby zrealizowane. Z drugiej strony użycie warunku pensja > 500 AND pensja < 1000 wyklucza wartości graniczne, czyli 500 i 1000, co jest sprzeczne z opisem „nie mniej niż 500 i nie więcej niż 1000”. Z mojego doświadczenia najczęściej takie błędy wynikają z pośpiechu i nieprzeczytania dokładnie treści zadania. Dobra praktyka jest taka, żeby zawsze świadomie decydować, czy zakres ma być domknięty (BETWEEN) czy otwarty (>, <) oraz żeby testować zapytanie w wersji SELECT przed wykonaniem operacji DELETE albo UPDATE. To pozwala od razu zauważyć, że warunki logiczne albo wzorzec LIKE nie działają tak, jak zakładaliśmy w głowie.

Pytanie 38

W znaczniku meta w miejsce kropek należy wpisać

<meta name="description" content="…">
A. nazwę edytora.
B. informację o dostosowaniu do urządzeń mobilnych.
C. język dokumentu.
D. streszczenie treści strony.
Mówiąc, że w znaczniku meta w polu 'content' trzeba umieścić nazwę edytora, to trochę nie na miejscu. Opis strony powinien odnosić się do tego, co właściwie na niej jest, a nie do narzędzia, którym została zrobiona. Tak samo mówienie o definicji języka dokumentu w tym miejscu jest błędne, bo powinno się to robić z atrybutem 'lang' w znaczniku <html>. Wstawianie informacji o wersji mobilnej do pola 'content' znacznika meta też wprowadza w błąd, bo takie rzeczy zazwyczaj są podawane przez odpowiednie style CSS i znacznik <meta name='viewport'>. Często użytkownicy mogą się mylić, myśląc że te informacje można zamieścić w opisie, co jest nieprawda. Każda z tych odpowiedzi pokazuje, że nie do końca rozumiesz, jak działają znaczniki meta i jaka jest ich rola przy tworzeniu stron. Ważne jest, żeby znać gdzie i jak używać różnych atrybutów, bo to wpływa na SEO i na to, jak strona wygląda w wynikach wyszukiwania oraz jakie wartościowe informacje dostarczasz użytkownikom.

Pytanie 39

Zadanie polecenia w języku SQL ALTER TABLE USA ... polega na

A. usunięciu tabeli USA
B. stworzeniu nowej tabeli USA
C. zamianie starej tabeli USA
D. modyfikacji tabeli USA
Odpowiedź dotycząca modyfikacji tabeli USA za pomocą polecenia ALTER TABLE jest prawidłowa, ponieważ ALTER TABLE jest standardowym poleceniem SQL, które pozwala na wprowadzanie zmian w istniejącej tabeli. W praktyce możemy za jego pomocą dodawać nowe kolumny, modyfikować istniejące kolumny (np. zmieniając ich typ danych), lub usuwać kolumny, co jest kluczowe w procesie optymalizacji struktury bazy danych. Przykładem zastosowania tego polecenia może być dodanie kolumny 'wiek' do tabeli 'USA', co można osiągnąć poprzez wywołanie komendy: ALTER TABLE USA ADD wiek INT; Takie zmiany są częścią cyklu życia bazy danych, gdzie w odpowiedzi na nowe wymagania biznesowe lub techniczne dostosowujemy strukturę bazy. Warto przestrzegać dobrych praktyk, takich jak tworzenie kopii zapasowych przed wprowadzeniem zmian oraz testowanie modyfikacji w środowisku deweloperskim przed ich wdrożeniem na produkcji, co minimalizuje ryzyko utraty danych lub błędów w aplikacji.

Pytanie 40

Fragment kwerendy SQL zaprezentowany w ramce ma na celu uzyskanie

SELECT COUNT(wartosc) FROM ...
A. średnią wartość w kolumnie wartosc.
B. liczbę wierszy.
C. sumę wartości w kolumnie wartosc.
D. liczbę kolumn.
SELECT COUNT(wartosc) w zapytaniu SQL jest często mylone z innymi funkcjami agregującymi, co może prowadzić do nieporozumień dotyczących jego działania. COUNT jest specyficznie zaprojektowany do zliczania niepustych wartości w określonej kolumnie, dlatego nie jest używany do obliczania sumy czy średniej wartości. Suma w kolumnie wartosc wymagałaby użycia funkcji SUM(wartosc), która zlicza wartości liczbowe. Z kolei obliczanie średniej wartości w kolumnie wymagałoby zastosowania funkcji AVG(wartosc), która dzieli sumę wartości przez liczbę niepustych wierszy. Mylenie tych funkcji może prowadzić do błędnych interpretacji danych i niepoprawnych wyników, co jest kluczowe w środowisku biznesowym, gdzie precyzja i dokładność są niezbędne. Warto zauważyć, że zrozumienie różnic w działaniu funkcji agregujących jest fundamentalne dla efektywnej analizy danych. Stosowanie odpowiednich funkcji pozwala na optymalizację zapytań oraz zapewnia, że uzyskane wyniki są zgodne z oczekiwaniami analitycznymi, co jest kluczowe w podejmowaniu decyzji opartych na danych.