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 12:05
  • Data zakończenia: 8 czerwca 2026 12:25

Egzamin zdany!

Wynik: 35/40 punktów (87,5%)

Wymagane minimum: 20 punktów (50%)

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

Proces normalizacji tabel ma na celu

A. weryfikację i poprawę efektywności bazy danych
B. wizualizację bazy
C. wyłącznie stworzenie tabel oraz powiązań w bazie
D. dodanie danych do bazy
Normalizacja tabel jest procesem, który ma na celu organizację struktury bazy danych w taki sposób, aby zminimalizować redundancję danych oraz zapewnić integralność danych. Proces ten polega na podziale dużych tabel na mniejsze i łączeniu ich za pomocą relacji, co pozwala na efektywniejsze zarządzanie danymi. Przykładem normalizacji może być podział tabeli zawierającej informacje o klientach i ich zamówieniach na dwie oddzielne tabele: jedna do przechowywania danych klientów, a druga do danych zamówień, z relacją między nimi. W praktyce normalizacja, zgodna z metodologią Codd'a, obejmuje kilka poziomych form normalnych, takich jak 1NF, 2NF, i 3NF, z których każda wprowadza dodatkowe ograniczenia i zasady. Przy odpowiedniej normalizacji można uniknąć problemów z aktualizacją danych, takich jak anomalie aktualizacji czy usuwania, co jest kluczowe w utrzymywaniu wysokiej jakości danych w systemach bazodanowych.

Pytanie 2

W celu wykonania kopii bazy danych biblioteka w systemie MySQL należy w konsoli użyć polecenia

A. copymysql –u root biblioteka kopia.sql
B. mysqlduplicate –u root biblioteka > kopia.sql
C. backupmysql -u root biblioteka kopia.sql
D. mysqldump -u root biblioteka > kopia.sql
Poprawne polecenie do wykonania kopii bazy danych MySQL to „mysqldump -u root biblioteka > kopia.sql”. Narzędzie mysqldump jest oficjalnym, standardowym programem dostarczanym razem z serwerem MySQL i właśnie ono służy do tworzenia logicznych kopii zapasowych baz danych. Działa tak, że łączy się z serwerem MySQL, odczytuje strukturę tabel oraz dane, a następnie generuje plik tekstowy zawierający instrukcje SQL typu CREATE TABLE i INSERT. Taki plik można potem w prosty sposób wgrać z powrotem, np. poleceniem „mysql -u root biblioteka < kopia.sql”. To jest bardzo wygodne w praktyce, bo backup jest przenośny między serwerami, wersjami MySQL, a nawet można go edytować ręcznie w razie potrzeby.
W tym poleceniu „-u root” oznacza użytkownika bazy danych, czyli logujemy się jako użytkownik root. W realnym środowisku produkcyjnym zwykle używa się konta z mniejszymi uprawnieniami i dodatkowo opcji „-p”, żeby podać hasło (np. „mysqldump -u backup_user -p biblioteka > kopia.sql”). Nazwa „biblioteka” to nazwa bazy, którą archiwizujemy. Znak „>” to przekierowanie powłoki systemowej (bash, cmd itp.), które zapisuje wynik działania programu mysqldump do pliku „kopia.sql” zamiast wypisywać go na ekran. To przekierowanie nie jest częścią MySQL, tylko mechanizmem systemu operacyjnego, co czasem bywa mylące dla początkujących.
Moim zdaniem warto od razu wyrabiać sobie dobre nawyki: używać mysqldump regularnie, najlepiej w skryptach cron (Linux) lub Harmonogramie zadań (Windows), trzymać kopie na innym serwerze i testować odtwarzanie. W praktyce administracji serwerami i bezpieczeństwa danych takie kopie logiczne są podstawą procedur disaster recovery. W dokumentacji MySQL mysqldump jest wymieniony jako jedno z głównych narzędzi do backupu i migracji baz danych, więc znajomość dokładnie tego polecenia to absolutna podstawa pracy z MySQL w środowiskach webowych i nie tylko.

Pytanie 3

W języku JavaScript funkcja document.getElementById() ma na celu

A. sprawdzić poprawność formularza z identyfikatorem id
B. zwrócić odnośnik do pierwszego elementu HTML o określonym id
C. pobrać dane z pola formularza i zapisać je do zmiennej id
D. umieścić tekst o treści 'id' na stronie internetowej
Metoda document.getElementById() jest jedną z kluczowych funkcji w JavaScript, używaną do interakcji z elementami HTML w dokumentach DOM (Document Object Model). Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu w dokumencie HTML, który posiada określony atrybut id. Atrybut ten powinien być unikalny w obrębie dokumentu, co pozwala na jednoznaczną identyfikację elementu. Przykładowo, jeśli mamy element <div id='myElement'>Witaj świecie</div>, to użycie document.getElementById('myElement') zwróci nam ten konkretny element. Można następnie manipulować tym elementem, zmieniając jego zawartość, styl lub atrybuty, co jest nieocenione w tworzeniu dynamicznych aplikacji webowych. Warto zaznaczyć, że ta metoda jest częścią specyfikacji DOM Level 1 i jest szeroko wspierana przez wszystkie nowoczesne przeglądarki. W kontekście optymalizacji wydajności, uzyskiwanie dostępu do elementów za pomocą ich id jest znacznie szybsze i bardziej efektywne niż stosowanie selektorów CSS. W praktyce, użycie tej metody w kodzie JavaScript jest kluczowe dla wielu operacji DOM, co sprawia, że jest to fundament, na którym opiera się wiele aplikacji webowych.

Pytanie 4

Przedstawiono kod tabeli 3×2. Jaką modyfikację należy wprowadzić w drugim wierszu, aby tabela wyglądała jak na obrazie z niewidocznym wierszem?

<table>
  <tr>
    <td style="border: solid 1px;">Komórka 1</td>
    <td style="border: solid 1px;">Komórka 2</td>
  </tr>
  <tr>
    <td style="border: solid 1px;">Komórka 3</td>
    <td style="border: solid 1px;">Komórka 4</td>
  </tr>
  <tr>
    <td style="border: solid 1px;">Komórka 5</td>
    <td style="border: solid 1px;">Komórka 6</td>
  </tr>
</table>
Komórka 1Komórka 2
Komórka 3Komórka 4
Komórka 5Komórka 6
A. <tr style="visibility: hidden">
B. <tr style="display: table-cell">
C. <tr style="display: none">
D. <tr style="clear: none">
Właściwość CSS 'visibility: hidden' jest używana do ukrycia elementu, ale jednocześnie zachowuje ona jego miejsce w układzie strony. Jest to idealne dla sytuacji, kiedy chcemy ukryć konkretny element, ale nie chcemy wpływać na układ pozostałych elementów. W kontekście naszego pytania, jeśli chcielibyśmy ukryć drugi wiersz tabeli, ale nie chcemy, aby pozostałe wiersze zmieniały swoje położenie, 'visibility: hidden' jest idealnym rozwiązaniem. W przeciwnym razie, gdybyśmy użyli 'display: none', wiersz zostałby całkowicie usunięty z układu strony, a pozostałe wiersze przesunęłyby się do góry, aby zapełnić puste miejsce. W praktyce, właściwość 'visibility: hidden' jest często używana w połączeniu z JavaScript do tworzenia efektów 'hide/show', gdzie ukryte elementy mogą być później odkrywane bez wpływu na układ strony.

Pytanie 5

W kodzie CSS stworzono cztery klasy stylizacji, które zostały wykorzystane do formatowania akapitów. Efekt widoczny na ilustracji uzyskano dzięki zastosowaniu klasy o nazwie

Ilustracja do pytania
A. format4
B. format3
C. format1
D. format2
Odpowiedź format2 jest poprawna, ponieważ stylizacja zastosowana do tekstu na obrazie to line-through, co oznacza przekreślenie. W CSS właściwość text-decoration pozwala na dodawanie różnych dekoracji do tekstu, takich jak underline (podkreślenie), overline (nadkreślenie) czy line-through (przekreślenie). Przekreślenie jest często używane do zaznaczania usuniętego tekstu lub do pokazywania zmian w dokumentach, co jest zgodne z dobrą praktyką w edytorach tekstu i aplikacjach do śledzenia zmian. W kodzie HTML klasy CSS są zazwyczaj stosowane poprzez dodanie atrybutu class do odpowiedniego elementu. Użycie klasy format2 w kodzie HTML wyglądałoby jak <p class='format2'>. Wielu projektantów korzysta z takich dekoracji, aby poprawić czytelność i funkcjonalność stron internetowych, zapewniając użytkownikom intuicyjne oznaczenia wizualne. Ważne jest także użycie semantycznego HTML, co w połączeniu z odpowiednimi stylami CSS pozwala tworzyć dostępne dla użytkowników strony internetowe zgodne ze standardami W3C.

Pytanie 6

Który z akapitów został sformatowany zgodnie z przedstawionym stylem, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Odpowiedź D
B. Odpowiedź C
C. Odpowiedź B
D. Odpowiedź A
Paragraf oznaczony jako C został poprawnie sformatowany według przedstawionego stylu CSS. Styl ten określa kilka kluczowych właściwości: padding na poziomie 20 pikseli, kolor tekstu jako niebieski, pogrubienie tekstu ustawione na 900 oraz obramowanie o grubości 1 piksela z pełną linią. Padding określa wewnętrzne wcięcie, które wpływa na zwiększenie odległości między tekstem a krawędzią kontenera, co widać w odpowiedzi C jako przestrzeń wokół tekstu. Kolor tekstu zmienia się na niebieski, co również jest zgodne z wyglądem tej odpowiedzi. Font-weight ustawiony na 900 oznacza, że tekst powinien być wyraźnie pogrubiony, co jest zauważalne w porównaniu do innych opcji. Obramowanie wokół tekstu jest delikatne, ale widoczne, co odpowiada deklaracji border: 1px solid. Te właściwości są zgodne z powszechnymi praktykami projektowania stron internetowych, gdzie czytelność i estetyka odgrywają kluczową rolę. Praktyczne zastosowanie takich reguł CSS można znaleźć w projektowaniu intuicyjnych interfejsów użytkownika, gdzie spójność stylów ułatwia nawigację.

Pytanie 7

Przedstawiona funkcja napisana w kodzie JavaScript ma na celu:

function oblicz(a, n)
{
    wynik = 1;
    for(i = 0; i < n; i++)
        wynik *= a;
    return (wynik);
}
A. zwrócić iloczyn kolejnych liczb od 1 do a
B. wpisać kolejne liczby od a do n
C. wpisać wyniki mnożenia a przez n
D. zwrócić wynik potęgowania a^n
Funkcja w kodzie JavaScript przedstawionym w pytaniu ma na celu zwrócenie wyniku potęgowania liczby a do potęgi n. Widzimy to poprzez analizę kodu: rozpoczyna się od inicjalizacji zmiennej wynik z wartością 1, a następnie w pętli for realizowana jest operacja mnożenia wyniku przez a dokładnie n razy. W ten sposób wynik = wynik * a jest wykonywane iteracyjnie, co oznacza że a jest mnożone przez siebie n razy. Taka operacja jest definicją potęgowania: a do potęgi n oznacza a mnożone n-krotnie. Tego rodzaju funkcje są fundamentalne w programowaniu, szczególnie w kontekście matematycznych obliczeń czy symulacji wymagających wielokrotnych potęgowań, np. w zastosowaniach naukowych i inżynieryjnych. Dobrą praktyką jest również optymalizacja tego typu funkcji używając wbudowanych metod jak Math.pow w JavaScript, co zwiększa czytelność i efektywność kodu. Rozumienie potęgowania jest kluczowe w algorytmach opartych na teorii liczb, kryptografii czy w grafice komputerowej, gdzie operacje te mogą być wysoce złożone i wymagają szczególnej optymalizacji.

Pytanie 8

Narzędzie phpMyAdmin służy do administrowania serwerem:

A. FTP
B. plików
C. baz danych
D. WWW
phpMyAdmin to napisane w PHP narzędzie webowe do administrowania serwerem BAZ DANYCH MySQL/MariaDB - obsługujesz je przez przeglądarkę. Pozwala bez znajomości poleceń konsolowych tworzyć i usuwać bazy oraz tabele, przeglądać i edytować rekordy, uruchamiać zapytania SQL, importować i eksportować dane czy zarządzać użytkownikami. Dlatego znajdziesz je w panelu niemal każdego hostingu. Zapamiętaj: phpMyAdmin = graficzna administracja bazą danych.

Pytanie 9

W zaprezentowanym fragmencie algorytmu wykorzystano

Ilustracja do pytania
A. jedną pętlę
B. dwie pętle
C. jeden blok decyzyjny
D. trzy bloki operacyjne (procesy)
Na tym diagramie widać jedną pętlę, co jest dość ważne w programowaniu. Pętla pozwala na powtarzanie pewnych działań, aż spełni się jakiś warunek. Tu mamy blok decyzyjny, który mówi, czy proces ma trwać, czy się zakończyć. To dość powszechnie używane podejście, zwłaszcza w algorytmach, jak na przykład sortowanie czy obróbka danych. Warto zwrócić uwagę, by dobrze zrozumieć, jak działają pętle, szczególnie te oparte na warunkach, jak while czy for. Pozwoli to uniknąć problemów z niekończącymi się pętlami, które mogą sprawić, że program przestanie działać. Z mojego doświadczenia, ogarnać te struktury to kluczowy skill dla każdego, kto chce działać w IT.

Pytanie 10

W języku SQL, aby dodać atrybut klucza podstawowego do pola id w istniejącej tabeli produkt należy użyć składni

A. ALTER TABLE produkt DROP CONSTRAINT id
B. ALTER TABLE produkt ALTER COLUMN id INT
C. ALTER TABLE produkt DROP PRIMARY KEY
D. ALTER TABLE produkt ADD PRIMARY KEY (id)
Poprawna składnia to ALTER TABLE produkt ADD PRIMARY KEY (id), bo dokładnie to polecenie dodaje do istniejącej tabeli nowy klucz podstawowy oparty na kolumnie id. Instrukcja ALTER TABLE służy do modyfikowania struktury tabeli, a klauzula ADD PRIMARY KEY definiuje ograniczenie (constraint) typu klucz podstawowy dla wskazanej kolumny lub zestawu kolumn. W praktyce oznacza to, że kolumna id musi być unikalna i nie może przyjmować wartości NULL. Silnik bazy danych (np. MySQL, PostgreSQL, SQL Server) zwykle tworzy do tego indeks typu UNIQUE, który przyspiesza wyszukiwanie po kluczu głównym.
Moim zdaniem warto pamiętać, że takie polecenie będzie działać tylko wtedy, gdy dane w kolumnie id już spełniają warunki klucza podstawowego: brak duplikatów i brak wartości pustych. W realnym projekcie często robi się to w dwóch krokach: najpierw uzupełnia się brakujące wartości, usuwa lub poprawia duplikaty, a dopiero potem dodaje PRIMARY KEY. Przykładowo:
ALTER TABLE produkt ADD PRIMARY KEY (id);
W wielu systemach, zwłaszcza w aplikacjach webowych, kolumna id jest też często ustawiana jako AUTO_INCREMENT (MySQL) lub używa sekwencji (PostgreSQL, Oracle). Wtedy definicja tabeli przy tworzeniu może wyglądać np. tak:
CREATE TABLE produkt (id INT PRIMARY KEY AUTO_INCREMENT, nazwa VARCHAR(100));
Jeśli jednak tabela już istnieje i kolumna id była zwykłą kolumną, to właśnie ALTER TABLE ... ADD PRIMARY KEY (id) jest standardowym, poprawnym sposobem nadania jej roli klucza głównego. To rozwiązanie jest zgodne z ogólną składnią SQL i dobrą praktyką modelowania relacyjnych baz danych, gdzie każda tabela powinna mieć jasno zdefiniowany klucz podstawowy, najlepiej prosty, stabilny i jednoznaczny.

Pytanie 11

ALTER TABLE artykuły MODIFY cena float; Ta kwerenda ma na celu wprowadzenie zmian w tabeli artykuły.

A. dodanie kolumny cena o typie float, o ile nie istnieje
B. usunięcie kolumny cena o typie float
C. zmiana typu na float dla kolumny cena
D. zmiana nazwy kolumny cena na float
Odpowiedź była trafna, bo dotyczyła zmiany typu danych w kolumnie w tabeli. Kiedy piszesz 'ALTER TABLE artykuły MODIFY cena float;', to tak naprawdę modyfikujesz kolumnę 'cena', żeby mogła przyjmować liczby zmiennoprzecinkowe. Używanie typu float jest naprawdę przydatne, gdyż ceny często mają wartości z przecinkiem, więc nie ma sensu tego trzymać w innym formacie. Z mojego doświadczenia, takie zmiany są ważne, bo pomagają w dokładnym przechowywaniu danych, co jest kluczowe w przy aplikacjach związanych z finansami czy sprzedażą online. Ale pamiętaj, że warto zawsze mieć kopię zapasową, bo jeśli masz już jakieś dane, które się nie zmieszczą w nowym typie, to może być kłopot. Generalnie, używanie 'ALTER TABLE' to podstawowa rzecz w zarządzaniu bazami danych i dobrze wiedzieć, co się robi.

Pytanie 12

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

A. 1..n
B. 1..1
C. n..1
D. n..n
Błędne odpowiedzi 1..n, n..1 oraz n..n wskazują na różne typy relacji, które nie odpowiadają sytuacji opisanej w pytaniu. Relacja 1..n sugeruje, że jeden rekord w pierwszej tabeli może być powiązany z wieloma rekordami w drugiej tabeli. Przykładem może być relacja między tabelą 'Klienci' i 'Zamówienia', gdzie każdy klient może mieć wiele zamówień. Tego typu relacja nie jest możliwa z kluczem głównym, ponieważ klucz główny jest unikalny dla każdego rekordu. Podobnie, relacja n..1 oznacza, że wiele rekordów w pierwszej tabeli odnosi się do jednego rekordu w drugiej. Może to być interpretowane w kontekście danych, gdzie wiele produktów może być przypisanych do jednego dostawcy. W kontekście kluczy głównych, to również jest niepoprawne, ponieważ klucz główny w jednej tabeli powinien jednoznacznie identyfikować każdy rekord. Natomiast relacja n..n, która oznacza wiele rekordów w obu tabelach, jest również błędna w tym przypadku. Przykładem może być relacja między 'Użytkownikami' i 'Grupami', gdzie użytkownicy mogą należeć do wielu grup, a grupy mogą mieć wielu użytkowników. Żaden z tych typów relacji nie bierze pod uwagę unikalnych powiązań, które można osiągnąć tylko poprzez relację 1..1. Często błędy te wynikają z niepełnego zrozumienia zasad normalizacji baz danych oraz specyficznych zastosowań kluczy głównych, co prowadzi do błędnych wniosków o strukturze danych.

Pytanie 13

Jaką barwę przedstawia kolor zapisany w modelu RGB(255, 0, 0)?

A. niebieską
B. zieloną
C. czerwoną
D. żółtą
W modelu RGB kolor opisują trzy składowe: czerwona (R), zielona (G) i niebieska (B), każda od 0 do 255. Zapis RGB(255, 0, 0) oznacza maksymalną czerwoną i zerowe pozostałe, czyli czysty kolor czerwony. Dlatego RGB(255, 0, 0) to barwa czerwona.

Pytanie 14

W programie do grafiki wektorowej stworzono zaprezentowany kształt, który został uzyskany z dwóch figur: trójkąta oraz koła. Aby utworzyć ten kształt, po narysowaniu figur i ich odpowiednim umiejscowieniu, należy zastosować funkcję

Ilustracja do pytania
A. sumy
B. wykluczenia
C. różnicy
D. rozdzielenia
Funkcja sumy w edytorach grafiki wektorowej, takich jak Adobe Illustrator czy CorelDRAW, pozwala na łączenie kilku figur wektorowych w jedną całość. W tym przypadku użycie funkcji sumy jest odpowiednie, ponieważ łączy trójkąt i koło w jeden spójny kształt. Ten proces jest powszechnie określany jako operacja boolean i jest kluczowy w projektowaniu wektorowym, gdzie wymagana jest precyzyjna kontrola nad kształtami. Użycie sumy jest standardem w branży, gdy celem jest połączenie kształtów bez utraty ich integralności, co jest często stosowane w projektowaniu logo czy ikon. Operacja ta zapewnia płynne przejścia między figurami, co jest niezbędne w profesjonalnych projektach graficznych. Dodatkowo, sumowanie kształtów pozwala na optymalizację projektu pod kątem druku i wyświetlania, ponieważ zmniejsza liczbę niezależnych obiektów wektorowych, co jest praktyką zalecaną dla wydajnej pracy z dużymi plikami. Zrozumienie i umiejętność stosowania funkcji sumy to fundamentalna umiejętność dla każdego grafika pracującego z grafiką wektorową.

Pytanie 15

Jednym z typów testów jednostkowych jest analiza tras, która polega na

A. testowaniu wartości granicznych zestawu danych
B. określeniu punktu startowego i końcowego oraz badaniu dostępnych ścieżek pomiędzy tymi punktami
C. utworzeniu kilku zbiorów danych o zbliżonym sposobie przetwarzania i wykorzystaniu ich do przeprowadzenia testu
D. testowaniu obiektów pod kątem inicjalizacji oraz zwolnienia zarezerwowanej pamięci
W analizie ścieżek w testach jednostkowych chodzi o to, by wyznaczyć, skąd zaczyna się działanie programu i gdzie kończy, a następnie sprawdzić, jakie ścieżki można pomiędzy tymi punktami przejść. Dzięki temu można znaleźć wszystkie możliwe drogi, którymi program może podążać. To ważna metoda, bo pozwala ocenić, czy logika w naszym kodzie działa tak, jak powinna oraz czy przetestowaliśmy wszystkie scenariusze, które mogą się zdarzyć. Na przykład, gdy mamy w kodzie dużo warunków i pętli, analiza ścieżek może ujawnić błędy, które nie wyjdą przy zwykłym testowaniu. W inżynierii oprogramowania to jest naprawdę dobra praktyka, bo upewniamy się, że wszystkie ścieżki zostały sprawdzone, co na pewno wpływa na jakość i stabilność naszego programu.

Pytanie 16

Które wywołanie is_int() zwróci true?

A.
is_int(135)
B.
is_int(13.5)
C.
is_int(NULL)
D.
is_int("135")
Funkcja is_int() zwraca true tylko dla liczby CAŁKOWITEJ - dlatego is_int(135) da true.

Pytanie 17

Co oznacza deklaracja CSS margin: auto;?

A. marginesy dziedziczone po elemencie nadrzędnym
B. marginesy stałe dla danej przeglądarki
C. marginesy równe domyślnym wartościom elementu
D. marginesy obliczane tak, by element był wyśrodkowany w poziomie
Deklaracja margin: auto; każe przeglądarce obliczyć marginesy boczne tak, by element (o określonej szerokości) był WYŚRODKOWANY w poziomie - nadmiar miejsca rozkłada się równo na lewo i prawo. Dlatego oznacza wyśrodkowanie w poziomie.

Pytanie 18

Który z języków służy do STYLIZACJI stron WWW?

A. CSS
B. SQL
C. HTML
D. Python
Do stylizacji stron WWW służy CSS (Cascading Style Sheets) - opisuje wygląd elementów: kolory, czcionki, układ, marginesy, oddzielając prezentację od treści zapisanej w HTML. Dlatego językiem stylizacji jest CSS.

Pytanie 19

Wynikiem działania poniższej pętli for w przedstawionym kodzie PHP jest wyświetlenie liczb:

<?php
   for($i=5;$i>1;$i-=2)
       echo ($i%2)." ";
?>
A. 1 0 1
B. 1 1
C. 1 0
D. 1 0 1 0
Poprawna odpowiedź to 1 1, ponieważ analizując przedstawioną pętlę for, zaczynamy od zmiennej $i, która ma wartość 5. Pętla będzie działać tak długo, jak wartość $i jest większa od 1. W każdym kroku $i jest zmniejszane o 2, co oznacza, że w kolejnych iteracjach przyjmuje wartości 5, 3, a następnie 1. Wartości te są poddawane operacji modulo 2. Operacja modulo zwraca resztę z dzielenia, która dla liczb nieparzystych (5 i 3) wynosi 1 oraz dla liczby parzystej (0) wynosi 0. Zatem, w pierwszej iteracji, $i = 5, 5 % 2 = 1, a w drugiej iteracji, $i = 3, 3 % 2 = 1. Ostatecznie, pętla nie wykonuje się, gdy $i = 1, ponieważ warunek $i > 1 nie jest już spełniony. W rezultacie, poprawnym wynikiem działania tego fragmentu kodu jest wyświetlenie dwóch wartości 1. Przykład zastosowania takiej konstrukcji można znaleźć w sytuacjach, w których chcemy przetworzyć kolekcję liczb i wyodrębnić ich parzystość lub nieparzystość, co jest powszechną operacją w programowaniu.

Pytanie 20

W skrypcie PHP konieczne jest stworzenie cookie o nazwie owoce, które przyjmie wartość jabłko. Cookie powinno być dostępne przez jedną godzinę od momentu jego utworzenia. W tym celu w skrypcie PHP należy wykorzystać funkcję:

A. setcookie("owoce","jabłko",time()+3600);
B. setcookie("jabłko","owoce",time()+3600);
C. cookie("jabłko","owoce",3600);
D. cookie("owoce","jabłko",3600);
Funkcja setcookie w PHP jest kluczowym narzędziem do zarządzania ciasteczkami, a w szczególności do ich tworzenia. W przypadku prawidłowej odpowiedzi, setcookie("owoce","jabłko",time()+3600) poprawnie ustawia nazwę ciasteczka na 'owoce', przypisując mu wartość 'jabłko'. Funkcja time() zwraca aktualny czas w sekundach od 1 stycznia 1970 roku, a dodanie 3600 do tej wartości ustawia czas wygaśnięcia ciasteczka na jedną godzinę od momentu jego utworzenia. Jest to standardowa praktyka, by zapewnić, że cookie będzie dostępne przez określony czas. W kontekście aplikacji webowych, cookies są często wykorzystywane do przechowywania informacji o preferencjach użytkowników, sesjach logowania czy koszykach zakupowych. Ważne jest, aby przy tworzeniu ciasteczek upewnić się, że nazwa i wartość są odpowiednio sformatowane, a czas wygaśnięcia jest zgodny z oczekiwaniami. Prawidłowe zarządzanie ciasteczkami przyczynia się do lepszej interakcji z użytkownikami oraz zwiększa wydajność aplikacji.

Pytanie 21

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

A. imperatywne
B. stanowe
C. logiczne
D. funkcyjne
Pozostałe paradygmaty inaczej organizują kod. Funkcyjne opiera się na funkcjach i unikaniu zmiennego stanu (opisuje „co policzyć”, nie „jak krok po kroku”). Logiczne (np. Prolog) zadaje fakty i reguły, a wynik wnioskuje silnik. „Stanowe” nie jest klasycznym paradygmatem programowania. Ciąg poleceń to programowanie imperatywne.

Pytanie 22

Jaką rolę pełni kwerenda krzyżowa w MS Access?

A. modyfikuje istniejące dane w tabeli
B. prezentuje zliczone (zagregowane) wartości w układzie wierszy i kolumn
C. dołącza rekordy z innej tabeli
D. usuwa rekordy według kryteriów
Pozostałe operacje wykonują inne kwerendy. Usuwanie rekordów wg kryteriów to kwerenda usuwająca, dołączanie rekordów z innej tabeli - dołączająca, a modyfikacja danych - aktualizująca. Zestawienie zagregowanych danych w wierszach i kolumnach tworzy kwerenda krzyżowa.

Pytanie 23

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ść zmiany struktury tabeli klienci
B. Będzie miał możliwość wstawiania rekordów do tabeli klienci
C. Będzie miał możliwość wyszukiwania danych w tabeli klienci
D. Będzie miał możliwość usuwania rekordów z tabeli klienci
Odpowiedź jest poprawna, ponieważ po wykonaniu poleceń SQL użytkownik jan ma przyznane wszystkie uprawnienia do tabeli klienci, a następnie odebrano mu konkretne uprawnienia do wykonywania operacji SELECT, INSERT, UPDATE oraz DELETE. Oznacza to, że jedynym uprawnieniem, które pozostaje jemu po tych operacjach, jest możliwość zmiany struktury tabeli, co oznacza operacje takie jak ADD COLUMN czy DROP COLUMN. W praktyce, gdy przyznajemy użytkownikowi rolę, często stosujemy uprawnienia do wykonywania operacji DDL (Data Definition Language), które są niezbędne do modyfikacji schematu bazy danych. Odpowiedzi na pytania dotyczące uprawnień powinny uwzględniać kontekst celów administracyjnych, ponieważ różne role użytkowników mogą mieć różne poziomy dostępu. W związku z tym, zrozumienie systemu uprawnień w kontekście zarządzania bazą danych jest kluczowe, a dobrym standardem jest nadawanie użytkownikom tylko tych uprawnień, które są niezbędne do wykonywania ich zadań.

Pytanie 24

Wypisanie tekstu w języku JavaScript nie jest możliwe przy użyciu

A. funkcji MessageBox()
B. metody window.alert()
C. własności innerHTML
D. metody document.write()
Poprawnie wskazana została funkcja MessageBox(), bo w standardowym JavaScripcie działającym w przeglądarce taka funkcja po prostu nie istnieje. JavaScript udostępnia kilka mechanizmów do wypisywania tekstu, ale są one ściśle określone przez środowisko (głównie DOM i obiekt window), a nie przez jakieś ogólne, „systemowe” funkcje typu MessageBox.

Właściwość innerHTML należy do elementów DOM i służy do modyfikowania ich zawartości HTML. Przykład:

const div = document.getElementById('wynik');
div.innerHTML = 'Witaj w <b>JavaScript</b>';

To jest typowy, zgodny ze standardami sposób dynamicznej zmiany treści na stronie. W praktyce używa się go bardzo często, choć moim zdaniem lepiej w prostych przypadkach stosować textContent, bo jest bezpieczniejsze (nie interpretuje HTML-a, więc mniejsze ryzyko XSS).

Metoda window.alert() jest wbudowaną funkcją interfejsu przeglądarki. Wyświetla prosty modalny komunikat z przyciskiem OK. Przykład:

alert('Komunikat dla użytkownika');

W wielu poradnikach to pierwszy sposób „wypisania” czegokolwiek, bo od razu widać efekt. W profesjonalnych aplikacjach używa się go rzadko, raczej do szybkiego debugowania, bo blokuje interakcję z użytkownikiem.

Metoda document.write() pozwala wpisać tekst bezpośrednio do strumienia dokumentu HTML podczas jego ładowania:

document.write('Hello world');

Historycznie było to popularne, ale w nowoczesnych projektach uważa się to za złą praktykę. Po załadowaniu strony document.write() może nadpisać cały dokument, co jest mocno niepożądane. Lepszym standardem jest manipulacja DOM (np. innerHTML, createElement, appendChild).

Natomiast MessageBox() kojarzy się z funkcjami z innych środowisk (np. WinAPI, C#, VBA), ale w JavaScripcie w przeglądarce taka funkcja nie jest zdefiniowana w żadnym oficjalnym standardzie. Jeśli ktoś jej użyje bez własnej definicji, skończy się to błędem „MessageBox is not defined”. Dlatego właśnie ta odpowiedź jest poprawna – nie da się w czystym, standardowym JS wypisać tekstu przy użyciu funkcji MessageBox(), chyba że samemu ją wcześniej napiszemy, ale to już zupełnie inna historia.

Pytanie 25

W bazie Access tworzona kontrolka ma odwoływać się do kontrolki z INNEGO formularza. Czy jest to możliwe?

A. niemożliwe poza trybem projektowania
B. niemożliwe
C. możliwe tylko dla danych liczbowych
D. możliwe przez podanie ścieżki w właściwości „Źródło kontrolki”
W MS Access kontrolka może odwołać się do kontrolki z INNEGO formularza - wystarczy w jej właściwości „Źródło kontrolki” podać odpowiednią ścieżkę (np. odwołanie do formularza i jego pola). Dlatego jest to możliwe przez podanie ścieżki w „Źródle kontrolki”.

Pytanie 26

W języku JavaScript trzeba sformułować warunek, który będzie spełniony, gdy zmienna a będzie dowolną liczbą naturalną dodatnią (więcej niż 0) lub gdy zmienna b będzie dowolną liczbą z przedziału domkniętego od 10 do 100. Wyrażenie logiczne w tym warunku powinno mieć postać

A. (a > 0) || ((b >= 10) || (b <= 100))
B. (a > 0) && ((b >= 10) || (b <= 100))
C. (a > 0) || ((b >= 10) && (b <= 100))
D. (a > 0) && ((b >= 10) && (b <= 100))
Poprawna odpowiedź (a > 0) || ((b >= 10) && (b <= 100)) uwzględnia wymaganie, aby warunek był spełniony, gdy zmienna a jest liczbą naturalną dodatnią bądź zmienna b znajduje się w przedziale od 10 do 100, włącznie. W tym przypadku użycie operatora logicznego '||' (lub) jest kluczowe, ponieważ wystarczy, że jeden z warunków będzie prawdziwy, aby cały warunek był spełniony. Przykładem może być skrypt walidujący dane wejściowe użytkownika: jeśli zmienna a przechowuje wartość 5 (czyli liczbę naturalną dodatnią), to niezależnie od wartości zmiennej b, warunek będzie prawdziwy. Analogicznie, jeśli a wynosi 0, a b = 15, warunek również będzie spełniony, ponieważ b mieści się w wymaganym przedziale. Taka konstrukcja warunku jest zgodna z dobrą praktyką programistyczną, gdyż pozwala na jasne i zrozumiałe określenie, kiedy pewne zasady powinny być stosowane. Zastosowanie operatorów logicznych w taki sposób wspiera tworzenie czytelnych i elastycznych warunków, co jest istotne w kontekście utrzymania kodu i jego przyszłych modyfikacji.

Pytanie 27

Do poprawnego wyświetlania czego służy standard kodowania ISO-8859-2?

A. znaków specjalnych języka kodu strony
B. polskich liter (ś, ć, ń, ó, ą)
C. symboli matematycznych
D. znaków zarezerwowanych języka opisu strony
Standard kodowania ISO-8859-2 (Latin-2) zawiera znaki języków Europy Środkowej, w tym polskie litery diakrytyczne (ś, ć, ń, ó, ą). Dlatego służy do poprawnego wyświetlania polskich liter.

Pytanie 28

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. ustalić wartość kolumny id_klasy na 1 dla wszystkich rekordów w tabeli Uczen
D. powiększyć wartość pola Uczen o jeden
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 29

Co robi polecenie:

ALTER TABLE miasta ADD kod text;
?
A. zmienia nazwę tabeli miasta na kod
B. dodaje do tabeli kolumnę kod typu text
C. zmienia nazwę kolumny kod na text
D. dodaje dwie kolumny: kod i text
Polecenie ALTER TABLE miasta ADD kod text; rozszerza istniejącą tabelę miasta o jedną nową kolumnę o nazwie kod i typie text. ALTER TABLE zmienia strukturę tabeli, a ADD wskazuje dodanie kolumny (nazwa plus typ). Dlatego polecenie dodaje kolumnę kod typu text.

Pytanie 30

Ograniczanie dostępu do niektórych pól lub metod obiektów danej klasy, tak aby mogły być one wykorzystywane wyłącznie przez wewnętrzne metody tej klasy lub funkcje zaprzyjaźnione, to

A. dziedziczenie
B. hermetyzacja
C. polimorfizm
D. konkatenacja
Hermetyzacja to kluczowa koncepcja programowania obiektowego, która polega na ograniczaniu dostępu do pewnych pól i metod danej klasy, aby chronić integralność danych i zapewnić ich poprawne użycie. Przykładem hermetyzacji jest użycie modyfikatorów dostępu, takich jak 'private' i 'protected', co pozwala na ukrycie implementacji od użytkowników klasy, a jednocześnie umożliwia dostęp do tych elementów wewnętrznym metodom klasy. Dzięki hermetyzacji programiści mogą wprowadzać zmiany w implementacji bez wpływu na kod zewnętrzny, co wspiera zasady SOLID i ułatwia zarządzanie dużymi systemami. Rekomendowane praktyki w programowaniu obiektowym zalecają, aby klasy były odpowiedzialne za zarządzanie swoimi danymi, a dostęp do tych danych powinien odbywać się wyłącznie poprzez zdefiniowane interfejsy, takie jak metody publiczne, co pozwala na kontrolowanie operacji i walidację danych. W ten sposób hermetyzacja przyczynia się do większej niezawodności, czytelności oraz łatwości w testowaniu aplikacji.

Pytanie 31

W jakim przypadku w JavaScript warunek jest spełniony, jeśli zmienna x przyjmuje wartość

if ((!isNaN(x)) && (x > 0))
A. nie-liczbową wartość
B. wszelką całkowitą wartość liczbową
C. pusty ciąg znaków
D. wszelką dodatnią wartość liczbową
Warunek zapisany w JavaScript if (!isNaN(x) && x>0) jest prawdziwy, gdy zmienna x przechowuje dowolną dodatnią wartość liczbową Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ umożliwia skuteczne sprawdzenie czy wartość jest zarówno liczbowa jak i dodatnia Funkcja isNaN(x) zwraca true gdy x nie jest liczbą co powoduje że !isNaN(x) zwraca true tylko wtedy gdy x jest liczbą Następnie dodatkowy warunek x>0 sprawdza czy liczba jest większa od zera co oznacza że jest dodatnia Takie warunki są często używane w aplikacjach webowych do walidacji danych użytkownika Na przykład podczas wprowadzania kwoty transakcji system może używać podobnego warunku aby upewnić się że użytkownik nie wprowadza ujemnych wartości co mogłoby prowadzić do błędów logicznych w aplikacji Używanie takich warunków wspiera bezpieczeństwo i poprawność kodu co jest kluczowe w profesjonalnym środowisku programistycznym Dodatkowo takie podejście jest zgodne z zasadą przewidywalności działania kodu co jest istotne dla zapewnienia jego łatwej utrzymywalności i czytelności dla innych programistów

Pytanie 32

Która jednostka CSS jest WZGLĘDNA i zależy od rozmiaru czcionki?

A.
px
B.
pt
C.
in
D.
em
Pozostałe jednostki są STAŁE (bezwzględne). px to piksele, pt to punkty typograficzne (1/72 cala), a in to cale - nie zależą od rozmiaru czcionki. Zależnością od rozmiaru pisma cechuje się em.

Pytanie 33

Aby poprawnie zdefiniować hierarchiczną strukturę tekstu na stronie internetowej, należy zastosować:

A. znaczniki <h1>, <h2> oraz <p>
B. znacznik <div>
C. znaczniki <frame> i <table>
D. znacznik <p> z formatowaniem
Hierarchię tekstu na stronie budują znaczniki nagłówków <h1> do <h6>, gdzie <h1> to tytuł najważniejszy, a kolejne poziomy oznaczają sekcje i podsekcje. Przeglądarka, wyszukiwarki i czytniki ekranu odczytują z nich plan dokumentu, dlatego nagłówków używa się zgodnie ze znaczeniem, a nie dla samego wyglądu. Akapity <p> uzupełniają tę strukturę właściwą treścią. Taki układ poprawia czytelność, dostępność i pozycjonowanie strony - i właśnie dlatego poprawna odpowiedź łączy nagłówki z akapitem.

Pytanie 34

Aby w języku HTML uzyskać formatowanie paragrafu przedstawione w ramce, należy zastosować kod

Ilustracja do pytania
A. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>
B. <p>Tekst może być <mark>zaznaczony albo <i>istotny</i> dla autora</mark></p>
C. <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny dla autora</p>
D. <p>Tekst może być <mark>zaznaczony albo <em>istotny</em> dla autora</mark></p>
Poprawnie wybrałeś kod z poprawnie zagnieżdżonymi i domkniętymi znacznikami: <p>Tekst może być <mark>zaznaczony</mark> albo <em>istotny</em> dla autora</p>. To dokładnie odpowiada temu, co widać na podglądzie: zwykły akapit, w nim jedno słowo podświetlone na żółto oraz inne wyróżnione kursywą. Znacznik <p> tworzy paragraf – podstawowy blok tekstu w HTML. W środku używasz elementów liniowych (inline): <mark> do zaznaczenia fragmentu tekstu jak zakreślaczem oraz <em> do zaznaczenia treści istotnej znaczeniowo, co domyślnie jest renderowane jako kursywa. Według specyfikacji HTML5 <mark> służy do semantycznego wyróżnienia tekstu związanego z kontekstem, np. wynik wyszukiwania na stronie czy aktualnie ważna informacja. <em> natomiast podkreśla akcent logiczny w zdaniu, a nie tylko ozdobne pochylenie, co jest dobrą praktyką dostępnościową. Ważne jest też poprawne zagnieżdżanie: najpierw otwierasz <mark>, potem go zamykasz </mark>, dopiero później otwierasz <em> i zamykasz </em>. Żaden z tych znaczników nie nachodzi na siebie w sposób krzyżowy. Tego pilnują walidatory W3C i warto się do tego przyzwyczaić od początku. W codziennej pracy taki kod możesz wykorzystać np. w artykułach, dokumentacji technicznej, materiałach szkoleniowych, gdzie chcesz: zakreślić słowo kluczowe (<mark>) i jednocześnie podkreślić termin ważny dla autora lub kontekstu (<em>). Moim zdaniem lepiej stosować <em> zamiast <i>, bo <em> niesie znaczenie semantyczne i czytniki ekranu potrafią je zinterpretować, co poprawia dostępność strony.

Pytanie 35

Który znacznik wyświetli tekst jako PRZEKREŚLONY (np. nieaktualny)?

A.
<sub>
B.
<b>
C.
<s>
D.
<em>
Znacznik <s> wyświetla tekst jako PRZEKREŚLONY - stosuje się go do treści nieaktualnych lub nieprawdziwych (np. stara cena). Dlatego przekreślenie daje <s>.

Pytanie 36

Warunek zapisany w PHP wyświetli liczbę, jeśli

if ($liczba % 2 == 0)
{
    echo $liczba;
}
A. jest ona dodatnia
B. jest ona parzysta
C. jest ona liczbą pierwszą
D. wynik dzielenia liczby przez 2 wynosi 0
Wybór odpowiedzi błędnych może wynikać z nieprawidłowego rozumienia operatora modulo i jego zastosowania w języku PHP. Operator ten zwraca resztę z dzielenia dwóch liczb więc wynik dzielenia liczby przez 2 nigdy nie może być bezpośrednio równy 0 co oznacza że odpowiedź dotycząca wyniku dzielenia liczby przez 2 jest niewłaściwie zrozumiana. Również koncepcja dodatnich liczb jako kryterium jest niepoprawna w kontekście przedstawionego kodu ponieważ dodatność liczby nie jest sprawdzana przez operator modulo. Liczby pierwsze to te które mają tylko dwa dzielniki: 1 i samą siebie co nie jest związane z warunkiem w kodzie PHP pokazanym w pytaniu. Typowym błędem jest mieszanie pojęć matematycznych i logicznych co może prowadzić do błędnych konkluzji na temat działania konkretnego fragmentu kodu. Aby uniknąć tego typu pomyłek ważne jest zrozumienie jak działają podstawowe operatory w językach programowania i jakie są ich praktyczne zastosowania w kontekście rozwiązywania problemów logicznych w programowaniu. Rozpoznanie właściwego wykorzystania operatorów takich jak modulo pozwala na bardziej precyzyjne formułowanie warunków w kodzie co jest istotne w kontekście efektywnego programowania i utrzymania wysokiej jakości kodu w projektach informatycznych.

Pytanie 37

W SQL, aby dokonać zmiany w strukturze tabeli, na przykład dodać lub usunąć kolumnę, powinno się użyć polecenia

A. UPDATE
B. ALTER TABLE
C. TRUNCATE
D. DROP TABLE
Odpowiedź 'ALTER TABLE' jest prawidłowa, ponieważ to polecenie w SQL umożliwia modyfikację struktury istniejącej tabeli. Dzięki 'ALTER TABLE' możemy dodawać nowe kolumny, usuwać istniejące, zmieniać typy danych kolumn, a także ustawiać ograniczenia, takie jak klucze główne czy unikalne. Przykładowe zastosowanie to: 'ALTER TABLE employees ADD COLUMN birthdate DATE;' co dodaje kolumnę 'birthdate' do tabeli 'employees'. Użycie tego polecenia jest zgodne z dobrymi praktykami, ponieważ pozwala na elastyczne dostosowywanie struktury bazy danych w odpowiedzi na zmieniające się wymagania aplikacji. Warto również zaznaczyć, że 'ALTER TABLE' jest standardowym poleceniem w SQL, co oznacza, że jest obsługiwane przez większość systemów zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQL Server, co czyni je uniwersalnym narzędziem w pracy z danymi.

Pytanie 38

Na podstawie filmu wskaż, która cecha dodana do stylu CSS zamieni miejscami bloki aside i nav, pozostawiając w środku blok section?

A. nav { float: right; } section { float: right; }
B. nav { float: left; } aside { float: left; }
C. nav { float: right; }
D. aside {float: left; }
Prawidłowa odpowiedź opiera się na tym, jak działają własności float w CSS i w jakiej kolejności przeglądarka renderuje elementy blokowe. Jeśli w dokumencie HTML kolejność znaczników to np. &lt;aside&gt;, potem &lt;section&gt;, a na końcu &lt;nav&gt;, to bez dodatkowego stylowania wszystkie trzy ustawią się pionowo, jeden pod drugim, w tej właśnie kolejności. Dodanie float zmienia sposób, w jaki elementy „odpływają” od normalnego przepływu dokumentu i jak układają się obok siebie.

W stylu nav { float: right; } section { float: right; } sprawiamy, że zarówno nav, jak i section są przesuwane do prawej krawędzi kontenera, natomiast aside (bez float) pozostaje w normalnym przepływie, czyli z lewej strony. Ponieważ przeglądarka układa elementy w kolejności występowania w kodzie, najpierw wyrenderuje aside po lewej, potem section „odpłynie” w prawo, a na końcu nav też „odpłynie” w prawo, ustawiając się po prawej stronie, ale dalej od góry niż section. Efekt wizualny jest taki, że po lewej mamy aside, po prawej nav, a section ląduje między nimi, dokładnie tak jak było pokazane na filmie.

Moim zdaniem to zadanie dobrze pokazuje, że przy floatach zawsze trzeba myśleć o trzech rzeczach naraz: kolejności elementów w HTML, kierunku „pływania” (left/right) oraz o tym, które elementy pozostawiamy w normalnym przepływie. W praktyce w nowoczesnych projektach częściej używa się flexboxa albo CSS Grid do takich układów, bo są czytelniejsze i mniej problematyczne. Przykładowo, zamiast kombinować z float, można by użyć display: flex; na kontenerze i ustawić order dla aside i nav. Float nadal jednak pojawia się w starszych layoutach i w zadaniach egzaminacyjnych, więc warto dobrze rozumieć jego zachowanie, choćby po to, żeby poprawnie modyfikować istniejące style lub naprawiać „rozjechane” układy w starszych projektach.

Pytanie 39

Baza danych księgarni zawiera tabelę o nazwie książki, w której znajdują się: id, idAutor, tytul, ileSprzedanych oraz tabelę autorzy z polami: id, imie, nazwisko. Aby wygenerować raport dotyczący sprzedanych książek z tytułami i nazwiskami autorów, co należy zrobić?

A. przygotować dwie oddzielne kwerendy: pierwszą wyszukującą tytuły książek, drugą wyszukującą nazwiska autorów
B. zdefiniować relację 1..n pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
C. stworzyć kwerendę wyszukującą tytuły książek
D. zdefiniować relację 1..1 pomiędzy tabelami książki i autorzy, a następnie przygotować kwerendę łączącą obie tabele
Jak chcesz zrobić raport o sprzedanych książkach, musisz najpierw ustalić, jak połączone są tabelki 'książki' i 'autorzy'. W tym przypadku relacja 1..n jest najlepsza, bo każdy autor może napisać wiele książek, a każda książka ma swojego jednego autora. Kiedy już to masz ustalone, możesz zabrać się za pisanie kwerendy, która połączy te tabele. W SQL użyjesz JOIN, co pozwala połączyć dane i zobaczyć pełne informacje o sprzedanych książkach, w tym tytuły i nazwiska autorów. Przykładowa kwerenda może wyglądać tak: SELECT książki.tytul, autorzy.nazwisko FROM książki JOIN autorzy ON książki.idAutor = autorzy.id. Takie podejście umożliwia łączenie danych z różnych źródeł i jest podstawą analizy baz danych. Dobrze zdefiniowane relacje między tabelami to też klucz do utrzymania porządku w danych i efektywności zapytań.

Pytanie 40

Jaką wartość w formacie RGB będzie miała barwa oznaczona kodem heksadecymalnym: #1510FE?

A. rgb(15, 10, FE)
B. rgb(21, 16, FE)
C. rgb(21, 16, 255)
D. rgb(21, 16, 254)
Odpowiedź rgb(21, 16, 254) jest dobra, bo te wartości RGB pochodzą z kodu heksadecymalnego #1510FE. W tym kodzie każda para cyfr pokazuje, jak mocno świeci dany kolor: od 00, co oznacza brak koloru, do FF, gdzie mamy pełną intensywność. W naszym przypadku, pierwsza para '15' to kolor czerwony, '10' to zielony, a 'FE' to niebieski. Jak to przeliczymy na dziesiętny, to '15' daje nam 21, '10' daje 16, a 'FE' to 254. I stąd mamy rgb(21, 16, 254). Te wartości są super przydatne, na przykład przy tworzeniu stylów CSS, gdzie kolory są podstawą. Warto ogarnąć, jak przerabiać kolory z jednego formatu na drugi – to naprawdę pomaga w projektowaniu grafiki i stron www.