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 20:17
  • Data zakończenia: 8 czerwca 2026 20:44

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

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
B. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
C. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
D. operację arytmetyczną, a zawartość zmiennej była tekstem
W pytaniu zwrócono uwagę na różne operacje, które mogą prowadzić do uzyskania wartości NaN w JavaScript. Jednak nie wszystkie wymienione przypadki są związane z generowaniem tej wartości. Przykładowo, korzystanie z parseFloat zamiast parseInt przy konwersji zmiennych liczbowych nie ma wpływu na wynik operacji arytmetycznych i nie prowadzi do NaN. Funkcja parseFloat konwertuje ciąg znaków na liczbę zmiennoprzecinkową, podczas gdy parseInt konwertuje na liczbę całkowitą. W obu przypadkach, jeśli ciąg jest odpowiedni, wynik zawsze będzie liczbą, a nie NaN. Kolejną sytuacją jest sprawdzanie długości napisu; jeśli zmienna jest liczbą, operacje związane z długością nie wpływają na typ danych, więc nie powinny generować NaN. Trzeci przypadek, czyli działanie arytmetyczne na dwóch zmiennych liczbowych dodatnich, również nie prowadzi do uzyskania NaN, ponieważ operacje są poprawnie wykonywane. Zrozumienie tych koncepcji jest niezwykle ważne, aby unikać typowych błędów i nieporozumień, które mogą wystąpić w kodzie. Kluczowym zagadnieniem w programowaniu w JavaScript jest zarządzanie typami danych, a ich niewłaściwe użycie może prowadzić do trudnych do zdiagnozowania błędów w aplikacjach.

Pytanie 2

Którego selektora użyć, aby odmiennie sformatować PIERWSZĄ literę akapitu?

A. pseudoelementu p::first-letter
B. selektora klasy p.first-letter
C. selektora atrybutu p [first-letter]
D. selektora dziecka p + first-letter
Pierwszą literę akapitu formatuje pseudoelement p::first-letter - pozwala np. zrobić inicjał (duża, ozdobna litera na początku). Pseudoelementy (z ::) sięgają fragmentu, którego nie ma osobnego znacznika. Zapamiętaj: ::first-letter celuje w samą pierwszą literę, bez dodatkowego HTML-a.

Pytanie 3

Jaką rozdzielczość określa jednostka ppi (ang. pixels per inch)?

A. Obrazów generowanych przez drukarki i plotery
B. Obrazów bitmapowych.
C. Skanujących urządzeń.
D. Cyfrowych przyrządów dokonujących pomiarów.
Skanery są urządzeniami, które przetwarzają obrazy z analogowych źródeł na format cyfrowy, ale nie są bezpośrednio związane z rozdzielczością wyrażaną w ppi. Często mylnie zakłada się, że skanery działają na podobnych zasadach jak drukarki, jednak ich rozdzielczość jest mierzone w dpi (dots per inch), co odnosi się do punktów na cal, a nie pikseli. Obrazy rastrowe, chociaż mają swoje zastosowanie w kontekście ppi, nie są jedynym kontekstem dla tej jednostki. Rozdzielczość obrazów rastrowych odnosi się do ich jakości i szczegółowości, jednak ppi jest najczęściej używane w kontekście druku, a nie w samym tworzeniu obrazów rastrowych. Cyfrowe urządzenia wykonujące pomiary mogą mieć różne zastosowania, ale również nie odnoszą się do ppi w kontekście ich działania czy wydajności. Rozumienie, jak różne urządzenia i techniki pomiarowe używają różnych jednostek miary do określania rozdzielczości, jest kluczowe dla prawidłowego zrozumienia tematu. W branży graficznej oraz drukarskiej ważne jest, aby właściwie interpretować te jednostki oraz ich zastosowania w praktyce.

Pytanie 4

Podano fragment kodu PHP, w którym znajduje się zadeklarowana zmienna typu tablica. Jakie imię zostanie wyświetlone po wykonaniu tego kodu?

Ilustracja do pytania
A. Tomasz
B. Anna
C. Krzysztof
D. Aleksandra
W zadanym pytaniu istotne jest zrozumienie indeksowania tablic w PHP które jest językiem o indeksowaniu zerowym. Oznacza to że pierwszy element tablicy ma indeks 0 drugi ma indeks 1 i tak dalej. Częstym błędem jest intuicyjne przypisywanie pierwszemu elementowi indeksu 1 co prowadzi do niepoprawnych wyników. W przypadku omawianego kodu tablica zawiera elementy: 'Anna' 'Tomasz' 'Krzysztof' i 'Aleksandra'. Aby uzyskać dostęp do trzeciego elementu należy użyć indeksu 2 a nie 3. Element o indeksie 2 w tej tablicy to 'Krzysztof' co jest poprawną odpowiedzią. Pomyłki w indeksowaniu mogą prowadzić do trudnych do zdiagnozowania błędów w programach takich jak 'undefined offset' gdy próbujemy uzyskać dostęp do nieistniejącego indeksu. Dlatego ważne jest aby zawsze weryfikować zakres i poprawność używanych indeksów zwłaszcza w skomplikowanych strukturach danych. Dodatkowo warto zaznaczyć że w niektórych językach programowania takie jak Python indeksowanie również jest zerowe co pozwala na łatwiejsze przejście pomiędzy różnymi językami programowania bez zmiany mentalnego modelu działania tablic.

Pytanie 5

Jak powinien być poprawnie zapisany znacznik <img>, służący do umieszczenia na stronie internetowej obrazu rys.jpg, przeskalowanego do szerokości 120 px oraz wysokości 80 px z tekstem alternatywnym "krajobraz"?

A. <img src="rys.jpg" height="120px" width="80px" info="krajobraz"/>
B. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
C. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/>
D. <img href="rys.jpg" height="120px" width="80px" info="krajobraz"/>
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"/> jest poprawna z kilku powodów. Przede wszystkim, atrybut 'src' wskazuje na lokalizację pliku graficznego, co jest kluczowe dla poprawnego wyświetlania obrazu na stronie internetowej. Atrybuty 'width' oraz 'height' pozwalają na precyzyjne określenie rozmiarów obrazu, co jest istotne zarówno dla responsywności strony, jak i dla optymalizacji czasu ładowania. Użycie jednostki 'px' (pikseli) jest poprawne, jednak w HTML5 można pominąć tę jednostkę, wpisując jedynie wartość liczbową. Atrybut 'alt' jest niezwykle ważny dla dostępności, ponieważ dostarcza alternatywny opis obrazu dla użytkowników, którzy nie mogą go zobaczyć, na przykład osób niewidomych korzystających z czytników ekranu. Używanie odpowiednich atrybutów oraz wartości jest zgodne z najlepszymi praktykami w tworzeniu stron WWW oraz standardami W3C, co wpływa na lepszą użyteczność oraz SEO strony. Przykładem praktycznym może być umieszczenie grafiki w nagłówku strony, gdzie obraz jest widoczny, a opis alternatywny wspiera dostępność i kontekst treści.

Pytanie 6

Programista stworzył w języku C++ pętlę mającą na celu obliczenie wartości 5! (5! = 1 * 2 * 3 * 4 * 5). Niestety, popełnił błąd logiczny, gdyż

int a = 1; 
for (int i=1; i < 5; i++)
{
a = a * i;
}
cout << a;
A. Parametr i pętli powinien być zmniejszany zamiast zwiększany.
B. Zmienna a powinna być inicjowana wartością 0 zamiast 1.
C. W drugim parametrze pętli powinno być porównanie i < 6 zamiast i < 5.
D. Parametr i pętli powinien być rozpoczęty od wartości 0 zamiast 1.
W analizowanej pętli występują błędy, które mogą prowadzić do niepoprawnych wyników. Inicjowanie zmiennej a wartością 0 zamiast 1 uniemożliwiłoby uzyskanie poprawnego wyniku mnożenia, ponieważ każdy wynik pomnożony przez 0 daje 0, co jest błędnym podejściem w obliczeniach silni. Dodatkowo, zmiana wartości początkowej parametru i pętli na 0 zamiast 1 również jest niewłaściwa. Przy takim ustawieniu pętla rozpoczęłaby od zera, co w przypadku mnożenia również prowadziłoby do błędnych wyników, ponieważ silnia nie jest zdefiniowana dla zera w kontekście mnożenia w tym przypadku. Ponadto, sugerowanie, że parametr i powinien być dekrementowany zamiast inkrementowany, jest całkowicie mylącym podejściem, ponieważ silnia jest definiowana jako iloczyn liczb całkowitych rosnących, a nie malejących. Wartości dekrementowane nie odpowiadają definicji silni i nie przyniosłyby zamierzonego efektu. Ostatecznie, brak porównania i < 6 w drugiej części pętli skutkuje pominięciem liczby 5, co jest kluczowe dla uzyskania właściwego wyniku. W programowaniu każda iteracja pętli musi być przemyślana, a końcowy warunek powinien zawsze obejmować wszystkie wartości, które mają być kalkulowane.

Pytanie 7

Zamieszczony kod w języku PHP

Ilustracja do pytania
A. jest niepoprawny, nieznany operator =>
B. definiuje tablicę z trzema wartościami
C. określa tablicę z sześcioma wartościami
D. jest błędny, indeksami tablicy mogą być wyłącznie liczby całkowite
Kod przedstawiony w pytaniu to przykład definiowania tablicy asocjacyjnej w języku PHP. Tablica asocjacyjna to struktura danych, która pozwala na przechowywanie wartości związanych z kluczami, które nie muszą być liczbami. W tym przypadku kluczami są łańcuchy znaków: 'imie', 'nazwisko' oraz 'wiek'. Każdy klucz ma przypisaną wartość: 'Anna', 'Nowak' oraz 21. Zatem tablica ta rzeczywiście zawiera trzy pary klucz-wartość. Operator '=>' jest używany w PHP do przypisywania wartości kluczom w tablicach asocjacyjnych. Jest to poprawna składnia i bardzo popularny sposób reprezentowania danych, zwłaszcza w kontekście baz danych i przetwarzania formularzy, gdzie każda wartość ma swoje unikalne znaczenie i klucz. W praktyce tablice asocjacyjne są używane do przechowywania danych, które nie mają charakteru sekwencyjnego, ale są raczej zestawem właściwości lub atrybutów obiektu. Stosowanie tablic asocjacyjnych z odpowiednimi kluczami wspiera czytelność kodu i ułatwia jego zarządzanie zwłaszcza w większych projektach gdzie zrozumienie struktury danych odgrywa kluczową rolę.

Pytanie 8

Fragment kodu JavaScript, który sumuje dwie liczby, przedstawia się następująco. Aby wykonać dodawanie po kliknięciu przycisku o nazwie dodaj, należy umieścić kod w wykropkowanym miejscu.

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
....
<script>
function dodaj()
{
// ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return oblicz()">dodaj</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onselect="return dodaj()">oblicz</button>
D. <button onclick="return dodaj()">dodaj</button>
W omawianym zadaniu kluczowym aspektem jest prawidłowe przypisanie funkcji do zdarzenia kliknięcia. Atrybut onselect jest nieodpowiedni w tym kontekście, ponieważ dotyczy zdarzeń związanych z zaznaczeniem tekstu, a nie z kliknięciem przycisku. Wprowadzenie onselect jako atrybutu w odpowiedziach 1 i 2 jest błędne, gdyż nie spełnia funkcji wywoływania zdarzenia kliknięcia, które jest wymagane do uruchomienia procesu dodawania. Obsługa zdarzeń w JavaScript bazuje na przypisaniu odpowiednich funkcji do określonych sytuacji interakcji użytkownika z elementami interfejsu. Kliknięcie jest jednym z najczęściej używanych zdarzeń, dlatego poprawne użycie onclick zapewnia zgodność z podstawowymi zasadami projektowania aplikacji webowych. W odpowiedzi 3 atrybut onclick jest użyty poprawnie, jednak nazwa funkcji oblicz() nie jest tożsama z wymaganą funkcją dodaj(), przez co nie spełnia wymogów zadania. Ważne jest, aby nazwa funkcji w atrybucie onclick dokładnie odpowiadała nazwie funkcji, która ma być wykonana. To unikanie niezgodności w kodzie źródłowym pozwala na efektywne zarządzanie funkcjami i zapewnia prawidłowe działanie skryptu. Atrybut onclick powinien być stosowany, gdy chcemy zareagować na bezpośrednie działania użytkownika takie jak kliknięcie przycisku. Dzięki temu możemy tworzyć dynamiczne i interaktywne aplikacje internetowe, które odpowiadają na potrzeby użytkownika w czasie rzeczywistym, co jest jednym z kluczowych celów nowoczesnego projektowania stron internetowych.

Pytanie 9

Przy konwersji obrazu z 8-bitowej głębi kolorów na 4-bitową, liczba dostępnych kolorów zmniejszy się o:

A. 256
B. 24
C. 16
D. 240
Głębia n-bitowa daje 2 do potęgi n kolorów: 8 bitów to 256 kolorów, a 4 bity to 16 kolorów. Po konwersji liczba dostępnych kolorów spada o 256 - 16 = 240. Dlatego liczba kolorów zmniejszy się o 240.

Pytanie 10

Gdy zmienna $x przechowuje dowolną dodatnią liczbę naturalną, poniższy kod źródłowy PHP ma na celu wyświetlenie:

$licznik = 0;
while ($licznik != $x) 
{
    echo $licznik;
    $licznik++;
}
A. przypadkowe liczby z zakresu (0, x)
B. liczby wprowadzane z klawiatury, aż do momentu wprowadzenia wartości x
C. kolejne liczby od x do 0
D. kolejne liczby od 0 do x-1
Analizując niepoprawne odpowiedzi, można zauważyć kilka błędnych założeń. Pierwsze z nich zakłada, że kod ma za zadanie wyświetlać liczby wczytywane z klawiatury, aż wczytana zostanie wartość x. Nie jest to poprawne, ponieważ nie ma tu żadnej interakcji z użytkownikiem - wszystko odbywa się automatycznie na podstawie zadeklarowanej wartości x. Druga błędna odpowiedź sugeruje, że liczby są wyświetlane od x do 0, co jest nieprawidłowe, ponieważ pętla zaczyna od 0 i kończy na x-1. Trzecia niepoprawna odpowiedź sugeruje, że kod generuje losowe liczby z przedziału (0, x). Nie jest to prawda, ponieważ nie ma tu żadnego mechanizmu generowania liczb losowych. To błędne przypuszczenie wynika prawdopodobnie z niewłaściwego zrozumienia mechanizmu pętli i operacji na zmiennych. Wszystkie te błędne odpowiedzi pokazują, jak ważne jest prawidłowe rozumienie podstawowych konstrukcji języka programowania i mechanizmów sterowania przepływem danych.

Pytanie 11

Zdefiniowano char zm1; w C++. Jak poprawnie przypisać do niej wartość?

A.
zm1 = "wiadro";
B.
zm1 = 'w';
C.
zm1 == 0x35;
D.
zm1[2] = 32;
Zmienna typu char przechowuje POJEDYNCZY znak, który w C++ zapisuje się w apostrofach. Dlatego zm1 = 'w'; poprawnie przypisuje znak - apostrofy odróżniają literał znakowy od łańcucha. Dlatego prawidłowe jest zm1 = 'w';.

Pytanie 12

Który sposób komentowania jednoliniowego jest dozwolony w języku JavaScript?

A.
!
B.
<!
C.
//
D.
#
# rozpoczyna komentarz w PHP lub Pythonie, nie w JS. ! to operator negacji, a <! przypomina początek komentarza HTML, lecz w JavaScripcie nie działa. Jednoliniowy komentarz JS to //.

Pytanie 13

W systemie MySQL trzeba użyć polecenia REVOKE, aby użytkownikowi anna cofnąć możliwość wprowadzania zmian jedynie w definicji struktury bazy danych. Odpowiednia komenda do odebrania tych uprawnień ma postać

A. REVOKE CREATE INSERT DELETE ON tabela1 FROM 'anna'@'localhost'
B. REVOKE CREATE ALTER DROP ON tabela1 FROM 'anna'@'localhost'
C. REVOKE ALL ON tabela1 FROM 'anna'@'locaihost'
D. REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'
W analizie odpowiedzi, które są niepoprawne, kluczowe jest zrozumienie, jakie uprawnienia są odbierane i dlaczego to ma znaczenie. Odpowiedzi takie jak 'REVOKE ALL ON tabela1 FROM 'anna'@'localhost'' są niewłaściwe, ponieważ polecenie REVOKE ALL odbiera wszystkie prawa użytkownikowi, co może być zbyt drastycznym krokiem. W kontekście zarządzania uprawnieniami, ważne jest, aby podejść do tego z miarą i precyzją, a nie stosować ogólne odbieranie wszystkich praw. Ponadto, odpowiedzi, które obejmują niewłaściwe kombinacje uprawnień, takie jak 'REVOKE CREATE UPDATE DROP ON tabela1 FROM 'anna'@'localhost'', są również błędne. Odbieranie prawa UPDATE nie jest zgodne z celem pytania, które dotyczy jedynie strukturalnych zmian, a nie wprowadzania danych. Właściwe podejście do konfiguracji uprawnień powinno koncentrować się na ograniczaniu dostępu użytkowników tylko tam, gdzie jest to absolutnie konieczne, a nie na eliminacji ich zdolności do pracy z danymi w ogóle. Użytkownicy często popełniają błąd myślowy, myśląc, że odebranie zbyt wielu uprawnień jest rozwiązaniem problemu bezpieczeństwa, podczas gdy w rzeczywistości może to prowadzić do zablokowania niezbędnych operacji, co zagraża efektywności pracy organizacji.

Pytanie 14

Która klauzula określa powiązanie (relację) między tabelami w MySQL?

A.
ORDER BY
B.
INDEX
C.
REFERENCES
D.
PRIMARY KEY
Powiązanie (relację) między tabelami w MySQL określa klauzula REFERENCES - wskazuje, do której tabeli i kolumny odwołuje się klucz obcy, np. FOREIGN KEY (autor_id) REFERENCES autorzy(id). Zapamiętaj: REFERENCES mówi „to pole wskazuje na klucz tamtej tabeli”.

Pytanie 15

Który z elementów relacyjnej bazy danych, zapisany w języku SQL, może być wykorzystany w zapytaniach modyfikujących kolumny danych udostępnione jako tabela, niezależnie od tego, czy jest stworzony programowo, czy dynamicznie?

A. Procedura składowa
B. Funkcja zdefiniowana
C. Trigger
D. Zasada
Funkcja zdefiniowana przez użytkownika (UDF) w języku SQL jest obiektem bazy danych, który może być wykorzystywany w zapytaniach, w tym w zapytaniach modyfikujących kolumny danych. UDF mogą przyjmować argumenty, wykonywać operacje na tych danych i zwracać wynik, co czyni je wszechstronnym narzędziem w programowaniu baz danych. Użycie funkcji zdefiniowanej zwiększa modularność kodu oraz umożliwia ponowne wykorzystanie logiki biznesowej, co jest zgodne z zasadami DRY (Don't Repeat Yourself). Przykładem zastosowania może być funkcja, która oblicza rabat na podstawie ceny i procentu rabatu, co można wywołać w zapytaniach aktualizujących ceny produktów. Warto również zauważyć, że UDF mogą być używane w kontekście różnych zapytań, a ich wyniki mogą być przetwarzane jak każda inna kolumna w wynikach zapytań. Dzięki temu programiści mogą łatwo implementować bardziej złożoną logikę bezpośrednio w zapytaniach SQL, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi.

Pytanie 16

W MS SQL Server predefiniowana rola o nazwie dbcreator umożliwia użytkownikowi

A. wykonywanie wszelkich operacji na serwerze oraz posiadanie praw do każdej bazy
B. zarządzanie plikami na nośniku
C. tworzenie, aktualizowanie, usuwanie oraz przywracanie bazy danych
D. zarządzanie zabezpieczeniami systemu
Odpowiedź nr 3 jest poprawna, ponieważ rola dbcreator w MS SQL Server umożliwia użytkownikowi tworzenie, modyfikowanie, usuwanie oraz odzyskiwanie baz danych. Użytkownik z tą rolą ma prawo do pełnej kontroli nad bazami danych, co jest istotne w kontekście zarządzania i utrzymania infrastruktury danych. Przykład praktyczny to sytuacja, w której administrator bazy danych potrzebuje utworzyć nową bazę dla aplikacji. Dzięki roli dbcreator może to zrobić bez dodatkowych uprawnień. Rola ta jest zgodna z najlepszymi praktykami w zakresie zarządzania dostępem, gdzie ogranicza się uprawnienia do niezbędnego minimum, ale jednocześnie umożliwia wykonanie kluczowych zadań związanych z zarządzaniem bazą danych. Warto zaznaczyć, że nadmierne przyznawanie uprawnień może prowadzić do problemów związanych z bezpieczeństwem, dlatego istotne jest przydzielanie ról zgodnie z zasadą najmniejszych uprawnień (Least Privilege Principle). Użytkownicy z rolą dbcreator powinni być odpowiednio przeszkoleni i świadomi swoich działań, aby nie wprowadzać niezamierzonych zmian w środowisku produkcyjnym.

Pytanie 17

Jakiego protokołu należy użyć do przesyłania plików witryny internetowej na serwer hostingowy?

A. IRC
B. FTP
C. SMTP
D. HTTP
Wybór protokołu IRC (Internet Relay Chat) jest niewłaściwy, ponieważ IRC jest przeznaczony do komunikacji w czasie rzeczywistym, a nie do transferu plików. IRC umożliwia użytkownikom prowadzenie rozmów na czatach i wymianę wiadomości, co nie ma zastosowania w kontekście przesyłania plików na serwer hostingowy. Podobnie, protokół HTTP (Hypertext Transfer Protocol) jest używany głównie do przesyłania danych w formacie stron internetowych, ale nie służy do przesyłania plików na serwer. HTTP obsługuje żądania i odpowiedzi między przeglądarką a serwerem, ale nie jest dedykowany do transferu plików na poziomie, który zapewnia FTP. Z kolei protokół SMTP (Simple Mail Transfer Protocol) jest używany do wysyłania wiadomości e-mail i również nie ma zastosowania w kontekście transferu plików na serwer. Wybierając odpowiedź, ważne jest zrozumienie, że każdy z tych protokołów ma swoje specyficzne zastosowanie i funkcjonalność. Często popełnianym błędem jest mylenie przeznaczenia poszczególnych protokołów, co prowadzi do nieprawidłowych wniosków. Aby udostępnić pliki na stronie internetowej, kluczowe jest zastosowanie odpowiedniego protokołu, który jest stworzony specjalnie do tego celu, w tym przypadku FTP.

Pytanie 18

W bazie danych znajduje się tabela uczniowie, która ma kolumny: imie, nazwisko i klasa. Jakie polecenie SQL należy użyć, aby uzyskać imiona oraz nazwiska uczniów, których nazwiska zaczynają się na literę M?

A. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko IN 'M%';
B. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';
C. SELECT nazwisko, imie FROM uczniowie WHERE nazwisko IN 'M%';
D. SELECT nazwisko, imie FROM uczniowie ORDER BY nazwisko='M%';
Poprawne polecenie SQL to 'SELECT nazwisko, imie FROM uczniowie WHERE nazwisko LIKE 'M%';'. Operator LIKE jest kluczowym elementem języka SQL, który pozwala na wyszukiwanie danych zgodnych z określonym wzorem, gdzie '%' oznacza dowolny ciąg znaków. Użycie tego operatora jest zgodne z najlepszymi praktykami w zakresie wyszukiwania danych w relacyjnych bazach danych, umożliwiając elastyczne filtrowanie wyników. W kontekście tego zapytania, operator LIKE skutecznie identyfikuje wszystkie nazwiska, które zaczynają się na literę 'M', co jest szczególnie przydatne w sytuacjach wymagających poszukiwania danych spełniających określone kryteria. Przykładem zastosowania tego zapytania może być generowanie raportów dla nauczycieli, którzy chcą zobaczyć listę uczniów w określonej klasie. Dodatkowo, warto pamiętać, że w przypadku wielu baz danych, operator LIKE jest również wrażliwy na wielkość liter, dlatego warto dostosować zapytanie w zależności od kontekstu, w jakim pracujemy.

Pytanie 19

Który z przedstawionych poniżej fragmentów kodu HTML5 zostanie uznany przez walidator HTML za niepoprawny?

A. <p class= "stl" id= "a">tekst</p>
B. <p class= "stl">tekst</p>
C. <p class= "stl"><style>.a{color:#F00}</style>tekst</p>
D. <p class= "stl" style= "color: #F00 ">tekst</p>
Poprawna odpowiedź, która została wskazana, to <p class= "stl"><style>.a{color:#F00}</style>tekst</p>. W kontekście HTML5, element <style> jest przeznaczony do umieszczania w nagłówkach dokumentu (<head>), a nie wewnątrz elementów blokowych, takich jak <p>. Umieszczanie tagu <style> w tagu <p> narusza zasady dotyczące struktury dokumentu HTML. Walidatory HTML5, które sprawdzają zgodność kodu z obowiązującymi standardami W3C, uznają takie umieszczenie za błąd, ponieważ stylizacja powinna być oddzielona od treści. Zgodnie z najlepszymi praktykami, CSS powinno być zaimplementowane w plikach zewnętrznych lub sekcjach <head>, co ułatwia utrzymanie i modyfikację kodu. Przykładem poprawnej struktury może być: <head><style>.a{color:#F00}</style></head><body><p class="stl">tekst</p></body>. To zapewnia przejrzystość i zgodność z zasadami HTML5, co jest kluczowe dla SEO oraz dostępności strony.

Pytanie 20

Jakie polecenie pozwala na dodanie kolumny zadaniekompletne do tabeli zadania?

A. ALTER TABLE zadania ADD COLUMN zadaniekompletne int
B. CREATEINDEX zadania ADD COLUMN zadaniekompletne int
C. INSERT INTO zadania VALUES zadaniakompletne
D. ADD COLUMN zadaniekompletne WITH zadania
Jeśli chodzi o odpowiedzi, które nie są poprawne, to oparte są na trochę mylnych założeniach co do manipulacji tabelami w SQL. Na przykład, 'CREATE INDEX zadania ADD COLUMN zadaniekompletne int' to pomyłka, bo CREATE INDEX służy do robienia indeksów, a nie do zmiany struktury tabeli. Indeksy są super do przyspieszania zapytań, ale nie dodają nowych kolumn. Kolejna odpowiedź, czyli 'INSERT INTO zadania VALUES zadaniakompletne' też mija się z celem, bo INSERT INTO dodaje nowe wiersze, a nie zmienia tabeli. Żeby dodać kolumnę, trzeba użyć ALTER TABLE. No i 'ADD COLUMN zadaniekompletne WITH zadania' to też nie jest poprawna składnia i może prowadzić do błędów. Takie odpowiedzi mogą pokazywać, że może nie do końca rozumiesz podstawowe polecenia SQL i jak je stosować. Wielkim błędem jest mylenie operacji związanych z danymi (DML) z tymi, które definiują strukturę danych (DDL). Zrozumienie tej różnicy jest kluczowe, żeby dobrze posługiwać się bazami danych i unikać późniejszych problemów.

Pytanie 21

Jakie uprawnienia posiada użytkownik jan po wykonaniu poniższych poleceń na bazie danych?

GRANT ALL PRIVILEGES ON klienci TO jan;
REVOKE SELECT, INSERT, UPDATE, DELETE ON klienci FROM jan;
A. Będzie miał możliwość wstawiania rekordów do tabeli klienci
B. Będzie miał możliwość usuwania rekordów z tabeli klienci
C. Będzie miał możliwość zmiany struktury tabeli klienci
D. Będzie miał możliwość wyszukiwania danych w tabeli klienci
Użytkownik jan po wykonaniu podanych poleceń SQL nie będzie miał możliwości usuwania rekordów z tabeli klienci. W rzeczywistości polecenie GRANT ALL PRIVILEGES na początku miało na celu nadanie wszystkich uprawnień do tej tabeli, jednak po wykonaniu polecenia REVOKE SELECT, INSERT, UPDATE, DELETE odebrano mu możliwość wykonywania podstawowych operacji na danych, takich jak wstawianie, usuwanie czy aktualizowanie rekordów. Jest to częsty błąd w myśleniu, gdzie użytkownicy mogą sądzić, że uprawnienia ogólne obejmują również wszystkie podkategorie, nawet jeśli nie zostały określone. Podobnie, możliwość wyszukiwania danych w tabeli klienci również została usunięta z uwagi na odebranie uprawnienia SELECT. To pokazuje, jak kluczowe jest zrozumienie struktury uprawnień w SQL, gdzie każdy typ uprawnienia ma swoje własne znaczenie. W praktyce, w wielu organizacjach ważne jest, aby administracja bazą danych była przeprowadzana zgodnie z zasadą najmniejszych uprawnień, aby ograniczyć dostęp do krytycznych operacji oraz zminimalizować ryzyko błędów i incydentów związanych z bezpieczeństwem. Z tego powodu, odpowiedzi sugerujące, że jan ma jakieś uprawnienia do wstawiania lub usuwania danych w tabeli klienci, są nieprawidłowe, ponieważ zostały one jasno odwołane w ostatnim poleceniu.

Pytanie 22

Do czego wykorzystuje się certyfikat SSL?

A. do odszyfrowywania przesyłanych danych przez osoby trzecie
B. do blokowania złośliwego oprogramowania
C. do potwierdzenia tożsamości (właściciela) domeny i szyfrowania połączenia
D. do zapisywania danych o sesjach na stronie
Pozostałe opisy są błędne. Certyfikat nie przechowuje danych sesji (od tego są ciasteczka i sesje serwera). Nie służy też osobom trzecim do ODSZYFROWANIA danych - przeciwnie, ma im to uniemożliwić. Blokowanie złośliwego oprogramowania to zadanie antywirusa. SSL potwierdza tożsamość domeny i szyfruje połączenie.

Pytanie 23

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

$liczba = 10;
while ($liczba < 50) {
  echo "$liczba ";
  $liczba = $liczba + 5;
}
A. 10 15 20 25 30 35 40 45
B. 0 5 10 15 20 25 30 35 40 45
C. 10 15 20 25 30 35 40 45 50
D. 0 5 10 15 20 25 30 35 40 45 50
Prawidłowa odpowiedź to 10 15 20 25 30 35 40 45 ponieważ pętla while w języku PHP działa na zasadzie sprawdzania warunku przed każdą iteracją. W tym przypadku zmienna $liczba jest inicjalizowana wartością 10 a warunek w pętli sprawdza czy $liczba jest mniejsza niż 50. Wartość zmiennej jest wypisywana i następnie zwiększana o 5 w każdym kroku iteracyjnym. Pętla zakończy się gdy $liczba osiągnie wartość 50 lub większą. Dlatego ostatnią wypisaną wartością będzie 45 gdyż po dodaniu 5 zmienna $liczba wyniesie 50 i przestanie spełniać warunek pętli. Takie konstrukcje pętli są powszechne w programowaniu szczególnie gdy mamy do czynienia z iteracją po stałych przedziałach liczbowych. Stosowanie pętli while jest zalecane w przypadku gdy liczba iteracji nie jest z góry znana a jedynie zależy od spełnienia określonego warunku. Ważne jest by pamiętać o możliwości nieskończonej pętli jeśli warunek nigdy nie zostanie spełniony co może prowadzić do błędów wykonania programu. Praktycznym zastosowaniem takiej pętli jest iteracja po zbiorze danych którego rozmiar zależy od zewnętrznych czynników np danych wejściowych od użytkownika lub zawartości pliku.

Pytanie 24

Podany kod źródłowy ma na celu pokazanie:

$liczba = 1;
while ($liczba != 0)
{
  $liczba = rand(0, 100);
  echo $liczba;
}
A. liczby wprowadzane z klawiatury do momentu, gdy wczytana zostanie wartość 0
B. losowe liczby od 0 do 100 aż do momentu, gdy wylosowana zostanie wartość 0
C. wylosowane liczby od 1 do 99
D. kolejne liczby od 1 do 100
Odpowiedzi, które sugerują, że kod generuje kolejne liczby od 1 do 100, wylosowane liczby od 1 do 99, czy też wczytane z klawiatury liczby, zawierają fundamentalne błędy w interpretacji logiki działania przedstawionego kodu. Po pierwsze, pętla while w kodzie analizowanym opiera się na losowym generowaniu liczb z wykorzystaniem funkcji rand(), a nie na sekwencyjnym przydzielaniu wartości. Kod nie generuje przyrostu numerycznego, jak sugeruje odpowiedź sugerująca liczby od 1 do 100. Ponadto, nie ma żadnej logiki, która wprowadzałaby wartości do programu z klawiatury, co całkowicie wyklucza odpowiedzi sugerujące wczytywanie liczb. Ważne jest, aby zrozumieć, że w kontekście programowania różnica pomiędzy losowym generowaniem a sekwencyjnym przydzielaniem wartości ma kluczowe znaczenie. Niepoprawne koncepcje pochodzą często z mylenia pojęć losowości i deterministycznych sekwencji, co prowadzi do błędnych wniosków. Każdy programista musi być świadomy tych różnic, aby unikać nieporozumień w kodzie, co jest istotne zarówno w codziennej praktyce programistycznej, jak i w bardziej złożonych projektach, gdzie precyzyjne działanie kodu jest kluczowe dla uzyskania oczekiwanych wyników.

Pytanie 25

Które z wymienionych NIE jest wykonywane po stronie serwera?

A. Perl
B. PHP
C. CSS
D. ASP
CSS działa po stronie KLIENTA - to przeglądarka interpretuje arkusz stylów i renderuje wygląd u użytkownika. Nie jest przetwarzany na serwerze. Dlatego po stronie serwera nie wykonuje się CSS.

Pytanie 26

Osobistym środkiem ochrony oczu i twarzy jest:

A. sprzęt filtrujący powietrze
B. przyłbica
C. fartuch ochronny
D. osłona z pleksi między stanowiskami
Pozostałe pozycje albo chronią inną część ciała, albo są ochroną zbiorową. Fartuch ochronny zabezpiecza tułów i odzież przed zabrudzeniem czy uszkodzeniem, lecz nie osłania oczu ani twarzy. Sprzęt filtrujący powietrze (np. półmaska) chroni drogi oddechowe, a nie wzrok. Osłona z pleksi między stanowiskami to środek ochrony zbiorowej - zabezpiecza wszystkich pracujących w danym obszarze, a nie pojedynczą osobę. Oczy i twarz indywidualnie chroni przyłbica, dlatego to ona jest poprawna.

Pytanie 27

Jakie informacje z ośmiu wpisanych rekordów w tabeli zwierzęta zostaną przedstawione w wyniku wykonania wskazanej instrukcji SQL?

Ilustracja do pytania
A. Anna Kowalska, Jan Nowak
B. Dika, Fuks
C. Figaro, Dika, Fuks
D. Fafik, Brutus, Dika, Fuks
Zapytanie SQL SELECT imie FROM zwierzeta WHERE rodzaj = 2 AND szczepienie = 2016; filtruje wyniki według dwóch kryteriów: rodzaj musi być równy 2 i rok szczepienia musi być 2016. W danych mamy kilka zwierząt, ale tylko Dika i Fuks spełniają oba te warunki. Dika i Fuks mają rodzaj równy 2 oraz rok szczepienia 2016, co czyni je jedynymi zwierzętami w tabeli spełniającymi te kryteria. Zrozumienie tego typu zapytań wymaga znajomości składni SQL oraz logiki warunkowej. W praktyce stosowanie filtrów WHERE to jedna z podstawowych technik selekcji danych umożliwiająca precyzyjne wyciąganie rekordów z dużych zbiorów danych. Warto również zaznaczyć, że poprawne używanie takich zapytań w pracy zawodowej jest niezbędne dla zapewnienia jakości i wydajności procesów związanych z bazami danych. Wiedza ta jest kluczowa w wielu branżach, w których przetwarzanie dużych ilości danych jest codziennością.

Pytanie 28

Które słowne wartości może przyjmować właściwość font-size?

A. tylko small, smaller, large, larger
B. xx-small, x-small, small, medium, large, x-large, xx-large
C. wyłącznie small, medium, large
D. tylko big i small
Pozostałe zbiory są niepełne lub błędne. big nie jest poprawną wartością font-size. Zestaw „small, medium, large” jest zbyt wąski - pomija wartości skrajne (xx-small, xx-large itd.). Lista „small, smaller, large, larger” miesza wartości bezwzględne ze względnymi i jest niekompletna. Pełny zbiór rozmiarów bezwzględnych zawiera czwarta odpowiedź, dlatego jest poprawna.

Pytanie 29

Bitmapa jest obrazem:

A. interakcyjnym
B. rastrowym
C. wektorowym
D. analogowym
Bitmapa (mapa bitowa) to grafika rastrowa - obraz zapisany jako siatka pikseli, z których każdy ma określony kolor. Powiększanie bitmapy ujawnia piksele i pogarsza jakość (utrata ostrości). Przeciwieństwem jest grafika wektorowa, opisana wzorami matematycznymi i skalowalna bez utraty jakości. Dlatego bitmapa jest obrazem rastrowym.

Pytanie 30

Tekst można pogrubić za pomocą znacznika <b>, a także stosując odpowiednie właściwości CSS.

A. text-weight
B. font-size
C. font-weight
D. text-size
Wybór 'text-weight' jako właściwości CSS jest błędny, ponieważ nie istnieje taka właściwość w standardzie CSS. Użytkownicy mogą mylić ją z 'font-weight', co prowadzi do frustracji i błędnych implementacji w kodzie. Kolejna odpowiedź, 'font-size', odnosi się do rozmiaru tekstu, a nie do jego grubości. Użytkownicy mogą popełniać błąd myślowy, sądząc, że zmiana rozmiaru tekstu wpłynie na jego wagę, jednak te dwie właściwości są od siebie niezależne. Wreszcie, 'text-size' również nie jest uznawana za standardową właściwość CSS; właściwą terminologią w kontekście stylizacji tekstu jest 'font-size'. Takie mylne przekonania mogą wynikać z nieznajomości pełnej terminologii CSS lub z braku praktycznego doświadczenia w stylizacji stron. Kluczowe znaczenie ma zrozumienie, że CSS posiada precyzyjne określenia dla każdego aspektu stylizacji, a używanie niepoprawnych terminów może prowadzić do błędów w kodzie oraz do niepoprawnego wyświetlania elementów na stronie. Warto inwestować czas w naukę odpowiednich właściwości CSS, aby tworzyć bardziej profesjonalne i funkcjonalne strony internetowe.

Pytanie 31

Rozważ tabelę mieszkań, która zawiera kolumny: adres, metraż, ile_pokoi, standard, status, cena. Wykonanie poniższej kwerendy SQL SELECT spowoduje wyświetlenie:

SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3;
A. wszystkie informacje, z wyjątkiem adresu, dotyczące mieszkań z więcej niż 3 pokojami
B. metraż oraz cena tych mieszkań, które mają więcej niż 3 pokoje
C. wszystkie dane mieszkań, które mają co najmniej 3 pokoje
D. metraż oraz cena tych mieszkań, które posiadają co najmniej 3 pokoje
Odpowiedź wskazująca na metraż oraz cenę mieszkań, które mają więcej niż 3 pokoje jest prawidłowa, ponieważ kwerenda SQL wykorzystuje operator '>', co oznacza, że wybrani będą tylko ci, którzy mają co najmniej 4 pokoje. W kontekście tabeli mieszkania, zapytanie SELECT metraz, cena FROM mieszkania WHERE ile_pokoi > 3; efektywnie filtruje dane, aby zwrócić tylko kolumny metraż oraz cena dla mieszkań spełniających ten warunek. W praktyce, umiejętność pisania takich zapytań SQL jest kluczowa w pracy z bazami danych, gdzie często potrzebne jest zrozumienie struktury danych i umiejętność ich analizy. Przykładem zastosowania może być analiza rynku nieruchomości, gdzie deweloperzy mogą chcieć zbadać ceny mieszkań większych niż 3 pokoje, aby lepiej dostosować swoje oferty do potrzeb klientów. Warto również zaznaczyć, że takie zapytania powinny być pisane zgodnie z najlepszymi praktykami, takimi jak unikanie selekcji niepotrzebnych danych, co przyspiesza ich przetwarzanie oraz zmniejsza obciążenie bazy danych.

Pytanie 32

document.getElementById("napis").innerHTML = Date); // Aby poprawnie skomentować podaną linijkę kodu w języku JavaScript, należy dodać komentarz po znakach //

A. niepoprawne informacje
B. wyświetlenie daty oraz czasu w znaczniku o id = napis
C. zmiana właściwości atrybutu innerHTML
D. wyświetlenie ciągu "Date()" w znaczniku o id = napis
W przedstawionej linii kodu JavaScript, 'document.getElementById("napis").innerHTML = Date;', mamy do czynienia z modyfikacją zawartości elementu HTML o identyfikatorze 'napis'. Funkcja 'getElementById' pozwala na selekcję elementu DOM, a atrybut 'innerHTML' umożliwia przypisanie nowej wartości, która będzie wyświetlana w tym elemencie. Wartością, która zostanie przypisana, jest 'Date', a nie 'Date()'. Przy użyciu 'Date' bez nawiasów, odnosi się do obiektu funkcji, a nie do wyniku wykonania tej funkcji, który zwraca aktualną datę i czas. W poprawnej wersji kodu powinno być 'document.getElementById("napis").innerHTML = new Date();', co spowoduje wyświetlenie bieżącej daty i godziny w elemencie o id 'napis'. Takie podejście jest zgodne z aktualnymi standardami ECMAScript, a także jest często wykorzystywane w aplikacjach webowych do dynamicznej aktualizacji treści na stronach internetowych, co zwiększa ich interaktywność i użytkowalność. Dla lepszego zrozumienia, praktycznym przykładem może być użycie tego kodu w aplikacji, która pokazuje czas rzeczywisty na stronie, co jest popularne w wielu projektach webowych.

Pytanie 33

Na ilustracji przedstawiono dwie tabele. Aby ustanowić między nimi relację jeden do wielu, gdzie jedna strona to Klienci, a druga strona to Zamowienia, należy

Ilustracja do pytania
A. stworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi klucz połączyć z ID tabeli Zamowienia.
B. powiązać relacją pola ID z obu tabel.
C. dodać pole klucza obcego do tabeli Klienci i powiązać je z ID tabeli Zamowienia.
D. wprowadzić pole klucza obcego do tabeli Zamowienia i powiązać je z ID tabeli Klienci.
Zrozumienie, dlaczego inne podejścia do tworzenia relacji jeden do wielu są błędne, wymaga wyjaśnienia działania kluczy podstawowych i obcych. Połączenie pól ID z obu tabel nie tworzy poprawnej relacji jeden do wielu, ponieważ nie definiuje, które pole służy jako klucz obcy. Tego typu połączenie może prowadzić do niejednoznaczności i problemów z integralnością danych. Dodanie klucza obcego do tabeli Klienci i połączenie go z ID tabeli Zamowienia również nie jest prawidłowe, ponieważ przeczyłoby to logice relacji jeden do wielu, gdzie jeden klient może mieć wiele zamówień, a nie odwrotnie. W praktyce takie podejście mogłoby prowadzić do powielania danych w tabeli Klienci i komplikacji przy zarządzaniu danymi. Zdefiniowanie trzeciej tabeli z dwoma kluczami obcymi jest podejściem stosowanym przy relacjach wiele do wielu, a nie jeden do wielu, jak w tym przypadku. Takie rozwiązanie byłoby nieefektywne w tej sytuacji i niepotrzebnie skomplikowałoby strukturę bazy danych. Poprawne zrozumienie tych koncepcji jest kluczowe dla projektowania wydajnych i spójnych systemów baz danych, zgodnych z zasadami normalizacji i dobrych praktyk inżynierii danych.

Pytanie 34

Aby umieścić plik wideo na stronie internetowej z widocznymi przyciskami sterującymi oraz zapętlonym odtwarzaniem, należy w znaczniku <video> użyć atrybutów

A. loop i muted
B. autoplay i preload
C. controls i autoplay
D. controls i loop
Odpowiedź "controls i loop" jest całkiem dobra, bo te dwa atrybuty są naprawdę istotne, żeby wideo działało jak należy na stronie. Atrybut "controls" dodaje do odtwarzacza przyciski, które pozwalają na zatrzymywanie, odtwarzanie i regulowanie głośności, co jest bardzo wygodne dla ludzi. Z kolei "loop" sprawia, że filmik odtwarza się w kółko, co może być super użyteczne, szczególnie w prezentacjach albo reklamach, które chcemy pokazać kilka razy. Przykładowo, <video src='video.mp4' controls loop> wstawia wideo z przyciskami, które można łatwo obsługiwać, no i od razu się zapętla. W ogóle, korzystanie z tych atrybutów to dobra praktyka, bo sprawia, że strony są bardziej przyjazne dla użytkowników oraz poprawia ich doświadczenia.

Pytanie 35

W posiadanej tabeli zwanej przedmioty, która zawiera kolumny ocena oraz uczenID, aby wyliczyć średnią ocen dla ucznia z ID równym 7, należy użyć zapytania

A. AVG SELECT ocena FROM przedmioty WHERE uczenID = 7
B. SELECT COUNT(ocena) FROM przedmioty WHERE uczenID = 7
C. COUNT SELECT ocena FROM przedmioty WHERE uczenID = 7
D. SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7
Odpowiedź 'SELECT AVG(ocena) FROM przedmioty WHERE uczenID = 7;' jest poprawna, ponieważ wykorzystuje funkcję agregującą AVG, która oblicza średnią ocen dla wszystkich wpisów w tabeli 'przedmioty', gdzie 'uczenID' jest równy 7. W SQL funkcje agregujące są niezwykle przydatne do analizy danych, pozwalając na uzyskanie statystyk dotyczących zbiorów danych. Użycie klauzuli WHERE pozwala na filtrowanie danych do tych, które dotyczą konkretnego ucznia, co jest zgodne z najlepszymi praktykami w zakresie zarządzania danymi. Na przykład, w praktycznych zastosowaniach, może to być użyte do generowania raportów dotyczących wyników ucznia w określonym przedziale czasowym lub w porównaniu do innych uczniów. Warto również zauważyć, że poprawna konstrukcja zapytania SQL jest kluczowa dla utrzymania integralności i wydajności bazy danych, co podkreśla znaczenie płynnego zapisu zapytań. Takie umiejętności są nieocenione w pracy z bazami danych oraz w kontekście analizy danych w różnych dziedzinach.

Pytanie 36

Aby wypisać tekst na stronie w języku PHP, należy użyć instrukcji:

A.
echo
B.
console.log()
C.
print_r()
D.
write()
Do wypisywania tekstu w PHP służy echo, na przykład echo "Witaj";. Wstawia ona podany tekst lub wartość zmiennej do generowanej strony. Podobnie działa print. Dlatego do wyświetlenia tekstu w PHP używa się echo.

Pytanie 37

Jaką relację typu uzyskuje się w wyniku powiązania kluczy głównych dwóch tabel?

A. wiele do wielu
B. wiele do jednego
C. jeden do wielu
D. jeden do jednego
Relacje między tabelami w bazach danych mogą przyjmować różne formy, a wybór niewłaściwego typu relacji może prowadzić do poważnych konsekwencji w zakresie integralności danych i wydajności zapytań. W przypadku odpowiedzi wskazujących na relacje wiele do wielu, jeden do wielu czy wiele do jednego, kluczowym błędem jest niepełne zrozumienie, jak działają klucze główne i obce. Relacja wiele do wielu jest stosowana, gdy każdy rekord w jednej tabeli może być związany z wieloma rekordami w drugiej tabeli oraz odwrotnie. Przykładem takiej relacji mogą być tabele reprezentujące autorów i książki, gdzie jeden autor może napisać wiele książek, a jedna książka może być napisana przez wielu autorów. Relacja jeden do wielu z kolei oznacza, że jeden rekord w tabeli nadrzędnej może być powiązany z wieloma rekordami w tabeli podrzędnej, co jest typowe w przypadku hierarchicznych struktur danych, jak na przykład kategorie i produkty w sklepie internetowym. Relacja wiele do jednego z definicji jest odwrotnością relacji jeden do wielu, co również nie jest adekwatne w kontekście łączenia tabel z kluczem głównym do klucza obcego. Te błędne koncepcje mogą wynikać z mylnego założenia, że każda forma powiązania między rekordami jest równie efektywna, co może prowadzić do problemy z wydajnością bazy danych oraz błędami w analizie danych. Warto zatem zawsze dokładnie analizować wymagania systemu przed podjęciem decyzji o typie relacji, aby zapewnić optymalne zarządzanie danymi.

Pytanie 38

Który efekt został zaprezentowany na filmie?

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

Pytanie 39

Jakim poleceniem SQL można zlikwidować z tabeli artykuly wiersze, które zawierają słowo "sto" w dowolnej lokalizacji pola tresc?

A. DELETE * FROM artykuly WHERE tresc LIKE "%sto%"
B. DELETE FROM artykuly WHERE tresc LIKE "%sto%"
C. DELETE FROM artykuly WHERE tresc = "%sto%"
D. DELETE * FROM artykuly WHERE tresc = "%sto%"
Odpowiedź "DELETE FROM artykuly WHERE tresc LIKE '%sto%';" jest okej, bo używasz operatora LIKE. To pozwala na szukanie wzorców w tekście. W SQL to polecenie usunie wszystkie wiersze z tabeli 'artykuly', które mają słowo 'sto' w polu 'tresc', niezależnie od tego, gdzie się ono znajduje. Te znaki procentu (%) przed i po 'sto' to takie wildcardy, które mogą oznaczać dowolny tekst przed lub po. To zgodne z dobrymi praktykami programowania w SQL, gdzie można używać LIKE, gdy nie mamy ściśle określonego formatu. Na przykład, takie zapytanie może się przydać, żeby usunąć artykuły z niepożądanym zwrotem, co ma znaczenie przy moderowaniu treści na stronach internetowych.

Pytanie 40

Kolor zielony w skróconej notacji szesnastkowej można w CSS zapisać jako:

A.
#0F0
B.
#00F
C.
#F00
D.
#FFF
CSS dopuszcza skrócony zapis koloru #RGB, w którym każda cyfra jest powielana - #0F0 odpowiada #00FF00. To pełna składowa zielona przy zerowych pozostałych, czyli czysty zielony. Skrót działa tylko, gdy obie cyfry pary są takie same (np. #FF8800#F80). Dlatego zielony w skróconej notacji to #0F0.