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

Egzamin zdany!

Wynik: 38/40 punktów (95,0%)

Wymagane minimum: 20 punktów (50%)

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

Jakiego języka można użyć do obsługi połączenia z bazą danych MySQL podczas tworzenia aplikacji internetowej?

A. CSS
B. PHP
C. HTML
D. XHTML
Do obsługi bazy danych MySQL w aplikacji internetowej używa się języka działającego po stronie serwera - najczęściej PHP. To w nim nawiązuje się połączenie (np. funkcją mysqli_connect lub przez PDO), wysyła zapytania SQL i przetwarza wyniki, zanim gotowa strona trafi do przeglądarki. HTML, XHTML i CSS odpowiadają wyłącznie za wygląd i strukturę strony. Dlatego do współpracy z MySQL służy PHP.

Pytanie 2

Którego selektora użyć, aby sformatować WSZYSTKIE obrazy znajdujące się w akapicie?

A.
p img
B.
p # img
C.
p + img
D.
p.img
Aby ostylować wszystkie obrazy zawarte w akapicie, używa się selektora potomka - dwóch nazw oddzielonych SPACJĄ: p img. Spacja oznacza „dowolny <img> gdziekolwiek wewnątrz <p>”. Dlatego poprawny jest p img.

Pytanie 3

Element bazy danych, którego podstawowym celem jest generowanie lub prezentowanie zestawień informacji, to

A. makro
B. raport
C. moduł
D. formularz
Raport to taki dokument w bazie danych, który ma za zadanie pokazać dane w przejrzysty i uporządkowany sposób. To jest mega ważne, zwłaszcza kiedy chcemy analizować różne informacje. Można je wykorzystać do robienia zestawień, statystyk, a nawet wykresów, co naprawdę ułatwia podejmowanie decyzji. Zazwyczaj raporty tworzy się na podstawie danych z różnych miejsc, jak tabele czy zapytania. W programach do zarządzania bazami, jak Microsoft Access, można korzystać z kreatora raportów, który pomaga ustawić wszystko tak, jak się chce – wybieramy źródło danych, układ i format. Oczywiście, do pozyskiwania danych często wykorzystuje się SQL, no i potem już te dane można analizować i przedstawiać w raportach. Jak sobie pomyślisz o przykładzie, to taki miesięczny raport sprzedaży to super narzędzie dla menedżerów, bo mogą ocenić, jak im idzie w sprzedaży i podejmować lepsze decyzje strategiczne.

Pytanie 4

Deklaracja <!DOCTYPE HTML> wskazuje, że dokument napisano w której wersji HTML?

A. 4
B. 5
C. 6
D. 7
Deklaracja <!DOCTYPE HTML> - krótka, bez numeru wersji ani odwołania do DTD - to znak rozpoznawczy HTML5. Informuje przeglądarkę, że dokument korzysta z najnowszego standardu. Dlatego oznacza HTML w wersji 5.

Pytanie 5

Funkcją języka PHP tworzącą ciasteczko (cookie) jest:

A.
createcookie()
B.
echocookie()
C.
addcookie()
D.
setcookie()
Ciasteczko tworzy w PHP funkcja setcookie(), np. setcookie("jezyk", "pl", time()+3600) ustawia cookie o nazwie „jezyk”, wartości „pl” i ważności godzinę. Wysyła ją serwer w nagłówku odpowiedzi, dlatego setcookie() musi zostać wywołana PRZED jakimkolwiek wypisaniem treści strony. Przy kolejnych żądaniach przeglądarka odsyła ciasteczko, a odczytuje się je z tablicy $_COOKIE. Dlatego do utworzenia ciasteczka służy setcookie().

Pytanie 6

Metoda i zmienna są dostępne dla metod tej klasy ORAZ klas po niej dziedziczących (potomnych). Który modyfikator?

A.
static
B.
public
C.
protected
D.
private
Modyfikator protected udostępnia składowe metodom TEJ klasy ORAZ klasom po niej DZIEDZICZĄCYM (potomnym), ale nie kodowi z zewnątrz. To pośredni poziom między private a public, przydatny, gdy klasa bazowa ma coś udostępnić dziedzicom, lecz ukryć przed światem. Zapamiętaj: protected = „dla mnie i moich potomków”.

Pytanie 7

Obiektem w bazie danych, który wykorzystywany jest do podsumowywania, prezentacji oraz drukowania danych, jest

A. raport
B. zapytanie
C. formularz
D. zestawienie
Raport jest obiektem baz danych, który służy do podsumowywania, wyświetlania oraz wydruków danych. Jego główną funkcją jest agregacja i prezentacja informacji w sposób przystępny dla użytkownika. Raporty mogą być wykorzystywane do analizy danych, prezentacji wyników oraz podejmowania decyzji biznesowych. Przykładem zastosowania raportu może być generowanie miesięcznego raportu sprzedaży, który zawiera szczegółowe informacje o przychodach, kosztach oraz zyskach w danym okresie. Z perspektywy dobrych praktyk, raporty powinny być projektowane w taki sposób, aby były czytelne i zrozumiałe, a ich struktura powinna być zgodna z wymaganiami użytkowników. W kontekście standardów, raporty mogą być również generowane automatycznie przy użyciu narzędzi business intelligence, co pozwala na zwiększenie efektywności i dokładności analiz. Dobrze zdefiniowane raporty przyczyniają się do lepszego zrozumienia zbiorów danych oraz wspierają procesy decyzyjne w organizacji.

Pytanie 8

Która metoda przesłania danych poufnych z formularza jest NAJBEZPIECZNIEJSZA?

A. metoda GET przez HTTP
B. metoda POST przez HTTP
C. metoda GET przez HTTPS
D. metoda POST przez HTTPS
Najbezpieczniejsze jest połączenie metody POST z protokołem HTTPS. POST przesyła dane w treści żądania (nie w widocznym adresie URL), a HTTPS dodatkowo SZYFRUJE całą transmisję - więc nawet przechwycone dane są nieczytelne. To standard przy logowaniu i płatnościach. Zapamiętaj: POST ukrywa dane w żądaniu, HTTPS je szyfruje - razem dają maksymalne bezpieczeństwo.

Pytanie 9

Jakiej funkcji w edytorze grafiki rastrowej należy użyć, aby przygotować obraz do wyświetlenia na stronie tak, aby widoczne było jedynie to, co mieści się w ramce?

Ilustracja do pytania
A. Lustro
B. Zmiana rozmiaru
C. Kadrowanie
D. Perspektywa
Kadrowanie w edytorze grafiki rastrowej to naprawdę fajna technika, bo pozwala nam na wycięcie konkretnej części obrazu, którą chcemy pokazać. Dzięki temu skupiamy uwagę na tym, co w grafice najważniejsze, eliminując to, co jest zbędne. Przygotowując grafikę do wrzucenia na stronę www, dobrze jest pomyśleć o kadrowaniu, bo nie tylko poprawia estetykę, ale też sprawia, że strona działa szybciej. Mniejsza grafika to krótszy czas ładowania, co wszyscy lubią. Kadrowanie jest kluczowe, zwłaszcza w responsywnym web designie, gdzie musimy dostosować obrazy do różnych ekranów. Z praktyki wiem, że dobrze wykadrowany obraz to lepsza jakość przy mniejszej wadze pliku, co korzystnie wpływa na SEO i wrażenia użytkowników. W programach jak Adobe Photoshop czy GIMP kadrowanie jest dość proste i pozwala na szybkie dostosowanie obrazu do potrzeb projektu.

Pytanie 10

Który z akapitów został sformatowany według podanego stylu, przy założeniu, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 1
B. Efekt 2
C. Efekt 3
D. Efekt 4
Efekt 3 jest poprawny ponieważ formatowanie CSS zawiera ustawienie padding 20px co oznacza że wokół tekstu znajduje się przestrzeń o szerokości 20 pikseli Dodatkowo kolor tekstu jest niebieski zgodnie z ustawieniem color blue Także font-weight 900 wskazuje że tekst powinien być pogrubiony w najwyższym stopniu co jest widoczne w trzecim efekcie Obramowanie ma szerokość 1 piksel i jest solidne co oznacza że jest to ciągła linia wokół tekstu Efekt 3 dokładnie odzwierciedla te właściwości Formatowanie takie jest użyteczne w tworzeniu przyciągających uwagę nagłówków lub wyróżnień w treści strony internetowej W praktyce taki styl można zastosować do elementów interfejsu użytkownika które wymagają większej czytelności lub estetycznego oddzielenia od reszty treści Ważne jest aby odpowiednio zrozumieć i wykorzystać właściwości CSS dla uzyskania maksymalnej efektywności w projektowaniu stron internetowych Dobre praktyki obejmują także testowanie stylów na różnych urządzeniach aby upewnić się że wygląd spełnia zamierzone cele we wszystkich kontekstach

Pytanie 11

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript?

n = "Napis1"; s = n.length;
A. Przypisze wartość zmiennej n do zmiennej s
B. Wyświetli liczbę znaków napisu z zmiennej n
C. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
D. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
Fragment skryptu w języku JavaScript, w którym zmienna n jest przypisana do napisu "Napis1", a następnie zmienna s jest przypisana do długości tego napisu, korzysta z właściwości length. Odpowiedź 3 jest poprawna, ponieważ właściwość length dla obiektów typu string zwraca liczbę znaków w danym napisie. W tym przypadku "Napis1" ma 6 znaków, więc zmienna s przyjmie wartość 6. Tego typu operacje są powszechnie stosowane w programowaniu do manipulacji i analizy danych tekstowych, co jest istotnym aspektem tworzenia aplikacji webowych. W praktyce, programiści często muszą sprawdzać długość napisów, aby weryfikować dane wejściowe, przygotowywać napisy do dalszego przetwarzania lub dostosowywać interfejs użytkownika. Dobrym przykładem zastosowania length jest walidacja formularzy, gdzie długość wprowadzonego tekstu musi spełniać określone kryteria, np. minimalną lub maksymalną liczbę znaków. Warto zaznaczyć, że zgodnie ze standardami ECMAScript, wszystkie napisy w JavaScript mają tę właściwość, co czyni ją niezwykle użyteczną w codziennej pracy programisty.

Pytanie 12

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

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

Pytanie 13

Aby zmienić strukturę już istniejącej tabeli przy użyciu zapytania SQL, należy użyć kwerendy

A. UPDATE
B. INSERT INTO
C. ALTER TABLE
D. CREATE TABLE
Odpowiedź 'ALTER TABLE' jest poprawna, ponieważ ta kwerenda jest używana do modyfikacji struktury istniejącej tabeli w bazach danych SQL. Dzięki komendzie ALTER TABLE można dodawać nowe kolumny, usuwać istniejące kolumny, zmieniać typy danych kolumn, a także modyfikować ograniczenia (constraints) dotyczące tabeli. Dla przykładu, aby dodać nową kolumnę 'wiek' do tabeli 'pracownicy', można użyć następującej kwerendy: 'ALTER TABLE pracownicy ADD wiek INT;'. Warto również wspomnieć, że ALTER TABLE może być używane w różnych systemach zarządzania bazami danych, takich jak MySQL, PostgreSQL czy SQL Server, co czyni go uniwersalnym narzędziem w pracy z bazami danych. Podczas modyfikacji tabeli należy jednak zachować ostrożność, aby nie wprowadzić niezgodności w aplikacjach korzystających z tej tabeli. Praktyką zalecaną jest wykonywanie kopii zapasowej danych przed wprowadzeniem większych zmian. Zrozumienie tej komendy i jej zastosowania jest kluczowe dla efektywnego zarządzania danymi w systemach bazodanowych.

Pytanie 14

Podany fragment kodu PHP ma na celu wstawienie wartości z zmiennych $a, $b, $c do bazy danych, w tabeli dane. Tabela ta składa się z czterech kolumn, z których pierwsza to autoinkrementowany klucz podstawowy. Które z zapytań powinno być przypisane do zmiennej $zapytanie?

<?php
...
$zapytanie = "...";
mysqli_query($db, $zapytanie);
...
?>
A. ```SELECT '$a', '$b', '$c' FROM dane;```
B. ```SELECT NULL, '$a', '$b', '$c' FROM dane;```
C. ```INSERT INTO dane VALUES ('$a', '$b', '$c');```
D. ```INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');```
Prawidłowa odpowiedź to "INSERT INTO dane VALUES (NULL, '$a', '$b', '$c');" ponieważ wstawia dane do bazy danych w sposób zgodny z jej strukturą. W tabeli dane pierwsze pole jest kluczem głównym, który jest autoinkrementowany, co oznacza, że nie musimy go podawać ręcznie. Wartość NULL w tym przypadku pozwala bazie danych na automatyczne wygenerowanie nowego identyfikatora. Pozostałe zmienne, $a, $b i $c, zawierają dane, które chcemy wstawić do odpowiednich kolumn. Stosowanie przygotowanych zapytań (prepared statements) w PHP z wykorzystaniem mysqli jest najlepszą praktyką, ponieważ zapewnia ochronę przed atakami SQL injection oraz poprawia wydajność. Przykład zastosowania tego typu zapytania może obejmować dodawanie użytkowników do systemu, gdzie każdy użytkownik ma unikalny identyfikator generowany przez bazę danych. Warto również pamiętać o walidacji i sanitizacji danych przed ich wprowadzeniem do bazy.

Pytanie 15

Które stwierdzenie najlepiej opisuje klasę Owoc zdefiniowaną w języku PHP i przedstawioną na listingu?

class Owoc {
    public $nazwa;
    private $kolor;
    function set_nazwa($nazwa) {
        $this->nazwa = $nazwa;
    }
}
A. Zawiera jedno pole i dwie metody, z których jedna ma ograniczony zasięg prywatny.
B. Zawiera dwa pola i jedną metodę, a pole kolor ma zasięg widzialności ograniczony wyłącznie do metod klasy.
C. Zawiera dwa pola i jedną metodę, a pole nazwa ma zasięg widzialności ograniczony wyłącznie do metod klasy.
D. Zawiera dwa pola oraz jeden konstruktor, oba pola mają zasięg widzialności ograniczony wyłącznie do metod klasy.
Klasa Owoc rzeczywiście ma dwa pola: publiczne pole nazwa oraz prywatne pole kolor. Widoczność pola kolor ogranicza się do wnętrza klasy, co oznacza, że nie może być ono bezpośrednio dostępne z zewnątrz. Metoda set_nazwa jest jedyną zdefiniowaną metodą, która umożliwia modyfikację wartości pola nazwa. Przykładowo, można stworzyć nowy obiekt klasy Owoc i ustawić jego nazwę za pomocą tej metody: $owoc = new Owoc(); $owoc->set_nazwa('Jabłko');. Takie podejście ilustruje zasadę enkapsulacji, która jest jedną z podstaw programowania obiektowego, gdzie dane obiektu są chronione i dostępne tylko poprzez metody, co zwiększa bezpieczeństwo i integralność danych. Dobrą praktyką jest również stosowanie metod get i set do zarządzania wartościami pól, co ułatwia kontrolowanie dostępu i weryfikację danych.

Pytanie 16

Jaką funkcję agregującą można zastosować, aby uzyskać ilość rekordów?

A. SUM
B. AVG
C. COUNT
D. NUMBER
Funkcja agregująca COUNT jest używana w bazach danych do zwracania liczby rekordów spełniających określone kryteria. Jest to jedna z podstawowych funkcji agregujących, która pozwala na szybkie uzyskanie informacji o objętości danych w tabeli. Na przykład, w zapytaniu SQL, które ma na celu policzenie liczby wszystkich klientów w tabeli "klienci", możemy użyć: SELECT COUNT(*) FROM klienci. Zwróci to całkowitą liczbę rekordów. Funkcja COUNT może być również używana z warunkami, co pozwala na bardziej zaawansowane analizy, takie jak: SELECT COUNT(*) FROM klienci WHERE kraj = 'Polska', co policzy tylko tych klientów, którzy są z Polski. W praktyce, COUNT jest nieoceniony w raportowaniu i analizie danych, umożliwiając analitykom i programistom szybkie zrozumienie struktury danych. Dobra praktyka to zawsze stosować COUNT w kontekście grupowania danych przy użyciu klauzuli GROUP BY, co pozwala na uzyskanie liczby rekordów w poszczególnych grupach.

Pytanie 17

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
B. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
C. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
D. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
Analizując niepoprawne odpowiedzi, można zauważyć kilka powszechnych błędów, które prowadzą do mylnych wniosków. Przede wszystkim, użycie operatora '=' zamiast '==' jest fundamentalnym błędem w kontekście języka JavaScript. Operator '=' służy do przypisania wartości, podczas gdy '==' jest operatorem porównania, który sprawdza, czy dwie wartości są sobie równe. Zastosowanie '=' w warunkach logicznych prowadzi do nieprawidłowego działania warunków, ponieważ zamiast porównania wykonujemy przypisanie, co zazwyczaj skutkuje zawsze prawdziwym wynikiem. Ponadto, użycie operatora '&&' w przypadku kolorów w odpowiedzi, która stwierdza, że kolor jest jednocześnie 'niebieski' i 'zielony', jest logicznie niemożliwe, ponieważ jedna zmienna nie może przyjmować dwóch różnych wartości jednocześnie. Tego typu niepoprawne podejścia mogą prowadzić do niezamierzonych wyników w kodzie, co jest sprzeczne z podstawowymi zasadami programowania, takimi jak zasada jedności odpowiedzialności. Kluczowe jest również zrozumienie, że warunki powinny być jasno sformułowane, aby kod był zarówno funkcjonalny, jak i łatwy do zrozumienia dla innych programistów. Dobre praktyki programistyczne wskazują na konieczność stosowania dobrze zdefiniowanych i jednoznacznych warunków, co znacznie ułatwia dalszy rozwój i konserwację kodu.

Pytanie 18

Formularz przesyła informacje do pliku skrypt.php po naciśnięciu przycisku oznaczonego jako "WYŚLIJ". Wskaż właściwą definicję formularza.

Ilustracja do pytania
A. Skrypt 2
B. Skrypt 4
C. Skrypt 1
D. Skrypt 3
W formularzu HTML do wysłania danych do określonego skryptu należy użyć atrybutu action w znaczniku form co określa adres URL do którego zostaną przesłane dane. Ponadto kluczowy jest atrybut type elementu input który powinien być ustawiony na submit aby umożliwić wysłanie danych po naciśnięciu przycisku. Skrypt 4 jest poprawny ponieważ zawiera zarówno poprawną definicję action="skrypt.php" jak i właściwe określenie typu przycisku jako submit. Taka konstrukcja jest zgodna ze standardami HTML5 i jest powszechnie stosowana w tworzeniu interaktywnych formularzy internetowych. Poprawne wysyłanie formularzy jest kluczowe w wielu aplikacjach webowych szczególnie w kontekście przesyłania danych użytkownika do serwera gdzie mogą być one przetwarzane lub przechowywane. Przy projektowaniu formularza ważne jest również uwzględnienie bezpieczeństwa danych używając metod takich jak POST zamiast GET co zapobiega wyciekom danych w adresie URL. Dobre praktyki obejmują także walidację po stronie klienta oraz serwera aby upewnić się że przesyłane informacje spełniają wymagane kryteria co minimalizuje ryzyko błędów i potencjalnych ataków."

Pytanie 19

Jaką treść komunikatu należy umieścić w kodzie PHP zamiast znaków zapytania?

$a = mysql_connect('localhost', 'adam', 'mojeHaslo');

if (!$a)
    echo "?????????????";
A. Wybrana baza danych nie istnieje
B. Błąd połączenia z serwerem SQL
C. Błąd w trakcie przetwarzania zapytania SQL
D. Rekord został pomyślnie dodany do bazy
Poprawna odpowiedź 'Błąd połączenia z serwerem SQL' jest właściwa, ponieważ funkcja mysql_connect() służy do nawiązywania połączenia z serwerem bazy danych MySQL. Jeśli połączenie nie powiedzie się, zwraca false. W takiej sytuacji należy poinformować użytkownika o nieudanym połączeniu. Jest to kluczowe w debugowaniu i zapewnianiu użytkownikowi zrozumiałych komunikatów błędów. W praktyce, połączenie z bazą danych jest podstawowym krokiem w wielu aplikacjach internetowych, a jego poprawna obsługa to standardowa praktyka branżowa. Współczesne podejście wymaga także użycia rozszerzenia mysqli lub PDO zamiast przestarzałej funkcji mysql_connect(). Jest to zalecane ze względu na lepsze wsparcie bezpieczeństwa i wydajności. Użycie funkcji mysqli_connect() pozwala na obsługę zarówno błędów połączenia, jak i zapytań SQL w sposób bardziej elastyczny i bezpieczny.

Pytanie 20

W językach programowania o układzie strukturalnym, aby przechować dane o 50 uczniach (ich imionach, nazwiskach oraz średniej ocen), konieczne jest zastosowanie

A. struktury z 50 elementami o składowych typu tablicowego
B. tablicy z 50 elementami o składowych typu łańcuchowego
C. klasy z 50 elementami typu tablicowego
D. tablicy z 50 elementami o składowych strukturalnych
Wybór tablicy 50 elementów o składowych strukturalnych jest prawidłowy ze względu na potrzebę przechowywania złożonych danych o uczniach. W tym przypadku, każdy element tablicy powinien reprezentować jednego ucznia i zawierać jego imię, nazwisko oraz średnią ocen. Struktura danych, taka jak struktura, pozwala na grupowanie różnych typów danych w jeden obiekt, co jest zgodne z dobrymi praktykami programowania w językach strukturalnych. Przykładowo, w języku C można zadeklarować strukturę dla ucznia w następujący sposób: `struct Uczen { char imie[50]; char nazwisko[50]; float srednia; };`. Następnie można utworzyć tablicę 50 elementów tej struktury: `struct Uczen uczniowie[50];`. Stosowanie struktur w tym kontekście ułatwia zarządzanie danymi i zwiększa czytelność kodu, co jest szczególnie ważne w przypadku projektów wymagających łatwego dostępu do różnych atrybutów obiektów. Używanie dobrze zdefiniowanych struktur danych jest zgodne z zasadami programowania obiektowego, nawet w językach proceduralnych, i przyczynia się do lepszej organizacji kodu oraz jego skalowalności.

Pytanie 21

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 3
B. Kod 2
C. Kod 1
D. Kod 4
Kod 2 jest poprawny, ponieważ struktura instrukcji warunkowych w JavaScript jest równoważna z wyrażeniem switch przedstawionym w pytaniu. Instrukcja switch pozwala na wykonanie jednej z wielu gałęzi kodu w zależności od wartości wyrażenia, w tym przypadku zmiennej 'dzialanie'. Każdy 'case' w switch odpowiada warunkowi 'if' w strukturze if-else if. W Kodzie 2 każda operacja matematyczna, jak dodawanie czy odejmowanie, jest przypisana do odpowiedniego warunku dzięki zastosowaniu if-else if, co dokładnie odwzorowuje zachowanie switch. Jest to zgodne z dobrą praktyką programistyczną, gdzie wybór między switch a if-else if zależy od przejrzystości i liczby porównywanych przypadków. Kod 2 jest bardziej czytelny, co jest ważne w utrzymywaniu i rozwijaniu kodu produkcyjnego. Praktyczne zastosowanie takiej struktury można znaleźć w budowaniu aplikacji, gdzie decyzje podejmowane są na podstawie wielu możliwych wartości zmiennej.

Pytanie 22

Który kod HTML zapewni identyczny efekt formatowania jak na przedstawionym obrazku?

W tym paragrafie zobaczysz sposoby formatowania tekstu w HTML
A. <p>W tym <b>paragrafie <i>zobaczysz</i> sposoby formatowania</b> tekstu w HTML</p>
B. <p>W tym <i>paragrafie <b>zobaczysz</b> sposoby formatowania</i> tekstu w HTML</p>
C. <p>W tym <i>paragrafie zobaczysz sposoby formatowania</i> tekstu w HTML</p>
D. <p>W tym <i>paragrafie </i><b>zobaczysz</b><i> sposoby formatowania</i> tekstu w HTML</p>
Odpowiedź numer 2 jest poprawna, ponieważ używa odpowiednich znaczników HTML do formatowania tekstu. Znacznik <i> stosowany jest do oznaczania tekstu kursywą, a znacznik <b> do pogrubienia. W tym przypadku tekst 'paragrafie' i 'sposoby formatowania' są otoczone znacznikiem <i>, co zgodnie z HTML oznacza kursywę. Natomiast słowo 'zobaczysz' jest otoczone zarówno <b> jak i <i>, co skutkuje pogrubieniem i kursywą jednocześnie. Taka struktura jest zgodna z konwencją hierarchii znaczników, która mówi, że znaczniki mogą być zagnieżdżane, aby uzyskać różne efekty formatowania. HTML pozwala na takie zagnieżdżanie, co jest częścią elastyczności tego języka w prezentowaniu treści. Dobrą praktyką jest także zapewnienie dostępności, gdzie znaczniki semantyczne mają szczególne znaczenie. Wykorzystanie <b> i <i> zamiast odpowiednio <strong> i <em> jest bardziej stylistyczne niż semantyczne, co ma swoje uzasadnienie w kontekście projektowym, ale w nowoczesnych praktykach powinno się również rozważyć znaczenie semantyczne i używać <strong> i <em> dla lepszego zrozumienia przez czytniki ekranowe.

Pytanie 23

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. konkatenacja
C. hermetyzacja
D. polimorfizm
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 24

Aby ustawić wewnętrzne marginesy dla elementu: margines górny 50px, dolny 40px, prawy 20px oraz lewy 30px, powinno się zastosować składnię CSS

A. padding: 50px, 40px, 20px, 30px;
B. padding: 20px, 40px, 30px, 50px;
C. padding: 50px, 20px, 40px, 30px;
D. padding: 40px, 30px, 50px, 20px;
Odpowiedź "padding: 50px, 20px, 40px, 30px;" jest poprawna, ponieważ zgodnie z konwencją CSS, wartości paddingu są podawane w następującej kolejności: górny, prawy, dolny i lewy. W twoim przypadku margines górny wynosi 50px, prawy 20px, dolny 40px i lewy 30px. Właściwość padding określa wewnętrzny odstęp między zawartością elementu a jego granicą, co jest kluczowe dla właściwego układu i estetyki strony. Przykładowo, zastosowanie takiego paddingu w praktyce pozwala na uzyskanie odpowiednich odstępów, co wpływa na czytelność tekstu oraz ogólną estetykę elementów na stronie. Stosowanie paddingu w CSS jest uważane za dobre praktyki, ponieważ pozwala na precyzyjne kontrolowanie układu elementów, co jest szczególnie ważne w responsywnym projektowaniu stron internetowych. Warto również pamiętać, że używanie właściwego odstępu wewnętrznego poprawia dostępność treści, dzięki czemu użytkownicy z różnymi potrzebami mogą łatwiej interakcjonować z interfejsem.

Pytanie 25

W języku C do reprezentowania liczb zmiennoprzecinkowych używa się typu:

A.
char
B.
double
C.
int
D.
bool
Liczby zmiennoprzecinkowe (z częścią ułamkową) reprezentuje w języku C typ double - oferuje on podwójną precyzję, czyli więcej cyfr znaczących niż float. Oba przechowują liczby rzeczywiste, np. 3.14 czy 2.5e-3, lecz double jest dokładniejszy i częściej domyślny dla literałów z kropką. Dla porównania int trzyma liczby całkowite, więc utraciłby część ułamkową. Dlatego do liczb zmiennoprzecinkowych w C służy typ double.

Pytanie 26

Przedstawiony kod źródłowy ma na celu zaprezentowanie

$liczba = 1;
while ($liczba != 0)
{
    $liczba = rand(0,100);
    echo $liczba;
}
A. kolejnych liczb od 1 do 100
B. liczb wprowadzonych z klawiatury tak długo, aż nie zostanie podana wartość 0
C. losowych liczb od 0 do 100 do momentu, aż nie wylosowana zostanie liczba 0
D. wylosowanych liczb od 1 do 99
Kod źródłowy przedstawia pętlę while, która generuje losowe liczby od 0 do 100 przy użyciu funkcji rand(0,100). Proces trwa tak długo, jak wygenerowana liczba jest różna od zera. W przypadku wylosowania zera pętla zostaje zakończona. Funkcja rand jest często stosowana w programowaniu do generowania losowych wartości, co może być przydatne w wielu sytuacjach, takich jak symulacje, gry komputerowe czy testowanie algorytmów. Generowanie liczb losowych odgrywa kluczową rolę w kryptografii, gdzie losowość jest istotna dla bezpieczeństwa. Jednak w przypadku zastosowań wymagających wysokiej jakości losowości, takich jak aplikacje kryptograficzne, zaleca się użycie bardziej zaawansowanych generatorów liczb losowych, na przykład funkcji mt_rand w PHP, która oferuje lepsze właściwości statystyczne. Przy wyborze generatora ważne jest, aby zwrócić uwagę na jego właściwości, takie jak okres cyklu, równomierność rozkładu i odporność na przewidywalność, co wpływa na jakość i bezpieczeństwo generowanych danych.

Pytanie 27

Zawartość kodu w języku HTML umieszczona w ramce ilustruje zestaw

<ol>
<li>Pierwszy</li>
<li>Drugi</li>
<li>Trzeci</li>
</ol>
A. linków
B. wypunktowanej
C. numerowanej
D. skróconych
Fragment kodu HTML używa tagu <ol> co oznacza listę numerowaną. Tag <ol> jest skrótem od ordered list i jest używany do tworzenia listy elementów, które są automatycznie numerowane przez przeglądarkę. Wewnątrz tego tagu znajdują się tagi <li>, które oznaczają poszczególne elementy listy. Każdy z tych elementów będzie wyświetlany z kolejnym numerem w przeglądarce internetowej. Na przykład w przypadku zamieszczonego kodu HTML przeglądarka wyświetli listę z numerami 1 2 3 przed elementami Pierwszy Drugi Trzeci. Listy numerowane są użyteczne w sytuacjach gdy ważna jest kolejność elementów na przykład w instrukcjach krok po kroku lub rankingach. Tworzenie list numerowanych z użyciem <ol> jest zgodne ze standardami HTML i jest dobrym rozwiązaniem gdyż pozwala na łatwe zarządzanie kolejnością elementów bez konieczności ręcznego numerowania co redukuje ryzyko błędów i automatycznie aktualizuje numerację w przypadku dodania bądź usunięcia elementów z listy.

Pytanie 28

Która funkcja PHP sortuje tablicę asocjacyjną według KLUCZY?

A.
ksort()
B.
asort()
C.
rsort()
D.
sort()
Funkcja ksort() sortuje tablicę asocjacyjną według KLUCZY (litera „k” jak key), zachowując przy tym powiązanie klucz-wartość, np. po ksort($miesiace) pary uporządkują się rosnąco po kluczach. Przydaje się, gdy klucze niosą znaczenie (daty, numery). Zapamiętaj: ksort = sort po Key.

Pytanie 29

Które z poniższych oprogramowań nie jest systemem do zarządzania treścią (CMS)?

A. Mambo
B. Joomla
C. Apache
D. WordPress
Odpowiedź "Apache" jest prawidłowa, ponieważ Apache to serwer HTTP, który jest odpowiedzialny za obsługę i dostarczanie stron internetowych do przeglądarek użytkowników. Nie jest to system zarządzania treścią (CMS), który służy do tworzenia, edytowania i publikowania treści na stronach internetowych. Systemy takie jak Mambo, Joomla i WordPress to platformy CMS, które umożliwiają użytkownikom zarządzanie treściami w sposób intuicyjny i przyjazny dla użytkownika. Na przykład, WordPress, będący jednym z najpopularniejszych CMS-ów, oferuje bogaty ekosystem wtyczek oraz motywów, co pozwala na łatwe dostosowanie witryn do indywidualnych potrzeb. W kontekście branżowych standardów, stosowanie CMS-ów pozwala na skuteczniejsze zarządzanie treściami w witrynach, co jest zgodne z najlepszymi praktykami w zakresie tworzenia i utrzymania stron internetowych.

Pytanie 30

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

$licznik = 0;
while ($licznik != $x)
{
    echo $licznik;
    $licznik++;
}
A. losowe liczby z przedziału (0, x)
B. kolejne liczby od x do 0
C. kolejne liczby od 0 do x-1
D. liczby wczytywane z klawiatury, tak długo aż zostanie wczytana wartość x
Właściwa odpowiedź sugeruje, że kod PHP wyświetla liczby naturalne od 0 do x-1. Przez inicjalizację zmiennej $licznik wartością 0 i stopniowe zwiększanie jej wartości o 1 w każdej iteracji pętli while, aż do osiągnięcia wartości $x, proces ten jest realizowany. Jest to typowy przykład użycia pętli while w programowaniu, gdzie chcemy wykonać dane działanie wielokrotnie, zazwyczaj do momentu, gdy spełniony jest określony warunek. Zastosowanie takiego podejścia jest powszechne nie tylko w PHP, ale w większości języków programowania. W tym konkretnym przypadku, zastosowanie pętli while pozwala na efektywne wygenerowanie liczby naturalnej w określonym zakresie, co jest często potrzebne w różnych algorytmach czy operacjach matematycznych.

Pytanie 31

W algorytmie jeden z bloków ma wpisaną akcję "Wypisz liczbę". Który z kształtów może przyjąć tę akcję?

Ilustracja do pytania
A. Kształt 1.
B. Kształt 2.
C. Kształt 4.
D. Kształt 3.
Gratulacje, udzieliłeś prawidłowej odpowiedzi. Algorytm to uporządkowany ciąg czynności prowadzących do rozwiązania danego problemu. W algorytmie, akcje takie jak 'wypisz liczbę' są zwykle zawarte w blokach oznaczających konkretne działania, które algorytm powinien wykonać. Kształt 1 jest standardowym oznaczeniem dla bloków akcji w notacjach diagramów przepływu, co oznacza, że algorytm powinien wykonać pewną operację lub działanie. W tym przypadku, kształt 1 symbolizuje akcję 'wypisz liczbę'. Jest to ważne do zrozumienia, gdyż umiejętność czytania i tworzenia diagramów przepływu jest kluczowa dla zrozumienia logicznego przepływu programów i algorytmów. Praktyka ta jest powszechnie stosowana w programowaniu i analizie systemów, pomagając w efektywnym projektowaniu i debugowaniu programów.

Pytanie 32

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. this.jezyk = nazwa;
B. this.j = nazwa;
C. return this.j;
D. return this.jezyk;
Niepoprawne odpowiedzi w tym pytaniu wynikają z niezrozumienia roli setterów i sposób, w jaki są one używane do zarządzania stanem obiektu w JavaScript. Odpowiedź 'this.j = nazwa;' jest nieprawidłowa, ponieważ próbuje przypisać wartość bezpośrednio do właściwości 'j', która nie istnieje w obiekcie 'osoba'. Z kolei 'return this.j;' i 'return this.jezyk;' nie są prawidłowe, ponieważ setter nie powinien zwracać wartości. Jego zadaniem jest ustawienie wartości, a nie jej zwrócenie. Zrozumienie roli setterów w zarządzaniu stanem obiektu jest kluczowe dla prawidłowego używania JavaScript. Setter powinien zawsze przypisywać wartość do właściwości obiektu, a nie próbować zwrócić wartość lub przypisać wartość do nieistniejącej właściwości.

Pytanie 33

Skrypt w JavaScript, który obsługuje wynagrodzenia pracowników, powinien stworzyć raport dla tych, którzy są zatrudnieni na umowę o pracę oraz otrzymują wynagrodzenie w przedziale domkniętym od 4000 do
4500 zł. Jaki warunek należy zastosować do wygenerowania raportu?

A. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
B. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
C. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
D. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
Odpowiedź umowa == 'praca' && (pensja >= 4000 && pensja <= 4500) jest poprawna, ponieważ precyzyjnie określa warunki, jakie muszą być spełnione, aby wygenerować raport. Warunek umowa == 'praca' zapewnia, że analizujemy tylko pracowników zatrudnionych na umowę o pracę, co jest kluczowe w kontekście raportowania. Dodatkowo zastosowanie operatora logicznego '&&' w połączeniu z zakresowym sprawdzeniem pensji (pensja >= 4000 && pensja <= 4500) skutkuje tym, że raport zostanie wygenerowany wyłącznie dla pracowników, których pensja mieści się w ścisłym przedziale od 4000 do 4500 zł. To podejście jest zgodne z dobrymi praktykami programistycznymi, gdzie ważne jest, aby warunki były ściśle zdefiniowane, co pozwala uniknąć nieporozumień i błędów w danych. Przykładowo, jeżeli stworzymy funkcję generującą raport, możemy ją łatwo zaimplementować w systemie hr, co pozwoli na automatyzację procesów związanych z płacami oraz raportowaniem, a także zwiększy przejrzystość i precyzję w zarządzaniu danymi finansowymi.

Pytanie 34

Które z poniższych poleceń jest poprawne w kontekście walidacji HTML5?

A. &lt;img src = mojPiesek.jpg&quot; alt = &quot;pies&gt;
B. &lt;img src = mojPiesek.jpg alt = pies&gt;
C. &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt;
D. &lt;img src = &quot;mojPiesek.jpg&quot; &gt;
Odpowiedź &lt;img src = &quot;mojPiesek.jpg&quot; alt = &quot;pies&quot;&gt; jest poprawna zgodnie z wymaganiami HTML5, ponieważ przestrzega zasad dotyczących składni znaczników. W HTML5 atrybuty powinny być stosowane w formacie klucz-wartość, gdzie klucz jest nazwą atrybutu, a wartość jest przypisana w cudzysłowach. W tym przypadku atrybut 'src' wskazuje na źródło obrazu, a 'alt' dostarcza tekst alternatywny, co jest istotne z punktu widzenia dostępności. Tekst alternatywny jest używany przez technologie asystujące oraz wyświetlany, gdy obraz nie może być załadowany. Przykład użycia: &lt;img src=&quot;logo.png&quot; alt=&quot;Logo firmy&quot;&gt; jest zgodny z dobrymi praktykami, ponieważ informuje użytkowników o zawartości obrazu. Warto również pamiętać, że w HTML5 nie jest wymagane zamykanie tagu &lt;img&gt;, co czyni go bardziej elastycznym w użyciu. Poprawne stosowanie atrybutów oraz odpowiedzialność za dostępność treści to kluczowe aspekty projektowania stron internetowych w dzisiejszych czasach.

Pytanie 35

Jakim systemem do zarządzania wersjami oprogramowania jest

A. TotalCommander
B. Eclipse
C. FileZilla
D. GIT
GIT to system kontroli wersji, który jest niezwykle popularny wśród programistów i zespołów developerskich, umożliwiający śledzenie zmian w kodzie źródłowym oraz współpracę nad projektami. GIT jest rozproszonym systemem, co oznacza, że każdy programista ma pełną kopię repozytorium na swoim lokalnym komputerze. Dzięki temu, praca w trybie offline jest możliwa, a zmiany można synchronizować później z centralnym repozytorium. GIT wspiera również wiele funkcji, takich jak branching, co pozwala na równoległe rozwijanie funkcjonalności bez wpływu na główną wersję kodu. Przykładowo, zespół może pracować nad nowymi funkcjami w osobnych gałęziach i łączyć je z główną wersją po zakończeniu prac. GIT jest również zgodny z najlepszymi praktykami, takimi jak Continuous Integration (CI) i Continuous Deployment (CD), co pozwala na automatyzację procesów testowania i wdrażania oprogramowania. W branży IT GIT stał się standardem, a jego znajomość jest kluczowa dla efektywnej pracy w zespołach. Warto również wspomnieć o platformach takich jak GitHub czy GitLab, które oferują zintegrowane narzędzia do zarządzania projektami opartymi na GIT.

Pytanie 36

Z tabel Klienci oraz Uslugi należy wyodrębnić tylko imiona klientów oraz odpowiadające im nazwy usług, które kosztują więcej niż 10 zł. Kwerenda uzyskująca te informacje ma formę

Ilustracja do pytania
A. SELECT imie, nazwa FROM klienci, uslugi WHERE cena < 10
B. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id
C. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = klienci.id
D. SELECT imie, nazwa FROM klienci JOIN uslugi ON uslugi.id = uslugi_id WHERE cena > 10
Odpowiedź 4 jest prawidłowa, ponieważ prawidłowo wykorzystuje składnię SQL do połączenia dwóch tabel oraz filtrowania danych na podstawie podanego warunku. Kwerenda używa JOIN, aby połączyć tabele Klienci i Uslugi na podstawie wspólnej kolumny uslugi_id, co jest zgodne z zasadami relacyjnej bazy danych, gdzie klucz obcy w jednej tabeli odnosi się do klucza głównego w innej tabeli. Następnie, kwerenda stosuje filtrację WHERE cena > 10, co pozwala na wybór tylko tych rekordów, gdzie cena usługi przekracza 10 zł. Jest to zgodne z praktyką selektywnego pobierania danych, co jest kluczowe w optymalizacji zapytań i skutecznym zarządzaniu zasobami bazy danych. Zastosowanie takich technik jest standardem w branży, umożliwiając efektywne zarządzanie dużymi zbiorami danych oraz zwiększenie wydajności aplikacji poprzez ograniczenie liczby zwracanych wierszy do tych, które spełniają określone kryteria. Zrozumienie i umiejętność implementacji takich zapytań SQL to podstawowa umiejętność dla specjalistów IT pracujących z bazami danych.

Pytanie 37

Który z akapitów został zapisany w wskazanym stylu, zakładając, że pozostałe właściwości akapitu mają wartości domyślne?

Ilustracja do pytania
A. Efekt 1
B. Efekt 2
C. Efekt 3
D. Efekt 4
Odpowiedź Efekt 3 jest poprawna, ponieważ odzwierciedla wszystkie zadane style CSS. Styl zawiera padding 20px co oznacza, że wewnętrzna przestrzeń wokół tekstu w paragrafie powinna wynosić 20 pikseli. Daje to efekt przestrzeni pomiędzy tekstem a obramowaniem. Kolor tekstu został ustawiony na niebieski co powoduje, że sam tekst przyjmuje niebieską barwę. Parametr font-weight jest ustawiony na 900 co oznacza, że tekst powinien być bardzo pogrubiony. Obecnie jest to maksymalna wartość dla własności font-weight w standardzie CSS która powoduje, że tekst wygląda na bardzo wyrazisty i wyróżnia się na tle innych elementów. Dodatkowo border ustawiono na 1px solid co oznacza, że paragraf powinien mieć jednolitą linię o grubości jednego piksela otaczającą jego obszar. Wszystkie te style są poprawnie zastosowane w Efekcie 3 gdzie tekst jest niebieski bardzo pogrubiony z przestrzenią 20 pikseli do obramowania oraz otoczony cienką linią. Taki styl jest często wykorzystywany w projektach stron internetowych dla wyraźnego wyróżnienia ważnych sekcji co zgodne jest z dobrymi praktykami projektowania interfejsów użytkownika.

Pytanie 38

Za pomocą stylu CSS zdefiniowano obramowanie pojedyncze o następujących kolorach krawędzi:

border: solid 1px;
border-color: red blue green yellow;
Jakie kolory będą miały poszczególne krawędzie?
A. górna – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta.
B. prawa – czerwona, dolna – niebieska, lewa – zielona, górna – żółta.
C. lewa – czerwona, dolna – niebieska, prawa – zielona, górna – żółta.
D. górna – czerwona, lewa – niebieska, dolna – zielona, prawa – żółta.
W tym pytaniu kluczowe jest zrozumienie skróconej składni własności `border-color` w CSS. Gdy podamy cztery wartości kolorów, przeglądarka interpretuje je zawsze w tej samej kolejności: góra (top), prawa (right), dół (bottom), lewa (left). Dokładnie tak samo działa to jak przy `margin` czy `padding`. Czyli zapis `border-color: red blue green yellow;` oznacza: górna krawędź – czerwona, prawa – niebieska, dolna – zielona, lewa – żółta. Styl `border: solid 1px;` określa tylko typ obramowania (ciągła linia) i grubość (1px), ale bez kolorów. Kolory są dopiero dodane przez `border-color`. W praktyce bardzo często używa się tej skróconej notacji, np. żeby wyróżnić jedną krawędź: `border-color: transparent transparent red transparent;` – daje to efekt podkreślenia tylko od dołu. Z mojego doświadczenia w front‑endzie lepiej zapamiętać prostą zasadę: przy czterech wartościach zawsze idziemy zgodnie z ruchem wskazówek zegara, zaczynając od góry: top → right → bottom → left. To się powtarza przy wielu własnościach CSS. Warto też wiedzieć, że można podać mniej wartości: jedną (wszystkie krawędzie ten sam kolor), dwie (góra/dół i prawa/lewa), trzy (góra, prawa/lewa, dół). Jednak w tym zadaniu są cztery, więc każda krawędź ma osobny kolor. Takie podejście jest zgodne ze specyfikacją CSS (box model) i jest powszechnie stosowane w projektach produkcyjnych do tworzenia np. ramek, strzałek, wyróżnień nagłówków czy kart.

Pytanie 39

W języku PHP tablice asocjacyjne to tablice, w których

A. indeks jest dowolnym napisem.
B. istnieją przynajmniej dwa wymiary.
C. w każdej komórce tablicy przechowywana jest inna tablica.
D. elementy tablicy są zawsze indeksowane od liczby równej 0.
Prawidłowo – w PHP tablice asocjacyjne to takie, w których indeks (klucz) może być dowolnym napisem, czyli łańcuchem znaków. Z technicznego punktu widzenia PHP w ogóle nie rozróżnia osobnego typu „mapa” czy „słownik” – wszystko jest tablicą, a to, czy używasz indeksów numerycznych czy tekstowych, zależy wyłącznie od ciebie. Przykład: $uzytkownik = ['imie' => 'Jan', 'wiek' => 25, 'miasto' => 'Kraków']; Tutaj 'imie', 'wiek' i 'miasto' to właśnie napisy pełniące rolę kluczy. Dzięki temu kod staje się czytelniejszy, bo zamiast $dane[0], $dane[1] masz jasne $dane['imie'], $dane['wiek']. W praktyce takie tablice asocjacyjne bardzo często wykorzystuje się do przechowywania rekordów z bazy danych (np. wynik fetch_assoc w MySQLi), konfiguracji aplikacji, danych z formularzy ($_POST, $_GET) czy parametrów przekazywanych do funkcji. Co ważne, kluczem może być też liczba całkowita, ale w definicji tablic asocjacyjnych zwykle podkreśla się, że nie jesteśmy ograniczeni do automatycznego indeksowania 0,1,2,..., tylko możemy sami nadawać znaczące klucze tekstowe. W dobrych praktykach programowania webowego w PHP przyjmuje się, że tam, gdzie dane mają strukturę „nazwa pola → wartość”, używamy tablic asocjacyjnych, bo to zmniejsza ryzyko pomyłek i ułatwia późniejsze utrzymanie kodu. Moim zdaniem, im szybciej człowiek przyzwyczai się do świadomego używania kluczy tekstowych, tym łatwiej mu będzie później przeskoczyć na inne języki i struktury danych, jak mapy czy słowniki.

Pytanie 40

W języku CSS, sformatowanie dowolnego elementu języka HTML w ten sposób, że po najechaniu na niego kursorem zmienia on kolor czcionki, wymaga zastosowania pseudoklasy

A. :active
B. :hover
C. :visited
D. :coursor
Poprawna odpowiedź to pseudoklasa :hover. W CSS służy ona dokładnie do tego, o co chodzi w pytaniu: do zmiany wyglądu elementu w momencie, gdy użytkownik najedzie na niego kursorem myszy (albo innym wskaźnikiem). Mechanizm jest prosty: przeglądarka śledzi pozycję kursora i kiedy znajduje się on nad danym elementem, do selektora z :hover zostają zastosowane zdefiniowane tam style.

Przykładowo, żeby po najechaniu zmienić kolor tekstu linku, wystarczy napisać:

a:hover {
color: red;
}

Można tak samo stylować dowolny element HTML, nie tylko <a>:

button:hover {
color: white;
background-color: #007bff;
cursor: pointer;
}

W nowoczesnych interfejsach :hover jest podstawą efektów „podświetlenia” przycisków, kart, menu rozwijanych itp. Z mojego doświadczenia warto pamiętać o kolejności pseudoklas dla linków: a:link, a:visited, a:hover, a:active – to jest klasyczna dobra praktyka (czasem zapisywana jako LVHA), żeby style się nie nadpisywały w dziwny sposób.

Trzeba też mieć w głowie, że na urządzeniach mobilnych :hover działa inaczej lub wcale, bo tam nie ma typowego kursora. Dlatego sensowne jest, żeby najważniejsze informacje nie były dostępne tylko po najechaniu, a :hover traktować bardziej jako poprawę wygody i estetyki, a nie jedyne źródło funkcjonalności. Mimo to w klasycznym desktopowym webie :hover jest absolutnym standardem do reakcji na najechanie kursorem.