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: 23 kwietnia 2026 12:50
  • Data zakończenia: 23 kwietnia 2026 13:07

Egzamin zdany!

Wynik: 22/40 punktów (55,0%)

Wymagane minimum: 20 punktów (50%)

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

Funkcja napisana w PHP ma na celu

Ilustracja do pytania
A. pobranie informacji z bazy danych
B. ustawienie hasła do bazy danych
C. nawiązanie połączenia z bazą danych
D. zabezpieczenie bazy danych
Ustawienie hasła do bazy danych nie jest realizowane przez zapytanie SQL w PHP lecz przez konfigurację połączenia z bazą danych zwykle przy użyciu funkcji mysql_connect lub mysqli_connect gdzie hasło jest jednym z parametrów. Zabezpieczenie bazy danych nie polega na prostym zapytaniu lecz wymaga szerszego podejścia obejmującego kontrolę dostępu zarządzanie uprawnieniami szyfrowanie danych i ochronę przed atakami SQL Injection. Połączenie z bazą danych w PHP realizowane jest poprzez funkcje umożliwiające nawiązanie sesji z serwerem bazodanowym jak mysql_connect lub nowocześniejsze mysqli_connect oraz obiekty PDO które oferują bardziej zaawansowane mechanizmy zarządzania połączeniami. Często występującym błędem jest mylenie funkcji odpowiedzialnych za zarządzanie połączeniem z funkcjami wykonującymi operacje na danych. Mylenie tych dwóch aspektów pracy z bazą danych prowadzi do błędów w aplikacjach jak niewłaściwe zarządzanie zasobami lub podatność na ataki. Nowoczesne podejścia takie jak stosowanie ORM-ów jak Doctrine w PHP abstrahują wiele tych mechanizmów co upraszcza zarządzanie tymi aspektami w kodzie. Ważnym aspektem jest także stosowanie praktyk bezpieczeństwa takich jak walidacja i sanitizacja danych oraz używanie przygotowanych wyrażeń co jest kluczowe w ochronie danych i zapewnieniu prawidłowego działania aplikacji. Zrozumienie tych podstawowych elementów jest kluczowe w tworzeniu bezpiecznych i wydajnych aplikacji bazodanowych.

Pytanie 2

Zdefiniowanie klucza obcego jest niezbędne do utworzenia

A. klucza podstawowego.
B. relacji 1..n.
C. transakcji.
D. relacji 1..1.
W tym pytaniu łatwo się pomylić, bo wszystkie odpowiedzi zahaczają o tematykę baz danych, ale tylko jedna dotyczy faktycznego zastosowania klucza obcego. Klucz obcy w relacyjnej bazie danych służy do wiązania tabel ze sobą i pilnowania integralności referencyjnej. To oznacza, że jego główna rola to powiązanie rekordów: jeden rekord w tabeli nadrzędnej może mieć wiele powiązanych rekordów w tabeli podrzędnej. To jest właśnie relacja 1..n – najczęściej spotykana w normalnych systemach (np. jeden klient, wiele zamówień; jeden autor, wiele książek). Częsty błąd polega na kojarzeniu klucza obcego z transakcjami. Transakcje w SQL (BEGIN, COMMIT, ROLLBACK) to zupełnie inny mechanizm – służą do zapewnienia atomowości, spójności, izolacji i trwałości operacji (tzw. ACID). Można mieć transakcje w bazie nawet wtedy, gdy w ogóle nie ma żadnych kluczy obcych. Klucz obcy nie jest wymagany do rozpoczęcia czy wykonania transakcji, to po prostu inna warstwa logiki. Zdarza się też, że ktoś myli klucz obcy z kluczem podstawowym i myśli, że klucz obcy jest potrzebny do jego utworzenia. Jest dokładnie odwrotnie: najpierw definiuje się klucz podstawowy w tabeli nadrzędnej, a dopiero potem w innej tabeli tworzy się klucz obcy, który się do tego klucza podstawowego odwołuje. Klucz podstawowy identyfikuje jednoznacznie rekord w swojej tabeli, klucz obcy tylko wskazuje na ten rekord z innej tabeli. Jeśli chodzi o relacje 1..1, to one również mogą być realizowane za pomocą kluczy obcych, ale pytanie używa słowa „niezbędne” i w kontekście typowych zastosowań oraz nauczania relacyjnych baz danych klucz obcy kojarzymy głównie z relacją 1..n. Relacja 1..1 jest rzadziej używana i zwykle wymaga dodatkowych ograniczeń (np. klucz obcy, który jest jednocześnie unikalny), więc to już bardziej specyficzny przypadek. Typowym, podręcznikowym i praktycznym zastosowaniem klucza obcego jest właśnie relacja jeden do wielu, i na to pytanie celuje. Z mojego doświadczenia największy problem polega na tym, że uczniowie mieszają pojęcia: transakcje, klucze, relacje, wszystko wrzucają do jednego worka. Warto je rozdzielić: klucz podstawowy – identyfikacja rekordu, klucz obcy – powiązanie między tabelami (relacje, głównie 1..n), transakcje – kontrola przebiegu operacji w bazie. Jak się to poukłada w głowie, projektowanie schematu bazy danych staje się dużo prostsze i bardziej logiczne.

Pytanie 3

W trakcie walidacji dokumentu HTML5 napotkano komunikat o treści: "Error: Element head is missing a required instance of child element title". Co to oznacza w kontekście dokumentu?

A. nie zdefiniowano elementu <title> w sekcji <head> dokumentu.
B. nie zdefiniowano wymaganego atrybutu title w znaczniku <img>.
C. element <title> nie został poprawnie zamknięty przez </title>.
D. element <title> nie jest konieczny.
Element <title> jest kluczowym składnikiem sekcji <head> każdego dokumentu HTML, zgodnie z wytycznymi W3C. Jego głównym zadaniem jest określenie tytułu strony, który jest wyświetlany w pasku tytułowym przeglądarki oraz w wynikach wyszukiwania. Brak tego elementu w dokumencie skutkuje błędem walidacji, ponieważ HTML5 wymaga, aby każdy dokument miał zdefiniowany tytuł. Przykładowo, poprawny fragment dokumentu HTML5 powinien wyglądać następująco: <head><title>Mój dokument</title></head>. Niezdefiniowanie elementu <title> może negatywnie wpłynąć na SEO, ponieważ wyszukiwarki często używają tytułu strony do określenia jej zawartości. W praktyce oznacza to, że każda strona internetowa powinna mieć unikalny tytuł odzwierciedlający jej tematykę, co nie tylko poprawi doświadczenie użytkownika, ale także pomoże w pozycjonowaniu w wynikach wyszukiwania.

Pytanie 4

W podanym kodzie PHP, w miejscu kropek należy umieścić odpowiednią instrukcję

$zapytanie = mysqli_query($db, "SELECT imie, nazwisko FROM uzytkownik");
while ($wiersz = ...................)
    echo "$wiersz[0] $wiersz[1]";
A. mysqli_free_result($zapytanie)
B. mysqli_fetch_array($zapytanie)
C. mysqli_num_fields($zapytanie)
D. mysqli_query($zapytanie)
Funkcja mysqli_fetch_array($zapytanie) jest używana do pobierania wyników zapytania SQL w formie tablicy asocjacyjnej lub indeksowanej. W kontekście podanego kodu, po wykonaniu zapytania SELECT do bazy danych, wyniki są zwracane jako zasób, który musi być przetworzony. Mysqli_fetch_array pozwala na iteracyjne przetwarzanie każdego wiersza z zestawu wyników, co umożliwia dostęp do poszczególnych wartości pól za pomocą indeksów lub kluczy. Jest to przydatne w sytuacjach, gdzie dane muszą być wyświetlane lub przetwarzane w pętli, jak w przykładowym kodzie. Tablica zwracana przez mysqli_fetch_array może zawierać pola zarówno z indeksami numerycznymi, jak i nazwami kolumn, co daje elastyczność w dostępie do danych. Zgodnie z dobrymi praktykami programistycznymi, zawsze należy sprawdzić, czy zapytanie zostało wykonane poprawnie, zanim zacznie się przetwarzać jego wyniki, oraz zwolnić pamięć po zakończeniu przetwarzania wyników. Stosowanie odpowiednich mechanizmów obsługi błędów i zabezpieczeń, takich jak przygotowane zapytania, jest również kluczowe dla bezpieczeństwa aplikacji.

Pytanie 5

Jaką relację w projekcie bazy danych powinno się ustalić pomiędzy tabelami przedstawionymi na rysunku, przy założeniu, że każdy klient sklepu internetowego złoży co najmniej dwa zamówienia?

Ilustracja do pytania
A. 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia
B. 1:1
C. 1:n, gdzie 1 znajduje się po stronie Zamówienia, a wiele po stronie Klienta
D. n:n
Relacja 1:n, gdzie 1 jest po stronie Klienta, a wiele po stronie Zamówienia, oznacza, że każdy klient może mieć wiele zamówień, ale każde zamówienie jest powiązane dokładnie z jednym klientem. To podejście odpowiada rzeczywistości większości sklepów internetowych, gdzie klienci wielokrotnie dokonują zamówień. Projektując bazę danych zgodnie z tą relacją, stosujemy klucz obcy w tabeli Zamówienia, który odwołuje się do klucza głównego w tabeli Klient. Jest to zgodne z dobrymi praktykami w projektowaniu baz danych, które zalecają minimalizowanie redundancji i zapewnienie integralności danych. Praktyczne zastosowanie tego modelu umożliwia łatwe śledzenie historii zamówień klientów, co jest kluczowe dla analizy sprzedaży i zarządzania relacjami z klientami. Relacja 1:n jest jedną z najczęściej stosowanych w modelowaniu danych, co potwierdza jej uniwersalność i skuteczność w różnych systemach informatycznych, od sklepów internetowych po systemy zarządzania zasobami ludzkimi.

Pytanie 6

Które z poniższych poleceń pozwala na dodanie kolumny zadanie_kompletne do tabeli zadania?

A. CREATE INDEX zadania ADD COLUMN zadanie_kompletne int
B. INSERT INTO zadania VALUES zadanie_kompletne
C. ADD COLUMN zadanie_kompletne WITH zadania
D. ALTER TABLE zadania ADD COLUMN zadanie_kompletne int
Dodanie kolumny do istniejącej tabeli w relacyjnej bazie danych może być realizowane za pomocą polecenia ALTER TABLE. To polecenie jest standardem SQL i jest wspierane przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL, Oracle czy Microsoft SQL Server. W przypadku zapytania 'ALTER TABLE zadania ADD COLUMN zadanie_kompletne int', polecenie to modyfikuje strukturę tabeli 'zadania', dodając nową kolumnę o nazwie 'zadanie_kompletne', która będzie przechowywać dane typu całkowitego (int). Praktycznym przykładem zastosowania tego polecenia może być system zarządzania projektami, w którym chcemy śledzić status zadań. Po dodaniu tej kolumny, możemy wprowadzać wartości 0 lub 1, które mogą reprezentować, czy zadanie zostało ukończone, czy nie. Użycie ALTER TABLE jest niezbędne, gdyż inne polecenia, takie jak CREATE INDEX czy INSERT INTO, służą do innych celów, takich jak tworzenie indeksów lub wstawianie danych, a nie do modyfikacji struktury tabeli. W praktyce, aby upewnić się, że zmiany są zgodne z wymaganiami systemu, zaleca się zawsze wykonanie kopii zapasowej bazy danych przed przeprowadzeniem operacji na strukturze tabeli.

Pytanie 7

Zawarte polecenie SQL wykonuje

UPDATE Uczen SET id_klasy = id_klasy + 1;
A. ustalić wartość pola Uczen na 1
B. zwiększyć o jeden wartość w kolumnie id_klasy dla wszystkich rekordów tabeli Uczen
C. powiększyć wartość pola Uczen o jeden
D. ustalić wartość kolumny id_klasy na 1 dla wszystkich rekordów w tabeli Uczen
Polecenie SQL, które analizujemy, to: `UPDATE Uczen SET id_klasy = id_klasy + 1;`. Jego celem jest zwiększenie wartości w kolumnie `id_klasy` o jeden dla wszystkich rekordów w tabeli `Uczen`. Wykorzystanie operacji `SET` w poleceniu `UPDATE` umożliwia modyfikację istniejących danych w bazie. W tym przypadku każda wartość w kolumnie `id_klasy` zostaje powiększona o jeden. To technika często stosowana przy aktualizacjach, gdzie potrzebujemy inkrementować wartości, np. w przypadku liczników, numeracji czy przesuwania pozycji. Stosowanie `UPDATE` zgodnie z dobrymi praktykami wymaga ostrożności, zwłaszcza przy operacjach masowych, aby unikać niezamierzonych zmian w danych. Ważne jest, aby przed wykonaniem takich operacji upewnić się, że kopia zapasowa danych jest dostępna, a operacja została przetestowana w środowisku testowym, aby uniknąć potencjalnych problemów w środowisku produkcyjnym.

Pytanie 8

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość. ```var str1 = "JavaScript"; var str2 = str1.substring(2, 6);```

A. vaSc
B. avaS
C. avaScr
D. vaScri
Pierwsza z niepoprawnych odpowiedzi 'avaS' sugeruje, że odczytujemy znaki zaczynając od drugiego indeksu, jednak końcowy indeks 6 zmienia sposób odczytu. Możliwe, że ktoś mógł pomylić kolejność lub sposób, w jaki substring działa, co jest częstym błędem w zrozumieniu tej metody. Druga odpowiedź 'vaScri' wydaje się sugerować, że ktoś zrozumiał, jak działa substring, ale błędnie wyznaczył końcowy indeks, co prowadzi do wyodrębnienia znacznie większej ilości znaków. W rzeczywistości, aby uzyskać 'vaScri', należałoby użyć indeksów 2 i 8, co również jest nieprawidłowe. Ostatnia niepoprawna odpowiedź 'avaScr' wskazuje na błędne wyznaczenie pierwszego znaku. Użytkownik mógł pomylić interpretację indeksu zaczynając od 0, co w JavaScript jest istotne. W kontekście całego łańcucha, odpowiedzi te pokazują, jak ważne jest zrozumienie indeksowania i prawidłowego użycia metod do manipulacji tekstem, aby unikać błędów w kodzie. Rozwój umiejętności w pracy z łańcuchami tekstowymi jest kluczowy dla efektywnego programowania w JavaScript.

Pytanie 9

Deklaracja z właściwością background-attachment: scroll sprawia, że

A. tło strony zostanie zamocowane, a tekst będzie się poruszał
B. grafika tła będzie widoczna w prawym górnym rogu strony
C. grafika tła będzie się powtarzać (kafelki)
D. tło strony będzie przesuwane razem z zawartością tekstową
Właściwość CSS 'background-attachment: scroll' oznacza, że tło elementu będzie przewijane w równym tempie z treścią na stronie. Kiedy użytkownik przegląda stronę i przewija ją w dół lub w górę, tło przesuwa się razem z zawartością, co tworzy wrażenie głębokości i dynamiki. Przykładem zastosowania tej właściwości może być strona internetowa z długim tekstem, gdzie tło, takie jak kolor lub obraz, jest częścią estetyki projektu, ale nie powinno być statyczne. Warto zauważyć, że można to osiągnąć, ustawiając 'background-attachment' na 'scroll', co jest najczęściej stosowanym ustawieniem. W standardach CSS3 'background-attachment' ma cztery możliwe wartości: 'scroll', 'fixed', 'local', oraz 'inherit'. Stosowanie 'scroll' jest najbardziej intuicyjne i wspiera responsywność, ponieważ zmienia się w zależności od interakcji użytkownika z zawartością. To podejście jest zgodne z praktykami projektowania stron internetowych, które kładą nacisk na użytkownika i interaktywność.

Pytanie 10

Witryna internetowa powinna mieć zaprezentowaną strukturę bloków. Aby osiągnąć ten układ, należy przypisać sekcjom odpowiednie właściwości w następujący sposób:

Ilustracja do pytania
A. float tylko dla bloków: 2, 3, 4; clear dla bloku 5
B. float tylko dla bloku 2; clear dla bloków: 3, 4
C. float wyłącznie dla bloku 5; clear dla bloku 2
D. float tylko dla bloków: 3, 4; clear dla bloku 5
Żeby osiągnąć układ, który widzisz w pytaniu, musisz dobrze zrozumieć, jak działają właściwości CSS float i clear. Właściwość float umożliwia przesunięcie elementów w lewo lub w prawo w stosunku do ich kontenera oraz innych elementów. To jest przydatne do tworzenia układów kolumnowych. W tym przypadku bloki 2, 3 i 4 muszą być przesunięte w prawo, żeby ułożyły się obok siebie na poziomie. Blok 2 jest największy i pełni rolę ramki dla pozostałych bloków. Użycie float dla tych bloków daje oczekiwany efekt. Jednak żeby blok 5 znalazł się pod całą strukturą, musisz zastosować clear dla bloku 5. Dzięki temu clear, blok 5 nie będzie otoczony przez inne elementy z float i znajdzie się poniżej. Z mojego doświadczenia, praktyczne wykorzystanie float i clear jest świetne, bo pozwala na tworzenie responsywnych układów bez potrzeby sięgania po bardziej skomplikowane metody jak flexbox czy grid. Choć float nie jest już tak powszechnie stosowany w profesjonalnych projektach, dobrze jest znać jego działanie i ograniczenia, żeby lepiej rozumieć ewolucję CSS oraz móc pracować z kodem, który jeszcze wykorzystuje te klasyczne metody.

Pytanie 11

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Barwienie.
B. Krzywe.
C. Progowanie.
D. Inwersja.
Wiele osób myli w GIMP-ie różne narzędzia z menu Kolory, bo na pierwszy rzut oka kilka z nich „mocno zmienia” obraz. Jednak efekt pokazany na filmie, gdzie obraz staje się dwuwartościowy (czarno-biały, bez półtonów), jest typowym działaniem funkcji Progowanie. Kluczowe jest tu zrozumienie, czym różnią się od siebie dostępne operacje. Krzywe służą do zaawansowanej korekcji tonalnej i kontrastu. Można nimi mocno przyciemnić lub rozjaśnić wybrane zakresy jasności, robić tzw. efekt kontrastu „S”, korygować prześwietlenia itd. Ale nawet przy bardzo agresywnych ustawieniach krzywych obraz nadal zawiera półtony – pojawiają się stopniowe przejścia między odcieniami, a nie ostre odcięcie na zasadzie czarne/białe. To świetne narzędzie do retuszu zdjęć, ale nie do uzyskania efektu progowania. Inwersja (Kolory → Inwersja) po prostu odwraca wartości kolorów lub jasności: jasne staje się ciemne, czerwony zmienia się na cyjan, zielony na magentę itd. To jak negatyw fotograficzny. Struktura szczegółów pozostaje identyczna, zmienia się tylko ich „biegun”. Nie pojawia się żadne odcięcie progowe, więc obraz wciąż ma pełne spektrum odcieni. W praktyce inwersja przydaje się np. przy przygotowaniu masek lub pracy z materiałami skanowanymi, ale nie generuje typowego, „plakatowego” efektu czerni i bieli jak progowanie. Barwienie z kolei (Kolory → Barwienie) służy do nadania całemu obrazowi jednolitego odcienia, zwykle po wcześniejszym sprowadzeniu go do skali szarości. Można w ten sposób uzyskać np. sepię, niebieski ton nocny albo dowolny kolorystyczny „filtr”. Jasność i kontrast lokalny pozostają bardzo podobne, zmienia się dominująca barwa. To zupełnie inna kategoria operacji niż progowanie, które pracuje na poziomie progów jasności, a nie na poziomie koloru. Typowym błędem jest patrzenie tylko na to, że „obraz bardzo się zmienił” i przypisywanie tego narzędziom takim jak krzywe czy inwersja. W pracy z grafiką warto zawsze zadać sobie pytanie: czy efekt polega na zmianie rozkładu jasności, na odwróceniu kolorów, czy na twardym podziale na dwa poziomy? Jeśli widzisz brak półtonów i ostre granice, praktycznie zawsze chodzi o progowanie, które zostało wskazane jako poprawna funkcja.

Pytanie 12

Proces układania danych w bazie, który obejmuje tworzenie tabel, definiowanie relacji pomiędzy nimi oraz eliminację zbędnych danych i niespójnych powiązań, nazywany jest

A. nadmiarowością
B. sprawdzaniem spójności danych
C. normalizacją
D. sprawdzaniem integralności referencyjnej
Normalizacja to super ważny krok w robieniu baz danych. Chodzi o to, żeby uporządkować dane i pozbyć się zbędnych powtórzeń. Na przykład, jak mamy tabelę 'Klienci' i 'Zamówienia', to normalizacja pozwala połączyć te tabele tak, żeby info o klientach było tylko w jednym miejscu. Dzięki temu, każde zamówienie będzie przypisane do odpowiedniego klienta, co zmniejsza ryzyko zamieszania z danymi. Jak się stosuje zasady normalizacji, takie jak 1NF czy 2NF, to można uniknąć problemów, które mogą się pojawić przy aktualizowaniu, usuwaniu czy dodawaniu danych. Dobrze jest też regularnie sprawdzać, jak ma się struktura bazy, żeby była dostosowana do tego, co w danej chwili potrzebujemy. Tak naprawdę, normalizacja nie tylko dba o prawidłowość danych, ale też sprawia, że wszystko działa sprawniej.

Pytanie 13

Baza danych szkoły podstawowej dla dzieci w wieku 6 lat obejmuje tabelę szkoła, która zawiera kolumny: imie, nazwisko, klasa. Wszyscy uczniowie w klasach od 1 do 5 przeszli do wyższej klasy. W celu zwiększenia wartości w kolumnie klasa o 1, należy wykonać następujące polecenie

A. SELECT szkoła FROM klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
B. UPDATE nazwisko, imie SET klasa = klasa + 1 WHERE klasa>l OR klasa < 5
C. UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5
D. SELECT nazwisko, imie FROM klasa = klasa + 1 WHERE klasa>l OR klasa < 5
Poprawne polecenie to 'UPDATE szkoła SET klasa = klasa + 1 WHERE klasa >=1 AND klasa <= 5;'. To zapytanie aktualizuje wartość w kolumnie 'klasa' dla wszystkich uczniów w tabeli 'szkoła', których aktualny poziom klasy mieści się w zakresie od 1 do 5. Kluczowym elementem jest użycie polecenia UPDATE, które jest standardowym sposobem na modyfikowanie danych w bazach danych SQL. Oznaczenie 'SET klasa = klasa + 1' wskazuje, że chcemy zwiększyć obecną wartość w kolumnie 'klasa' o 1. Warto zwrócić uwagę na warunek WHERE, który filtruje rekordy tak, aby aktualizacja dotyczyła tylko tych uczniów, którzy są w klasach 1-5. Tego rodzaju operacje są powszechnie stosowane w zarządzaniu danymi w aplikacjach edukacyjnych i są zgodne z praktykami bezpieczeństwa i integralności danych, zapewniając, że tylko odpowiednie rekordy są aktualizowane. Przykładem praktycznego zastosowania może być coroczna aktualizacja klas uczniów po zakończeniu roku szkolnego.

Pytanie 14

Aby stworzyć szablon strony z trzema ustawionymi obok siebie kolumnami, można użyć stylu CSS.

A. .kolumny { float: left; width: 40%; }
B. .kolumny { float: left; width: 33%; }
C. .kolumny { float: right; height: 33%; }
D. .kolumny { clear: both; height: 33%; }
Niestety, twoja odpowiedź nie była poprawna. Tworzenie szablonu strony z trzema kolumnami ustawionymi obok siebie wymaga zastosowania właściwości CSS 'float: left;' i ustawieniu szerokości każdej kolumny na 'width: 33%;'. Te dwa elementy są kluczowe do osiągnięcia pożądanego układu. Właściwość 'float' służy do ustawiania elementów strony tak, aby inne elementy opływały je z jednej lub drugiej strony, a 'width' kontroluje szerokość elementu. Niepoprawne rozumienie tych fundamentalnych pojęć CSS może prowadzić do błędów w projektowaniu i kodowaniu stron internetowych, a następnie do niewłaściwego wyświetlania strony na różnych urządzeniach. Ważne jest, aby dokładnie zrozumieć, jak te i inne właściwości CSS działają, aby móc tworzyć funkcjonalne i atrakcyjne strony internetowe.

Pytanie 15

Jeśli zmienna $x przechowuje dowolną dodatnią liczbę naturalną, przedstawiony kod źródłowy PHP ma za zadanie wyświetlić:

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. kolejne liczby od 0 do x-1
B. losowe liczby z przedziału (0, x)
C. kolejne liczby od x do 0
D. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
Niektóre odpowiedzi sugerują niepoprawne interpretacje kodu PHP. Na przykład, propozycja wyświetlenia losowych liczb z zakresu (0, x) nie jest prawidłowa, ponieważ nie ma w kodzie żadnego komponentu generującego liczby losowe. Również pomysł na wczytywanie liczb z klawiatury jest nieprawidłowy, kod nie zawiera żadnej funkcji umożliwiającej wprowadzanie danych przez użytkownika. Ostatecznie, propozycja wyświetlenia liczb od x do 0 również jest błędna, gdyż zmienna $licznik jest zawsze inkrementowana, co oznacza, że jej wartość zawsze wzrasta. Błędne interpretacje wynikają z niewłaściwego zrozumienia funkcjonowania pętli while oraz procesu inkrementacji zmiennych. Ważne jest, aby zawsze dokładnie analizować każdy fragment kodu, zwracając szczególną uwagę na instrukcje warunkowe i manipulacje zmiennymi.

Pytanie 16

Który z rysunków obrazuje efekt działania przedstawionego fragmentu kodu HTML?

<table border="1">
 <tr><td rowspan="2">pierwszy</td><td>drugi</td></tr>
 <tr><td>trzeci</td></tr>
</table>
Ilustracja do pytania
A. B.
B. C.
C. D.
D. A.
Hmm, niestety źle. Ale spoko, każdy czasem myli. Rysunki pokazują różne układy tabel, ale tylko rysunek C oddaje to, co masz w kodzie HTML. Zwłaszcza ważne jest tu użycie atrybutu rowspan='2', który sprawia, że komórka 'pierwszy' rozciąga się na dwa wiersze. W pierwszym wierszu jest 'drugi', a w drugim tylko 'trzeci', bo 'pierwszy' zajmuje już sporo miejsca. Może pomyliłeś rowspan z colspan? To drugie dotyczy kolumn, podczas gdy pierwsze to wiersze. Spróbuj jeszcze raz, mając to na uwadze. Zrozumienie układu tabeli w HTML jest kluczowe dla stworzenia fajnych stron.

Pytanie 17

Jakie wyrażenie logiczne w języku PHP weryfikuje, czy zmienna1 znajduje się w przedziale jednostronnie domkniętym <-5, 10)?

A. $zmienna1 <= -5 || $zmienna1 < 10
B. $zmienna1 >= -5 || $zmienna1 < 10
C. $zmienna1 >= -5 && $zmienna1 < 10
D. $zmienna1 <= -5 && $zmienna1 < 10
Błędne odpowiedzi opierają się na niewłaściwym zrozumieniu pojęcia przedziału oraz operatorów logicznych w języku PHP. W przypadku wyrażenia $zmienna1 >= -5 || $zmienna1 < 10, użycie operatora || (lub) oznacza, że wystarczy, aby jedna z warunków była spełniona, co prowadzi do sytuacji, w której każde zmienne, które są mniejsze od 10, również zostaną uznane za poprawne, nawet jeśli są mniejsze niż -5. Takie podejście nie odzwierciedla założonego przedziału. Kolejna niepoprawna koncepcja to wyrażenie $zmienna1 <= -5 || $zmienna1 < 10, które również wprowadza w błąd, ponieważ pozwala na wartości mniejsze lub równe -5, a także na wartości mniejsze od 10, co całkowicie wykracza poza założony przedział. Wyrażenie $zmienna1 <= -5 && $zmienna1 < 10 również jest błędne, ponieważ sugeruje, że zmienna1 musi być jednocześnie mniejsza lub równa -5 oraz mniejsza od 10, co jest logicznie sprzeczne z definicją przedziału. W praktyce, takie błędne podejścia mogą prowadzić do nieprawidłowych wyników i trudności w diagnostyce błędów, dlatego kluczowe jest zrozumienie i poprawne stosowanie operatorów oraz warunków w kodzie. Zastosowanie błędnych wyrażeń może prowadzić do wprowadzenia poważnych błędów w logice programu, co jest niepożądane w kontekście dobrej praktyki programistycznej.

Pytanie 18

W języku SQL operator arytmetyczny odpowiadający reszcie z dzielenia to

A. %
B. ||
C. /
D. &
Operator arytmetyczny modulo, czyli ten %, to coś, co moim zdaniem jest naprawdę przydatne w SQL. Używamy go do obliczania reszty z dzielenia, co pokazuje na przykład taki kod: 'SELECT 10 % 3;', który zwraca 1. Chodzi o to, że 10 dzielone przez 3 to 3, a reszta to właśnie 1. To może być super pomocne, kiedy chcemy sprawdzić, czy liczba jest parzysta czy nie. Na przykład, możemy użyć takiego zapytania: 'SELECT CASE WHEN 5 % 2 = 0 THEN 'Parzysta' ELSE 'Nieparzysta' END;' i dostaniemy 'Nieparzysta'. Operator modulo przydaje się też w programowaniu, na przykład do tworzenia cykli lub rozdzielania danych w algorytmach. Dobrze jest pamiętać, że używając tego operatora w SQL, warto mieć na uwadze czytelność kodu. Szczególnie przy większych bazach danych, gdzie to ma znaczenie.

Pytanie 19

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
B. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
C. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
D. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
Odpowiedź jest prawidłowa, ponieważ proces normalizacji sygnału dźwiękowego faktycznie polega na dostosowywaniu głośności nagrania w taki sposób, aby najgłośniejszy fragment osiągał maksymalny poziom na skali. W praktyce, jeżeli najgłośniejszy element sygnału osiąga połowę skali, program do obróbki dźwięku zwiększa głośność wszystkich innych fragmentów, aby najgłośniejszy osiągnął pełną głośność. To działanie jest zgodne z powszechnie przyjętymi standardami normalizacji dźwięku, które zapewniają, że nagrania mają spójny poziom głośności, co jest istotne w produkcji audio, aby nie występowały nagłe zmiany głośności pomiędzy różnymi utworami. Normalizacja jest szczególnie przydatna w kontekście przygotowywania materiałów do publikacji, takich jak albumy muzyczne czy podcasty, gdzie istotne jest, by słuchacz nie musiał regulować głośności podczas odtwarzania różnych nagrań. Przykładem może być album muzyczny, gdzie różne utwory mogą mieć różne poziomy nagrania, a normalizacja pozwala na ich wyrównanie w celu uzyskania jednolitego doświadczenia słuchowego.

Pytanie 20

W edytorze grafiki rastrowej funkcja „dodaj kanał alfa” umożliwia

A. powiększenie głębi ostrości obrazu
B. wyostrzenie krawędzi obrazu
C. wprowadzenie warstwy z przezroczystością
D. ustawienie prawidłowego balansu bieli
Dodanie kanału alfa w edytorze grafiki rastrowej to w zasadzie otworzenie drzwi do pracy z przezroczystością w obrazie. Kanał alfa jest dodatkową składową pikseli, która oprócz wartości RGB określa też poziom przejrzystości danego fragmentu grafiki. Moim zdaniem, to jeden z kluczowych elementów, jeśli chcesz przygotować grafikę do profesjonalnych zastosowań, np. do webdesignu, gier czy produkcji materiałów do druku z efektem nakładania. Standardowym przykładem jest sytuacja, gdy przygotowujesz logo i zależy Ci, żeby tło było przezroczyste – wtedy bez kanału alfa ani rusz. W praktyce, po dodaniu kanału alfa możesz wymazywać fragmenty lub stosować selektywne przezroczystości, co daje mnóstwo kreatywnych możliwości. To taka podstawa, bez której ciężko wyobrazić sobie pracę z warstwami, maskami czy efektami blendingu. Z mojego doświadczenia, osoby zaczynające pracę z grafiką często nie zdają sobie sprawy, jak ważne jest świadome zarządzanie przezroczystością – a kanał alfa właśnie to umożliwia. Nawet w najpopularniejszych formatach plików, jak PNG, obsługa kanału alfa jest już praktycznie standardem branżowym. Warto też wiedzieć, że w formatach takich jak JPEG tego nie uzyskasz, bo nie obsługują przezroczystości. Tak więc, jeśli planujesz pracę z grafiką wielowarstwową, przygotowywanie sprite’ów czy nowoczesnych UI, kanał alfa to absolutna podstawa, nie tylko bajer.

Pytanie 21

Sprawdzenie poprawności pól formularza polega na weryfikacji

A. czy użytkownik jest zalogowany
B. który użytkownik wprowadził informacje
C. czy wprowadzone dane spełniają określone reguły
D. czy istnieje plik PHP, który przetworzy dane
Walidacja pól formularza jest kluczowym elementem w procesie zbierania danych od użytkowników. Jej głównym celem jest upewnienie się, że dane, które użytkownik wprowadza, są zgodne z określonymi regułami i standardami. Na przykład, jeśli pole formularza wymaga adresu e-mail, walidacja może sprawdzić, czy wprowadzone dane mają odpowiedni format (np. zawierają '@' i końcówkę domeny). Ważne jest, aby walidację przeprowadzać zarówno po stronie klienta, jak i serwera. Walidacja po stronie klienta (np. za pomocą JavaScript) może szybko informować użytkownika o błędach, ale nie powinna być jedyną metodą, gdyż można ją łatwo obejść. Walidacja po stronie serwera, przeprowadzana w językach takich jak PHP lub Python, zapewnia, że dane są na pewno zgodne z wymaganiami systemu przed ich przetworzeniem. Przykładami reguł walidacji mogą być wymagania dotyczące długości tekstu, formatów numerów telefonów czy też wymagalności pewnych pól, co jest zgodne z dobrymi praktykami UX oraz standardami bezpieczeństwa danych.

Pytanie 22

Zdefiniowano poniższą funkcję w PHP:

function policz($Z) {
    while($Z < 5) {
        $Z += 2 * $Z + 1;
    }
    return $Z;
}
Funkcję policz wywołano z wartością argumentu $Z = 1. Jaki rezultat zostanie zwrócony?
A. 1
B. 7
C. 13
D. 4
Twoja odpowiedź jest na miejscu. Funkcja 'policz' w PHP działa jak pętla, która powoli zwiększa wartość zmiennej $Z, dopóki nie jest większa niż 5. W każdej iteracji dodaje do niej wynik z wyrażenia 2 * $Z + 1. Zaczynamy z $Z równym 1. W pierwszej iteracji wychodzi 3 ($Z = 2 * 1 + 1), a w drugiej – 13 ($Z = 2 * 3 + 1). Kiedy $Z przekracza 5, pętla się zatrzymuje, a funkcja 'policz' zwraca 13. Rozumiejąc, jak to działa, łatwiej przewidywać, co się stanie w podobnych funkcjach.

Pytanie 23

Podczas tworzenia tabeli w SQL, dla jednej z kolumn ustalono klucz główny. Jakie atrybuty należy zastosować, aby uniemożliwić wprowadzenie wartości pustej?

A. UNIQUE
B. NOT NULL
C. NULL
D. DEFAULT
Odpowiedzi, które wskazują inne atrybuty, są niepoprawne z kilku powodów. Atrybut NULL, który dopuszcza wstawianie pustych wartości, nie może być zastosowany w kontekście klucza głównego, ponieważ klucz główny musi mieć unikalne i niepuste wartości. Użycie UNIQUE z kolei zapewnia, że wartości w danej kolumnie są unikalne, ale nie blokuje możliwości wstawienia wartości NULL. W przypadku, gdy kolumna klucza głównego byłaby zdefiniowana jako UNIQUE, to mogłoby prowadzić do sytuacji, w której możliwe jest wstawienie wielu rekordów z wartością NULL, co jest sprzeczne z zasadą integralności danych. Atrybut DEFAULT natomiast pozwala na przypisanie domyślnej wartości do kolumny, jeśli nie zostanie ona podana podczas wstawiania rekordu, ale również nie zabezpiecza przed wstawieniem wartości NULL, co w kontekście klucza głównego jest niedopuszczalne. Wszystkie te atrybuty mają swoje zastosowania w różnych kontekstach, ale w przypadku klucza głównego, ONLY NOT NULL jest odpowiednim rozwiązaniem, które gwarantuje pełną integralność danych oraz unikalność każdego rekordu w tabeli.

Pytanie 24

Formaty wideo, które są wspierane przez standard HTML5, to

A. Ogg, QuickTime
B. MP4, Ogg, WebM
C. Ogg, AVI, MPEG
D. MP4, AVI
Wybór odpowiedzi takiej jak MP4, AVI, nie uwzględnia faktu, że format AVI nie jest obsługiwany przez HTML5. AVI to starszy format kontenera, który wymaga zainstalowanych kodeków, co czyni go mniej przydatnym w kontekście nowoczesnych aplikacji webowych, które stawiają na zgodność i łatwość użycia. Podobnie, wybór Ogg, QuickTime również jest błędny, ponieważ format QuickTime, choć popularny, nie jest częścią standardu HTML5 i wymaga korzystania z dodatkowych wtyczek lub komponentów w przeglądarkach, co nie sprzyja wydajności ani wygodzie użytkowników. W przypadku Ogg, choć jest to format otwarty, jego zastosowanie w praktyce jest ograniczone w porównaniu z MP4 czy WebM. Również zestawienie Ogg, AVI, MPEG jest mylące, ponieważ MPEG to bardziej ogólne określenie dla różnych standardów kompresji wideo, a nie konkretny format pliku. Współczesne praktyki programistyczne i standardy internetowe preferują formaty, które są natywnie wspierane przez przeglądarki, a te, które wymagają dodatkowych wtyczek lub nie są powszechnie używane, są odrzucane. Zrozumienie, które formaty są zgodne z HTML5, jest kluczowe dla zapewnienia optymalnych doświadczeń użytkownika.

Pytanie 25

Narzędziem do zarządzania bazą danych, które jest zintegrowane w pakiecie XAMPP, jest

A. phpMyAdmin
B. MySQL Workbench
C. SQLite
D. pgAdmin
phpMyAdmin jest popularnym narzędziem wbudowanym w pakiet XAMPP, które służy do zarządzania bazą danych MySQL. Umożliwia użytkownikom łatwe wykonywanie operacji takich jak tworzenie, edytowanie i usuwanie baz danych oraz tabel, a także zarządzanie użytkownikami i uprawnieniami. Interfejs phpMyAdmin jest oparty na przeglądarkach internetowych, co sprawia, że jego obsługa jest intuicyjna nawet dla osób bez zaawansowanej wiedzy technicznej. Przykładowo, można szybko importować lub eksportować dane w różnych formatach, takich jak SQL, CSV czy XML, co jest niezwykle przydatne podczas migracji danych między różnymi środowiskami. Standardy dobrych praktyk przewidują korzystanie z narzędzi takich jak phpMyAdmin w celu minimalizacji ryzyka błędów manualnych, a także w celu zwiększenia efektywności pracy z bazami danych. Dzięki phpMyAdmin, użytkownicy mogą również łatwo monitorować wydajność bazy danych i optymalizować zapytania, co jest kluczowe dla utrzymania wysokiej jakości aplikacji webowych.

Pytanie 26

Dostępna jest tabela programisci, która zawiera pola: id, nick, ilosc_kodu, ocena. Pole ilosc_kodu wskazuje liczbę linii kodu stworzonych przez programistę w danym miesiącu. W celu obliczenia łącznej liczby linii kodu napisanych przez wszystkich programistów, należy zastosować poniższe polecenie

A. SELECT SUM(ocena) FROM ilosc_kodu;
B. SELECT SUM(ilosc_kodu) FROM programisci;
C. SELECT COUNT(programisci) FROM ilosc_kodu;
D. SELECT MAX(ilosc_kodu) FROM programisci;
Aby obliczyć sumę linii kodu napisanych przez wszystkich programistów w tabeli 'programisci', poprawne jest użycie zapytania SQL: SELECT SUM(ilosc_kodu) FROM programisci. Zapytanie to wykorzystuje funkcję agregującą SUM(), która sumuje wartości w określonej kolumnie, w tym przypadku 'ilosc_kodu'. Kolumna ta zawiera liczbę linii kodu napisanych przez każdego programistę w danym miesiącu. Przykładem zastosowania tego zapytania może być sytuacja, w której chcemy określić całkowitą produktywność zespołu programistycznego w danym okresie czasu. Możemy rozszerzyć to zapytanie, dodając klauzulę WHERE, aby zsumować tylko linie kodu z określonego miesiąca lub roku. Warto również pamiętać o standardach SQL oraz zasadach normalizacji baz danych, które zalecają unikanie redundancji danych i umożliwiają efektywne przetwarzanie zapytań. Dzięki poprawnym praktykom można zapewnić optymalizację wydajności bazy danych oraz ułatwić późniejsze analizy danych.

Pytanie 27

Wskaż fragment CSS, który odpowiada rozkładowi bloków 2-5, zakładając, że zostały one zbudowane na podstawie podanego kodu HTML.

Ilustracja do pytania
A. Kod 1
B. Kod 2
C. Kod 3
D. Kod 4
Niepoprawne podejścia w pozostałych kodach wynikają z niewłaściwego użycia właściwości float oraz clear. W Kodzie 1 użycie float: right; dla czwartego bloku jest poprawne, jednak clear: both; dla piątego bloku powoduje, że nie będzie on kontynuował linii z poprzednimi blokami, co nie pasuje do przedstawionego układu. Clear: both; wymusza przeniesienie bloku poniżej aktualnej linii. Kod 3 charakteryzuje się brakiem właściwości clear, co prowadzi do problemów z układem, gdyż blok 5 ułożony float: right; nie rozpocznie nowego wiersza, co jest potrzebne w tym zadaniu. W Kodzie 4 brak jest jakiegokolwiek użycia właściwości float lub clear dla bloków 3, 4 i 5 co uniemożliwia osiągnięcie założonego układu. Brak float dla trzeciego i czwartego bloku spowoduje, że będą one umieszczone pod sobą jako blokowe elementy domyślnie, co nie pasuje do układu. Prawidłowa organizacja układu bloków za pomocą właściwości float opiera się na odpowiednim przypisaniu float: left; lub right; oraz strategicznym użyciu clear, aby kontrolować przepływ elementów w wierszach. Typowym błędem jest niezrozumienie, że clear resetuje przepływ dla kolejnego bloku, co jest kluczowe w manipulacji wyglądem layoutu blokowego w starszych technikach CSS. Takie błędy mogą prowadzić do nieprzewidywalnych rezultatów, zwłaszcza gdy układ jest testowany na różnych przeglądarkach i rozdzielczościach ekranów, co podkreśla znaczenie testowania i walidacji CSS w kontekście projektów webowych. Stosowanie zasad float i clear wymaga precyzyjnego planowania, by unikać konfliktów w przepływie i zachować spójność wizualną projektu webowego.

Pytanie 28

Z uwagi na zaprezentowany styl CSS, plik rysunek.gif jest używany jako tło strony:

body {
    background-image: url("rysunek.gif");
    background-repeat: repeat-y;
}
A. zarówno w pionowym, jak i poziomym kierunku ze skalowaniem
B. w poziomym kierunku
C. w pionowym kierunku
D. zarówno w pionowym, jak i poziomym kierunku z kadrowaniem
Pierwsza nieprawidłowa koncepcja zakłada, że obraz tła może być powtarzany w poziomie, co nie jest zgodne z zastosowaną wartością `repeat-y`. Właściwość `background-repeat` z wartością `repeat-y` powoduje powtarzanie jedynie w osi pionowej, co wyklucza powtarzanie w poziomie. Kolejnym błędnym podejściem jest założenie, że obraz tła jest powtarzany jednocześnie w pionie i w poziomie z kadrowaniem. Kadrowanie, czyli dostosowanie wymiarów obrazu w tło, nie jest związane z ustawieniem `repeat-y`. To ustawienie kontroluje jedynie sposób powtarzania obrazu, a nie jego rozmiar czy kadrowanie. Ostatnia błędna odpowiedź zakłada, że występuje skalowanie tła zarówno w pionie, jak i poziomie. Skalowanie obrazu tła wymaga użycia `background-size`, a nie `background-repeat`. Jest to częsty błąd polegający na mieszaniu właściwości CSS, co może prowadzić do nieprzewidywalnych efektów wizualnych na stronie. Rozumienie rozróżnienia między powtarzaniem, skalowaniem a kadrowaniem obrazu tła jest kluczowe w projektowaniu nowoczesnych layoutów webowych.

Pytanie 29

Naciśnięcie przycisku o nazwie "niebieski" spowoduje uruchomienie podanego kodu JavaScript. Jaki będzie rezultat jego działania?

Ilustracja do pytania
A. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
B. Zmiana koloru tekstu "i skrypt" na niebieski
C. Zmiana koloru przycisku na niebieski
D. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
Kod JavaScript przedstawiony w pytaniu korzysta z funkcji changeColor, która zmienia kolor tekstu elementu HTML. Funkcja ta przyjmuje parametr newColor, który w tym przypadku wynosi 'blue'. W momencie kliknięcia przycisku z atrybutem onClick, funkcja changeColor jest wywoływana z argumentem 'blue'. Kod wewnątrz funkcji używa metody document.getElementById aby uzyskać dostęp do elementu HTML o identyfikatorze 'para1'. Następnie zmienia kolor tekstu tego elementu, korzystając z właściwości style.color, na wartość przekazaną jako parametr, czyli 'blue'. Takie podejście jest zgodne z dobrymi praktykami w JavaScript, gdzie oddziela się logikę skryptu od treści HTML. W efekcie, po kliknięciu przycisku, zmieniony zostanie kolor tekstu zawartego w elemencie o id 'para1', co w tym przypadku odnosi się do tekstu 'Przykładowy tekst'. Takie rozwiązania są powszechnie stosowane w dynamicznych aplikacjach webowych, umożliwiając dynamiczną interakcję użytkownika z zawartością strony.

Pytanie 30

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Aleksandra
B. Tomasz
C. Anna
D. Krzysztof
Niestety, inne odpowiedzi są błędne, bo wynikają z pomyłki w zrozumieniu indeksowania tablic w PHP. W tym języku liczymy od zera, czyli pierwszy element przypisany ma indeks 0, a nie 1 czy 2. To jest dość powszechna zasada, którą można spotkać w innych językach, jak C czy JavaScript, więc warto to ogarnąć. Spójrzmy na naszą tablicę: $imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra'); mamy 'Annę' na indeksie 0, 'Tomasza' na 1, 'Krzysztofa' na 2 i 'Aleksandrę' na 3. Jak używamy echo $imiona[2], to chcemy wyciągnąć trzeci element, czyli 'Krzysztofa'. Często błędy wynikają z myślenia, że liczymy od jedynki, co jest bardziej intuicyjne w niektórych kontekstach. Jednak w programowaniu przyjęło się liczenie od zera, co ułatwia różne obliczenia i operacje. Na przykład, w pętlach for często zaczynamy od i=0, co jest całkiem logiczne w związku z indeksowaniem. Niepoprawny indeks może prowadzić do błędów w czasie wykonania, więc warto to rozumieć, żeby uniknąć takich sytuacji.

Pytanie 31

Podane zapytanie SQL przyznaje użytkownikowi adam@localhost uprawnienia:

GRANT SELECT, INSERT, UPDATE, DELETE
ON klienci TO adam@localhost
A. do manipulowania danymi bazy danych klienci
B. do zarządzania strukturą tabeli klienci
C. do zarządzania strukturą bazy danych klienci
D. do manipulowania danymi w tabeli klienci
Pozostałe opcje wskazują na zarządzanie strukturą bazy danych lub tabeli co w kontekście podanego polecenia SQL nie jest prawidłowe Zarządzanie strukturą bazy danych odnosi się do operacji takich jak tworzenie usuwanie lub modyfikowanie tabel indeksów i innych obiektów bazy danych Przykłady takich operacji to polecenia CREATE ALTER i DROP które zmieniają definicję strukturalną tabel lub innych obiektów bazodanowych W przypadku zarządzania strukturą tabeli moglibyśmy mówić o dodawaniu nowych kolumn zmienianiu typu danych istniejących kolumn czy zmianach w kluczach indeksach Tego typu zmiany nie są objęte poleceniem GRANT SELECT INSERT UPDATE DELETE które koncentruje się wyłącznie na manipulacji danymi w istniejącej strukturze Dlatego też typowym błędem myślowym jest utożsamianie operacji na danych z operacjami modyfikującymi strukturę bazy danych takimi jak dodawanie tabel czy kolumn Operatorzy SQL są precyzyjnie zdefiniowani i rozdzieleni na kategorie manipulacji danymi DML oraz definicji danych DDL co jest kluczowym rozróżnieniem w pracy z bazami danych

Pytanie 32

W PHP zmienna $_GET stanowi zmienną

A. utworzoną przez autora strony, przeznaczoną do przesyłania danych z formularza przez adres URL
B. zwykłą, utworzoną przez autora strony
C. predefiniowaną, służącą do przesyłania informacji do skryptów PHP przez adres URL
D. predefiniowaną, wykorzystywaną do zbierania danych formularza po nagłówkach żądania HTTP (informacje z formularza nie są widoczne w URL)
Odpowiedzi, które wskazują na to, że zmienna $_GET jest zwykłą zmienną lub jest definiowana przez twórcę strony, są nieprawidłowe. $_GET jest superglobalną tablicą, co oznacza, że jej dostępność jest zapewniona w całym skrypcie bez potrzeby wcześniejszego deklarowania. Zrozumienie różnicy między zmiennymi predefiniowanymi a tymi zdefiniowanymi przez użytkownika jest kluczowe dla właściwego zarządzania danymi w PHP. Ponadto, odpowiedzi sugerujące, że $_GET służy do gromadzenia wartości formularza po nagłówkach zlecenia HTTP, mylą metodę GET z metodą POST. W przeciwieństwie do POST, dane przesyłane za pomocą GET są widoczne w adresie URL, co czyni je mniej bezpiecznymi dla wrażliwych danych. Mówiąc o formularzach, $_GET jest jedynie jedną z metod przesyłania danych, obok $_POST i $_REQUEST, z których każda ma swoje specyficzne zastosowania i ograniczenia. Generalnie, korzystanie z $_GET jest odpowiednie do przesyłania niewielkich ilości danych, takich jak parametry zapytań, ale należy być świadomym, że wykorzystywanie tej metody z danymi wrażliwymi jest ryzykowne i należy unikać tego podejścia w praktyce. Dbając o bezpieczeństwo aplikacji, warto zrozumieć te różnice i stosować się do dobrych praktyk dotyczących przetwarzania danych wejściowych.

Pytanie 33

W relacyjnych bazach danych, gdy dwie tabele są ze sobą powiązane przez ich klucze główne, mamy do czynienia z relacją

A. 1 .. n
B. n .. 1
C. 1 .. 1
D. n .. n
Odpowiedź 1 .. 1 jest prawidłowa, ponieważ opisuje relację, w której każdemu rekordowi w jednej tabeli odpowiada dokładnie jeden rekord w drugiej tabeli. Taka relacja jest często wykorzystywana w systemach baz danych, gdzie klucz główny jednej tabeli jest jednocześnie kluczem obcym w drugiej tabeli. Przykładem może być relacja między tabelą 'Użytkownicy' a tabelą 'Profile', gdzie każdy użytkownik ma dokładnie jeden profil, a każdy profil jest przypisany do jednego użytkownika. W kontekście standardów baz danych, relacje 1 .. 1 pomagają w eliminacji redundancji danych i zapewniają integralność danych. Dobrą praktyką jest stosowanie takich relacji w sytuacjach, gdy dane mogą być logicznie podzielone, ale nie powinny być powielane. Inne podejścia, jak relacje 1 .. n czy n .. n, mogą prowadzić do większej złożoności w modelowaniu danych oraz potencjalnych problemów z integralnością danych, dlatego stosowanie relacji 1 .. 1 jest korzystne dla przejrzystości i efektywności struktury bazy danych.

Pytanie 34

Jakie imiona spełniają warunki klauzuli LIKE w zapytaniu?

SELECT imie FROM mieszkancy WHERE imie LIKE '_r%';
A. Rafał, Rebeka, Renata, Roksana
B. Krzysztof, Krystyna, Romuald
C. Gerald, Jarosław, Marek, Tamara
D. Arleta, Krzysztof, Krystyna, Tristan
W przypadku opcji, które nie są poprawne, można dostrzec kilka kluczowych błędów w rozumowaniu. W pierwszej grupie imion, Gerald, Jarosław, Marek i Tamara, żadne imię nie spełnia kryterium '_r%', ponieważ nie mają one 'r' na drugiej pozycji. Gerald ma 'e' na drugiej pozycji, Jarosław 'a', Marek 'a', a Tamara 'a'. W drugiej grupie, Rafał, Rebeka, Renata i Roksana, również nie ma imion, które spełniają warunek. Rafał ma 'a' na drugiej pozycji, Rebeka 'e', Renata 'e', a Roksana 'o'. Co więcej, w ostatniej grupie Krzysztof i Krystyna są poprawne, ale Romuald nie spełnia warunku, gdyż 'o' jest na drugiej pozycji. Często popełnianym błędem w analizie wzorców przy użyciu LIKE jest pomijanie istotnych pozycji w analizowanym ciągu, co prowadzi do błędnych wniosków. Warto również podkreślić, że w SQL klauzula LIKE jest używana do porównywania wzorców, ale ważne jest, aby dokładnie zrozumieć, jak działają znaki wieloznaczne, takie jak '%' i '_', aby efektywnie korzystać z tej funkcjonalności. Zrozumienie, które znaki są na jakiej pozycji i jakie wartości mogą się z nimi wiązać, jest kluczowe w uzyskaniu poprawnych wyników.

Pytanie 35

Który z elementów relacyjnej bazy danych, będący kodem w języku SQL, może być użyty w zapytaniach zmieniających kolumny danych przedstawiane w formie tabeli, niezależnie od tego, czy jest tworzony ręcznie, czy też dynamicznie?

A. Wyzwalacz
B. Procedura składowa
C. Funkcja zdefiniowana
D. Reguła
Reguła, wyzwalacz oraz procedura składowa to inne obiekty, które jednak nie spełniają wymogów opisanych w pytaniu. Reguły, które są defektem w SQL, pozwalają na określenie, jak dane powinny być modyfikowane, ale są mniej elastyczne i nie pozwalają na dynamiczne przetwarzanie. Nie są one już powszechnie używane w nowoczesnych systemach zarządzania bazami danych (DBMS), ze względu na problemy z wydajnością i zrozumiałością kodu. Wyzwalacze to mechanizmy uruchamiane automatycznie w odpowiedzi na określone operacje na danych, takie jak INSERT, UPDATE lub DELETE. Chociaż wyzwalacze mogą być przydatne do automatycznego przetwarzania danych, nie mogą być wywoływane bezpośrednio w zapytaniach SQL, co ogranicza ich zastosowanie w przypadku złożonych logik. Procedura składowa natomiast, choć może zawierać logikę modyfikacji danych i być wywoływana w odpowiedzi na określone zdarzenia, jest zdefiniowana jako zestaw instrukcji, który nie zwraca wartości ani nie może być używana bezpośrednio w zapytaniach modyfikujących kolumny danych. Procedury składowe są bardziej złożone, a ich wywołanie często wymaga dodatkowych parametrów oraz kontekstu, co czyni je mniej odpowiednimi w sytuacjach, w których potrzebna jest prostota i elastyczność.

Pytanie 36

Tabela samochody zawiera dane przedstawione poniżej:

idklasa_idmarkamodelrocznik
11fordka2017
22seattoledo2016
33opelzafira2018
42fiat500X2018
53opelinsignia2017
Wydając zamieszczone zapytanie SQL, jakie dane zostaną zwrócone:
SELECT model FROM samochody WHERE rocznik > 2017 AND marka = "opel";
A. zafira; insignia
B. opel zafira; opel insignia
C. zafira
D. opel zafira
Poprawna odpowiedź to 'zafira', ponieważ zapytanie SQL odnosi się do modelu samochodu marki 'opel', którego rocznik jest większy niż 2017. Z analizy danych w tabeli wynika, że tylko model 'opel zafira' (z rocznika 2018) spełnia te warunki. Odpowiedzi 'opel zafira', 'zafira; insignia', 'opel zafira; opel insignia' zawierają dodatkowe informacje, które nie są zgodne z wymaganiami zapytania. Dobrym przykładem zastosowania takiej analizy jest filtrowanie danych w bazach danych, co jest kluczowym procesem w zarządzaniu informacjami. Efektywne posługiwanie się zapytaniami SQL to umiejętność istotna w pracy każdego analityka danych, programisty, czy specjalisty w zakresie baz danych, ponieważ pozwala na wyciąganie precyzyjnych informacji zgodnych z wymaganiami biznesowymi.

Pytanie 37

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?

A. if ((a > 0 && a < 100) 11 b < 0)
B. if (a > 0 && a < 100 && b > 0)
C. if (a > 0 || a < 100 11 b < 0)
D. if ((a > 0 11 a < 100) && b > 0)
Odpowiedzi, które nie spełniają wymogów pytania, zawierają różne błędy logiczne i syntaktyczne, które mogą prowadzić do nieporozumień w kodzie. W pierwszej opcji użyto operatora '11', co jest błędem, ponieważ nie jest to poprawny operator w JavaScript. Prawidłowy operator to '&&', który łączy warunki logiczne. W przypadku drugiej opcji zastosowano operator '||', co oznacza logiczne 'lub', co jest nieodpowiednie, gdyż wymaga spełnienia przynajmniej jednego z warunków, co nie jest zgodne z wymaganiem pytania. Dodatkowo, warunek a < 100 powinien być połączony z a > 0 w sposób, który jednoznacznie wskazuje na przedział wartości, co nie ma miejsca w tym zapisie. W kolejnej odpowiedzi, użycie operatora '11' również jest niepoprawne, co świadczy o nieznajomości podstawowych zasad składni języka JavaScript oraz błędnym zrozumieniu operatorów logicznych. Tego typu błędy często wynikają z ustalonych nawyków programistycznych, które nie uwzględniają specyfiki języka, co prowadzi do nieprawidłowych wniosków. Aby unikać takich pomyłek, warto regularnie przeglądać dokumentację oraz praktykować pisanie kodu z zachowaniem wytycznych dotyczących standardów i dobrych praktyk programowania.

Pytanie 38

Ikona przedstawiająca funkcję w edytorze grafiki rastrowej, znana jako „kubełek”, pozwala na

Ilustracja do pytania
A. zmianę bieżących kolorów
B. wypełnienie obszaru, który został zaznaczony kolorem
C. wybór obszaru o identycznym kolorze
D. pobranie wybranej barwy i ustawienie jej jako aktywnej
Narzędzie 'kubełek', często spotykane w edytorach grafiki rastrowej takich jak Adobe Photoshop czy GIMP, służy do wypełniania zaznaczonego obszaru kolorem. Jest to szczególnie przydatne w sytuacjach, gdy chcemy szybko zapełnić jednolitym kolorem duże powierzchnie, takie jak tła lub obiekty. Działa na zasadzie zalewania najbliższych pikseli wybranym kolorem, uwzględniając podobieństwo kolorów, co można regulować za pomocą opcji tolerancji. W praktyce, narzędzie to usprawnia proces tworzenia grafik, ponieważ eliminuje potrzebę ręcznego kolorowania każdego piksela. Dodatkowo 'kubełek' może być stosowany w połączeniu z różnymi trybami mieszania, co pozwala na uzyskanie bardziej zaawansowanych efektów wizualnych. Praca z 'kubełkiem' wymaga zrozumienia koncepcji warstw, ponieważ wypełnianie na konkretnej warstwie ma wpływ na finalny wygląd projektu. Wiedza o tym, jak skutecznie używać narzędzia 'kubełek', jest niezbędna dla każdego grafika cyfrowego, który chce pracować efektywnie i profesjonalnie, realizując projekty zgodnie z najlepszymi praktykami branżowymi.

Pytanie 39

Podaj właściwą sekwencję przy tworzeniu bazy danych?

A. Zdefiniowanie celu, normalizacja, utworzenie relacji, stworzenie tabel
B. Zdefiniowanie celu, stworzenie tabel, utworzenie relacji, normalizacja
C. Zdefiniowanie celu, utworzenie relacji, stworzenie tabel, normalizacja
D. Zdefiniowanie celu, normalizacja, utworzenie tabel, stworzenie relacji
Prawidłowa odpowiedź wskazuje, że pierwszym krokiem w procesie tworzenia bazy danych jest określenie celu, co jest kluczowe dla zrozumienia, jakie dane będą gromadzone i w jaki sposób będą one używane. Następnie, stworzenie tabel to fundament, na którym opiera się cała baza danych. Tabele definiują struktury danych, które będą przechowywane, a ich projektowanie powinno uwzględniać normalizację, czyli proces eliminowania redundancji danych i zapewniania ich integralności. Utworzenie relacji między tabelami jest kolejnym krokiem, który pozwala na efektywne łączenie danych w różnych tabelach, co z kolei umożliwia bardziej złożone zapytania. Normalizacja, będąca ostatnim krokiem, pozwala na optymalizację struktury bazy, co zwiększa wydajność operacji. Przykład zastosowania tej kolejności można zobaczyć w projektowaniu systemów zarządzania bazami danych w przedsiębiorstwach, gdzie dokładne określenie potrzeb biznesowych wpływa na przyszłe modele danych i ich relacje.

Pytanie 40

Program napisany w języku PHP ma na celu wyliczenie średniej pozytywnych ocen ucznia w zakresie od 2 do 6. Warunek doboru ocen w pętli obliczającej średnią powinien zawierać wyrażenie logiczne

A. $ocena > 2 or $ocena < 6
B. $ocena >= 2 or $ocena <= 6
C. $ocena >= 2 and $ocena <= 6
D. $ocena > 2 and $ocena < 6
Wybrana odpowiedź jest poprawna, ponieważ warunek '$ocena >= 2 and $ocena <= 6' precyzyjnie definiuje zakres ocen, które mają być brane pod uwagę przy obliczaniu średniej. Użycie operatora 'and' zapewnia, że tylko oceny mieszczące się w przedziale od 2 do 6, włącznie z obydwoma krańcami, będą uwzględnione. Przykład praktyczny to sytuacja, w której programista chciałby zrealizować system oceny uczniów, w którym dopuszczalne oceny to 2, 3, 4, 5 i 6. Gdybyśmy użyli operatora 'or', program mógłby przyjąć oceny spoza tego zakresu, co prowadziłoby do nieprawidłowych obliczeń i fałszywych wniosków. W kontekście programowania w PHP, stosowanie poprawnych warunków logicznych jest kluczowe dla zapewnienia prawidłowego działania kodu. Dobrym przykładem zastosowania takiego warunku jest pętla, która iteruje przez zestaw ocen i sumuje je, aby na końcu obliczyć średnią. Stosując odpowiednie warunki, programista może być pewny, że obliczenia są realizowane na danych, które są zgodne z wymaganiami. Warto również zauważyć, że w kontekście dobrych praktyk programistycznych, jasne definiowanie warunków logicznych pozwala na łatwiejsze zrozumienie kodu przez innych programistów oraz ułatwia jego późniejsze utrzymanie.