Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 30 kwietnia 2026 14:05
  • Data zakończenia: 30 kwietnia 2026 14:16

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

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

Algorytm przedstawiony dla tablicy n-elementowej t[n] ma na celu obliczenie sumy:

// K1
i = 0; wynik = 0;
// K2
while i < n do
// K3
wynik = wynik + t[i];
// K4
i = i + 2;
// K5
wypisz(wynik);
A. n-elementów tablicy.
B. wszystkie elementy tablicy.
C. co drugi element tablicy.
D. elementów tablicy, których wartości są nieparzyste.
To właśnie jest sedno tego algorytmu – on faktycznie sumuje co drugi element tablicy. Spójrz na ten fragment: „i = i + 2;”. To kluczowa linia! Po każdym dodaniu elementu do sumy, indeks zwiększa się o dwa, a nie o jeden, jak bywa w klasycznym przeglądaniu tablicy. W praktyce oznacza to, że najpierw bierzemy element t[0], potem t[2], potem t[4] i tak dalej, aż do końca tablicy. Taki sposób iteracji często spotyka się w zadaniach, gdzie zależy nam na analizie tylko parzystych indeksów, np. kiedy chcemy oddzielić wartości z pozycji parzystych od nieparzystych albo przy optymalizacjach związanych z przetwarzaniem dużych zbiorów danych. Co ciekawe, podobna konstrukcja pojawia się w algorytmach, gdzie trzeba obrobić strumień danych fragmentami, np. podczas przeglądania jednej połowy tablicy lub w algorytmach filtrujących sygnały. Z mojego doświadczenia wynika, że taki schemat jest nie tylko szybki, ale też czytelny dla innych programistów. Dobre praktyki zalecają zawsze wyraźnie pokazywać, które elementy są brane pod uwagę w pętli – tutaj jest to bardzo klarowne. Można byłoby to jeszcze rozwinąć, np. obsługując sytuacje, gdzie tablica ma nieparzystą liczbę elementów, ale generalnie, jeśli potrzebujesz sumy co drugiego elementu – taki algorytm jest idealny.

Pytanie 2

Aby zrealizować opisane czynności w JavaScript, konieczne jest umieszczenie poniższego kodu w znaczniku <script>

Ilustracja do pytania
A. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A)
B. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
C. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
D. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: "+A)
Rozważając podane odpowiedzi warto zauważyć kilka typowych błędów koncepcyjnych związanych z używaniem funkcji w JavaScript. Po pierwsze, w jednej odpowiedzi użyto kropki zamiast operatora konkatenacji przy próbie łączenia łańcuchów znaków, co jest błędne w JavaScript. W tym języku operator + jest standardowym sposobem na łączenie tekstu z wartościami zmiennych. Użycie kropki w tym kontekście jest błędne, ponieważ odnosi się do operacji obiektowych, nie do konkatenacji łańcuchów. Innym błędem jest wykorzystanie operatora <<, który w rzeczywistości służy do przesunięć bitowych, a nie do przypisywania wartości czy wywoływania funkcji. Takie pomyłki mogą wynikać z niezrozumienia różnic między operacjami bitowymi a przypisaniem wartości. Kolejna opcja sugerowała użycie alert() zamiast prompt(), co oznaczałoby wyświetlenie jedynie komunikatu bez możliwości wprowadzenia danych przez użytkownika, co nie spełnia założeń zadania polegających na pobraniu wartości od użytkownika. Wszystkie te błędne odpowiedzi wynikają z nieznajomości lub niepoprawnego użycia podstawowych funkcji i operatorów języka JavaScript co podkreśla znaczenie dokładnego zrozumienia podstaw języka oraz ich praktycznego zastosowania. Poprawne użycie prompt() i document.write() jest kluczowe w implementacji interaktywnych elementów na stronach internetowych, co pozwala na dynamiczne przetwarzanie danych użytkowników w aplikacjach webowych. Dobrze jest stosować się do standardów i dobrych praktyk, aby unikać podobnych błędów w przyszłości oraz by tworzyć aplikacje, które są zarówno funkcjonalne, jak i bezpieczne.

Pytanie 3

W C++ stworzono zmienną: char zm1;. Jak można przypisać do niej wartość, zgodnie ze składnią tego języka?

A. zm1 = 'w'
B. zm1 = "wiadro"
C. zm1 == 0x35
D. zm1[2] = 32
Odpowiedzi, które nie zostały wybrane, zawierają istotne błędy koncepcyjne w kontekście przypisywania wartości do zmiennych typu char. Przykładowo, przypisanie 'zm1[2] = 32;' jest błędne, ponieważ próbujemy odwołać się do konkretnego indeksu w zmiennej char, co nie ma sensu, gdy char to pojedynczy znak, a nie tablica. Wartość '32' jest także nieodpowiednia, ponieważ jest to kod ASCII, a nie znak. W C++ przypisanie znaku wymaga użycia pojedynczych apostrofów. Inna nieprawidłowa odpowiedź, 'zm1 = "wiadro";', jest również błędna, ponieważ używamy podwójnych apostrofów, które są stosowane dla łańcuchów tekstowych (string), a nie dla pojedynczych znaków. C++ nie pozwala na przypisanie łańcucha do zmiennej char. Ostatnia odpowiedź, 'zm1 == 0x35;', odnosi się do porównania, a nie do przypisania. Wyrażenie to sugeruje, że chcemy sprawdzić, czy zmienna zm1 jest równa wartości szesnastkowej, co nie jest zgodne z intencją przypisania. Użycie operatora porównania (==) w miejscu operatora przypisania (=) prowadzi do logicznego błędu. W kontekście programowania, kluczowe jest zrozumienie różnicy między przypisaniem a porównaniem, co jest podstawą efektywnego kodowania i programowania w C++.

Pytanie 4

W podanym fragmencie zapytania w języku SQL, komenda SELECT jest używana do zwrócenia SELECT COUNT(wartosc) FROM …

A. średniej w kolumnie wartosc
B. summy w kolumnie wartosc
C. średniej wartości z tabeli
D. ilości wierszy
No, trochę jest tu pomyłka. Ludzie często mylą to zapytanie SELECT COUNT(wartosc) z sumowaniem wartości, co nie jest do końca poprawne. Funkcja COUNT nie sumuje wartości, ona tylko liczy, ile jest niepustych wierszy. Więc jeżeli ktoś twierdzi, że to daje średnią, to wprowadza w błąd – średnią liczymy z pomocą funkcji AVG, a nie COUNT. W kolumnie 'wartosc' mogą być różne liczby, a suma wartości nie ma wiele wspólnego z tym, ile jest wierszy. Dobrze jest pamiętać, że średnia to coś innego niż liczba wierszy, co jest ważne do zrozumienia, jak działają zapytania w SQL. Jeśli ktoś myli te funkcje, to może się zgubić w analizie danych. Więc ogólnie mówiąc, warto wiedzieć, czym różnią się COUNT, AVG i inne funkcje agregujące, bo to kluczowe do ogarnięcia pracy z bazami danych.

Pytanie 5

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

A. PHP oraz MySQL
B. Apache, PHP i MySQL
C. IIS, Perl oraz 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 6

W języku PHP nie można zrealizować

A. tworzenia dynamicznej treści strony
B. przetwarzania danych z formularzy
C. obróbki danych przechowywanych w bazach danych
D. zmiany dynamicznej zawartości strony HTML w przeglądarce
Przetwarzanie danych formularzy to jedna z kluczowych funkcji, które PHP realizuje na co dzień. PHP jest zaprojektowane do obsługi danych przesyłanych przez formularze HTML, co umożliwia dynamiczne przetwarzanie informacji wprowadzonych przez użytkowników. W momencie, gdy użytkownik wysyła formularz, PHP odbiera te dane i może je przetwarzać, walidować oraz zapisywać do bazy danych lub wykorzystywać w inny sposób, co czyni tę odpowiedź niepoprawną. Generowanie dynamicznej zawartości strony to kolejna funkcjonalność, którą PHP realizuje z powodzeniem. Dzięki PHP można tworzyć strony internetowe, które zmieniają się w zależności od różnych czynników, takich jak dane z bazy danych, aktualna godzina czy sesja użytkownika. PHP dynamicznie generuje HTML, który następnie jest wysyłany do przeglądarki. Wreszcie, PHP doskonale radzi sobie z przetwarzaniem danych zgromadzonych w bazach danych. Język ten może łączyć się z różnymi systemami zarządzania bazami danych, takimi jak MySQL, PostgreSQL czy SQLite, umożliwiając wykonywanie zapytań SQL oraz operacji na danych. Dlatego odpowiedzi dotyczące przetwarzania danych formularzy, generowania dynamicznej zawartości oraz interakcji z bazami danych są błędne, ponieważ PHP jest w stanie zrealizować te zadania z dużą skutecznością.

Pytanie 7

W języku PHP funkcja trim ma za zadanie

A. porównywać dwa napisy i wypisywać część wspólną.
B. zmniejszać napis o wskazaną w parametrze liczbę znaków.
C. wyznaczyć długość napisu.
D. z obu końców napisu usuwać białe znaki lub inne znaki podane w parametrze.
Poprawnie – funkcja trim() w PHP służy do usuwania z obu końców napisu tzw. znaków niechcianych, domyślnie białych znaków, czyli spacji, tabulatorów, znaków nowej linii, powrotu karetki itp. Kluczowe jest tu słowo „z końców” – trim nie rusza środka łańcucha, modyfikuje tylko początek i koniec. Składnia jest prosta: trim(string $string, string $characters = " \n\r\t\0\x0B"). Drugi parametr jest opcjonalny i pozwala samodzielnie określić zestaw znaków, które mają być usunięte. Przykład z praktyki: bardzo często po odebraniu danych z formularza stosuje się $name = trim($_POST['name']); żeby usunąć przypadkowe spacje przed i po imieniu użytkownika. Dzięki temu porównywanie napisów, walidacja czy zapisywanie do bazy danych jest bardziej przewidywalne i zgodne z dobrymi praktykami. Moim zdaniem trim to jedna z takich małych funkcji, które powinny wejść w nawyk – szczególnie przy obsłudze inputów użytkownika, importu danych z plików CSV, parsowaniu logów czy przygotowywaniu danych do serializacji. Warto też znać powiązane funkcje: ltrim() usuwa znaki tylko z lewej strony, a rtrim() (alias chop()) tylko z prawej. Dobrą praktyką jest stosowanie trim bezpośrednio po pobraniu danych z zewnętrznych źródeł, zanim zaczniemy robić jakiekolwiek porównania, zapisy do bazy czy generowanie kluczy. Pozwala to uniknąć bardzo irytujących błędów typu „ten sam użytkownik, ale inne spacje”, które potem trudno debugować. W profesjonalnych aplikacjach webowych obróbka łańcuchów, w tym właśnie trim, jest standardowym elementem warstwy walidacji i normalizacji danych wejściowych.

Pytanie 8

Wskaź poprawną formę kodowania polskich znaków w pliku HTML?

A. <meta char set= "UTF-8">
B. <meta "content=UTF-8">
C. <meta charset="UTF-8">
D. <meta content='UTF8'>
Odpowiedź <meta charset="UTF-8"> to strzał w dziesiątkę! To zgodny z nowoczesnymi standardami HTML sposób na określenie kodowania znaków w dokumencie. Dzięki temu, że używamy atrybutu 'charset' z wartością 'UTF-8', mówimy przeglądarkom, że tekst powinien być interpretowany według tego kodowania. UTF-8 jest super popularne, bo obsługuje wszystkie znaki w Unicode. To oznacza, że możemy pisać wszystkie polskie znaki diakrytyczne, czyli te jak ą, ć, ę, ł itd., bez obaw o błędy w wyświetlaniu. Jeśli wstawisz ten tag w sekcji <head> swojego dokumentu HTML, masz pewność, że strona będzie dobrze wyglądać w różnych przeglądarkach i na różnych urządzeniach. Dobrze jest umieszczać go na początku sekcji <head>, żeby uniknąć problemów z pokazywaniem treści. Co więcej, korzystanie z UTF-8 jest rekomendowane przez W3C, więc to naprawdę dobry wybór dla nowoczesnych aplikacji webowych.

Pytanie 9

Na podstawie jakiego parametru oraz z ilu tabel będą zwrócone wiersze w wyniku podanego zapytania?

SELECT * FROM producent, hurtownia, sklep, serwis WHERE
producent.nr_id = hurtownia.nr_id AND
producent.wyrob_id = serwis.wyrob_id AND
hurtownia.nr_id = sklep.nr_id AND
sklep.nr_id = serwis.nr_id AND
producent.nr_id = 1;
A. Na podstawie parametru wyrob_id tylko dla trzech tabel
B. Na podstawie parametru wyrob_id tylko dla trzech tabel
C. Na podstawie parametru nr_id tylko dla trzech tabel
D. Na podstawie parametru nr_id dla wszystkich tabel
Zapytanie SQL w poleceniu jest skonstruowane tak by pobierać dane z czterech tabel: producent hurtownia sklep i serwis W warunku WHERE użyto klauzuli dotyczącej parametru nr_id co powoduje że połączenia między tabelami są realizowane na podstawie tego właśnie parametru Jest to typowe podejście w relacyjnych bazach danych gdzie klucz główny jednej tabeli jest kluczem obcym w innej umożliwiając łączenie danych Parametr nr_id pojawia się wielokrotnie w klauzuli WHERE jako kryterium dla różnych połączeń między tabelami To pozwala na uzyskanie spójnej listy wierszy które spełniają wszystkie zdefiniowane warunki Dzięki temu zapytanie zwraca wiersze dla wszystkich czterech tabel co jest zgodne z odpowiedzią numer 1 Takie podejście umożliwia tworzenie złożonych raportów i analiz danych branżowych Warto także zauważyć że użycie JOIN w taki sposób często optymalizuje wydajność zapytań co jest dobrą praktyką w zarządzaniu bazami danych SQL

Pytanie 10

Aby prawidłowo zorganizować hierarchiczną strukturę tekstu na stronie internetowej, powinno się wykorzystać

A. znacznik <div>
B. znacznik <p> z formatowaniem
C. znaczniki <h1>, <h2> oraz <p>
D. znaczniki <frame> i <table>
Aby poprawnie zdefiniować hierarchiczną strukturę tekstu witryny internetowej, kluczowe jest zastosowanie znaczników <h1>, <h2>, oraz <p>. Znacznik <h1> jest najważniejszym nagłówkiem na stronie i powinien być używany tylko raz, aby wskazać główny temat treści. Z kolei znaczniki <h2> służą do wyodrębnienia podtematów, co pozwala na tworzenie czytelnej i logicznej struktury dokumentu. Dzięki tym znacznikom, zarówno użytkownicy, jak i wyszukiwarki internetowe mogą łatwiej zrozumieć hierarchię treści. Znacznik <p> jest używany do definiowania akapitów, co dodatkowo poprawia czytelność tekstu. Zastosowanie tej struktury jest zgodne z wytycznymi W3C oraz zasadami SEO, co przyczynia się do lepszego indeksowania przez wyszukiwarki. Przykładowo, strona internetowa poświęcona zdrowemu stylowi życia może mieć <h1> jako 'Zdrowy Styl Życia', a <h2> jako 'Dieta' i 'Ćwiczenia', co ułatwia użytkownikom nawigację oraz przyswajanie treści.

Pytanie 11

Określ złożoność obliczeniową algorytmu naiwnego (zwykłego) poszukiwania minimum w kolekcji liczb?

A. O(n3)
B. O(n!)
C. O(n2)
D. O(n)
Algorytm naiwnego (zwykłego) wyszukiwania minimum w zbiorze liczb charakteryzuje się złożonością obliczeniową O(n), co oznacza, że jego czas wykonania rośnie liniowo w zależności od liczby elementów w zbiorze. W praktyce oznacza to, że aby znaleźć najmniejszy element w zbiorze liczb, algorytm przeszukuje wszystkie elementy, porównując je ze sobą. W przypadku zbioru zawierającego n elementów, konieczne jest wykonanie n-1 porównań, co skutkuje liniową złożonością. Wyszukiwanie minimum jest użyteczne w wielu aplikacjach, takich jak analiza danych, gdzie może być wykorzystywane do szybkiego lokalizowania najniższej wartości w zestawie wyników. Dobrymi praktykami w tym zakresie są stosowanie tego algorytmu w sytuacjach, gdy zbiór danych jest relatywnie mały lub gdy zależy nam na prostocie i czytelności kodu. Złożoność O(n) jest optymalna dla tego typu operacji, ponieważ nie da się znaleźć minimum bez przeszukania każdego elementu przynajmniej raz, co potwierdza zasadę, że konieczne jest zbadanie wszystkich danych w celu uzyskania poprawnego wyniku.

Pytanie 12

W znaczniku <meta ...> w sekcji <meta ...> na stronie internetowej nie zamieszcza się informacji o

A. automatycznym odświeżaniu
B. kodowaniu
C. typie dokumentu
D. autorze
W znaczniku <meta> na stronach WWW umieszczane są różnorodne informacje, które pomagają w optymalizacji strony dla wyszukiwarek oraz w poprawie jej użyteczności. Jednym z elementów, które można umieścić w tym znaczniku, jest opis autora strony, co jest użyteczne w kontekście SEO, gdyż umożliwia przypisanie treści do konkretnej osoby. Innym ważnym elementem jest kodowanie, które wskazuje przeglądarce, jak interpretować znaki na stronie, co jest istotne dla poprawnego wyświetlania treści. Warto również zwrócić uwagę na automatyczne odświeżanie, które można ustawić za pomocą znacznika <meta http-equiv='refresh'>, co jest przydatne w przypadku stron, które wymagają cyklicznej aktualizacji treści. Z drugiej strony, informacja dotycząca typu dokumentu, jak na przykład tekst, HTML, czy XML, nie jest umieszczana w znaczniku <meta>. Zamiast tego, typ dokumentu jest określony w nagłówku HTTP poprzez dyrektywę Content-Type, co jest zgodne z wymaganiami protokołu HTTP i spełnia standardy W3C, które zalecają oddzielać metadane od informacji o typie dokumentu. Dlatego też, umieszczanie informacji o typie dokumentu w znaczniku <meta> jest niepoprawne i niezgodne z przyjętymi normami.

Pytanie 13

Formatem grafiki wektorowej jest

A. SVG
B. JPG
C. GIF
D. PNG
Poprawnie – format SVG to grafika wektorowa. SVG (Scalable Vector Graphics) jest oparty na XML i opisuje obraz za pomocą figur geometrycznych: linii, krzywych, prostokątów, okręgów, wielokątów oraz tekstu. Dzięki temu obraz nie składa się z pikseli, tylko z równań matematycznych, więc można go dowolnie skalować bez utraty jakości – logo w SVG będzie równie ostre na wizytówce, jak i na ogromnym billboardzie czy ekranie 4K. To jest właśnie główna przewaga grafiki wektorowej nad rastrową. Moim zdaniem w świecie webowym SVG to dzisiaj standard dla ikon, logotypów, prostych ilustracji, wykresów czy schematów. Przeglądarki traktują SVG jako natywny format wspierany przez specyfikację W3C, można go osadzać bezpośrednio w kodzie HTML (inline) albo jako zewnętrzny plik. Co ważne, elementy SVG da się stylować za pomocą CSS i animować przy użyciu CSS lub JavaScript, co daje ogromne możliwości w interfejsach użytkownika i nowoczesnych stronach WWW. W praktyce dobrym podejściem jest używanie SVG wszędzie tam, gdzie grafika ma być skalowalna, lekka i ostra na różnych urządzeniach: responsywne ikony menu, grafiki w interfejsie aplikacji webowych, piktogramy, infografiki. Dodatkowo SVG często ma mniejszy rozmiar pliku niż odpowiednik PNG w wysokiej rozdzielczości, zwłaszcza gdy obraz składa się głównie z prostych kształtów. Z mojego doświadczenia to jeden z kluczowych formatów, które warto dobrze ogarnąć, jeśli myśli się poważnie o grafice komputerowej i front-endzie.

Pytanie 14

Jaką kompetencję społeczną możemy przypisać osobie, która potrafi wyrażać swoje zdanie oraz argumentować swoje racje, nie naruszając przy tym granic własnych i innych ludzi?

A. Empatia
B. Konformizm
C. Akomodacja
D. Asertywność
Empatia, akomodacja i konformizm to pojęcia, które choć związane z interakcjami społecznymi, nie oddają istoty umiejętności wyrażania własnego zdania w sposób asertywny. Empatia, często mylona z asertywnością, odnosi się do zdolności do rozumienia uczuć i perspektyw innych ludzi. Osoba empatyczna może dostrzegać, co czują inni, ale niekoniecznie jest w stanie wyrażać swoje własne zdanie w sposób, który nie narusza ich przestrzeni. Akomodacja z kolei polega na dostosowywaniu się do potrzeb i oczekiwań innych, często kosztem własnych przekonań, co stoi w sprzeczności z asertywnym wyrażaniem siebie. Osoba stosująca akomodację może unikać konfliktów, lecz nie zyskuje na autentyczności ani nie rozwija umiejętności obrony własnych racji. Konformizm natomiast to tendencja do dostosowywania się do norm grupowych, co może prowadzić do rezygnacji z osobistych przekonań. Chociaż konformizm może pomagać w budowaniu relacji, często wymaga poświęcenia indywidualności, co jest niewłaściwe w kontekście asertywności. W praktyce, zbyt duży nacisk na empatię, akomodację czy konformizm może prowadzić do problemów komunikacyjnych i utraty osobistej tożsamości, co nie jest zgodne z ideą asertywnego wyrażania swoich poglądów.

Pytanie 15

Jaką wartość uzyska zmienna x po wykonaniu poniższego kodu PHP?

mysqli_query($db, "DELETE FROM produkty WHERE status < 0");
$x = mysqli_affected_rows($db);
A. Liczbę wierszy w tabeli produkty, dla których pole status przekracza zero.
B. Liczbę wierszy przetworzonych przez zapytanie DELETE FROM.
C. Liczbę wierszy, które znajdują się w bazie danych.
D. Liczbę wierszy, które zostały dodane do tabeli produkty.
Wybór niepoprawnej odpowiedzi może wynikać z nieporozumienia dotyczącego działania funkcji mysqli_affected_rows oraz zrozumienia zapytań SQL. Wiele osób może myśleć, że funkcja ta zwraca liczbę wierszy w tabeli, co jest błędne. mSQL i PHP oferują wiele funkcji do interakcji z bazą danych, a zrozumienie ich specyfikacji jest kluczowe dla efektywnego programowania. Odpowiedź sugerująca, że x przyjmuje liczbę wierszy znajdujących się w bazie danych, jest absolutnie nieprawidłowa, ponieważ mysqli_affected_rows nie ma nic wspólnego z ogólną liczbą wierszy w tabeli. To funkcja, która skupia się na rezultatach ostatniego zapytania, a nie na całkowitym stanie bazy danych. Podobnie, zrozumienie zapytania DELETE FROM jako operacji, która zmienia stan bazy danych, jest fundamentalne. Inną popularną pomyłką jest myślenie, że liczba wierszy dodanych do tabeli jest w jakiś sposób związana z tym, co robi zapytanie DELETE. W rzeczywistości, podczas usuwania danych, nie dodajemy nic nowego, a funkcja ta jedynie informuje nas o usuniętych elementach. Dobrą praktyką jest również sięganie po dokumentację oraz testowanie kodu, co pozwala na lepsze zrozumienie zachowań funkcji i operacji na bazach danych.

Pytanie 16

Aby baza danych działała poprawnie i konsekwentnie, konieczne jest wprowadzenie w każdej tabeli

A. klucza PRIMARY KEY z wartością NOT NULL i UNIQUE
B. klucza obcego z wartością NOT NULL i UNIQUE
C. klucza FOREIGN KEY z wartością NOT NULL
D. kluczy PRIMARY KEY i FOREIGN KEY
Każda z pozostałych opcji jest błędna z perspektywy podstawowych zasad projektowania baz danych. Klucz FOREIGN KEY jest ważnym elementem w relacyjnych bazach danych, jednak jego sama obecność nie wystarcza do zapewnienia integralności danych w tabeli. Klucz obcy służy jako odniesienie do klucza głównego innej tabeli, co pozwala na łączenie danych, ale nie gwarantuje, że każdy rekord w tabeli będzie miał unikalny identyfikator. W przypadku wartości NOT NULL, nie jest to wymagane dla klucza FOREIGN KEY, ponieważ klucz obcy może odnosić się do wartości NULL w tabeli głównej. Wprowadzenie ograniczenia UNIQUE na kluczu obcym również nie jest konieczne, ponieważ jego głównym celem jest relacja pomiędzy tabelami, a nie zapewnienie unikalności w obrębie jednej tabeli. Dodatkowo, klucz PRIMARY KEY z wartością NOT NULL i UNIQUE jest niezbędny, ponieważ to właśnie te cechy zapewniają, że tabela będzie dobrze zorganizowana i efektywna. Dlatego też, aby zapewnić spójność i integralność danych, klucz PRIMARY KEY odgrywa kluczową rolę, a inne opcje nie mogą zastąpić jego fundamentalnych właściwości.

Pytanie 17

Jaki zestaw liczb zostanie wyświetlony w wyniku działania pętli napisanej w języku PHP?

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45
B. 0 5 10 15 20 25 30 35 40 45
C. 10 15 20 25 30 35 40 45 50
D. 0 5 10 15 20 25 30 35 40 45 50
Pytanie dotyczyło wyniku działania pętli w języku PHP co często prowadzi do nieporozumień związanych z mechaniką działania pętli iteracyjnych. Pierwsza z niepoprawnych odpowiedzi zakładała że pętla wydrukuje również liczbę 0 co jest błędem ponieważ zmienna $liczba jest inicjalizowana wartością 10 i nigdy nie osiągnie wartości mniejszej niż 10 w trakcie działania tego programu. Częstym błędem w myśleniu jest nieuwzględnianie początkowej wartości zmiennej kontrolnej co prowadzi do fałszywych założeń na temat iteracji. Kolejna błędna odpowiedź sugerowała że pętla zakończy się po wypisaniu liczby 50 jednak warunek pętli while sprawdza czy $liczba jest mniejsza od 50 co oznacza że gdy $liczba osiągnie 50 warunek będzie fałszem i pętla zakończy działanie nie wypisując tej wartości. Ostatecznie inna opcja błędnie zakładała wypisanie liczby 0 co jak wcześniej wspomniano jest niemożliwe w kontekście tej konkretnej pętli. Aby uniknąć takich błędów należy zawsze dokładnie analizować warunki początkowe i końcowe oraz mechanizm inkrementacji zmiennej kontrolnej. Korzystanie z debuggera lub ręczne prześledzenie kolejnych kroków pętli może pomóc w lepszym zrozumieniu jej działania w praktyce co jest kluczowe w efektywnym programowaniu aplikacji wykorzystujących złożone struktury iteracyjne. Zrozumienie tych mechanizmów pozwala na tworzenie bardziej wydajnych i bezbłędnych kodów co jest zgodne z dobrymi praktykami programistycznymi.

Pytanie 18

W języku CSS, aby zdefiniować marginesy zewnętrzne o wartościach: margines górny i dolny 20 px, lewy i prawy 40 px należy użyć kodu

A. margin: 20px 40px 40px 20px;
B. margin: 20px 20px 40px 40px;
C. margin: 40px 20px;
D. margin: 20px 40px;
Poprawny zapis margin: 20px 40px; wynika z tzw. skróconej (shorthand) składni własności margin w CSS. Gdy podajemy dwie wartości, przeglądarka interpretuje je zawsze w ten sam sposób: pierwsza wartość dotyczy marginesu górnego i dolnego (top i bottom), a druga wartość dotyczy marginesu lewego i prawego (left i right). Czyli dokładnie tak, jak w treści pytania: 20 px góra/dół i 40 px lewo/prawo. To jest zgodne ze specyfikacją CSS (CSS Box Model) i działa we wszystkich współczesnych przeglądarkach. Moim zdaniem warto zapamiętać ogólny schemat dla margin i padding: – 1 wartość: wszystkie cztery strony jednakowe (margin: 20px;) – 2 wartości: góra/dół, lewo/prawo (margin: 20px 40px;) – 3 wartości: góra, lewo/prawo, dół (margin: 10px 20px 30px;) – 4 wartości: góra, prawo, dół, lewo – zgodnie z ruchem wskazówek zegara (margin: 10px 20px 30px 40px;) W praktyce zapis z dwiema wartościami jest bardzo często używany w layoutach responsywnych, np. przy centrowaniu kontenera: .container { margin: 20px auto; width: 80%; }. Zamiast podawać osobno margin-top, margin-right, margin-bottom i margin-left, używamy jednego, czytelnego skrótu. To nie tylko skraca kod, ale też ułatwia jego późniejsze utrzymanie. Dobrą praktyką jest też świadome korzystanie z jednostek. W przykładach szkolnych często pojawiają się piksele, ale w prawdziwych projektach produkcyjnych często stosuje się rem, em czy jednostki procentowe, żeby łatwiej skalować interfejs. Sama zasada działania shorthand margin pozostaje jednak identyczna, niezależnie od jednostki. Jeśli rozumiesz ten mechanizm, dużo łatwiej będzie Ci później ogarniać spacing w bardziej złożonych layoutach i frameworkach CSS, typu Bootstrap czy Tailwind, które bazują na tych samych regułach box modelu.

Pytanie 19

Jakie źródło danych może posłużyć do stworzenia raportu?

A. zapytanie SELECT
B. projekt raportu
C. etykieta
D. zapytanie ALTER
Odpowiedź 4: zapytania SELECT są naprawdę ważne, bo pozwalają na ściąganie konkretnych danych z bazy. To tak jakbyś miał klucz do swojej bazy informacji. Możemy dzięki nim stworzyć różne raporty, na przykład sprzedaży, wybierając dane z tabeli i filtrując je według daty, produktu czy regionu. Warto pamiętać o używaniu klauzuli WHERE, bo dzięki temu nie dostajemy zbędnych wyników, tylko to, co naprawdę nas interesuje. To, co fajne w zapytaniach SELECT, to że możemy łączyć różne tabele z użyciem JOIN, co pozwala na jeszcze bardziej skomplikowane raporty. Z mojego doświadczenia, umiejętność tworzenia zapytań SELECT i ich optymalizacja są kluczowe w analizie danych, a to pomaga w lepszym podejmowaniu decyzji w biznesie.

Pytanie 20

Ile razy wykona się poniższa pętla napisana w języku PHP, przy założeniu, że zmienna kontrolna nie jest zmieniana w jej wnętrzu?

for ($i = 0; $i <= 10; $i+=2) { ... }
A. 0
B. 6
C. 5
D. 10
Prawidłowa odpowiedź to 6 iteracji, ponieważ pętla for w PHP jest zdefiniowana z inicjalizacją zmiennej $i na 0 oraz warunkiem kontynuacji, który sprawdza, czy $i jest mniejsze lub równe 10. Zmiana wartości $i zachodzi co 2 jednostki dzięki instrukcji $i+=2. Iteracje pętli będą wyglądały następująco: $i = 0, 2, 4, 6, 8, 10. W momencie, gdy $i osiągnie wartość 12, warunek $i <= 10 przestanie być spełniony. Zatem pętla wykona się 6 razy, co jest zgodne z dobrą praktyką programowania, polegającą na dokładnym zrozumieniu warunków i logiki pętli. Zrozumienie tego mechanizmu ma kluczowe znaczenie dla efektywnego pisania kodu, pozwalającego na automatyzację zadań i obliczeń. W praktycznych zastosowaniach pętle są używane do iteracji po elementach tablic, generowania raportów oraz w wielu algorytmach przetwarzania danych.

Pytanie 21

Który efekt został zaprezentowany na filmie?

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

Pytanie 22

Aby zaktualizować maksymalną długość kolumny imie w tabeli klienci do 30 znaków, należy zastosować w języku SQL poniższy kod

A. ALTER TABLE klienci CHANGE imie TEXT;
B. ALTER TABLE klienci MODIFY COLUMN imie VARCHAR(30);
C. CHANGE TABLE klienci TO COLUMN imie SET CHAR(30);
D. CHANGE TABLE klienci MODIFY imie CHAR(30);
Aby zmienić maksymalną długość pola 'imie' w tabeli 'klienci' na 30 znaków, używamy polecenia SQL 'ALTER TABLE', które jest standardowym sposobem modyfikacji struktury tabeli w bazach danych. W tym przypadku wykorzystujemy 'MODIFY COLUMN', co jest istotne, ponieważ pozwala na precyzyjne określenie, że chcemy zmienić właściwości konkretnej kolumny. Typ danych 'VARCHAR' oznacza, że kolumna może przechowywać zmienne długości tekstu, a wartość 30 oznacza maksymalną liczbę znaków. Przykładowo, jeśli w bazie danych już istnieją rekordy, to zmiana ta nie wpłynie na dane, które są krótsze niż 30 znaków, ale może być problematyczna, jeśli próbujemy wprowadzić dane dłuższe niż dozwolone, ponieważ takie operacje mogą kończyć się błędami. Warto również zaznaczyć, że różne systemy zarządzania bazami danych, takie jak MySQL, PostgreSQL czy Oracle, mogą mieć drobne różnice w składni, ale zasada działania polecenia 'ALTER TABLE' pozostaje zasadniczo taka sama. To podejście jest zgodne z zaleceniami standardu SQL i jest powszechnie stosowane w praktykach administracji bazami danych.

Pytanie 23

Jakie pojęcia są wykorzystywane do opisu interfejsu użytkownika serwisu internetowego?

A. Szkic strony, mapa witryny, diagram przepływu informacji
B. Wysyłanie zapytań do bazy, skrypty PHP
C. Przyciski, menu, interakcja użytkownika z aplikacją
D. Przetwarzanie danych, system zarządzania treścią, projektowanie informacji
Odpowiedź "Przyciski, menu, interakcja użytkownika z aplikacją" jest prawidłowa, ponieważ odnosi się bezpośrednio do kluczowych elementów interfejsu użytkownika (UI) na stronach internetowych. Interfejs użytkownika to zespół wszystkich punktów kontaktowych między użytkownikiem a systemem, a przyciski i menu są podstawowymi składnikami, które umożliwiają interakcję z aplikacją. Dobre praktyki projektowania UI opierają się na zapewnieniu intuicyjności i dostępności tych elementów, co jest podstawą pozytywnego doświadczenia użytkownika (UX). Na przykład, przyciski powinny być jasno oznaczone i łatwo rozpoznawalne, a menu powinno być zorganizowane w sposób logiczny, aby użytkownicy mogli szybko znaleźć potrzebne informacje. W kontekście standardów, warto zwrócić uwagę na wytyczne WCAG, które dotyczą dostępności treści internetowych, oraz zasady heurystyki Jakobsona, które pomagają w ocenie interfejsu użytkownika. Dobry design UI powinien również uwzględniać responsywność, co oznacza, że interfejs powinien być użyteczny na różnych urządzeniach i rozmiarach ekranów.

Pytanie 24

W języku CSS, sformatowanie dowolnego elementu języka HTML w ten sposób, że po najechaniu na niego kursorem zmienia on kolor czcionki, wymaga zastosowania pseudoklasy

A. :active
B. :coursor
C. :hover
D. :visited
Poprawna odpowiedź to pseudoklasa :hover. W CSS służy ona dokładnie do tego, o co chodzi w pytaniu: do zmiany wyglądu elementu w momencie, gdy użytkownik najedzie na niego kursorem myszy (albo innym wskaźnikiem). Mechanizm jest prosty: przeglądarka śledzi pozycję kursora i kiedy znajduje się on nad danym elementem, do selektora z :hover zostają zastosowane zdefiniowane tam style. Przykładowo, żeby po najechaniu zmienić kolor tekstu linku, wystarczy napisać: a:hover { color: red; } Można tak samo stylować dowolny element HTML, nie tylko <a>: button:hover { color: white; background-color: #007bff; cursor: pointer; } W nowoczesnych interfejsach :hover jest podstawą efektów „podświetlenia” przycisków, kart, menu rozwijanych itp. Z mojego doświadczenia warto pamiętać o kolejności pseudoklas dla linków: a:link, a:visited, a:hover, a:active – to jest klasyczna dobra praktyka (czasem zapisywana jako LVHA), żeby style się nie nadpisywały w dziwny sposób. Trzeba też mieć w głowie, że na urządzeniach mobilnych :hover działa inaczej lub wcale, bo tam nie ma typowego kursora. Dlatego sensowne jest, żeby najważniejsze informacje nie były dostępne tylko po najechaniu, a :hover traktować bardziej jako poprawę wygody i estetyki, a nie jedyne źródło funkcjonalności. Mimo to w klasycznym desktopowym webie :hover jest absolutnym standardem do reakcji na najechanie kursorem.

Pytanie 25

Aby strona WWW mogła być przesyłana do przeglądarki w formie zaszyfrowanej, należy zastosować protokół

A. HTTP
B. SFTP
C. SSH
D. HTTPS
HTTPS (Hypertext Transfer Protocol Secure) to protokół komunikacyjny, który umożliwia bezpieczne przesyłanie danych pomiędzy przeglądarką internetową a serwerem. Jego podstawowym zadaniem jest zapewnienie poufności i integralności informacji, co osiąga dzięki zastosowaniu szyfrowania. HTTPS korzysta z protokołu SSL/TLS do szyfrowania połączenia, co oznacza, że dane przesyłane pomiędzy użytkownikiem a serwerem są chronione przed podsłuchiwaniem i modyfikacją. Na przykład, w przypadku logowania się do bankowości internetowej, użycie HTTPS zapewnia, że nasze dane logowania są bezpieczne przed potencjalnymi atakami. Zastosowanie HTTPS stało się standardem w branży webowej, zwłaszcza po wprowadzeniu przez Google polityki priorytetowego traktowania stron zabezpieczonych tym protokołem w wynikach wyszukiwania. To nie tylko wzmacnia bezpieczeństwo, ale także zwiększa zaufanie użytkowników do witryn. Standardy dotyczące bezpieczeństwa w sieci zalecają użycie HTTPS jako domyślnego protokołu dla wszystkich stron internetowych, co jest zgodne z najlepszymi praktykami w zakresie ochrony danych.

Pytanie 26

Funkcja zapisana w języku PHP wygląda tak patrz ramka): Jej celem jest

Ilustracja do pytania
A. zwrócenie wartości 1, gdy liczba jest parzysta
B. wypisanie liczby nieparzystej
C. wypisanie liczby parzystej
D. zwrócenie wartości 0, gdy liczba jest parzysta
Funkcja w języku PHP opisana na egzaminie służy do sprawdzania czy podana liczba jest parzysta. Wybór zwracanych wartości 1 i 0 jest klasycznym przykładem użycia binarnych wartości logicznych w programowaniu. Niektóre niepoprawne odpowiedzi mogą wynikać z błędnego zrozumienia działania operatora modulo %. Operator ten oblicza resztę z dzielenia i w przypadku operacji liczb całkowitych przydaje się do określania parzystości. Jeśli liczba jest podzielna przez 2 bez reszty czyli modulo zwraca 0 funkcja zwraca 1 co oznacza że liczba jest parzysta. Niektóre odpowiedzi sugerują że funkcja zwraca lub wypisuje liczby parzyste bądź nieparzyste co jest błędnym rozumieniem działania funkcji zwracającej wartości w kontekście operacji logicznych. Kluczowe jest zrozumienie że funkcje zwracają wartości a nie wypisują ich w przypadku takich jak ten gdzie celem jest jedynie sprawdzenie a nie wyświetlenie wartości. Wybór wartości zwracanych 1 i 0 jest także zgodny z konwencjami logicznymi stosowanymi w warunkowych instrukcjach programistycznych co może być mylnie postrzegane jako konieczność wyświetlenia wyniku. Ważne jest aby pamiętać że w programowaniu logiczne zwracanie wartości jest często używane do późniejszego wykorzystania przez inne części aplikacji w celu podejmowania decyzji lub sterowania przepływem programu. Zrozumienie tych podstawowych zasad pozwala uniknąć błędnych interpretacji i wykorzystać pełnię możliwości jakie daje programowanie w językach takich jak PHP.

Pytanie 27

<?php
function silnia($liczba)
{
    if($liczba < 2)
        return 1;
    else
        return $liczba * silnia($liczba - 1);
}
?>
Funkcja silnia jest funkcją
A. nie zwracającą wyniku.
B. abstrakcyjną.
C. bezparametrową.
D. rekurencyjną.
Funkcja „silnia” w tym przykładzie jest klasycznym przykładem funkcji rekurencyjnej w PHP. Rekurencja polega na tym, że funkcja w swoim wnętrzu wywołuje samą siebie z innym argumentem. Tutaj dokładnie to widzimy w instrukcji `return $liczba * silnia($liczba - 1);`. Każde kolejne wywołanie zmniejsza wartość parametru `$liczba` o 1, aż dojdziemy do warunku zakończenia, czyli tzw. warunku brzegowego: `if($liczba < 2) return 1;`. Ten warunek jest kluczowy, bo bez niego rekurencja nigdy by się nie zatrzymała i skończyłaby się błędem przepełnienia stosu (stack overflow). Z punktu widzenia algorytmiki, silnia jest jednym z pierwszych przykładów, na których uczy się rekurencji, bo definicja matematyczna jest też rekurencyjna: n! = n * (n-1)!, przy 0! = 1 oraz 1! = 1. W kodzie odwzorowujemy to praktycznie 1:1. W profesjonalnym programowaniu webowym rekurencję stosuje się nie tylko do silni, ale np. do przetwarzania drzew kategorii, menu wielopoziomowych, parsowania struktur XML/JSON, czy przechodzenia po drzewach uprawnień. Moim zdaniem ważne jest, żeby przy rekurencji zawsze pilnować dwóch rzeczy: dobrze zdefiniowanego warunku zakończenia i tego, żeby w każdym kroku argument „zbliżał się” do tego warunku. W PHP można też porównać to z wersją iteracyjną (z pętlą), ale w wielu przypadkach rekurencyjna wersja jest czytelniejsza, szczególnie przy strukturach drzewiastych. W praktyce produkcyjnej warto jednak pamiętać o ograniczeniach głębokości stosu i przy bardzo dużych danych czasem lepiej przepisać rekurencję na iterację, ale sam wzorzec, który tu widzisz, jest jak najbardziej zgodny z dobrymi praktykami i podręcznikową definicją funkcji rekurencyjnej.

Pytanie 28

W języku SQL, w wyniku wykonania poniższego zapytania:

ALTER TABLE osoba DROP COLUMN grupa;
A. zostanie usunięta kolumna grupa
B. zostanie dodana kolumna grupa
C. zostanie zmieniona nazwa tabeli na grupa
D. zostanie zmieniona nazwa kolumny na grupa
Zapytanie SQL 'ALTER TABLE osoba DROP COLUMN grupa;' jest komendą, która służy do usunięcia kolumny o nazwie 'grupa' z tabeli 'osoba'. Komenda ta wykorzystuje instrukcję ALTER TABLE, która jest standardową konstrukcją SQL używaną do modyfikacji struktury istniejącej tabeli. W kontekście baz danych, usunięcie kolumny może być nieodwracalne, co oznacza, że wszystkie dane zawarte w tej kolumnie zostaną trwale usunięte. Przykładem zastosowania tej komendy może być sytuacja, w której kolumna 'grupa' nie jest już potrzebna, na przykład, po zmianie wymagań aplikacji lub po analogicznym przekształceniu modelu danych. Zgodnie z normami SQL, aby uniknąć błędów, przed wykonaniem takiej operacji warto wykonać kopię zapasową bazy danych. Warto również pamiętać, że niektóre systemy zarządzania bazami danych mogą wymagać dodatkowych opcji, aby zrealizować tę operację, na przykład, jeśli kolumna jest kluczem obcym lub jest związana z innymi strukturami. Podsumowując, użycie tej komendy skutkuje trwałym usunięciem kolumny 'grupa' z tabeli 'osoba'.

Pytanie 29

W CSS, aby ustalić nietypowe odległości między słowami, używa się właściwości

A. white-space
B. line-spacing
C. word-spacing
D. letter-space
Właściwość line-spacing nie istnieje w CSS. W celu kontrolowania odstępów między liniami tekstu, programiści używają właściwości line-height. Ta właściwość określa wysokość linii, co bezpośrednio wpływa na odstęp między poszczególnymi wierszami tekstu, a nie między samymi wyrazami. Właściwość white-space ma zupełnie inne zastosowanie, ponieważ służy do określania, jak białe znaki, takie jak spacje i nowe linie, są traktowane w danym elemencie. Działa ona na poziomie całego tekstu, a nie na odstępach między wyrazami. Umożliwia kontrolowanie zawijania tekstu, mnożenia białych znaków oraz innych aspektów prezentacji tekstu. Z kolei letter-space nie jest standardową właściwością CSS. Odpowiednikiem tej funkcji jest właściwość letter-spacing, która kontroluje odstęp między poszczególnymi literami w słowie. Użycie letter-spacing pozwala na uzyskanie efektów typograficznych, takich jak zwiększenie przestrzeni między literami dla lepszej czytelności lub estetyki, ale nie może być używane do manipulacji odstępami między całymi wyrazami.

Pytanie 30

Podczas tworzenia tabeli w SQL określono pole, w którym wartości muszą być unikalne. Którego atrybutu należy użyć w jego definicji?

A. DEFAULT
B. IDENTITY
C. UNIQUE
D. NOT NULL
Atrybut DEFAULT nie jest właściwym wyborem, gdyż jego głównym celem jest przypisanie domyślnej wartości do pola, gdy nie zostanie podana żadna inna. Na przykład, jeśli w tabeli produkcji mamy pole 'status', możemy ustawić DEFAULT na 'aktywny', co oznacza, że nowo dodawany rekord automatycznie otrzyma ten status, jeśli nie określimy go inaczej. Nie zapewnia to jednak unikalności wartości w tym polu i wprowadza nieporozumienie w kontekście wymogu o braku powtarzalności. Atrybut IDENTITY jest używany w kontekście automatycznego generowania wartości dla pól, co jest typowe dla kluczy głównych, ale również nie pomaga w utrzymaniu unikalności w szerszym kontekście pola. Przykładowo, kiedy używamy IDENTITY w tabeli, baza danych generuje kolejne liczby dla danego pola, co działa doskonale, ale nie odnosi się do przypadku, w którym chcemy zapewnić unikalność innego pola, jak adres e-mail. Ostatecznie, atrybut NOT NULL określa, że dane pole nie może być puste, co jest ważne dla integracji danych, ale nie ma wpływu na unikalność wartości. Problemy z rozpoznawaniem właściwych atrybutów mogą wynikać z mylnego założenia, że wszystkie te atrybuty mają na celu osiągnięcie unikalności, co jest błędne. Prawidłowe zrozumienie roli każdego z tych atrybutów jest kluczowe dla efektywnego projektowania baz danych i zapewnienia ich integralności.

Pytanie 31

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Przed instrukcją else nie powinno być średnika
B. Zmienne zostały błędnie zadeklarowane
C. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
D. W instrukcji if znajduje się przypisanie zamiast operacji porównania
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.

Pytanie 32

Dokument HTML określa akapit oraz obrazek. Aby obrazek był wyświetlany przez przeglądarkę w tej samej linii co akapit po jego lewej stronie, należy w stylu CSS obrazka uwzględnić właściwość

A. float: left;
B. align: left;
C. style: left;
D. alt: left;
Odpowiedź "float: left;" jest naprawdę trafna. Ta właściwość w CSS sprawia, że elementy układają się obok siebie, co w tym przypadku oznacza, że rysunek wyląduje po lewej stronie akapitu. Jak użyjemy float, to rysunek 'przesuwa się' na lewo, a tekst z akapitu otacza go z prawej strony. To taki popularny sposób w webdesignie, który pozwala na ładniejsze połączenie obrazków z tekstem. Warto pamiętać, że czasem trzeba zastosować clearfix, zwłaszcza gdy mamy pływające elementy w większym układzie, żeby uniknąć problemów z rozmieszczeniem. Stosowanie float w CSS to dobra praktyka, bo pomaga zachować czytelność i estetykę tekstu. Na przykład, jeśli mamy sekcję artykułu z obrazem, który ilustruje omawiany temat, to zastosowanie float: left; sprawi, że treść będzie ładnie się układać i poprawi wrażenia użytkownika.

Pytanie 33

Określ rodzaj powiązania pomiędzy tabelami: Tabela1 oraz Tabela3

Ilustracja do pytania
A. Jeden do wielu
B. Wiele do jednego
C. Jeden do jednego
D. Wiele do wielu
Zrozumienie typów relacji w bazach danych jest kluczowym aspektem projektowania efektywnych i zrównoważonych systemów informatycznych. Jednym z najczęstszych błędów jest mylenie relacji wiele do wielu z innymi rodzajami relacji, takimi jak jeden do wielu lub jeden do jednego. Relacja jeden do wielu oznacza, że jeden rekord w jednej tabeli jest powiązany z wieloma rekordami w innej tabeli, co w przypadku Tabela1 i Tabela3 nie jest stosowne, ponieważ wymagałoby to bezpośredniego połączenia między tymi tabelami bez użycia tabeli pośredniej. Z kolei relacja jeden do jednego implikuje, że każdy rekord w jednej tabeli odpowiada dokładnie jednemu rekordowi w drugiej tabeli, co ogranicza elastyczność danych i nie pasuje do struktur gdzie występuje wiele powiązań, jak w przypadku szkół, gdzie wielu uczniów może mieć zajęcia z tym samym nauczycielem. Wreszcie, relacja wiele do jednego jest odwrotnością relacji jeden do wielu, gdzie wiele rekordów w jednej tabeli odpowiada jednemu rekordowi w drugiej tabeli, co również nie znajduje odzwierciedlenia w przedstawionym schemacie, jako że nie opisuje wzajemnych powiązań uczniów i nauczycieli. Zrozumienie i prawidłowe zastosowanie relacji wiele do wielu eliminuje redundancję danych i umożliwia efektywne przechowywanie oraz przetwarzanie informacji w systemach zarządzania bazami danych. Kluczem do sukcesu jest tutaj wykorzystanie tabel pośrednich do prawidłowego mapowania powiązań między tabelami, co jest standardem w dobrych praktykach projektowania baz danych.

Pytanie 34

$z = mysqli_query($db, "SELECT ulica, miasto, kod_pocztowy FROM adresy");
$a = mysqli_fetch_row($z);
echo "$a[1], $a[2]";
W języku PHP zapisano fragment kodu działającego na bazie MySQL. Jego zadaniem jest wypisanie
A. ulicy i miasta z pierwszego zwróconego rekordu
B. ulicy i miasta ze wszystkich zwróconych rekordów
C. miasta i kodu pocztowego z pierwszego zwróconego rekordu
D. miasta i kodu pocztowego ze wszystkich zwróconych rekordów
Kod PHP wykonuje zapytanie do bazy danych przy użyciu funkcji mysqli_query co powoduje pobranie wszystkich rekordów z kolumn ulica miasto i kod_pocztowy z tabeli adresy jednak funkcja mysqli_fetch_row pobiera tylko pierwszy rekord z wynikowego zbioru danych. Jest to kluczowy aspekt ponieważ mysqli_fetch_row nie iteruje automatycznie przez wszystkie rekordy co jest częstym błędem w interpretacji działania tej funkcji. Często mylnie zakłada się że funkcja echo w połączeniu z pętlą może obsłużyć cały zestaw danych co w kontekście tego kodu nie ma miejsca ponieważ pętla nie została użyta. Zrozumienie działania funkcji takich jak mysqli_fetch_row jest kluczowe dla poprawnego przetwarzania danych z bazy. Indeksowanie w tablicach wynikowych zaczyna się od zera dlatego też $a[1] i $a[2] odnoszą się do drugiego i trzeciego elementu tablicy a nie pierwszego i drugiego co również jest częstym źródłem błędów wśród początkujących programistów. Ponadto brak zrozumienia że echo wypisuje wartości z jednego rekordu a nie wszystkich może prowadzić do błędnych założeń w projektowaniu logiki aplikacji. Aby uzyskać dane ze wszystkich rekordów konieczne byłoby zastosowanie pętli takiej jak while która iterowałaby przez cały zbiór wyników co pokazuje różnicę w podejściu między pobieraniem pojedynczego rekordu a całego zestawu danych. Zrozumienie tych koncepcji jest istotne dla efektywnego i bezpiecznego korzystania z bazy danych w aplikacjach PHP i pozwala na unikanie typowych błędów związanych z przetwarzaniem rekordów z bazy danych. Dokładne zrozumienie struktury tablic wynikowych i sposobu ich przetwarzania jest niezbędne do rozwijania wydajnych i bezpiecznych aplikacji webowych. Warto również pamiętać o zabezpieczeniach takich jak użycie przygotowanych zapytań SQL by uniknąć ataków typu SQL Injection co jest istotnym aspektem tworzenia aplikacji bezpiecznych i odpornych na próby nieautoryzowanego dostępu.

Pytanie 35

Najprostszy sposób zamiany obiektu oznaczonego cyfrą 1 na obiekt oznaczony cyfrą 2 polega na

Ilustracja do pytania
A. animowaniu obiektu.
B. zmianie warstwy obiektu.
C. geometrycznym transformowaniu obiektu.
D. narysowaniu docelowego obiektu.
Wybrałeś poprawną odpowiedź, która jest 'geometrycznym transformowaniem obiektu'. Kiedy mówimy o transformacji geometrycznej, mamy na myśli różne operacje, które można wykonać na obiektach, takie jak skalowanie, obracanie i przesuwanie. W przypadku obiektu oznaczonego numerem 1 i numerem 2 na obrazku, najprostszym sposobem na przekształcenie jednego w drugi jest używanie transformacji geometrycznej. Obiekt numer 2 jest większy i obrócony w stosunku do obiektu numer 1. Dzięki transformacjom geometrycznym mogliśmy osiągnąć ten efekt, skalując i obracając obiekt numer 1. Transformacje geometryczne są podstawą wielu operacji w dziedzinach takich jak grafika komputerowa, projektowanie CAD, animacja, a także w wielu innych dziedzinach technologii i nauki.

Pytanie 36

Które z komend przyznaje najniższy poziom uprawnień dla użytkownika uczen w zakresie modyfikacji danych oraz struktury tabeli?

A. GRANT INSERT, DROP ON szkola.przedmioty TO uczen
B. DRANT DROP ON szkola.przedmioty TO uczen
C. GRANT ALTER, SELECT ON szkola.przedmioty TO uczen
D. GRANT SELECT ON szkola.przedmioty TO uczen
Wszystkie pozostałe polecenia przyznają użytkownikowi uczeń szerszy zakres uprawnień, co prowadzi do większego ryzyka nieautoryzowanej modyfikacji danych. Polecenie DRANT DROP ON szkola.przedmioty TO uczen jest nieprawidłowe, ponieważ DRANT nie jest poprawnym poleceniem SQL, co czyni jego interpretację niemożliwą. W kontekście administracji bazami danych, DROP oznacza usunięcie całej tabeli, co w przypadku użytkownika uczeń może prowadzić do katastrofalnych skutków, gdyż może on przypadkowo lub celowo usunąć istotne dane. Kolejne polecenie GRANT INSERT, DROP ON szkola.przedmioty TO uczen przyznaje prawo do wstawiania nowych danych oraz usuwania tabeli. Takie uprawnienia są zdecydowanie nieodpowiednie dla użytkownika uczeń. Umożliwiają one nie tylko dodawanie nieautoryzowanych rekordów, ale także ich usuwanie, co narusza zasady bezpieczeństwa i integralności danych. Podobnie, GRANT ALTER, SELECT ON szkola.przedmioty TO uczen przyznaje prawo do modyfikacji struktury tabeli, co oznacza, że uczeń mógłby zmieniać kolumny, dodawać nowe oraz wprowadzać zmiany, które mogą wpływać na funkcjonowanie całej bazy danych. Prawo do ALTER jest jednym z najszerszych uprawnień w SQL i nie powinno być przyznawane użytkownikom, którzy nie są administratorami, aby zapewnić pełną kontrolę nad bazą danych.

Pytanie 37

Integralność referencyjna w relacyjnych bazach danych wskazuje, że

A. klucz główny lub klucz obcy nie zawierają żadnych wartości NULL
B. wartość klucza obcego w konkretnej tabeli musi być równa wartości klucza głównego w powiązanej tabeli lub mieć wartość NULL
C. każdemu kluczowi głównemu przyporządkowany jest dokładnie jeden klucz obcy w danej tabeli lub powiązanych tabelach
D. wartość klucza głównego oraz klucza obcego nie może być pusta
Integralność referencyjna to kluczowy koncept w modelu relacyjnych baz danych, który zapewnia spójność oraz integralność danych pomiędzy różnymi tabelami. Oznacza to, że każda wartość klucza obcego w danej tabeli musi być zgodna z wartością klucza głównego w powiązanej tabeli, lub może być wartością NULL, co oznacza brak powiązania. Dzięki temu zyskujemy pewność, że wszelkie relacje między danymi są logiczne i zgodne z założeniami projektowymi bazy danych. Przykładem może być tabela 'Zamówienia', w której klucz obcy 'ID_Klienta' odnosi się do klucza głównego 'ID_Klienta' w tabeli 'Klienci'. Jeśli wartość 'ID_Klienta' w tabeli 'Zamówienia' nie pasuje do żadnej wartości 'ID_Klienta' w tabeli 'Klienci', narusza to integralność referencyjną. Standardy takie jak SQL (Structured Query Language) oraz zasady ACID (Atomicity, Consistency, Isolation, Durability) podkreślają znaczenie integralności danych, co jest kluczowe dla poprawnego funkcjonowania systemów bazodanowych i zapewnienia ich niezawodności oraz efektywności. Utrzymanie integralności referencyjnej jest istotne dla analizy danych, raportowania oraz utrzymywania relacji między różnymi obiektami w bazie.

Pytanie 38

Określ właściwą hierarchię stylów CSS biorąc pod uwagę ich priorytet w stylizacji elementów strony WWW?

A. Rozciąganie stylu, Zewnętrzny, Lokalny
B. Lokalny, Wewnętrzny, Zewnętrzny
C. Wewnętrzny, Zewnętrzny, Rozciąganie stylu
D. Zewnętrzny, Wydzielone bloki, Lokalny
Wszystkie błędne odpowiedzi zawierają istotne nieporozumienia dotyczące priorytetów stylów CSS oraz sposobu, w jaki są one stosowane na stronach internetowych. Porządek stylów jest kluczowy dla efektywnego projektowania stron, a zrozumienie, które style mają pierwszeństwo, jest fundamentalne. Wewnętrzny styl nie powinien być uznawany za wyższy niż zewnętrzny, co sugeruje jedna z niepoprawnych odpowiedzi. Zewnętrzne arkusze stylów, będące najlepszym rozwiązaniem do zarządzania stylami w aplikacjach webowych, są ładowane na początku, co oznacza, że mają niższy priorytet niż style zdefiniowane lokalnie. Natomiast odpowiedzi, które sugerują, że styl zewnętrzny może mieć wyższy priorytet niż lokalny, są szczególnie mylące, gdyż mogą prowadzić do sytuacji, w której zmiany w stylach lokalnych są ignorowane. Dodatkowe błędne koncepcje dotyczą możliwości stosowania tzw. rozciągania stylu, co nie jest terminem uznawanym w kontekście CSS, co jeszcze bardziej potęguje nieporozumienia. W praktyce, nieprzestrzeganie zasad priorytetów stylów CSS może skutkować nieczytelnym kodem i chaotycznym stylem strony, co jest sprzeczne z dobrymi praktykami tworzenia stron internetowych, takimi jak stosowanie zunifikowanych arkuszy stylów i unikanie nadmiarowych deklaracji stylów.

Pytanie 39

Aby za pomocą CSS zdefiniować przedstawione na rysunku opływanie obrazu tekstem należy w stylu obrazu wprowadzić zapis

Ilustracja do pytania
A. clear: both;
B. float: left;
C. float: right;
D. table: left;
Twoja odpowiedź nie jest prawidłowa. Wszystkie podane błędne odpowiedzi są niepoprawne, ponieważ nie tworzą żądanego efektu opływania obrazu przez tekst. 'clear: both;' jest własnością CSS, która służy do zapobiegania opływaniu, a nie jego tworzeniu. Jest używana, gdy nie chcemy, aby dany element był opływany przez inne. 'table: left;' nie jest istniejącą własnością CSS, i nie ma związanego z nią konkretnego efektu. Właściwość 'float: left;' powoduje, że obraz zostaje przesunięty na lewą stronę strony, co powoduje, że tekst opływa go od prawej strony, a nie od lewej, jak to jest wymagane w pytaniu. Pamiętaj, aby zawsze dobrze zrozumieć, jakie efekty daje użycie konkretnych właściwości CSS, zanim zastosujesz je w praktyce.

Pytanie 40

W przedstawionym kodzie HTML ukazany styl CSS to styl:

<p style="color: red;">To jest przykładowy akapit.</p>
A. nagłówkowy.
B. lokalny.
C. dynamiczny.
D. zewnętrzny.
Wybrane opcje mogą wprowadzać w błąd, gdyż każda z nich odnosi się do innego sposobu stosowania stylów w CSS. Styl zewnętrzny polega na umieszczeniu wszystkich reguł stylów w osobnym pliku CSS, który jest linkowany do dokumentu HTML. To podejście jest niezwykle efektywne, ponieważ pozwala na oddzielenie treści od prezentacji i umożliwia wielokrotne wykorzystanie tych samych stylów w różnych częściach witryny. Z kolei styl dynamiczny odnosi się do technik, które zmieniają wygląd elementów w czasie rzeczywistym, na przykład przy użyciu JavaScript lub poprzez interakcje użytkownika. Styl nagłówkowy umieszczany jest w sekcji <head> dokumentu HTML, zazwyczaj za pomocą tagu <style>, co również różni się od stylu lokalnego, który jest bezpośrednio przypisany do konkretnego elementu. Kluczową różnicą jest wpływ na organizację i zarządzanie kodem – zewnętrzne i nagłówkowe style sprzyjają lepszej strukturze, podczas gdy lokalne style mogą prowadzić do nieczytelności kodu i problemów z utrzymywaniem. Zrozumienie tych różnic jest istotne dla efektywnego projektowania stron internetowych oraz dla przestrzegania najlepszych praktyk w zakresie CSS.