Wyniki egzaminu

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

Egzamin zdany!

Wynik: 32/40 punktów (80,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

Jak nazywa się rodzaj programowania, w którym program to ciąg poleceń (sekwencja instrukcji) przekazywanych komputerowi?

A. stanowe
B. imperatywne
C. logiczne
D. funkcyjne
Programowanie IMPERATYWNE opisuje program jako CIĄG poleceń (instrukcji) wykonywanych krok po kroku - mówisz komputerowi DOKŁADNIE, co i w jakiej kolejności ma robić. To najbardziej klasyczne podejście (C, Pascal). Zapamiętaj: imperatywne = „rozkazujące”, sekwencja instrukcji.

Pytanie 2

W języku JavaScript zapis

x = przedmiot.nazwa();
oznacza, że
A. zmienna x będzie przechowywać wynik działania metody nazwa.
B. nazwa jest polem klasy przedmiot.
C. nazwa jest właściwością obiektu przedmiot.
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
Twoja odpowiedź jest poprawna. W języku JavaScript, zapis 'x = przedmiot.nazwa();' oznacza wywołanie metody 'nazwa' na obiekcie 'przedmiot' i przypisanie zwróconego przez nią wyniku do zmiennej 'x'. Metoda to funkcja zdefiniowana w kontekście obiektu. Ten zapis jest stosowany, gdy chcesz wykonać określone działanie na obiekcie i przechować wynik dla dalszego użycia. Jest to zgodne ze standardami i dobrymi praktykami JavaScript, które zalecają wykorzystywanie metod obiektów do manipulacji ich stanem. Dzięki temu, kod jest bardziej zorganizowany, czytelny i łatwiejszy do utrzymania.

Pytanie 3

Grafika powinna być zapisana w formacie GIF, jeśli

A. istnieje potrzeba zapisu obrazu w formie bez kompresji
B. jest to obraz w technologii stereoskopowej
C. jest to grafika wektorowa
D. konieczne jest zapisanie obrazu lub animacji
Format GIF (Graphics Interchange Format) jest powszechnie wykorzystywany do przechowywania obrazów oraz animacji. Dzięki obsłudze przezroczystości oraz możliwości tworzenia prostych animacji, GIF stał się standardem w przypadku grafiki na stronach internetowych. Jego ograniczenie do 256 kolorów sprawia, że idealnie nadaje się do prostych grafik, takich jak logo czy ikony, gdzie nie jest wymagana pełna gama kolorów, co ma miejsce w formatach takich jak JPEG czy PNG. W przypadku animacji, GIF umożliwia zapis wielu klatek w jednym pliku, co pozwala na odtwarzanie sekwencji obrazu bez potrzeby korzystania z dodatkowego oprogramowania. Praktyczne zastosowanie GIF-a można zaobserwować w mediach społecznościowych, gdzie animowane obrazki są często wykorzystywane do wyrażania emocji, a także na stronach internetowych do przedstawiania logo w ruchu. Używanie formatu GIF w kontekście animacji jest zgodne z dobrą praktyką w branży, ponieważ pozwala na efektywne zarządzanie zasobami wizualnymi oraz zwiększa atrakcyjność treści wizualnych.

Pytanie 4

Aby w wyniku zapytania wyeliminować powtarzające się wiersze, należy użyć klauzuli

A.
UNIQUE
B.
ORDER BY
C.
LIMIT
D.
DISTINCT
Klauzula DISTINCT w zapytaniu SELECT porównuje całe zwracane wiersze i pozostawia tylko niepowtarzalne, usuwając wszystkie ich kopie. Dotyczy zestawu kolumn wskazanych po słowie SELECT: jeśli dwa wiersze mają identyczne wartości we wszystkich tych kolumnach, w wyniku pojawi się jeden z nich. Na przykład SELECT DISTINCT miasto FROM klienci zwróci listę miast bez powtórzeń, nawet gdy wielu klientów mieszka w tym samym mieście. To właśnie ta klauzula odpowiada za eliminację zduplikowanych wierszy w wyniku zapytania.

Pytanie 5

Użytkownik podał adres nieistniejącego zasobu na serwerze. Jaki błąd HTTP zostanie zwrócony?

A. 404
B. 503
C. 400
D. 500
Gdy serwer nie znajduje zasobu pod podanym adresem, zwraca kod HTTP 404 (Not Found). Należy on do klasy 4xx, czyli błędów po stronie klienta - tu chodzi o żądanie nieistniejącej strony lub pliku. Dlatego serwer zwróci 404.

Pytanie 6

W tabeli artykuly wykonano określone instrukcje dotyczące uprawnień użytkownika jan. Po ich realizacji użytkownik jan uzyska możliwość

GRANT ALL PRIVILEGES ON artykuly TO jan
REVOKE SELECT, UPDATE ON artykuly FROM jan
A. tworzenia tabeli i wypełniania jej informacjami
B. edycji danych i przeglądania zawartości tabeli
C. tworzenia tabeli oraz edytowania jej zawartości
D. sprawdzania zawartości tabeli
Prawidłowa odpowiedź wskazuje na to że użytkownik jan ma prawa do tworzenia tabeli i wypełniania jej danymi co wynika z początkowego nadania pełnych praw za pomocą komendy GRANT ALL PRIVILEGES i późniejszego cofnięcia konkretnych przywilejów SELECT i UPDATE. To oznacza że jan zachował uprawnienia do tworzenia tabelek i wstawiania danych do tabeli bez możliwości przeglądania czy aktualizowania danych w istniejących wierszach. W kontekście zarządzania bazami danych takie precyzyjne przyznawanie i odbieranie uprawnień jest kluczowe do utrzymania integralności i bezpieczeństwa danych. Przykładowo w środowisku produkcyjnym tworzenie i wypełnianie tabel może być ograniczone do administratorów baz danych lub zespołów deweloperskich podczas gdy inne role mogą mieć jedynie prawa do odczytu. Takie zarządzanie uprawnieniami pomaga zminimalizować ryzyko błędów i nieautoryzowanych modyfikacji danych. Standardy takie jak ISO/IEC 27001 zalecają precyzyjne zarządzanie dostępem w celu zabezpieczenia informacji co jest dobrą praktyką w branży IT.

Pytanie 7

Które polecenie nadaje użytkownikowi uczen najniższe uprawnienia (najmniejszą możliwość modyfikacji danych i struktury)?

A.
GRANT SELECT ON szkola.przedmioty TO uczen;
B.
GRANT DROP ON szkola.przedmioty TO uczen;
C.
GRANT ALTER, SELECT ON szkola.przedmioty TO uczen;
D.
GRANT INSERT, DROP ON szkola.przedmioty TO uczen;
Najmniej ingerujące prawo to samo CZYTANIE danych - GRANT SELECT ON szkola.przedmioty TO uczen; pozwala tylko odczytywać tabelę, bez modyfikacji danych i struktury. Dlatego najniższe uprawnienia daje GRANT SELECT.

Pytanie 8

Innym określeniem saturacji koloru jest:

A. jasność koloru
B. przezroczystość koloru
C. nasycenie koloru
D. dopełnienie koloru
Saturacja to po prostu NASYCENIE koloru - opisuje, jak czysta i intensywna jest barwa. Przy wysokiej saturacji kolory są żywe i soczyste, a przy stopniowym obniżaniu blakną, aż przy zerze przechodzą w odcienie szarości. To jeden z trzech parametrów modeli HSV i HSL (obok odcienia i jasności). Dlatego innym określeniem saturacji jest nasycenie koloru.

Pytanie 9

Jakie są przykłady standardowych poleceń w języku zapytań SQL, odnoszących się do operacji na danych SQL DML, takich jak wstawianie, usuwanie oraz modyfikacja danych?

A. ALTER, CREATE, DROP
B. DENY, GRANT, REVOKE
C. SELECT, SELECT INTO
D. DELETE, INSERT, UPDATE
Poprawna odpowiedź to DELETE, INSERT, UPDATE, które są podstawowymi poleceniami w języku SQL dla operacji manipulacji danymi (DML, Data Manipulation Language). Polecenie INSERT służy do dodawania nowych rekordów do tabeli, na przykład: 'INSERT INTO pracownicy (imie, nazwisko) VALUES ('Jan', 'Kowalski');'. DELETE umożliwia usunięcie istniejących danych, co można zrealizować poprzez 'DELETE FROM pracownicy WHERE nazwisko = 'Kowalski';', co kasuje rekordy spełniające określony warunek. Natomiast UPDATE pozwala na modyfikację danych w tabeli, na przykład: 'UPDATE pracownicy SET imie = 'Anna' WHERE nazwisko = 'Kowalski';'. Te instrukcje są zgodne z międzynarodowymi standardami SQL i są kluczowe w codziennym zarządzaniu bazami danych, umożliwiając efektywne manipulowanie danymi w różnych systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL czy Microsoft SQL Server.

Pytanie 10

Którą wartość zwróci funkcja zapisana w języku C++, jeżeli jej parametrem wejściowym jest tablica wypełniona w następujący sposób: tablica[6] = {3, 4, 2, 4, 10, 0};?

int fun1(int tab[]) {
    int wynik = 0;
    for (int i = 0; i < 6; i++)
        wynik += tab[i];
    return wynik;
}
A. 10
B. 0
C. 960
D. 23
Twoja odpowiedź jest niepoprawna. Wygląda na to, że nie do końca zrozumiałeś, jak działa ta funkcja w języku C++. Funkcja, o której mówimy, sumuje wartości wszystkich elementów tablicy. W podanym pytaniu mamy tablicę z sześcioma elementami: 3, 4, 2, 4, 10, 0. Suma tych elementów wynosi 23, a nie 960, 10 ani 0. Wartości 960, 10 i 0 mogą pochodzić z różnorodnych błędnych wniosków. Na przykład, 960 to produkt wszystkich elementów tablicy, a nie ich suma. Podobnie, 10 to najwyższa wartość w tablicy, a 0 to najniższa. Możliwe, że te wartości byłyby poprawne w innych kontekstach, na przykład, gdybyśmy pytali o produkt elementów, największy element lub najmniejszy element. Ważne jest, aby zawsze dokładnie czytać pytanie i zrozumieć, czego dokładnie oczekuje od nas funkcja. Praca z tablicami jest kluczowym aspektem programowania w języku C++, dlatego warto poświęcić więcej czasu na zrozumienie, jak one działają.

Pytanie 11

Komunikat ma pojawiać się tylko przy PIERWSZEJ wizycie użytkownika. Którą funkcję PHP wykorzystać?

A.
define
B.
session_destroy
C.
setcookie
D.
mysqli_change_user
Aby rozpoznać, że użytkownik już odwiedził stronę, trzeba zapisać coś trwałego w jego przeglądarce - służy do tego ciasteczko zakładane funkcją setcookie(). Przy pierwszej wizycie cookie jeszcze nie ma, więc pokazujemy komunikat i je ustawiamy; przy kolejnych odczyt cookie pozwala komunikat pominąć. Dlatego należy użyć setcookie().

Pytanie 12

Jakiego znacznika w HTML użyjemy, aby uzyskać tekst wyświetlany czcionką o stałej szerokości znaku, który również uwzględnia dodatkowe spacje, tabulacje oraz znaki końca linii?

A. <pre>…</pre>
B. <ins>…</ins>
C. <code>…</code>
D. <blockquote>…</blockquote>
Znacznik <pre> w HTML jest używany do formatowania tekstu w taki sposób, aby zachować oryginalne odstępy, tabulacje oraz znaki końca linii. W przeciwieństwie do standardowego tekstu, w którym przeglądarka ignoruje dodatkowe białe znaki, <pre> traktuje je dosłownie, co jest szczególnie przydatne w przypadku wyświetlania kodu źródłowego lub tekstu, w którym ważne są układy. Przykładem użycia może być wyświetlanie kodu programistycznego w dokumentacji technicznej, gdzie precyzyjny format jest kluczowy dla zrozumienia struktury kodu. Standard HTML5 potwierdza, że <pre> jest odpowiednim znacznikiem do tego celu, a jego użycie jest zgodne z zasadami semantyki HTML, co zwiększa czytelność i dostępność treści. Praktyka ta sprzyja również urządzeniom wspomagającym, umożliwiając poprawne interpretowanie tekstu przez czytniki ekranu.

Pytanie 13

W programie MS Access w ustawieniach pola klasa należy określić maskę wprowadzania danych. Jaką maskę należy ustawić, aby dane wprowadzone składały się z trzech znaków w formacie: obowiązkowa cyfra, następnie dwie obowiązkowe litery?

Ogólne
Rozmiar pola3
Format
Maska wprowadzania
Tytuł
Wartość domyślna
Reguła spr. poprawności
Tekst reguły spr. poprawności
WymaganeNie
Zerowa dł. dozwolonaTak
IndeksowaneNie
Kompresja UnicodeTak
Tryb IMEBez formantu
Tryb zdania edytora IMEBrak
Tagi inteligentne
A. 0CC
B. 000
C. CLL
D. 0LL
W przypadku maski wprowadzania danych w MS Access, należy zrozumieć, jakie znaczenie mają poszczególne symbole używane do stworzenia maski. Symbole te określają, co użytkownik może wprowadzić w każdym miejscu pola. Często spotykanym błędem jest wybór niewłaściwego symbolu, co prowadzi do niepoprawnego formatu danych. W przypadku masek takich jak 0CC, 000 i CLL, każda z nich stosuje niewłaściwe podejście do formatu wymaganego w pytaniu. Maska 0CC zakłada, że po cyfrze mogą znajdować się dowolne znaki, co nie spełnia wymagań dotyczących dwóch obowiązkowych liter. Maska 000 z kolei wymusza wprowadzenie trzech cyfr, co całkowicie mija się z celem, ponieważ wymagany jest format składający się z jednej cyfry i dwóch liter. Maska CLL sugeruje, że pierwszy znak może być dowolnym znakiem (cyfrą lub literą), co również jest niezgodne z wymaganiami, gdzie pierwszą pozycję musi zajmować cyfra. Takie nieporozumienia mogą wynikać z braku zrozumienia znaczenia symboli używanych w maskach wprowadzania danych. Kluczem do poprawnego zastosowania masek w MS Access jest więc dokładne poznanie, jakie symbole są dostępne i jakie mają zastosowanie, aby zwiększyć spójność i integralność danych w systemach bazodanowych. Zrozumienie tych zasad pozwala również uniknąć typowych błędów wynikających z niepoprawnej interpretacji wymagań dotyczących formatowania danych, co jest istotne nie tylko w kontekście egzaminacyjnym, ale także w praktycznej pracy z bazami danych. Poprawne zrozumienie i stosowanie masek wprowadzania danych jest elementem profesjonalnego zarządzania danymi, gdzie każda baza musi spełniać określone standardy jakości i wydajności.

Pytanie 14

Zadaniem poniższego kodu napisanego w języku C++ jest wypisanie dla podanych dowolnych liczb całkowitych różnych od zera:

int main()
{
    int liczba;
    cin >> liczba;

    while (liczba != 0)
    {
        if ((liczba % 2) == 0)
            cout << liczba << endl;

        cin >> liczba;
    }
    return 0;
}
A. wszystkie liczby
B. wyłącznie liczby nieparzyste
C. jedynie liczby parzyste
D. liczby pierwsze
Prezentowany kod źródłowy w języku C++ jest zaprogramowany do wypisywania tylko liczb parzystych spośród wprowadzanych przez użytkownika liczb całkowitych różnych od zera. Kluczowym elementem jest tutaj operacja modulo (%), która oblicza resztę z dzielenia liczby przez 2. Dla liczb parzystych wynik tej operacji wynosi 0, co jest sprawdzane w warunku if. Kod używa pętli while, która pozwala na wprowadzanie i sprawdzanie wielu liczb w sposób iteracyjny, aż do momentu wprowadzenia zera, które kończy działanie programu. Zrozumienie tej struktury jest kluczowe w programowaniu i pozwala na efektywne filtrowanie danych. W praktyce taki mechanizm mógłby być użyty w systemach analizujących dane wejściowe pod kątem ich właściwości liczbowych. Podstawowe operacje na liczbach, takie jak modulo, są szeroko stosowane w algorytmach i strukturach danych, gdzie ważne jest klasyfikowanie czy filtrowanie elementów według zadanych kryteriów. Warto zwrócić uwagę na efektywność tego podejścia, które minimalizuje zbędne operacje poprzez bezpośrednie sprawdzanie warunku wewnątrz pętli.

Pytanie 15

Jaką wiadomość należy umieścić w przedstawionym fragmencie kodu PHP zamiast znaków zapytania? $a=mysql_connect('localhost','adam','mojeHasło'); if(!$a) echo "?????????????????????????";

A. Błąd połączenia z serwerem SQL
B. Błąd w przetwarzaniu zapytania SQL
C. Wybrana baza danych nie istnieje
D. Rekord został pomyślnie dodany do bazy
W sytuacji, gdy nie udaje się nawiązać połączenia z serwerem baz danych MySQL, komunikat błędu powinien jasno wskazywać na problem związany z połączeniem. W kodzie PHP, używając funkcji mysql_connect(), jeśli połączenie się nie powiedzie, zwracany jest błąd, który powinien być odpowiednio obsłużony. W tym przypadku odpowiednia treść komunikatu powinna brzmieć 'Błąd połączenia z serwerem SQL'. Ważne jest, aby programiści dbali o poprawne komunikaty błędów, ponieważ ułatwiają one diagnozowanie problemów. Dobrą praktyką jest także stosowanie obsługi wyjątków, co zwiększa stabilność aplikacji. Przykład: zamiast używać mysql_connect(), zaleca się korzystanie z mysqli lub PDO, które oferują bardziej zaawansowane opcje zarządzania błędami oraz obsługę wyjątków. W przypadku użycia mysqli, mógłbyś to zrobić w następujący sposób: $mysqli = new mysqli('localhost', 'adam', 'mojeHasło'); if ($mysqli->connect_error) { echo 'Błąd połączenia z serwerem SQL: ' . $mysqli->connect_error; } Poprawne raportowanie błędów jest kluczowym elementem programowania, ponieważ pozwala na szybką identyfikację i naprawę potencjalnych problemów.

Pytanie 16

W SQL przeprowadzono zapytanie, jednak jego realizacja nie powiodła się, co skutkowało błędem: #1396 - Operation CREATE USER failed for 'anna'@'localhost'. Możliwą przyczyną takiego zachowania bazy danych może być

CREATE USER 'anna'@'localhost' IDENTIFIED BY '54RTu8';
A. niewystarczające hasło dla konta anna
B. błędna składnia polecenia CREATE USER
C. istnienie użytkownika anna w bazie
D. nieznane polecenie CREATE USER
Odpowiedź wskazująca na istnienie użytkownika 'anna' w bazie jest prawidłowa, ponieważ MySQL nie pozwala na tworzenie nowego użytkownika, jeśli użytkownik o takiej samej nazwie już istnieje. W przypadku próby wykonania kwerendy CREATE USER dla istniejącego użytkownika, system generuje błąd #1396, co jest zgodne z zasadami zarządzania użytkownikami w bazach danych. Dobra praktyka polega na sprawdzaniu, czy użytkownik już istnieje przed próbą jego utworzenia, co można zrobić za pomocą zapytania SELECT z tabeli mysql.user. Jeśli użytkownik 'anna' byłby już zdefiniowany, aby uniknąć błędów, programista powinien najpierw usunąć istniejącego użytkownika lub zmodyfikować jego uprawnienia, jeżeli to konieczne. Stosowanie poprawnych procedur zarządzania użytkownikami oraz regularne audyty kont użytkowników są kluczowe dla bezpieczeństwa i wydajności systemu baz danych.

Pytanie 17

W przedstawionym filmie, aby połączyć tekst i wielokąt w jeden obiekt tak, aby operacja ta była odwracalna zastosowano funkcję

A. części wspólnej.
B. wykluczenia.
C. grupowania.
D. sumy.
Prawidłowo – w filmie została użyta funkcja grupowania. W grafice wektorowej, np. w programach typu Inkscape, CorelDRAW czy Illustrator, grupowanie służy właśnie do logicznego połączenia kilku obiektów w jeden „zestaw”, ale bez trwałego mieszania ich geometrii. To znaczy: tekst dalej pozostaje tekstem, wielokąt dalej jest wielokątem, tylko są traktowane jak jeden obiekt przy przesuwaniu, skalowaniu czy obracaniu. Dzięki temu operacja jest w pełni odwracalna – w każdej chwili możesz rozgrupować elementy i edytować każdy osobno.
Moim zdaniem to jest podstawowa dobra praktyka w pracy z projektami, które mogą wymagać późniejszych poprawek: podpisy, etykiety, logotypy, schematy techniczne. Jeśli połączysz tekst z kształtem za pomocą operacji boolowskich (suma, część wspólna, wykluczenie), to tekst zwykle zamienia się na krzywe, przestaje być edytowalny jako tekst. To bywa potrzebne przy przygotowaniu do druku czy eksportu do formatu, który nie obsługuje fontów, ale nie wtedy, gdy zależy nam na łatwej edycji.
Z mojego doświadczenia: przy projektowaniu interfejsów, ikon, prostych banerów na WWW czy grafik do multimediów, najrozsądniej jest najpierw grupować logicznie elementy (np. ikona + podpis), a dopiero na samym końcu, gdy projekt jest ostateczny, ewentualnie zamieniać tekst na krzywe. Grupowanie pozwala też szybko zaznaczać całe moduły projektu, wyrównywać je względem siebie, duplikować całe zestawy (np. kafelki menu, przyciski z opisami) bez ryzyka, że coś się rozjedzie. W grafice komputerowej to taka podstawowa „organizacja pracy” – mniej destrukcyjna niż różne operacje na kształtach i zdecydowanie bardziej elastyczna przy późniejszych zmianach.

Pytanie 18

W języku PHP zapis // służy do

A. dodawania komentarza wieloliniowego
B. używania tablicy superglobalnej
C. dodawania komentarza jednoliniowego
D. zastosowania operatora dzielenia bez reszty
Znak // w języku PHP jest używany do wstawiania komentarzy jednoliniowych. Oznacza to, że wszystko, co znajduje się po tym znaku na danej linii, zostanie zignorowane przez interpreter PHP. Komentarze są istotnym elementem programowania, ponieważ umożliwiają programistom dodawanie wyjaśnień i notatek do kodu, co znacznie ułatwia jego późniejsze zrozumienie i konserwację. Przykładowo, możesz użyć komentarza jednoliniowego, aby wyjaśnić określoną funkcjonalność w kodzie: // To jest funkcja obliczająca sumę. Warto również pamiętać, że stosowanie komentarzy jest standardową praktyką w branży, która zwiększa czytelność i jakość kodu. Dobrą praktyką jest stosowanie komentarzy, aby wyjaśniać bardziej złożone fragmenty kodu, co wpływa na łatwiejsze współdzielenie pracy w zespołach programistycznych, a także na przyszłe modyfikacje kodu przez innych programistów. Warto zaznaczyć, że PHP obsługuje także komentarze wieloliniowe, które zaczynają się od /* i kończą na */. Jednak dla prostych, jednozdaniowych notatek znak // jest najbardziej odpowiedni.

Pytanie 19

Jak określa się metodę umożliwiającą nawiązanie asynchronicznego połączenia klienta z serwerem i prowadzenie komunikacji bez konieczności przeładowania całej strony WWW?

A. VBScript
B. XML
C. PHP
D. AJAX
PHP, VBScript i XML to technologie, które w kontekście pytania nie pełnią roli techniki asynchronicznej komunikacji między klientem a serwerem. PHP to język skryptowy wykorzystywany głównie po stronie serwera do generowania dynamicznych treści HTML. Jego działanie polega na przetwarzaniu kodu na serwerze przed wysłaniem strony do klienta, co nie pozwala na asynchroniczną komunikację. VBScript, z kolei, to język skryptowy stworzone przez Microsoft, który jest używany głównie w kontekście aplikacji Windows i nie jest standardem w programowaniu po stronie klienta. Nie jest on także szeroko wspierany w nowoczesnych przeglądarkach internetowych. XML (Extensible Markup Language) to format wymiany danych, który może być używany z AJAX-em, ale sam w sobie nie jest techniką komunikacyjną. Często błędne podejście do tematu polega na myleniu formatu wymiany danych z metodą komunikacji. Użytkownicy mogą sądzić, że XML może zastąpić AJAX, co jest nieprawidłowe, ponieważ XML służy jako format danych, a nie jako mechanizm do asynchronicznej wymiany. Warto zrozumieć, że skuteczne projekty webowe opierają się na zintegrowanym stosie technologii, a nie tylko na pojedynczych elementach. Praktyki takie jak RESTful API czy SOAP są bardziej związane z AJAX-em, podczas gdy PHP i inne technologie serwerowe pełnią inną rolę w architekturze aplikacji.

Pytanie 20

Czy możliwa jest przedstawiona transformacja obrazu rastrowego dzięki funkcji?

Ilustracja do pytania
A. ustawienia jasności i kontrastu
B. odcienie szarości
C. zmniejszenie liczby kolorów
D. barwienie
Redukcja kolorów polega na zmniejszeniu liczby kolorów w obrazie, co jest często stosowane w celu optymalizacji plików graficznych do użytku w Internecie. Zasadniczo polega to na kompresji palety kolorów, aby zmniejszyć rozmiar pliku przy jednoczesnym zachowaniu możliwie najlepszej jakości obrazu. Desaturacja natomiast odnosi się do zmniejszenia intensywności kolorów w obrazie, co skutkuje przekształceniem go w obraz czarno-biały lub w odcieniach szarości. Jest to technika używana do tworzenia stylowych efektów monochromatycznych lub do uzyskania klasycznego wyglądu fotografii. Zmiana jasności i kontrastu wpływa na ogólną luminancję obrazu oraz różnicę między najjaśniejszymi i najciemniejszymi fragmentami. Jest to przydatne w przypadku korekty zdjęć, aby wyeksponować detale lub poprawić czytelność obrazu. Typowym błędem jest mylenie tych technik z barwieniem, ponieważ każda z nich ma inne zastosowanie i wpływ na obraz. W przypadku przedstawionej transformacji kluczowe było użycie barwienia, które w sposób bezpośredni zmieniło kolory w obrazie na wybraną jednolitą barwę, co nie może być osiągnięte poprzez zastosowanie desaturacji, redukcji kolorów ani korekty jasności i kontrastu. Zrozumienie różnic między tymi technikami jest istotne dla efektywnego wykorzystania ich w pracy z grafiką komputerową, szczególnie w kontekście projektowania i edycji wizualnej, gdzie precyzja w doborze i modyfikacji kolorów jest kluczowa dla osiągnięcia zamierzonych efektów artystycznych i technicznych.

Pytanie 21

Warunek zapisany w języku PHP wyświetli liczbę, gdy

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. wynik dzielenia danej liczby przez 2 jest równy 0
B. jest to liczba parzysta
C. jest to liczba dodatnia
D. jest to liczba pierwsza
Odpowiedź jest prawidłowa ponieważ wyrażenie $liczba % 2 == 0 w języku PHP wykorzystuje operator reszty z dzielenia który sprawdza czy liczba po podzieleniu przez 2 ma resztę równą zero. Taki warunek jest spełniony wyłącznie dla liczb parzystych które z definicji dzielą się bez reszty przez 2. W programowaniu rozpoznawanie liczb parzystych jest często stosowane w algorytmach które wymagają specyficznego przetwarzania danych takich jak sortowanie czy filtrowanie. Warto również zauważyć że używanie operatora modulo (%) w takich przypadkach jest uznawane za dobrą praktykę branżową ze względu na jego czytelność i efektywność. Przykładem praktycznego zastosowania może być np. generowanie naprzemiennego koloru tła w tabelach aby zwiększyć ich czytelność co jest powszechnie stosowane w aplikacjach webowych. Zrozumienie tego konceptu jest fundamentalne w programowaniu ponieważ pozwala na tworzenie bardziej dynamicznych i elastycznych aplikacji które potrafią reagować na różne stany danych.

Pytanie 22

W JavaScript metoda getElementById odnosi się do

A. klasy zdefiniowanej w CSS
B. znacznika HTML o wskazanym id
C. znacznika HTML o podanej nazwie klasy
D. zmiennej numerycznej
Metoda getElementById w JavaScript jest kluczowym narzędziem do interakcji z modelowaniem DOM (Document Object Model). Służy do uzyskiwania dostępu do pojedynczego elementu HTML na podstawie jego atrybutu id, co jest zgodne z zasadą unikalności identyfikatorów w dokumencie HTML. Dzięki temu programiści mogą stosunkowo łatwo manipulować pojedynczymi elementami, co jest istotne w dynamicznych aplikacjach internetowych. Przykładem zastosowania tej metody może być zmiana tekstu w elemencie <h1>, gdzie używamy getElementById('myHeader').innerHTML = 'Nowy nagłówek';. Zgodnie z dobrymi praktykami, powinno się unikać używania zduplikowanych id w dokumencie, aby zapewnić, że metoda ta zawsze zwraca jeden, a nie wiele elementów. Warto również pamiętać, że w przypadku braku elementu o podanym id, metoda zwróci null, co powinno być uwzględnione w logice aplikacji, aby uniknąć błędów. Użycie tej metody jest standardem w programowaniu JavaScript i stanowi fundament dla wielu bardziej zaawansowanych technik manipulacji DOM.

Pytanie 23

Na obrazie przedstawiono projekt układu bloków witryny internetowej. Zakładając, że bloki są realizowane za pomocą znaczników sekcji, ich formatowanie w CSS, oprócz ustawionych szerokości dla bloków: 1, 2,
3, 4 (blok 5 nie ma ustawionej szerokości), powinno zawierać właściwość

Ilustracja do pytania
A. clear: both dla bloku 5 oraz float: left dla pozostałych bloków.
B. clear: both dla wszystkich bloków.
C. float: left dla wszystkich bloków.
D. clear: both dla bloku 5 oraz float: left jedynie dla 1 i 2 bloku.
Twoja odpowiedź nie jest poprawna, ale nie przejmuj się, błąd może wynikać z niepełnego zrozumienia zastosowania właściwości 'float' i 'clear' w CSS. Zastosowanie 'float: left' dla wszystkich bloków nie jest dobrym pomysłem, ponieważ spowoduje to, że wszystkie bloki będą się starały zmieścić w jednym rzędzie, co jest niezgodne z założonym układem. Podobnie, dodawanie 'clear: both' do wszystkich bloków też nie jest poprawne, ponieważ spowoduje to, że wszystkie bloki będą wyświetlane jeden pod drugim, zamiast obok siebie. Właściwość 'clear' powinna być stosowana do bloków, które chcemy wyświetlić poniżej innych bloków, natomiast 'float: left' powinien być stosowany do bloków, które chcemy wyświetlić obok siebie. Pamiętaj, że zrozumienie tych właściwości i umiejętność ich stosowania jest kluczowe dla tworzenia efektywnych i atrakcyjnych layoutów stron internetowych.

Pytanie 24

Wskaż najefektywniejszą metodę wyczyszczenia wszystkich danych z tabeli adresy, nie wpływając na jej strukturę

A. TRUNCATE TABLE adresy;
B. DELETE TABLE adresy;
C. DROP TABLE adresy;
D. DELETE * FROM adresy;
TRUNCATE TABLE adresy; jest najszybszym sposobem na usunięcie wszystkich rekordów z tabeli bez usuwania jej struktury. Operacja TRUNCATE działa na poziomie strony, co oznacza, że nie przetwarza pojedynczych wierszy, jak ma to miejsce w przypadku DELETE. Dzięki temu, TRUNCATE jest znacznie wydajniejszy, szczególnie w przypadku dużych zbiorów danych. W praktyce, użycie TRUNCATE TABLE jest zalecane, gdy chcemy szybko oczyścić tabelę z danych, a następnie wprowadzić nowe rekordy. Warto jednak pamiętać, że TRUNCATE nie wywołuje kaskadowych usunięć w tabelach powiązanych z kluczami obcymi, co może być istotne w projektowaniu bazy danych. Użycie TRUNCATE może również przywrócić licznik identyfikatorów (np. AUTO_INCREMENT w MySQL) do wartości początkowej, co jest ważnym aspektem, jeśli zależy nam na tym, by nowe dane zaczynały się od określonej wartości. Praktyka wykorzystania TRUNCATE powinna być jednak stosowana ostrożnie, szczególnie w kontekście transakcji, ponieważ operacja ta nie jest odwracalna w przypadku dużych zbiorów danych, co skontrastować należy z DELETE, które można wykorzystać w ramach transakcji i przywrócić dane, jeśli zajdzie taka potrzeba. Dlatego, TRUNCATE TABLE jest zalecaną metodą w odpowiednich scenariuszach, ale jej użycie wymaga pełnego zrozumienia kontekstu bazy danych oraz powiązań między tabelami.

Pytanie 25

Który typ przypisać kolumnie z kodami pocztowymi, by przechowywała tekst o STAŁEJ długości?

A.
CHAR
B.
TEXT
C.
BLOB
D.
DECIMAL
Kod pocztowy ma STAŁĄ długość (w Polsce zawsze format „NN-NNN”), dlatego najlepiej pasuje typ CHAR, który przechowuje tekst o ustalonej, niezmiennej liczbie znaków - jest dla takich danych oszczędniejszy i szybszy niż typy zmiennej długości. Dlatego stosuje się CHAR.

Pytanie 26

Jakie dane zostaną wyświetlone po wykonaniu podanych poleceń?

bool gotowe = true;
cout << gotowe;
A. 0
B. 1
C. nie
D. tak
W języku C++ zmienne typu bool mogą przyjmować jedynie dwie wartości: true i false. Gdy zmienna typu bool zostanie wypisana przy użyciu standardowego strumienia wyjściowego cout, to domyślnie wartości true i false są konwertowane na liczby całkowite 1 i 0 odpowiednio. Dlatego w zaprezentowanym fragmencie kodu zmiennej gotowe przypisano wartość true, a następnie jej zawartość została wypisana przy użyciu cout. Wynikiem tego działania będzie wyświetlenie liczby 1 na ekranie. Jest to zgodne z domyślnym zachowaniem cout w przypadku zmiennych typu bool w C++. Aby modyfikować to zachowanie i bezpośrednio wypisywać słowa true lub false, można użyć specjalnej flagi boolalpha, która sprawia, że wartości logiczne są reprezentowane jako tekst. Jednak w podanym przykładzie nie użyto tej flagi, co prowadzi do wypisania wartości liczbowej. Takie podejście jest powszechne w wielu aplikacjach, gdzie wartości logiczne muszą być szybko zamieniane na wartości liczbowe, na przykład w obliczeniach binarnych czy przy operacjach bitowych. Poprawne zrozumienie tego mechanizmu jest kluczowe dla programistów tworzących efektywne i czytelne aplikacje w C++.

Pytanie 27

W języku PHP funkcja trim służy do

A. redukcji tekstu o zdefiniowaną w parametrze liczbę znaków
B. określenia długości tekstu
C. usuwania białych znaków lub innych znaków wymienionych w parametrze z obu końców tekstu
D. porównywania dwóch tekstów i zwracania ich wspólnej części
Funkcja trim w języku PHP jest niezwykle przydatnym narzędziem, które ma na celu usuwanie białych znaków oraz innych określonych znaków z obu końców łańcucha tekstowego. Przykład użycia tej funkcji może być obserwowany w sytuacjach, gdy użytkownik wprowadza dane do formularza, gdzie często zdarza się, że na początku lub końcu tekstu pojawiają się zbędne spacje. Można to zignorować, ale może to prowadzić do problemów z walidacją danych, porównywaniem łańcuchów czy wstawianiem do bazy danych. Użycie funkcji trim pozwala więc na zachowanie czystości danych i ich lepsze przetwarzanie. Jako dobra praktyka, zawsze warto stosować trim przed dalszym przetwarzaniem tekstów w celu eliminacji potencjalnych błędów. Dodatkowo, funkcja trim może przyjmować drugi parametr, który pozwala na określenie, jakie znaki mają być usuwane. To zwiększa jej elastyczność w różnorodnych kontekstach aplikacji webowych, umożliwiając np. usuwanie niechcianych znaków z danych wejściowych.

Pytanie 28

Model, w którym wszystkie dane są zapisane w jednej tabeli, określa się mianem

A. hierarchicznym
B. relacyjnym
C. sieciowym
D. jednorodnym
Model jednorodny to taka podstawowa struktura w bazach danych, gdzie wszystko trzymamy w jednej tabeli. To się fajnie sprawdza w prostych aplikacjach, bo wtedy relacje między danymi są dość oczywiste. Klasycznym przykładem może być baza kontaktów, gdzie każdy ma swoje info w jednym miejscu. Dzięki temu mamy łatwy dostęp do danych i prosto nimi zarządzać. Z mojego doświadczenia, to rozwiązanie jest super efektywne, ale jak system staje się większy i złożony, to zaczynają się schody. Wtedy inne modele, jak relacyjne, mogą mieć więcej sensu. W branży często korzysta się z modelu jednorodnego, zwłaszcza tam, gdzie szybki dostęp do danych jest kluczowy, a sztywne struktury tylko przeszkadzają. Na codzień to naprawdę przydatna rzecz, jak ktoś nie chce się męczyć z komplikacjami.

Pytanie 29

Na ilustracji przedstawiono schemat rozmieszczenia elementów na stronie WWW. W której z jej sekcji zazwyczaj znajduje się stopka strony?

Ilustracja do pytania
A. 4
B. 5
C. 2
D. 1
Odpowiedź 5 jest poprawna ponieważ w standardach projektowania stron internetowych stopka strony zazwyczaj znajduje się na dole każdej podstrony. Stopka to miejsce gdzie umieszczane są informacje takie jak prawa autorskie prywatność i linki do kontaktu. Dobrze zaprojektowana stopka może także zawierać skróty nawigacyjne które pomagają użytkownikowi szybko przemieszczać się po stronie. W praktyce projektanci stron WWW stosują podejście oparte na responsywnym designie co oznacza że stopka powinna być łatwo dostępna i czytelna na różnych urządzeniach. Wykorzystanie CSS Grid lub Flexbox pozwala na elastyczne zarządzanie układem strony co jest szczególnie przydatne przy projektowaniu stopki. Ponadto stopki są elementami które odpowiadają za spójność wizualną całej strony internetowej zapewniając użytkownikowi intuicyjne doświadczenie. Umieszczanie stopki w dolnej części strony jest zgodne z oczekiwaniami użytkowników co zwiększa użyteczność serwisu i pozytywnie wpływa na jego odbiór. Praktyczne zastosowanie tego podejścia można zauważyć na wielu profesjonalnych stronach gdzie stopka jest wyraźnie oddzielona i przejrzysta co ułatwia użytkownikowi odnalezienie potrzebnych informacji.

Pytanie 30

Które wartości będą przechowywane w zmiennych po wykonaniu przedstawionej pętli języka PHP?

$i = 20;    $a = 0;
while($i) {
  $a += 2;
  $i--;
}
A. a = 40, i = 20
B. a = 0, i = 20
C. a = 40, i = 0
D. a = 20, i = 20
Odpowiedź jest poprawna, ponieważ zrozumienie jak działa pętla w języku PHP jest kluczowe dla efektywnej pracy z tym językiem. W tym przypadku mamy do czynienia z pętlą, która zaczyna się od wartości i = 20 i w każdej iteracji zmniejsza wartość i o 1, aż dojdzie do 0, kończąc pętlę. Zmienna 'a' jest zwiększana o 2 w każdej iteracji, co daje nam finalną wartość a = 40 po 20 iteracjach. To jest kluczowe dla zrozumienia, jak zmienne są aktualizowane i przechowywane w pętli PHP. Przykład ten pokazuje, jak można wykorzystać pętle do wykonywania powtarzalnych operacji na danych, co jest podstawowym elementem programowania. Pamiętaj, że zrozumienie, jak działa pętla, jest kluczowe do tworzenia efektywnych i wydajnych programów, nie tylko w PHP, ale w każdym języku programowania.

Pytanie 31

W HTML5 semantycznym znacznikiem, który służy do określenia dwóch sekcji widocznych po prawej stronie na rysunku, zawierających wiadomości oraz aktualności, jest

Ilustracja do pytania
A. &lt;footer&gt;
B. &lt;article&gt;
C. &lt;main&gt;
D. &lt;nav&gt;
Element <article> w HTML5 został stworzony właśnie do oznaczania niezależnych, samodzielnych treści, które mają sens nawet poza kontekstem strony – czyli takich, które można zamieścić np. w RSS, podlinkować czy udostępnić osobno. W praktyce oznacza to np. pojedyncze wpisy na blogu, wiadomości, ogłoszenia czy aktualności – dokładnie tak jak w tym zadaniu. Dzięki użyciu <article>, osoby korzystające z czytników ekranowych czy wyszukiwarek łatwiej rozpoznają strukturę strony, bo semantyka jest czytelna dla maszyn. Z mojego doświadczenia, stosowanie <article> dla wiadomości i aktualności jest też zgodne z dobrą praktyką tworzenia dostępnych stron – Google nawet sugeruje, by tak wyodrębniać własne, kompletne treści. To ma ogromne znaczenie przy pozycjonowaniu (SEO), bo roboty wyszukiwarek potrafią lepiej rozumieć, co jest główną treścią strony. Dodatkowo, używanie odpowiednich znaczników semantycznych poprawia współpracę z różnymi narzędziami, które analizują układ i zawartość strony, a także ułatwia późniejszą przebudowę lub rozwój projektu. Moim zdaniem, nadanie sekcjom z wiadomościami i aktualnościami znacznika <article> to podstawa nowoczesnego kodowania stron internetowych.

Pytanie 32

Plik HTML jest w folderze www/html/, a styl.css w www/style/. Jak poprawnie (ścieżką względną) dołączyć arkusz w pliku HTML?

A.
<link rel="stylesheet" href="style/styl.css">
B.
<link rel="stylesheet" href="../style/styl.css">
C.
<link rel="stylesheet" href="styl.css">
D.
<link rel="stylesheet" href="www/style/styl.css">
Pozostałe ścieżki szukają arkusza w złym miejscu. href="styl.css" oczekuje pliku w tym samym folderze co HTML (html/), gdzie go nie ma. href="style/styl.css" szukałby podfolderu style/ wewnątrz html/. href="www/style/styl.css" liczy ścieżkę tak, jakby HTML był w korzeniu. Do celu prowadzi tylko cofnięcie się przez ../style/styl.css.

Pytanie 33

Które z poniższych stwierdzeń dotyczących klucza głównego jest poprawne?

A. W tabeli z danymi osobowymi może to być pole z nazwiskiem
B. Składa się wyłącznie z jednego pola
C. Jest unikalny w obrębie tabeli
D. Może przyjmować tylko wartości numeryczne
Klucz podstawowy to atrybut lub zestaw atrybutów, który jednoznacznie identyfikuje każdy rekord w tabeli bazy danych. Najważniejszym wymogiem jest, aby klucz podstawowy był unikalny dla każdego wiersza, co oznacza, że nie może być powtórzony w obrębie tej samej tabeli. Przykładem może być numer identyfikacyjny (np. PESEL, NIP) przypisany do konkretnej osoby, który gwarantuje, że każda osoba w tabeli danych osobowych jest jednoznacznie identyfikowalna. Stosowanie kluczy podstawowych jest zgodne z zasadami normalizacji baz danych, co pozwala na minimalizację redundancji danych oraz poprawę integralności danych. Klucz podstawowy może składać się z jednego lub więcej pól, co daje elastyczność w projektowaniu bazy danych, aby pasowała do specyficznych potrzeb aplikacji. Dobre praktyki wskazują, że klucz podstawowy powinien być stabilny, czyli nie zmieniać się w czasie, oraz prosty do zaimplementowania i używania w zapytaniach SQL.

Pytanie 34

W jakim celu stosuje się kwerendę SELECT DISTINCT?

A. aby pogrupować rekordy
B. aby posortować rekordy rosnąco lub malejąco
C. aby w wskazanej kolumnie nie powtarzały się wartości w wyniku
D. aby wybrać rekordy występujące w bazie tylko raz
Gdy w kolumnie ta sama wartość powtarza się w wielu wierszach (np. miasto klienta), zwykłe zapytanie zwróci wszystkie powtórzenia. SELECT DISTINCT usuwa duplikaty z WYNIKU, pokazując każdą wartość tylko raz - przydatne, by zrobić listę unikalnych pozycji. Dlatego stosuje się je, by w wybranej kolumnie wartości się nie powtarzały.

Pytanie 35

Który sposób utworzenia tablicy w JavaScript jest składniowo NIEPOPRAWNY?

A.
var liczby = new Array[1, 2, 3];
B.
var liczby = [3];
C.
var liczby = [1, 2, 3];
D.
var liczby = new Array(1, 2, 3);
Trzy pozostałe zapisy są prawidłowe, więc nie są odpowiedzią na pytanie o błąd. [1, 2, 3] oraz [3] to literały tablicy w nawiasach kwadratowych – najprostszy i najczęstszy sposób. new Array(1, 2, 3) używa konstruktora Array z nawiasami okrągłymi, co również jest poprawne. Błędem składniowym jest new Array[1, 2, 3] – wywołanie konstruktora nie może mieć nawiasów kwadratowych, dlatego to ta odpowiedź jest poprawna.

Pytanie 36

Która instrukcja służy do iteracji (powtarzania)?

A.
throw
B.
for
C.
else
D.
switch
Instrukcja for to pętla - powtarza blok kodu określoną liczbę razy, ze zmienną licznikową, warunkiem i krokiem. Dlatego do iteracji służy for.

Pytanie 37

Aby uzyskać akapit, w którym słowo „zaznaczony” jest wyróżnione znacznikiem <mark>, a słowo „istotny” oznaczone jako ważne <em> - z poprawnym otwarciem i zamknięciem znaczników - należy zastosować kod:

A.
<p>Tekst może być <mark>zaznaczony albo <em>istotny</em> dla autora</mark></p>
B.
<p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny dla autora</p>
C.
<p>Tekst może być <mark>zaznaczony albo <i>istotny</i> dla autora</mark></p>
D.
<p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
Poprawny kod to
<p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
Każdy znacznik obejmuje dokładnie to słowo, którego dotyczy: <mark> wyróżnia „zaznaczony”, a <em> oznacza „istotny” jako ważny - i oba są zamknięte. Znaczniki nie zachodzą też na siebie nieprawidłowo. Dlatego ta wersja jest poprawna.

Pytanie 38

Znaczniki HTML <strong> oraz <em>, które mają na celu podkreślenie istotności tekstu, pod względem formatowania odpowiadają znacznikom

A. <u> oraz <sup>
B. <b> oraz <u>
C. <b> oraz <i>
D. <i> oraz <mark>
Znaczniki HTML <strong> oraz <em> mają kluczowe znaczenie w kontekście semantyki i formatowania tekstu w dokumentach HTML. Znacznik <strong> wskazuje na tekst o zwiększonej ważności, co jest zgodne z jego domyślnym formatowaniem, które w większości przeglądarek wyświetla tekst pogrubiony. Z kolei znacznik <em> sugeruje tekst, który powinien być akcentowany w odpowiedni sposób, a jego domyślne formatowanie to kursywa. W związku z tym, ich odpowiednikami pod względem formatowania są znaczniki <b> oraz <i>. Znacznik <b> służy do pogrubienia tekstu, ale nie niesie ze sobą żadnej dodatkowej semantyki, natomiast <i> używany jest do kursywy bez wskazania na ważność. W praktyce, należy używać <strong> i <em> tam, gdzie semantyka jest kluczowa dla zrozumienia treści, a dodatkowe znaczenie przekłada się na lepsze pozycjonowanie w wyszukiwarkach oraz dostępność dla osób korzystających z technologii asystujących. Ważne jest, by przestrzegać dobrych praktyk webowych i stosować znaczniki semantyczne, co pozwoli na efektywne przekazywanie informacji zarówno użytkownikom, jak i robotom indeksującym.

Pytanie 39

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

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

Pytanie 40

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

Ilustracja do pytania
A. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idZajecia WHERE grupa = 15;
B. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy ON Studenci.id = Zapisy.idStudenta;
C. SELECT nazwisko, idZajecia FROM Studenci INNER JOIN Zapisy WHERE grupa= 15;
D. SELECT nazwisko, idZajecia FROM Studenci JOIN Zapisy ON Studenci.id = Zapisy.idStudenta WHERE grupa = 15;
Ta odpowiedź jest dokładnie tym, czego oczekuje się w praktycznej pracy z relacyjnymi bazami danych. Kluczowe jest tutaj poprawne połączenie tabeli Studenci z tabelą Zapisy na podstawie klucza głównego Studenci.id oraz obcego Zapisy.idStudenta. To klasyczna sytuacja, gdzie chcemy wydobyć informacje z dwóch tabel powiązanych relacją jeden-do-wielu. Dzięki użyciu JOIN oraz warunku ON określającego relację, uzyskujemy możliwość pobrania nazwisk studentów i odpowiadających im identyfikatorów zajęć. Warunek WHERE ogranicza wynik do studentów z konkretnej grupy, co jest bardzo częstym wymaganiem biznesowym np. przy generowaniu list obecności czy analizie frekwencji. Takie podejście jest czytelne, zgodne ze składnią SQL ANSI i pozwala uniknąć nieporozumień przy większych kwerendach. Moim zdaniem warto pamiętać, że stosowanie jawnych JOIN-ów zamiast łączenia 'po przecinku' czy w warunku WHERE, ułatwia późniejszą rozbudowę zapytań oraz ogranicza ryzyko tzw. 'kartesjańskiego koszmaru', czyli niekontrolowanego zwielokrotnienia rekordów. Warto też wiedzieć, że zapis ten jest optymalny wydajnościowo, bo wykorzystuje istniejące klucze i indeksy – a to podstawa dobrych praktyk w pracy z bazami danych. Generalnie, jak się opanuje ten schemat, to potem większość operacji na relacyjnych bazach danych jest dużo łatwiejsza.