Wyniki egzaminu

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

Egzamin zdany!

Wynik: 27/40 punktów (67,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Aby usunąć wybrane wiersze (rekordy) z tabeli, należy użyć polecenia:

A.
SELECT
B.
GRANT
C.
ALTER
D.
DELETE
Wiersze z tabeli usuwa polecenie DELETE, zwykle z warunkiem WHERE wskazującym, które rekordy skasować, np. DELETE FROM klienci WHERE id = 5. Bez warunku usunęłoby wszystkie wiersze, dlatego stosuje się je ostrożnie. Tabela i jej struktura pozostają - znikają tylko dane. Dlatego do usuwania rekordów służy DELETE.

Pytanie 2

Jaką wartość uzyska zmienna x po wykonaniu kodu PHP zaprezentowanego w ramce?

Ilustracja do pytania
A. Ilość wierszy dodanych do tabeli produkty
B. Ilość wierszy w bazie danych
C. Ilość wierszy przetworzonych przez zapytanie DELETE FROM
D. Ilość wierszy w tabeli produkty, gdzie pole status jest większe od zera
W przedstawionym kodzie PHP funkcja mysqli_affected_rows() jest używana do uzyskania liczby wierszy zmienionych przez ostatnie zapytanie MySQL. W tym przypadku zapytanie DELETE FROM produkty WHERE status < 0 próbuje usunąć wszystkie rekordy z tabeli produkty, których pole status ma wartość mniejszą od zera. Po wykonaniu tego zapytania funkcja mysqli_affected_rows($db) zwróci liczbę wierszy, które zostały rzeczywiście usunięte. To jest szczególnie przydatne w kontekście sprawdzania wpływu operacji na bazę danych i pozwala na dynamiczne podejmowanie decyzji w aplikacjach bazodanowych. Przykładowo, jeśli po usunięciu chcemy wykonać dodatkowe operacje tylko wtedy, gdy co najmniej jeden rekord został usunięty, możemy użyć tej funkcji. Zgodnie z dobrymi praktykami, korzystanie z mysqli_affected_rows() jest standardem, gdyż pozwala również na obsługę wyjątków i błędów bazy danych. Optymalizacja operacji DELETE poprzez precyzyjne filtrowanie w WHERE, jak w naszym przykładzie, jest kluczowa dla zachowania wydajności bazy danych szczególnie w dużych systemach produkcyjnych.

Pytanie 3

Gdzie w dokumencie HTML można umieścić kod JavaScript?

A. tylko w <head>, w znaczniku <script>
B. tylko w <body>, w znaczniku <java>
C. w <head> i <body>, w znaczniku <java>
D. w <head> i <body>, w znaczniku <script>
Kod JavaScript umieszcza się w znaczniku <script>, który można wstawić zarówno w <head>, jak i w <body>. Dlatego poprawne jest: w <head> i <body>, w znaczniku <script>.

Pytanie 4

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. powiązać relacją pola ID z obu tabel.
B. wprowadzić pole klucza obcego do tabeli Zamowienia i powiązać je z ID tabeli Klienci.
C. dodać pole klucza obcego do tabeli Klienci i powiązać je z ID tabeli Zamowienia.
D. stworzyć trzecią tabelę z dwoma kluczami obcymi. Jeden klucz połączyć z ID tabeli Klienci, a drugi klucz połączyć z ID tabeli Zamowienia.
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 5

Którego polecenia użyć, aby włączyć do skryptu zawartość pliku egzamin.php z kodem PHP?

A.
fgets("egzamin.php");
B.
fopen("egzamin.php");
C.
getfile("egzamin.php");
D.
include("egzamin.php");
Aby włączyć do skryptu zawartość innego pliku z kodem PHP, używa się include("egzamin.php"); - PHP wykona dołączony kod w miejscu wywołania. Dlatego poprawne jest include("egzamin.php");.

Pytanie 6

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

A. 16
B. 24
C. 240
D. 256
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 7

Język JavaScrypt umożliwia obsługę

A. obiektów DOM
B. funkcji wirtualnych
C. klas abstrakcyjnych
D. wysyłania ciastek z identycznymi informacjami do wielu klientów strony
JavaScript to język programowania, który ma silne wsparcie dla obiektów DOM (Document Object Model), co pozwala na dynamiczne manipulowanie strukturą HTML oraz stylami CSS w czasie rzeczywistym. DOM jest interfejsem programowania aplikacji, który reprezentuje strukturę dokumentów HTML oraz XML jako zhierarchizowane drzewo obiektów. Dzięki JavaScript, programiści mogą dodawać, usuwać oraz modyfikować elementy na stronie internetowej, co prowadzi do interaktywnych i responsywnych doświadczeń użytkowników. Na przykład, za pomocą metody document.getElementById() można uzyskać dostęp do konkretnego elementu HTML, a następnie zmienić jego zawartość lub styl. Możliwości manipulacji DOM w JavaScript są szerokie, obejmują takie operacje jak dodawanie klas CSS, obsługa zdarzeń użytkownika, czy tworzenie nowych elementów. Standardy, takie jak W3C DOM, definiują sposób, w jaki te operacje powinny być realizowane, zapewniając interoperacyjność w różnych przeglądarkach. Zrozumienie obsługi DOM w JavaScript jest kluczowe dla każdego, kto chce tworzyć nowoczesne aplikacje internetowe, ponieważ umożliwia pełne wykorzystanie możliwości interakcji na stronach WWW.

Pytanie 8

Podaj dwa sposoby ochrony bazy danych Microsoft Access?

A. Ustalenie zabezpieczeń na poziomie użytkownika i sesji
B. Funkcje anonimowe oraz ustawienie hasła do bazy danych
C. Zaszyfrowanie pliku bazy danych oraz wiadomości SMS z kodem autoryzacyjnym
D. Ustalenie hasła do otwarcia bazy danych oraz zabezpieczeń na poziomie użytkownika
Zabezpieczenie bazy danych Microsoft Access jest kluczowym procesem, który ma na celu ochronę danych przed nieautoryzowanym dostępem oraz zapewnienie ich integralności. Ustalenie hasła do otwarcia bazy danych to pierwszy krok w kierunku zabezpieczenia. Pozwala to na ograniczenie dostępu tylko do osób, które znają hasło, co jest fundamentalnym środkiem ochrony informacji w systemach informatycznych. Dodatkowo, zabezpieczenia na poziomie użytkownika umożliwiają różnicowanie uprawnień dla poszczególnych użytkowników. Można przydzielać różne poziomy dostępu, co minimalizuje ryzyko, że niepowołane osoby będą mogły wprowadzać zmiany w bazie danych. Ważne jest również, aby stosować najlepsze praktyki związane z bezpieczeństwem, takie jak regularna aktualizacja haseł oraz audyty dostępu. Utrzymanie zgodności z międzynarodowymi standardami, takimi jak ISO/IEC 27001, może również pomóc w identyfikacji luk w zabezpieczeniach oraz w implementacji odpowiednich procedur ochrony danych. W codziennym użytkowaniu, skuteczne wdrożenie tych zabezpieczeń pozytywnie wpływa na bezpieczeństwo danych oraz ochronę prywatności użytkowników.

Pytanie 9

W dokumencie HTML umieszczono tekst sformatowany określonym stylem. Aby dodać do tego tekstu kilka słów sformatowanych innym stylem, należy użyć znacznika

A. <hr>
B. <span>
C. <table>
D. <section>
<span> jest znacznikiem HTML, który służy do stosowania stylów CSS do określonych fragmentów tekstu w obrębie bloków HTML. Umożliwia on formatowanie tekstu w bardziej lokalny sposób, co jest niezwykle przydatne, gdy chcemy wyróżnić niektóre słowa lub frazy w dłuższym akapicie. W odróżnieniu od znaczników takich jak <div>, które są stosowane do większych sekcji, <span> działa na poziomie inline, co oznacza, że nie wprowadza nowego bloku w układzie strony. Przykład użycia tej etykiety może wyglądać następująco: <p>W tym akapicie <span style='color:red;'>ważne słowo</span> jest wyróżnione kolorem czerwonym.</p>. Dzięki temu możemy łatwo zastosować różnorodne style, takie jak zmiana koloru czcionki, czcionki, tła lub nawet dodawanie efektów animacyjnych do konkretnego fragmentu tekstu. Zgodnie z standardami W3C, <span> jest zalecanym sposobem na selektywne formatowanie tekstu, co czyni go niezwykle praktycznym narzędziem w tworzeniu elastycznych i atrakcyjnych wizualnie stron internetowych.

Pytanie 10

Zaprezentowane pole input daje możliwość

<input type="checkbox" name="text1" value="text2">
A. wprowadzenia hasła
B. wybrania opcji
C. wpisania dowolnego tekstu
D. zaznaczenia opcji z listy zawierającej wartości text1 i text2
Element HTML z atrybutem type="checkbox" jest używany do tworzenia pól wyboru które pozwalają użytkownikowi zaznaczać jedną lub więcej opcji. Checkboxy są częstym elementem formularzy internetowych gdyż umożliwiają elastyczne zbieranie danych od użytkowników. Przykładowo w formularzach rejestracyjnych można używać ich do akceptacji regulaminu zapisów na newslettery czy wyboru zainteresowań. Składnia takiego elementu jest prosta: tag <input> z atrybutami name i value. Atrybut name jest niezbędny do grupowania checkboxów a value do przekazywania wartości zaznaczonej opcji do serwera podczas wysyłania formularza. Dobre praktyki zalecają dodawanie etykiet opisujących znaczenie checkboxa co poprawia dostępność dla osób korzystających z czytników ekranowych. Stosowanie checkboxów powinno być przemyślane by nie przeciążać użytkownika zbyt dużą liczbą opcji co mogłoby negatywnie wpłynąć na UX. Właściwe użycie checkboxów zgodne ze standardami HTML i UX jest kluczowe dla intuicyjnego interfejsu użytkownika.

Pytanie 11

Jaką właściwość CSS należy zastosować, aby uzyskać linie przerywaną w obramowaniu?

Ilustracja do pytania
A. solid
B. double
C. dotted
D. dashed
Wybór właściwości takich jak solid double czy dotted dla stylu obramowania często wynika z niepełnego zrozumienia ich zastosowań Solid jest używane do tworzenia ciągłej linii co może być mylące gdy celem jest uzyskanie efektu linii przerywanej W kontekście projektowania stron internetowych solid jest bardziej dominujące i może przesuwać punkt ciężkości z treści na formatowanie co nie zawsze jest pożądane Double tworzy podwójną linię i choć może być stosowane w celu uzyskania bardziej wyrazistego efektu jego użycie w sytuacji gdy potrzebna jest subtelność jest nieodpowiednie Dotyczy to sytuacji gdzie wizualna przejrzystość i prostota są kluczowe Dotted tworzy linię z kropkami która różni się od dashed strukturą i wyglądem podczas gdy dashed używa kresek dotted sprawia wrażenie bardziej delikatnej i lekko chaotycznej linii co nie zawsze jest zgodne z zamierzonym stylem estetycznym Struktura dotted może być stosowana tam gdzie wymagana jest bardziej dekoracyjna linia Wybór właściwej właściwości jest kluczowy dla osiągnięcia zamierzonego efektu wizualnego i powinien być oparty na standardach projektowania stron internetowych które uwzględniają zarówno estetykę jak i funkcjonalność Zapewnienie spójności w użyciu stylów w całej witrynie jest również istotne dla zachowania profesjonalnego wyglądu i łatwości użytkowania takich jak rozpoznawalność interakcji i intuicyjność nawigacji poprzez odpowiednie oznaczenia CSS pozwala na szeroką personalizację co wymaga zrozumienia subtelnych różnic między różnymi wartościami stylów i ich odpowiednimi zastosowaniami w kontekście projektu

Pytanie 12

Jak powinien być zapisany kolor 255 12 12 w modelu RGB na stronie www?

A. #2551212
B. #EE0C0C
C. #AB1A1D
D. #FF0C0C
Kolor 255, 12, 12 w modelu RGB oznacza maksymalne nasycenie koloru czerwonego oraz bardzo niskie wartości zielonego i niebieskiego. Zapis w postaci heksadecymalnej, który jest stosowany w projektowaniu stron internetowych, polega na konwersji wartości RGB do formatu szesnastkowego. W tym przypadku, wartość 255 w systemie dziesiętnym odpowiada FF w systemie szesnastkowym, co oznacza maksymalne nasycenie koloru czerwonego. Wartość 12 w systemie dziesiętnym odpowiada 0C, co jest zbyt niską wartością zarówno dla zielonego, jak i niebieskiego. Dlatego pełny zapis koloru RGB 255, 12, 12 w formacie heksadecymalnym to #FF0C0C. Użycie standardu heksadecymalnego (hex) jest powszechne w CSS, gdzie kolory są definiowane za pomocą szesnastkowych wartości. Przykładowo, aby ustawić tło elementu w CSS na ten kolor, można użyć zapisu: 'background-color: #FF0C0C;'. Warto zrozumieć, że poprawne użycie systemów kolorów RGB i hex jest kluczowe w projektowaniu graficznym i webowym, ponieważ wpływa na estetykę i użyteczność interfejsów użytkownika.

Pytanie 13

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 pierwsza
C. jest to liczba parzysta
D. jest to liczba dodatnia
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 14

Kompresja bezstratna pliku graficznego zapewnia:

A. wyższą jakość niż oryginał
B. mniejszą liczbę warstw
C. zachowanie pierwotnej jakości grafiki
D. plik większy niż oryginał
Pozostałe odpowiedzi błędnie opisują skutek kompresji bezstratnej. Nie poprawia ona jakości ponad oryginał - nie da się „dorobić” informacji, której nie było; co najwyżej wiernie ją zachowuje. Liczba warstw obrazu (cecha plików projektowych edytorów) nie ma związku z kompresją zapisanego pliku. Zwiększenie rozmiaru również przeczy idei kompresji, której celem jest plik mniejszy. Kompresja bezstratna zachowuje pierwotną jakość grafiki, dlatego ta odpowiedź jest poprawna.

Pytanie 15

W CSS wartości: underline, overline, blink są powiązane z atrybutem

A. text-style
B. font-style
C. font-weight
D. text-decoration
Atrybut text-decoration w CSS jest tym, co pozwala na dodawanie różnych efektów do tekstu. Możemy dzięki niemu użyć takich rzeczy jak underline, overline czy nawet blink, chociaż to ostatnie nie jest już zbyt popularne, bo wiele przeglądarek to ignoruje ze względu na dostępność. Dzięki tym efektom tekst może wyglądać bardziej estetycznie, a czytelność też się poprawia. Na przykład, jeśli użyjesz 'p { text-decoration: underline; }', to cały tekst w tym paragrafie będzie podkreślony. W CSS3 dodano też nowe możliwości, jak text-decoration-color czy text-decoration-style, co daje jeszcze większą kontrolę nad tym, jak nasz tekst będzie wyglądał. Dlatego myślę, że umiejętność korzystania z text-decoration jest naprawdę ważna dla każdego, kto zajmuje się tworzeniem stron internetowych.

Pytanie 16

W języku JavaScript stworzono zmienną i, która będzie przechowywać wynik dzielenia równy 1, to

A. var i=3/2
B. var i=Number(3/2)
C. var i=parseInt(3/2)
D. var i=parseFloat(3/2)
Wybór 'var i=parseInt(3/2);' jest właściwy, ponieważ funkcja parseInt służy do konwersji wartości liczbowych na liczby całkowite. W tym przypadku, wyrażenie 3/2 zwraca wartość 1.5, a funkcja parseInt zamienia tę wartość na 1, co jest zgodne z oczekiwanym wynikiem. Warto zauważyć, że parseInt zawsze zwraca najbliższą liczbę całkowitą, zaokrąglając w dół, co czyni ją idealnym narzędziem do realizacji tego celu. W JavaScript istnieje wiele sposobów na konwersję wartości liczbowych, a parseInt jest jednym z najczęściej używanych, gdyż pozwala na przetwarzanie tekstów i liczb w zrozumiały sposób. Przykładowo, jeśli mamy stringa '10.5', użycie parseInt('10.5') da wynik 10. Odniesienie do standardów JavaScript w kontekście konwersji typów można znaleźć w dokumentacji ECMAScript, która definiuje zasady działania funkcji konwertujących. Dobrą praktyką jest również zwrócenie uwagi na radzenie sobie z typami danych w JavaScript, aby uniknąć nieporozumień w przyszłości.

Pytanie 17

Deklaracja background-attachment: scroll sprawia, że:

A. grafika tła będzie powtarzana (kafelki)
B. tło będzie przewijane razem z zawartością strony
C. tło będzie nieruchome, a treść będzie się przewijać
D. grafika tła pojawi się w prawym górnym rogu
Pozostałe efekty dają inne właściwości tła. Powtarzanie tła w kafelki ustawia background-repeat, a nie background-attachment. Nieruchome tło, po którym przewija się treść, uzyskuje się wartością fixed - czyli odwrotnością scroll. Położenie obrazu tła (np. w rogu) określa background-position. Wartość scroll odpowiada wyłącznie za to, że tło przewija się wraz z zawartością strony, dlatego ta odpowiedź jest poprawna.

Pytanie 18

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

A. selektora klasy p.first-letter
B. selektora dziecka p + first-letter
C. selektora atrybutu p [first-letter]
D. pseudoelementu 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 19

Tabela Pacjenci zawiera kolumny: imie, nazwisko, wiek, lekarz_id. Aby stworzyć raport, który będzie zawierał jedynie imiona oraz nazwiska pacjentów mających mniej niż 18 lat i zapisanych do lekarza o id równym 6, można wykorzystać kwerendę SQL

A. SELECT imie, nazwisko WHERE wiek<18 OR lekarz_id=6
B. SELECT imie, nazwisko WHERE wiek<18 AND lekarz_id=6
C. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 OR lekarz_id=6
D. SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6
Aby uzyskać raport z tabeli Pacjenci, w którym znajdują się wyłącznie imiona i nazwiska pacjentów poniżej 18 roku życia zapisanych do lekarza o id równym 6, należy użyć następującej kwerendy SQL: SELECT imie, nazwisko FROM Pacjenci WHERE wiek<18 AND lekarz_id=6. Kluczowe w tej kwerendzie jest zastosowanie operatora AND, który pozwala na jednoczesne spełnienie obu warunków. W SQL, operator AND łączy dwa warunki, które muszą być prawdziwe, aby dany wiersz został uwzględniony w wynikach. Operator OR byłby nieodpowiedni, ponieważ mógłby zwrócić pacjentów, którzy są młodsi niż 18 lat, ale zapisani do innych lekarzy, co nie spełnia wymagań zadania. Ta kwerenda jest zgodna z ANSI SQL, który jest standardem dla zapytań do baz danych, a także dobrze ilustruje zasady filtracji danych w kontekście relacyjnych baz danych. Przykład takiej tabeli mógłby wyglądać następująco: imie: 'Jan', nazwisko: 'Kowalski', wiek: 17, lekarz_id: 6. W tym przypadku, zapytanie zwróciłoby imię i nazwisko Jana Kowalskiego, ponieważ spełnia on oba warunki.

Pytanie 20

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

A.
for
B.
else
C.
throw
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 21

Dla a = 5 i b = 3 które wyrażenie PHP zwróci wartość ZMIENNOPRZECINKOWĄ?

A.
a + b
B.
a * b
C.
a / b
D.
a && b
Dla $a = 5 i $b = 3 wartość ułamkową daje DZIELENIE: $a / $b zwraca około 1.666..., czyli liczbę zmiennoprzecinkową. Dlatego wynik rzeczywisty daje $a / $b.

Pytanie 22

Jaką metodę zastosowano do dodania arkusza stylów do dokumentu HTML w pokazanym kodzie?

Ilustracja do pytania
A. Styl zewnętrzny
B. Styl wewnętrzny
C. Styl wpisany, lokalny
D. Styl alternatywny, zewnętrzny
Styl zewnętrzny to metoda dołączania arkusza stylów do dokumentu HTML poprzez linkowanie pliku CSS zewnętrznego w sekcji head dokumentu. Jest to najbardziej powszechna i zalecana metoda stylizacji dużych projektów ponieważ pozwala na oddzielenie logiki prezentacyjnej od struktury dokumentu HTML co ułatwia zarządzanie i ponowne wykorzystanie kodu. Tymczasem styl wewnętrzny umieszczany jest w sekcji head jako blok <style> i stosuje się go gdy chcemy zdefiniować style dla całego dokumentu bez tworzenia dodatkowego pliku CSS. Jest to rozwiązanie kompromisowe ale wciąż nie tak elastyczne jak style zewnętrzne. Styl alternatywny zewnętrzny to mechanizm dołączania alternatywnych arkuszy stylów umożliwiający użytkownikowi wybór różnych stylów podczas przeglądania strony jednak nie jest to to samo co styl wpisany lokalny. Błędne myślenie może polegać na utożsamianiu stylów wewnętrznych z wpisanymi ze względu na ich lokalny charakter lecz zasadniczo różnią się one zakresem działania i sposobem implementacji. Styl wpisany jako atrybut elementu HTML działa tylko na ten konkretny element zaś style wewnętrzne i zewnętrzne mogą wpływać na wiele elementów jednocześnie co daje większą kontrolę i spójność w projektowaniu strony. Zrozumienie tych różnic jest kluczowe dla tworzenia efektywnych i dobrze zarządzanych aplikacji webowych. Dążenie do modularności i ponownego użycia kodu jest jedną z fundamentalnych zasad dobrych praktyk w branży.

Pytanie 23

Jak nazywa się platforma wspierająca tworzenie oprogramowania w technologii .NET?

A. db2
B. eclipse
C. framework
D. middleware
Platforma wspierająca tworzenie oprogramowania, dostarczająca gotowy zestaw bibliotek i strukturę (jak .NET Framework), nazywa się framework. Dlatego tą platformą jest framework.

Pytanie 24

W instrukcji CREATE TABLE w SQL atrybut wskazujący, która kolumna w tabeli pełni rolę klucza podstawowego, to

A. UNIQUE
B. MAIN KEY
C. PRIMARY KEY
D. IDENTITY FIELD
Odpowiedź 'PRIMARY KEY' jest poprawna, ponieważ w poleceniu CREATE TABLE w SQL, klucz podstawowy jest definiowany właśnie za pomocą tego atrybutu. Klucz podstawowy to unikalny identyfikator dla każdej wiersza w tabeli, co oznacza, że wartość w tej kolumnie musi być unikalna i nie może być pusta. Definiowanie klucza podstawowego jest kluczowe dla zapewnienia integralności danych oraz efektywności operacji na bazie danych, ponieważ umożliwia szybkie wyszukiwanie i sortowanie. Na przykład, jeśli tworzysz tabelę 'Użytkownicy', możesz zdefiniować kolumnę 'UserID' jako klucz podstawowy, co zagwarantuje, że każdy użytkownik ma unikalny identyfikator. Warto również pamiętać, że w praktyce, jeśli nie określisz klucza podstawowego, baza danych nie będzie mogła zapewnić unikalności w tabeli, co może prowadzić do problemów z danymi. Zgodnie z dobrymi praktykami, klucz podstawowy powinien być stabilny oraz niezmienny, co oznacza, że nie powinno się go zmieniać po jego utworzeniu.

Pytanie 25

Aby dopasować dźwięk do określonego poziomu głośności, należy zastosować efekt:

A. wyciszenia
B. normalizacji
C. podbicia basów
D. usuwania szumów
Normalizacja to obróbka dźwięku, która równomiernie zwiększa lub zmniejsza amplitudę całego nagrania tak, aby jego najgłośniejszy fragment (lub średni poziom) osiągnął zadaną wartość. Dzięki temu różne pliki brzmią z porównywalną głośnością, bez ręcznego dobierania wzmocnienia. Nie zmienia przy tym barwy ani proporcji dźwięków - skaluje jedynie poziom. Dlatego do dopasowania nagrania do określonego poziomu głośności służy efekt normalizacji.

Pytanie 26

Jakie wyjście zostanie pokazane po zrealizowaniu podanego kodu HTML?

Ilustracja do pytania
A. Rys.A
B. Rys. B
C. Rys. C
D. Rys. D
Nieprawidłowe odpowiedzi mogą wynikać z niezrozumienia struktury zagnieżdżonych list w HTML. Zrozumienie jak różne typy list i atrybuty wpływają na ich wyświetlanie jest kluczowe. Lista uporządkowana <ol> domyślnie numeruje swoje elementy co często prowadzi do założenia że wszystkie elementy muszą być numerowane w standardowy sposób. Jednak HTML pozwala na dostosowanie tego zachowania poprzez atrybuty type i start co może zmieniać domyślną numerację na litery czy inne formy. Kolejnym źródłem błędu jest zignorowanie zagnieżdżonej listy nieuporządkowanej <ul> która używa kropki jako punktora co różni się od standardowego kółka. Bez znajomości tych aspektów łatwo jest błędnie zinterpretować strukturę i wyświetlanie kodu. Typowe błędy myślowe wynikają z założeń że każda lista zachowa domyślną formę co nie zawsze jest prawdą w zaawansowanym HTML. Poprawne zrozumienie wymaga eksperymentowania i testowania różnych konfiguracji atrybutów aby w pełni wykorzystać potencjał HTML w tworzeniu elastycznych i dostosowanych interfejsów.

Pytanie 27

Komenda skierowana do serwera bazy danych, która polega na zbieraniu, wyszukiwaniu lub zmienianiu danych w bazie, nosi nazwę

A. formularza
B. kwerendy
C. kolumny
D. kopii
Formularz to interfejs użytkownika, który umożliwia wprowadzanie informacji, ale nie jest związany z operacjami na bazach danych. To narzędzie wizualne, które może być używane do zbierania danych w sposób zorganizowany, jednak samo w sobie nie wykonuje żadnych operacji na danych w bazie. Koncepcja kolumny odnosi się do struktury tabeli w bazie danych, gdzie kolumny definiują typy danych przechowywanych w danej tabeli, ale nie są one powiązane z wykonywaniem zapytań czy operacji na danych. Kopią można określić duplikat danych lub backup, ale również nie ma ona zastosowania w kontekście wysyłania poleceń do serwera bazy danych. Istnieje ryzyko, że błędne zrozumienie terminów związanych z bazami danych prowadzi do mylnych interpretacji, co może skutkować trudnościami w pracy z danymi. Kluczowe jest zrozumienie, że kwerenda jest specyficznym poleceniem, które oddziałuje na strukturę danych, a nie narzędziem do ich wizualizacji czy opisu. Błędy te mogą prowadzić do niewłaściwego projektowania systemów baz danych oraz do ograniczonej efektywności w realizacji zadań związanych z zarządzaniem danymi.

Pytanie 28

Czym różnią się polecenia DROP TABLE i TRUNCATE TABLE?

A. DROP TABLE usuwa tabelę, a TRUNCATE TABLE zmienia w niej dane wg warunku
B. DROP TABLE usuwa tabelę, a TRUNCATE TABLE usuwa wszystkie dane, zostawiając pustą tabelę
C. oba usuwają tylko zawartość, ale tylko DROP TABLE da się cofnąć
D. oba usuwają tabelę z zawartością, ale TRUNCATE da się cofnąć
DROP TABLE usuwa CAŁĄ tabelę - razem ze strukturą (kolumnami, definicją), więc tabela przestaje istnieć. TRUNCATE TABLE kasuje tylko wszystkie WIERSZE, zostawiając pustą tabelę gotową do dalszego użycia. Dlatego DROP usuwa tabelę, a TRUNCATE czyści dane, zostawiając pustą tabelę.

Pytanie 29

Jak dołączyć do strony skrypt z pliku przyklad.js?

A.
<script>przyklad.js</script>
B.
<script src="/przyklad.js"></script>
C.
<script link="przyklad.js"></script>
D.
<link rel="script" href="/przyklad.js">
Zewnętrzny plik JavaScript podłącza się znacznikiem <script>, wskazując jego lokalizację w atrybucie src (tak jak źródło obrazu w <img>): <script src="/przyklad.js"></script>. Znacznik <script> zawsze wymaga części zamykającej, nawet gdy nie ma między tagami żadnego kodu. Dlatego poprawny jest ten zapis.

Pytanie 30

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

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

Pytanie 31

W przedstawionej definicji typu wyliczeniowego w języku C++ enumerator CZWARTEK będzie miał wartość równą

Ilustracja do pytania
A. napisowi "CZWARTEK"
B. napisowi 'CZWARTEK'
C. liczbie 1
D. liczbie 4
W języku C++ typ wyliczeniowy (enum) pozwala na definiowanie grupy nazwanych stałych całkowitych. W przedstawionej definicji enum dni {PONIEDZIAŁEK = 1, WTOREK, ŚRODA, CZWARTEK, PIĄTEK, SOBOTA, NIEDZIELA}; inicjalizacja PONIEDZIAŁEK na 1 powoduje, że kolejne wyliczane wartości są automatycznie zwiększane o 1. Oznacza to, że wartość dla WTOREK wynosi 2, ŚRODA to 3, a CZWARTEK automatycznie staje się równy 4. Takie podejście jest powszechnie stosowane w programowaniu do reprezentowania dyskretnych zestawów wartości, co ułatwia interpretację kodu i minimalizuje ryzyko błędów. W praktyce typy wyliczeniowe są używane do przechowywania dni tygodnia, stanów maszyn oraz innych uporządkowanych kolekcji. Są zgodne ze standardem C++ i odgrywają istotną rolę w tworzeniu czytelnego i efektywnego kodu. Ich zaletą jest możliwość łatwej manipulacji wartościami oraz zwiększenie czytelności kodu dzięki użyciu przyjaznych nazw zamiast surowych wartości liczbowych.

Pytanie 32

Jeden klient może mieć wiele zamówień, a każde zamówienie należy do jednego klienta. Jaka to relacja?

A.
1 .. n
B.
1 .. 1
C.
n .. 1
D.
n .. n
Pozostałe oznaczenia nie pasują. 1..1 znaczyłoby, że klient ma tylko jedno zamówienie. n..1 to ta sama relacja zapisana odwrotnie (z punktu widzenia zamówień), ale w opisie punktem wyjścia jest klient, więc naturalnie 1..n. n..n pozwalałoby, by zamówienie należało do wielu klientów. Opisany przypadek to 1..n.

Pytanie 33

W wyniku przedstawionego polecenia w tabeli zostanie

ALTER TABLE nazwa1 ADD nazwa2 DOUBLE NOT NULL;
A. zmieniona kolumna z nazwa1 na nazwa2
B. zmieniony typ kolumny nazwa2 na DOUBLE
C. dodana kolumna nazwa2 o typie zmiennoprzecinkowym
D. dodana kolumna nazwa2 z wymuszoną wartością DOUBLE
Analizując pozostałe odpowiedzi, można zauważyć, że nie odzwierciedlają one poprawności działania zapytania SQL. Pierwsza odpowiedź sugeruje zmianę nazwy kolumny, co jest błędnym podejściem, ponieważ użycie klauzuli "ADD" wyraźnie wskazuje na dodanie nowej kolumny, a nie na modyfikację istniejącej. Zmiana nazwy kolumny wymagałaby użycia zapytania "ALTER TABLE ... RENAME COLUMN...", co jest zupełnie inną operacją. Drugie stwierdzenie koncentruje się na zmianie wartości kolumny "nazwa2" na typ DOUBLE, co jest niepoprawne, gdyż zapytanie nie zmienia wartości, a dodaje nową kolumnę. Ostatnia odpowiedź wskazuje na dodanie kolumny z wartością domyślną, co również jest błędne, gdyż w zapytaniu nie określono wartości domyślnej dla nowej kolumny. W rzeczywistości, przy dodawaniu kolumny można również ustawić wartość domyślną, ale nie jest to wymagane. Typowe błędy w myśleniu prowadzące do takich wniosków często wynikają z niepełnego zrozumienia składni SQL i funkcji poszczególnych poleceń. Dlatego istotne jest, aby przed przystąpieniem do modyfikacji struktury bazy danych dobrze zaznajomić się z dokumentacją i zasadami działania systemu zarządzania bazą danych, z którego się korzysta.

Pytanie 34

Jeżeli założymy, że zmienne: a, b, c mają wartości liczbowe, wynikiem spełnienia warunku będzie wyświetlenie liczby

if ($a > $b && $a > $c)
echo $a;
else if ($b > $c)
echo $b;
else
echo $c;
A. największej
B. nieparzystej
C. najmniejszej
D. parzystej
Prawidłowa odpowiedź, czyli największa liczba jest wynikiem analizy warunku, który sprawdza wartość zmiennych a, b i c. Wykorzystujemy tutaj strukturę warunkową if-else, co jest standardową techniką w wielu językach programowania, takich jak PHP czy JavaScript. Przy pierwszej linijce kodu if ($a > $b && $a > $c) echo $a sprawdzamy, czy a jest większe od b i jednocześnie większe od c. Jeśli warunek jest spełniony, wypisujemy wartość a, co oznacza, że a jest największa. Jest to zgodne z dobrą praktyką algorytmiczną, gdzie przy porównywaniu trzech wartości dokładne warunki logiczne pomagają w ustaleniu największej z nich. Struktura ta jest wydajna i łatwa do zrozumienia. Praktycznym zastosowaniem może być np. system oceniania, gdzie na podstawie kilku wyników wybieramy ten najwyższy do dalszej analizy. Prawidłowe rozpoznawanie i implementowanie takich warunków jest kluczowe w codziennej pracy programisty, który musi regularnie wybierać największe wartości do różnych zastosowań biznesowych.

Pytanie 35

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Skasowanie akapitu ze strony
B. Wstawienie akapitu na szczycie strony
C. Pokazanie okna dialogowego z napisem akapit
D. Dodanie akapitu na końcu strony
Zrozumienie dlaczego niektóre odpowiedzi są błędne wymaga analizy działania metod JavaScriptowych w kontekście modelu DOM. Pierwsza odpowiedź wskazuje na usunięcie akapitu ze strony co nie jest zgodne z działaniem zaprezentowanego kodu ponieważ metoda document.createElement tworzy nowy element a nie usuwa istniejący. Usunięcie elementu zamiast tego można osiągnąć za pomocą metody removeChild która wymaga wskazania konkretnego elementu do usunięcia. Druga odpowiedź sugeruje dodanie akapitu na początku strony co również jest niepoprawne. Metoda appendChild zawsze dodaje element na koniec wskazanego rodzica czyli w tym przypadku dokumentu body. Aby dodać element na początku strony należałoby użyć metody insertBefore w połączeniu z odwołaniem do pierwszego dziecka body. Trzecia odpowiedź mówi o wyświetleniu okna dialogowego co jest błędem konceptualnym gdyż omawiany kod nie zawiera żadnej funkcji wyświetlającej alert czy prompt. Tworzenie i manipulowanie elementami DOM nie wpływa bezpośrednio na interakcje dialogowe z użytkownikiem. Aby wyświetlić okno dialogowe używa się zazwyczaj metod takich jak alert confirm czy prompt co nie ma miejsca w podanym fragmencie kodu. Analizując te odpowiedzi zauważamy że błędne rozumowanie może wynikać z mylenia funkcji manipulujących DOM z elementami interfejsu użytkownika co jest częstym błędem wśród początkujących programistów. Znajomość specyfiki oraz kontekstu użycia poszczególnych metod jest kluczowa dla poprawnego kodowania w JavaScript i efektywnego zarządzania treścią na stronie internetowej.

Pytanie 36

Które znaczniki HTML umożliwiają wyświetlenie tekstu w jednym wierszu na stronie, zakładając brak zdefiniowanego formatu CSS?

Dobre strony m o j e j  s t r o n y
A. <h3>Dobre strony </h3><h3 style="letter-spacing:3px">mojej strony</h3>
B. <p>Dobre strony </p><p style="letter-spacing:3px">mojej strony</p>
C. <div>Dobre strony </div><div style="letter-spacing:3px">mojej strony</div>
D. <span>Dobre strony </span><span style="letter-spacing:3px">mojej strony</span>
Znacznik <span> jest elementem inline HTML który pozwala na wyświetlanie tekstu w jednym wierszu. Oznacza to że elementy te nie wprowadzają automatycznych przerw liniowych przed i po sobie co jest typowe dla elementów block-level takich jak <div> czy <p>. W praktycznych zastosowaniach <span> jest często używany do stylizacji i formatowania fragmentów tekstu bez zmiany struktury dokumentu HTML. Użycie <span> jest zgodne z dobrymi praktykami dla elementów które wymagają jedynie lekkiej modyfikacji wizualnej bez naruszenia układu strony. Jest to element niezwykle elastyczny często łączony z CSS i JavaScript w celu wpływania na wygląd i interaktywność stron internetowych. Znaczniki inline takie jak <span> są kluczowe w responsywnym web designie ponieważ pozwalają na dokładne kontrolowanie stylu i zachowania tekstu w ramach szerszej struktury strony. Umożliwiają także semantyczne i dostępnościowe ulepszenia pomagając w tworzeniu bardziej zrozumiałych i przyjaznych dla użytkownika interfejsów. Wiedza o różnicy między elementami inline i block-level jest fundamentem w profesjonalnym tworzeniu stron internetowych i pozwala unikać powszechnych błędów w układzie treści.

Pytanie 37

Który z obrazków ilustruje efekt działania podanego fragmentu kodu HTML?

Ilustracja do pytania
A. Obrazek A
B. Obrazek B
C. Obrazek C
D. Obrazek D
Odpowiedzi inne niż C są niepoprawne ponieważ nie uwzględniają poprawnie działania atrybutu rowspan co prowadzi do błędnego renderowania tabeli. W przypadku błędnego rozumienia atrybutu rowspan możemy obserwować sytuacje gdzie komórki tabeli są wyświetlane w niewłaściwych miejscach co może sugerować że atrybut ten jest błędnie zrozumiany jako wpływający na szerokość a nie na wysokość komórki. Często spotykanym błędem jest zakładanie że rowspan działa podobnie jak colspan co prowadzi do błędnego ułożenia komórek w tabeli. Ważne jest aby zrozumieć że rowspan definiuje ile wierszy ma zajmować dana komórka a nie ile kolumn co jest kluczowe dla prawidłowego zrozumienia układów tabelarycznych w HTML. Takie błędy mogą prowadzić do nieczytelnych i niepoprawnie zorganizowanych danych na stronie WWW co jest szczególnie problematyczne w przypadku stron które muszą być kompatybilne z różnymi urządzeniami i technologiami asystującymi. Poprawne stosowanie atrybutów rowspan i colspan jest fundamentalne dla tworzenia dostępnych i estetycznych układów tabelarycznych.

Pytanie 38

W języku JavaScript zapisano funkcję. Co ona ma za zadanie?

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
A. zwrócić wartość odwrotną do f
B. zwrócić wartość bezwzględną z f
C. wypisać wartość bezwzględną z f
D. wypisać wartość odwrotną do f
Niepoprawna odpowiedź wskazuje, że funkcja ma za zadanie zwrócić wartość odwrotną do f, lub wypisać wartość bezwzględną z f, lub wypisać wartość odwrotną do f. Te wszystkie odpowiedzi są błędne. Wartość odwrotna do f to 1/f, a nie wartość bezwzględna z f. Wypisanie wartości to inny rodzaj operacji niż jej zwrócenie. Funkcje wypisują wartość, kiedy używamy instrukcji console.log() w JavaScript. Zwrócenie wartości oznacza, że funkcja po zakończeniu swojego działania przekazuje tę wartość do miejsca, skąd została wywołana. Zwracanie wartości jest podstawą działania większości funkcji, które następnie używane są do budowy bardziej skomplikowanych algorytmów. Dlatego też ważne jest, aby dobrze rozumieć, jakie wartości są zwracane przez różne typy funkcji.

Pytanie 39

Po wykonaniu fragmentu kodu HTML i JavaScript na stronie zostanie wyświetlony obraz z pliku

<img id="obraz" src="kol1.jpg">
<button id="przycisk">Przycisk</button>

<script>
    document.getElementById("obraz").src = "kol2.jpg";
</script>
A. kol1.jpg
B. kol2.jpg
C. kol1.jpg, który może zostać zmieniony na kol2.jpg po wciśnięciu przycisku.
D. kol2.jpg, który może zostać zmieniony na kol1.jpg po wciśnięciu przycisku.
Dobra robota, zgadłeś! W tym skrypcie JavaScript używamy metody getElementById, żeby znaleźć obraz na stronie o identyfikatorze 'obraz'. Później zmieniamy jego atrybut 'src' na 'kol2.jpg'. To znaczy, że po uruchomieniu tego kodu wyświetli się właśnie ten obrazek. Fajnie jest to zrozumieć, bo pokazuje, jak można dynamicznie zmieniać rzeczy na stronie za pomocą JavaScript. Takie umiejętności są super ważne, gdy tworzymy interaktywne strony, które reagują na to, co robi użytkownik. Na przykład, można by zmienić obraz, gdy ktoś najedzie na niego myszką albo kliknie przycisk. Pamiętaj też, żeby zawsze pomyśleć o dostępności – jeśli obraz ma jakieś ważne informacje, warto dodać alternatywne opisy dla osób korzystających z czytników ekranu.

Pytanie 40

Dla przedstawionego fragmentu dokumentu HTML:

<div class="menu"></div>
zdefiniowano formatowanie CSS selektora klasy "menu" tak, aby kolor tła bloku był zielony. Która definicja stylu CSS odpowiada temu formatowaniu?
A. div.menu { background-color: green; }
B. div:menu { color: green; }
C. #menu { background-color: rgb(0,255,0); }
D. menu { background-color: rgb(0,255,0); }
Wybrany selektor `div.menu { background-color: green; }` dokładnie pasuje do podanego fragmentu HTML: `<div class="menu"></div>`. W CSS zapis `div.menu` oznacza element typu `<div>`, który ma atrybut `class` ustawiony na `menu`. Kropka w selektorze zawsze oznacza klasę, więc `menu` po kropce to nazwa klasy, a nie nazwa znacznika. Dzięki temu styl zostanie zastosowany tylko do tych elementów `div`, które mają klasę `menu`, a nie do wszystkich divów na stronie. Właśnie tak zgodnie ze standardami CSS definiuje się wygląd elementów z konkretną klasą.
Własność `background-color: green;` ustawia kolor tła danego bloku na zielony. Można tu używać różnych zapisów kolorów: nazw (green), wartości heksadecymalnych (`#00ff00`), funkcji `rgb()` czy `hsl()`. W tym pytaniu istotne jest jednak nie tyle to, jak dokładnie zapisano kolor, tylko czy selektor trafia w odpowiedni element HTML.
W praktyce bardzo często używa się klas do stylowania wielu podobnych elementów, np. `.menu`, `.btn-primary`, `.card`. Z mojego doświadczenia lepiej unikać nadmiernego używania identyfikatorów (`id`) do stylowania, a zamiast tego bazować właśnie na klasach, bo klasy można wielokrotnie powtarzać w dokumencie i są bardziej elastyczne. Dodatkowo selektor z typem elementu (`div.menu`) jest trochę bardziej precyzyjny niż samo `.menu`, co bywa przydatne, gdy ta sama klasa pojawia się na różnych znacznikach, a chcemy kontrolować konkretne przypadki. W nowoczesnym front-endzie takie podejście jest zgodne z dobrymi praktykami: czytelne, przewidywalne i zgodne ze specyfikacją CSS.