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 23:37
  • Data zakończenia: 9 czerwca 2026 00:12

Egzamin zdany!

Wynik: 30/40 punktów (75,0%)

Wymagane minimum: 20 punktów (50%)

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

W SQL, aby w tabeli Towar dodać kolumnę rozmiar typu znakowego z maksymalną długością 20 znaków, jakie polecenie należy wykonać?

A. ALTER TABLE Towar CREATE COLUMN rozmiar varchar(20)
B. ALTER TABLE Towar ALTER COLUMN rozmiar varchar(20)
C. ALTER TABLE Towar ADD rozmiar varchar(20)
D. ALTER TABLE Towar DROP COLUMN rozmiar varchar(20)
Odpowiedź 'ALTER TABLE Towar ADD rozmiar varchar(20);' jest poprawna, ponieważ polecenie ALTER TABLE jest używane do modyfikacji struktury istniejącej tabeli. W tym przypadku chcemy dodać nową kolumnę o nazwie 'rozmiar', a typ 'varchar(20)' oznacza, że kolumna ta będzie przechowywać dane tekstowe o maksymalnej długości 20 znaków. Jest to standardowa praktyka w języku SQL, która pozwala na elastyczne zarządzanie danymi w bazach danych. Przykładem zastosowania może być sytuacja, w której w tabeli 'Towar' chcemy przechowywać informacje o rozmiarze odzieży, co pomaga w lepszym zarządzaniu stanem magazynowym. Prawidłowe zweryfikowanie typów kolumn i ich ograniczeń jest kluczowe dla zapewnienia integralności danych. Warto także pamiętać o tym, że operacje na strukturze bazy danych powinny być przeprowadzane z zachowaniem odpowiednich zasad, takich jak wykonywanie kopii zapasowych przed wprowadzeniem zmian oraz testowanie zmian w środowisku deweloperskim przed wdrożeniem ich w środowisku produkcyjnym.

Pytanie 2

Jak określa się podzbiór strukturalnego języka zapytań, który dotyczy formułowania zapytań do bazy danych przy użyciu polecenia SELECT?

A. SQL DCL (ang. Data Control Language)
B. SQL DDL (ang. Data Definition Language)
C. SQL DQL (ang. Data Query Language)
D. SQL DML (ang. Data Manipulation Language)
SQL DQL (Data Query Language) to podzbiór języka SQL, który koncentruje się na formułowaniu zapytań do baz danych w celu pobierania danych. Jego głównym elementem jest polecenie SELECT, które umożliwia użytkownikom wybieranie specyficznych danych z tabel oraz ich przetwarzanie w różnorodny sposób, w tym filtrowanie, sortowanie i łączenie danych z różnych źródeł. Przykładem zastosowania DQL jest zapytanie typu 'SELECT * FROM employees WHERE department = 'Sales';', które zwraca wszystkich pracowników z działu sprzedaży. DQL jest kluczowym elementem w analizie danych oraz raportowaniu, co sprawia, że znajomość tego podzbioru jest niezbędna dla analityków danych oraz programistów. Zrozumienie i umiejętność korzystania z DQL pozwala na efektywne wykorzystanie baz danych w praktycznych zastosowaniach biznesowych, takich jak generowanie raportów, analiza trendów oraz wspieranie decyzji strategicznych. Standardy SQL określają dobre praktyki związane z tworzeniem zapytań, co pozwala na zachowanie wydajności i czytelności kodu.

Pytanie 3

Przygotowano fragment kodu PHP z zadeklarowaną zmienną tablicową. Jaki wynik zostanie wyświetlony jako imię po wykonaniu tego kodu?

$imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra');
echo $imiona[2];
A. Aleksandra
B. Krzysztof
C. Anna
D. Tomasz
Niestety, inne odpowiedzi są błędne, bo wynikają z pomyłki w zrozumieniu indeksowania tablic w PHP. W tym języku liczymy od zera, czyli pierwszy element przypisany ma indeks 0, a nie 1 czy 2. To jest dość powszechna zasada, którą można spotkać w innych językach, jak C czy JavaScript, więc warto to ogarnąć. Spójrzmy na naszą tablicę: $imiona = array('Anna', 'Tomasz', 'Krzysztof', 'Aleksandra'); mamy 'Annę' na indeksie 0, 'Tomasza' na 1, 'Krzysztofa' na 2 i 'Aleksandrę' na 3. Jak używamy echo $imiona[2], to chcemy wyciągnąć trzeci element, czyli 'Krzysztofa'. Często błędy wynikają z myślenia, że liczymy od jedynki, co jest bardziej intuicyjne w niektórych kontekstach. Jednak w programowaniu przyjęło się liczenie od zera, co ułatwia różne obliczenia i operacje. Na przykład, w pętlach for często zaczynamy od i=0, co jest całkiem logiczne w związku z indeksowaniem. Niepoprawny indeks może prowadzić do błędów w czasie wykonania, więc warto to rozumieć, żeby uniknąć takich sytuacji.

Pytanie 4

Podczas przygotowywania grafiki na stronę internetową konieczne jest wycięcie jedynie określonego fragmentu. Jak nazywa się ta operacja?

A. lustrzane odbicie obrazu.
B. łączenie warstw.
C. kadrowanie.
D. zmiana rozmiaru.
Kadrowanie to proces polegający na wycinaniu fragmentu obrazu w celu skupienia uwagi na określonym elemencie lub poprawienia kompozycji. W kontekście grafiki internetowej, kadrowanie jest kluczowe, aby dostosować zdjęcia do wymagań wizualnych strony, zachowując jednocześnie wysoką jakość obrazu. Przykładowo, jeśli tworzymy stronę dla restauracji, możemy wyciąć fragment zdjęcia dania, aby lepiej zaprezentować jego szczegóły. Dobre praktyki w kadrowaniu obejmują stosowanie zasady trzech, która polega na umiejscowieniu kluczowych elementów obrazu w punktach przecięcia linii podziału. Warto również pamiętać o rozdzielczości i proporcjach, aby uniknąć rozmycia lub zniekształcenia obrazu. Kadrowanie jest często używane w różnych formatach wizualnych, takich jak posty w mediach społecznościowych, banery reklamowe czy galerie zdjęć. W ten sposób, odpowiednie kadrowanie przyczynia się do lepszej prezentacji treści oraz poprawia estetykę i przejrzystość strony internetowej.

Pytanie 5

Wskaż NIEPRAWIDŁOWE stwierdzenie dotyczące normalizacji dźwięku

A. Opcja normalizacja znajduje się w menu programu do edycji dźwięku
B. Jeśli najgłośniejszy element dźwięku osiąga połowę skali, wszystko zostanie zwiększone razy dwa - tak, aby najgłośniejszy element dotarł do maksimum na skali
C. Normalizacja polega na obniżeniu poziomu najgłośniejszej próbki w sygnale do ustalonej wartości, a następnie proporcjonalnym zwiększeniu głośności pozostałych części sygnału
D. W wyniku normalizacji następuje wyrównanie poziomu głośności całego nagrania
Odpowiedź jest prawidłowa, ponieważ proces normalizacji sygnału dźwiękowego faktycznie polega na dostosowywaniu głośności nagrania w taki sposób, aby najgłośniejszy fragment osiągał maksymalny poziom na skali. W praktyce, jeżeli najgłośniejszy element sygnału osiąga połowę skali, program do obróbki dźwięku zwiększa głośność wszystkich innych fragmentów, aby najgłośniejszy osiągnął pełną głośność. To działanie jest zgodne z powszechnie przyjętymi standardami normalizacji dźwięku, które zapewniają, że nagrania mają spójny poziom głośności, co jest istotne w produkcji audio, aby nie występowały nagłe zmiany głośności pomiędzy różnymi utworami. Normalizacja jest szczególnie przydatna w kontekście przygotowywania materiałów do publikacji, takich jak albumy muzyczne czy podcasty, gdzie istotne jest, by słuchacz nie musiał regulować głośności podczas odtwarzania różnych nagrań. Przykładem może być album muzyczny, gdzie różne utwory mogą mieć różne poziomy nagrania, a normalizacja pozwala na ich wyrównanie w celu uzyskania jednolitego doświadczenia słuchowego.

Pytanie 6

Którego symbolu używa się w CSS do zdefiniowania selektora KLASY?

A. # (krzyżyk)
B. . (kropka)
C. * (gwiazdka)
D. : (dwukropek)
Pozostałe symbole pełnią inne role. Krzyżyk # wskazuje selektor IDENTYFIKATORA (unikalnego w obrębie strony). Dwukropek : rozpoczyna pseudoklasę (np. :hover), a gwiazdka * to selektor uniwersalny obejmujący wszystkie elementy. Klasę oznacza kropka.

Pytanie 7

Użycie standardu ISO-8859-2 ma na celu zapewnienie prawidłowego wyświetlania

A. znaków zarezerwowanych dla języka opisu strony
B. polskich znaków, takich jak: ś, ć, ń, ó, ą
C. specjalnych znaków przeznaczonych dla języka kodu strony
D. symboli matematycznych
Wybór znaków matematycznych jako celu kodowania w standardzie ISO-8859-2 jest błędny, ponieważ ten standard nie koncentruje się na symbolach matematycznych, a raczej na literach i znakach typowych dla języków łacińskich, w tym polskiego. Mylne jest również stwierdzenie, że ISO-8859-2 jest używane do wyświetlania znaków specjalnych dla języka kodu strony, ponieważ te znaki są ogólnie obsługiwane przez różne standardy kodowania, w tym UTF-8, a ich obecność w ISO-8859-2 jest ograniczona. W przypadku znaków zarezerwowanych dla języka opisu strony, takich jak HTML, ich interpretacja nie zależy od konkretnego kodowania, lecz od zgodności z określonymi standardami HTML i CSS. Warto zwrócić uwagę, że wiele osób zapomina o różnicy między kodowaniem a samym językiem programowania; kodowanie dotyczy sposobu reprezentacji znaków, podczas gdy języki programowania definiują logikę oraz składnię. Często stosowanym błędem jest założenie, że każda strona internetowa musi wykorzystywać ISO-8859-2, co nie jest prawdą, zwłaszcza w dobie globalizacji i różnorodności językowej, gdzie coraz powszechniejsze staje się kodowanie UTF-8, które jest bardziej elastyczne i obsługuje szerszy zakres znaków.

Pytanie 8

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

A. klasy z 50 elementami typu tablicowego
B. tablicy z 50 elementami o składowych typu łańcuchowego
C. tablicy z 50 elementami o składowych strukturalnych
D. struktury z 50 elementami o składowych typu tablicowego
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 9

Algorytm przedstawiony dla tablicy n-elementowej t[n] ma na celu obliczenie sumy:

// K1
i = 0; wynik = 0;
// K2
while i < n do
// K3
wynik = wynik + t[i];
// K4
i = i + 2;
// K5
wypisz(wynik);
A. co drugi element tablicy.
B. elementów tablicy, których wartości są nieparzyste.
C. n-elementów tablicy.
D. wszystkie elementy tablicy.
Analizując różne odpowiedzi, łatwo zauważyć, że wiele osób może się pogubić, bo pętla wygląda niemal klasycznie, a jednak jest tu pewien haczyk. Często powtarzanym błędem jest automatyczne założenie, że taka konstrukcja sumuje wszystkie elementy tablicy – to przychodzi na myśl, gdy widzimy „while i < n” i sumowanie. Jednak kluczowe tutaj jest to, jak przebiega inkrementacja indeksu. Zamiast „i = i + 1”, mamy „i = i + 2”, co powoduje, że po skończeniu pętli w „wynik” trafia suma tylko tych elementów, których indeksy są parzyste (czyli co drugi element, poczynając od zera). To mocno różni się od sumowania wszystkich n-elementów. Kolejny błąd to mylenie wartości z indeksami – niektórzy mogą sądzić, że algorytm wybiera elementy nieparzyste względem wartości, ale w rzeczywistości decydujące jest, które komórki tablicy odwiedza pętla, a nie jakie wartości się w nich znajdują. W praktyce błędnie można też uznać, że „co drugi element” to to samo, co „wszystkie”, jeśli nie prześledzi się dokładnie jak zmienia się zmienna i. Niektórzy mogą też uznać, że chodzi o sumę elementów o nieparzystych wartościach, bo często takie zadania się pojawiają, ale tu nie ma żadnego warunku dotyczącego wartości – algorytm po prostu sumuje te, których indeksy są odpowiednie. Takie pomyłki są typowe, zwłaszcza u osób, które dopiero zaczynają przygodę z programowaniem i nie przywiązują wagi do szczegółów w kodzie. Moim zdaniem warto zawsze dokładnie prześledzić krok po kroku, które wartości są brane pod uwagę, a które nie. Tylko wtedy można mieć pewność, że rozumie się działanie algorytmu, co jest absolutną podstawą w praktyce zawodowej i na egzaminach technicznych.

Pytanie 10

Wskaż prawdziwe stwierdzenie o poleceniu:

CREATE TABLE IF NOT EXISTS adres (ulica VARCHAR(70) CHARACTER SET utf8);
A. do tabeli nie można wpisywać ulic z polskimi znakami
B. rekordem tabeli nie może być „3 MAJA”
C. klauzula IF NOT EXISTS jest opcjonalna i zapobiega błędowi, gdy tabela już istnieje
D. klauzula CHARACTER SET utf8 jest obowiązkowa
Klauzula IF NOT EXISTS jest OPCJONALNA i zabezpiecza CREATE TABLE - jeśli tabela o danej nazwie już istnieje, polecenie nie zgłosi błędu i nie utworzy jej ponownie. Dlatego prawdą jest, że IF NOT EXISTS jest opcjonalna i zapobiega błędowi przy istniejącej tabeli.

Pytanie 11

Która klauzula SQL służy do posortowania wyników zapytania?

A.
WHERE
B.
ORDER BY
C.
HAVING
D.
GROUP BY
Wyniki zapytania sortuje klauzula ORDER BY, po której podaje się kolumnę i kierunek: ASC (rosnąco, domyślnie) lub DESC (malejąco), np. SELECT * FROM klienci ORDER BY nazwisko ASC. Można sortować po wielu kolumnach. Dlatego do uporządkowania wyniku służy ORDER BY.

Pytanie 12

Zgodnie z zasadami ACID dotyczącymi przeprowadzania transakcji wymóg izolacji (ang. isolation) wskazuje, że

A. w sytuacji konfliktu z inną transakcją obie zmieniają te same dane równocześnie
B. po zrealizowaniu transakcji system bazy danych będzie zgodny
C. gdy dwie transakcje działają równocześnie, to zazwyczaj nie dostrzegają zmian wprowadzanych przez siebie
D. pod określonymi warunkami dane modyfikowane przez transakcję mogą być cofnięte
Izolacja (ang. isolation) jest jednym z kluczowych elementów właściwości ACID, które zapewniają niezawodność transakcji w systemach baz danych. Oznacza ona, że kiedy dwie lub więcej transakcji są wykonywane równolegle, nie powinny one wzajemnie wpływać na swoje wyniki. W praktyce oznacza to, że zmiany wprowadzone przez jedną transakcję nie są widoczne dla innych transakcji, dopóki nie zostaną one zatwierdzone (ang. commit). Przykładem może być sytuacja, w której jedna transakcja aktualizuje stan konta użytkownika, a druga transakcja odczytuje saldo tego konta. Dzięki właściwości izolacji, druga transakcja nie zobaczy zmian wprowadzonych przez pierwszą, co zapobiega niepożądanym efektom, takim jak odczytanie nieaktualnych danych. W praktycznych rozwiązaniach, takich jak bazy danych współczesnych systemów informatycznych, często stosuje się różne poziomy izolacji, takie jak Read Uncommitted, Read Committed, Repeatable Read czy Serializable, które pozwalają na dostosowanie stopnia izolacji do specyficznych wymagań aplikacji. Właściwe skonfigurowanie poziomu izolacji ma kluczowe znaczenie dla zachowania integralności danych oraz wydajności systemu.

Pytanie 13

Który atrybut znacznika <video> włącza ciągłe odtwarzanie (w pętli)?

A.
loop
B.
poster
C.
muted
D.
controls
Atrybut loop w <video> (i <audio>) sprawia, że nagranie po zakończeniu odtwarza się od początku, czyli w pętli. To atrybut logiczny - sama jego obecność włącza tę funkcję. Dlatego ciągłe odtwarzanie włącza loop.

Pytanie 14

Której wartości właściwości background-attachment użyć, aby tło pozostało nieruchome względem okna przeglądarki?

A.
local
B.
inherit
C.
scroll
D.
fixed
Wartość fixed właściwości background-attachment „przykleja” tło do okna przeglądarki - przy przewijaniu strony obraz tła pozostaje nieruchomy, a treść przesuwa się po nim (efekt paralaksy). Dlatego nieruchome tło ustawia fixed.

Pytanie 15

Którego atrybutu użyć, aby wartości w kolumnie NIE mogły się powtarzać?

A.
DEFAULT
B.
IDENTITY
C.
NOT NULL
D.
UNIQUE
Atrybut UNIQUE wymusza, by wartości w kolumnie się NIE powtarzały - baza odrzuci próbę wstawienia duplikatu. Stosuje się go np. dla adresów e-mail czy numerów PESEL. Dlatego unikalność zapewnia UNIQUE.

Pytanie 16

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

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

Pytanie 17

Aby policzyć wszystkie wiersze w tabeli Koty, należy użyć zapytania:

A.
SELECT COUNT(*) FROM Koty
B.
SELECT COUNT(Koty) AS ROWNUM
C.
SELECT ROWNUM() FROM Koty
D.
SELECT COUNT(ROWNUM) FROM Koty
Liczbę wszystkich wierszy tabeli zwraca funkcja agregująca COUNT(*), użyta w zapytaniu SELECT COUNT(*) FROM Koty. Gwiazdka oznacza „policz wszystkie wiersze”, niezależnie od wartości w kolumnach (także te z NULL). Dlatego poprawne jest SELECT COUNT(*) FROM Koty.

Pytanie 18

W języku PHP, aby nawiązać połączenie z bazą danych MySQL przy użyciu biblioteki mysqli, w poniższym zapisie w miejsce litery 'c' należy wpisać:

$a = new mysqli('b', 'c', 'd', 'e');
A. hasło dla użytkownika
B. adres serwera bazy danych
C. nazwa użytkownika
D. nazwa bazy danych
Odpowiedź 'nazwa użytkownika' jest na pewno właściwa, bo w konstruktorze klasy mysqli w PHP musimy podać nazwę użytkownika jako drugi argument. To ważne, bo bez tych danych, czyli nazwy użytkownika i hasła, nie da się połączyć z bazą danych. Używanie mysqli to dobra praktyka, zwłaszcza jeśli chodzi o bezpieczeństwo przed atakami SQL injection. Jak chcemy się połączyć, to zapisujemy to tak: $a = new mysqli('localhost', 'nazwa_użytkownika', 'hasło', 'nazwa_bazy'). Dzięki temu możemy na przykład ściągnąć dane z tabeli 'użytkownicy'. Warto też pamiętać o walidacji danych wejściowych i korzystaniu z przygotowanych zapytań, bo to naprawdę podnosi poziom bezpieczeństwa naszej aplikacji. I nie zapominaj, żeby zamknąć połączenie po zakończonej pracy, używając metody close().

Pytanie 19

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 20

Która wartość atrybutu target otwiera stronę w NOWYM oknie lub karcie?

A.
_self
B.
_top
C.
_blank
D.
_parent
Wartość _blank atrybutu target otwiera odnośnik w NOWYM oknie lub karcie przeglądarki, np. <a href="..." target="_blank">. Stosuje się ją, by nie odrywać użytkownika od bieżącej strony. Dlatego nowe okno otwiera _blank.

Pytanie 21

Który parametr obrazu zmieni się po zmianie wartości NASYCENIA (saturacji)?

A. ostrość krawędzi
B. kolejność wyświetlania pikseli
C. intensywność (żywość) barw
D. przezroczystość
Nasycenie (saturacja) określa INTENSYWNOŚĆ i czystość barw. Przy nasyceniu bliskim zera kolory bledną aż do skali szarości, a przy wysokim stają się soczyste i żywe - to typowy suwak w GIMP-ie czy Photoshopie, gdy zdjęcie ma wyglądać „mocniej” lub „spokojniej”. Sama jasność i barwa (odcień) pozostają, zmienia się tylko siła kolorów. Zapamiętaj: saturacja steruje żywością barw.

Pytanie 22

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

A.
addcookie()
B.
createcookie()
C.
setcookie()
D.
echocookie()
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 23

W HTML, aby ustawić tytuł dokumentu na "Moja strona", który pojawi się na karcie przeglądarki internetowej, należy użyć zapisu

A. <title>Moja strona</title>
B. <meta title="Moja strona">
C. <head>Moja strona</head>
D. <meta name="title" content="Moja strona">
Element <title> w HTML jest naprawdę ważny, bo to właśnie on ustala, co zobaczysz na zakładce w przeglądarce. Powinien być umieszczony w sekcji <head>, co jest zgodne z tym, co mówi W3C. Poprawny zapis wygląda tak: <title>Moja strona</title>, co sprawia, że "Moja strona" będzie się pokazywać jako tytuł w przeglądarce. Tytuł strony ma spore znaczenie dla SEO, bo wpływa na to, jak strona jest pozycjonowana w wynikach wyszukiwania. Warto, żeby tytuł był krótki, ale jednocześnie zawierał istotne informacje, a najlepiej, żeby nie miał więcej niż 60 znaków, żeby się nie obcinał w wynikach. Fajnie też umieścić w tytule kluczowe słowa, które opisują, o czym jest strona, bo to może zwiększyć jej atrakcyjność i CTR. Dobrze skonstruowany tytuł to też lepsza dostępność, bo ułatwia użytkownikom poruszanie się i orientowanie w otwartych zakładkach.

Pytanie 24

Aby zaprojektować kształt logo dla strony WWW sposobem przedstawionym na obrazie, należy zastosować funkcję

Ilustracja do pytania
A. sumy.
B. części wspólnej.
C. wykluczenia.
D. różnicy.
Niestety, wybrana odpowiedź jest niepoprawna. Zamiast 'różnicy', 'sumy' czy 'części wspólnej', poprawnym rozwiązaniem jest 'wykluczenie'. Na obrazie mamy do czynienia z dwoma kształtami, z których fioletowy jest nałożony na czerwony. Wynik to kształt pokazujący tylko te części czerwonego kształtu, które nie pokrywają się z fioletowym. Właśnie tak działa operacja wykluczenia w grafice komputerowej - wynikowa forma zawiera tylko te elementy jednego obiektu, które nie nakładają się z drugim. Operacje różnicy, sumy czy części wspólnej miałyby inne efekty. 'Różnica' usunęłaby część czerwonego kształtu pokrywającą się z fioletowym, 'suma' utworzyłaby kształt zawierający całość obu kształtów, a 'część wspólna' wytworzyłaby kształt pokrywający się z oboma kształtami. Odnoszenie się do niewłaściwych operacji może prowadzić do znacznych błędów w projektowaniu graficznym.

Pytanie 25

Którą funkcję z menu Kolory programu GIMP użyto, w celu uzyskania efektu przedstawionego w filmie?

A. Krzywe.
B. Progowanie.
C. Inwersja.
D. Barwienie.
Prawidłowo wskazana funkcja to „Progowanie”, bo dokładnie ona zamienia obraz kolorowy lub w odcieniach szarości na obraz dwuwartościowy: piksel jest albo czarny, albo biały, w zależności od tego, czy jego jasność przekracza ustawiony próg. W GIMP-ie znajdziesz ją w menu Kolory → Progowanie. Suwakami ustalasz zakres poziomów jasności, które mają zostać potraktowane jako „białe”, a wszystko poza tym zakresem staje się „czarne”. Efekt, który się wtedy uzyskuje, jest bardzo charakterystyczny: mocno kontrastowy, bez półtonów, coś w stylu skanu czarno-białego lub grafiki do druku na ploterze tnącym. Z mojego doświadczenia progowanie świetnie nadaje się do przygotowania logotypów, szkiców technicznych, schematów, a także do wyciągania konturów z lekko rozmytych zdjęć. Często używa się go też przed wektoryzacją, żeby program śledzący krawędzie miał wyraźne granice między czernią a bielą. W pracy z grafiką na potrzeby stron WWW próg bywa stosowany np. przy tworzeniu prostych ikon, piktogramów albo masek (maski przezroczystości można przygotować właśnie na bazie obrazu progowanego). Dobrą praktyką jest najpierw sprowadzenie obrazu do odcieni szarości i dopiero potem użycie progowania, bo wtedy masz większą kontrolę nad tym, jak rozkłada się jasność i gdzie wypadnie granica progu. Warto też pamiętać, że progowanie jest operacją destrukcyjną – traci się informacje o półtonach – więc najlepiej pracować na kopii warstwy, żeby w razie czego móc wrócić do oryginału i poprawić ustawienia progu.

Pytanie 26

Które stwierdzenie na temat funkcji fun1 zapisanej w języku JavaScript jest prawdziwe?

var x = fun1(3, 24, "Mnożymy");

function fun1(a, b, c) {
    return a * b;
}
A. Ma trzy parametry wejściowe, w tym jeden typu napisowego, i zwraca wartość numeryczną.
B. Przyjmuje trzy parametry, lecz nie zwraca wartości.
C. Ma dwa parametry liczbowe i zwraca wartość typu napisowego.
D. Zwraca dwie wartości przechowywane w zmiennych a i b.
Gratulacje, Twoja odpowiedź jest poprawna. Istotą funkcji w JavaScript jest to, że mogą one przyjmować dowolną liczbę argumentów i mogą zwracać wartość. W przypadku funkcji fun1, przyjmuje ona trzy parametry: a, b, c. Parametr c jest typu napisowego, co jest istotne, ponieważ JavaScript jest językiem słabo typowanym, co oznacza, że możemy przekazywać różne typy zmiennych jako argumenty dla funkcji. Funkcja fun1 zwraca wynik mnożenia dwóch pierwszych parametrów, co jest wartością numeryczną. To jest zgodne z zasadami JavaScript, gdzie funkcje mogą zwracać dowolne wartości - w tym przypadku wartość numeryczną. W praktyce, funkcje takie jak ta mogą być używane w różnych kontekstach, na przykład do manipulacji danymi wejściowymi i zwracania przetworzonych wyników.

Pytanie 27

Dana jest tablica n-elementowa o nazwie t[n] Zadaniem algorytmu zapisanego w postaci kroków jest wypisanie sumy

K1: i = 0; wynik = 0;
K2: Dopóki i < n wykonuj K3 .. K4
    K3: wynik ← wynik + t[i]
    K4: i ← i + 2
K5: wypisz wynik
A. n-elementów tablicy.
B. sumy wszystkich elementów tablicy.
C. co drugiego elementu tablicy.
D. sumy tych elementów tablicy, których wartości są nieparzyste.
Niestety, Twoje odpowiedzi nie są do końca poprawne i widać, że coś Ci umknęło w tej kwestii. Algorytm nie sumuje wszystkich elementów tablicy, ani nie odnosi się do ich parzystości. Właściwie to sumuje co drugi element, a nie wszystkie naraz. Kiedy myślisz o sumowaniu n-elementów, warto wiedzieć, że 'n' oznacza wielkość tablicy, a nie mówi, które elementy są sumowane. Przypomnij sobie, że algorytm używa pętli i zmiennej, która idzie o 2 w każdej turze, więc nic nie stoi na przeszkodzie, żeby lepiej zrozumieć, jak to działa. To kluczowe, bo dobra znajomość algorytmów i tablic to podstawa w programowaniu.

Pytanie 28

W języku PHPnie ma możliwości

A. obróbka informacji przechowywanych w bazie danych
B. przetwarzanie danych z formularzy
C. tworzenie dynamicznej zawartości strony internetowej
D. zmienianie dynamiczne treści strony HTML w przeglądarce
Odpowiedź dotycząca zmieniania dynamicznej zawartości strony HTML w przeglądarce jest poprawna, ponieważ PHP jest językiem skryptowym działającym po stronie serwera. Oznacza to, że PHP nie jest w stanie bezpośrednio modyfikować zawartości strony HTML po jej załadowaniu w przeglądarce użytkownika. Zamiast tego, PHP generuje HTML, który następnie jest przesyłany do przeglądarki. Dynamiczna zawartość strony może być generowana na podstawie danych z bazy danych lub formularzy, ale wszelkie zmiany w HTML po stronie klienta wymagają użycia języków, które działają po stronie przeglądarki, takich jak JavaScript. Przykładem może być sytuacja, w której użytkownik wypełnia formularz, a dane są przetwarzane przez PHP, które zwraca zaktualizowaną stronę. W przypadku potrzeby dynamicznych zmian, JavaScript może być użyty do manipulacji DOM po załadowaniu strony. Warto również zauważyć, że zgodnie z dobrymi praktykami, powinno się oddzielać logikę serwerową (PHP) od logiki klienckiej (JavaScript), co przyczynia się do lepszej struktury kodu i ułatwia jego utrzymanie.

Pytanie 29

W systemie baz danych wykonano następujące operacje dotyczące uprawnień użytkownika adam: GRANT ALL PRIVILEGES ON klienci To adam REVOKE SELECT, INSERT, UPDATE ON klienci FROM adam. Jakie prawa będzie miał użytkownik adam po zrealizowaniu tych operacji?

A. tworzenia tabeli klienci oraz wprowadzania do niej danych
B. przeglądania tabeli klienci i dodawania do niej rekordów
C. aktualizowania danych oraz przeglądania tabeli klienci
D. usunięcia tabeli lub jej danych
Odpowiedzi, które sugerują, że użytkownik adam ma inne prawa, są niepoprawne z technicznego punktu widzenia. Użytkownik ten nie może aktualizować danych ani przeglądać tabeli klienci, ponieważ prawa do aktualizacji i przeglądania zostały odebrane przez polecenie REVOKE. Oznacza to, że wszystkie operacje wymagające dostępu do odczytu oraz modyfikacji danych w tabeli klienci są dla niego zablokowane. Kolejna nieprawidłowa odpowiedź sugeruje, że adam ma prawo do tworzenia tabeli klienci, co jest również błędne, ponieważ w kontekście przyznanych uprawnień użytkownik nie uzyskał prawa do tworzenia nowych obiektów w bazie danych. Ostatecznie, odpowiedzi te nie uwzględniają, że konkretne działania, takie jak wstawianie nowych rekordów, są zablokowane przez REVOKE, co skutkuje brakiem możliwości dodawania danych do tabeli klienci. Wnioskując, użytkownik adam ma jedynie prawo do usuwania rekordów, a nie do przeglądania, aktualizowania czy tworzenia nowych tabel, co jest kluczowe przy zarządzaniu dostępem do baz danych.

Pytanie 30

Deklaracja

<!DOCTYPE html>
informuje przeglądarkę internetową o:
A. dostosowaniu strony internetowej do różnych rozmiarów urządzeń.
B. wersji języka HTML zastosowanej w dokumencie strony internetowej.
C. tytule strony internetowej.
D. indeksowaniu strony internetowej na potrzeby pozycjonowania witryny.
Deklaracja <!DOCTYPE html> to wbrew pozorom bardzo ważny element każdej poprawnej strony internetowej. Informuje przeglądarkę, jaka wersja języka HTML została użyta w dokumencie, a w praktyce – że ma renderować stronę w trybie zgodnym ze współczesnym standardem HTML5. Dzięki temu przeglądarka nie próbuje włączać tzw. „quirks mode”, czyli trybu zgodności ze starymi, historycznymi błędami Internet Explorera, tylko stosuje aktualne zasady specyfikacji. Moim zdaniem to jest jeden z tych drobiazgów, które po prostu trzeba pisać z automatu na górze każdego pliku .html.

W starszych wersjach HTML deklaracja DOCTYPE była dużo dłuższa i określała konkretne DTD (Document Type Definition), np. dla HTML 4.01 Transitional czy XHTML 1.0 Strict. W HTML5 uproszczono to do jednej, krótkiej formy: <!DOCTYPE html>. To właśnie ta linijka mówi: „to jest dokument HTML5”. Na tej podstawie silnik przeglądarki dobiera reguły parsowania, walidacji struktury i sposób interpretacji wielu elementów, np. sekcji <header>, <footer>, <section>, a także nowych atrybutów formularzy.

W praktyce, gdy tworzysz nową stronę, zawsze zaczynasz od:

<!DOCTYPE html>
<html lang="pl">
<head>…

Jeśli pominiesz DOCTYPE albo wpiszesz go błędnie, możesz mieć kłopot z tym, że strona wygląda inaczej w różnych przeglądarkach, pojawią się problemy z modelu pudełkowym CSS (box model), z obsługą nowych znaczników lub z poprawnym działaniem responsywnego layoutu. Walidatory W3C też zakładają konkretną wersję HTML na podstawie DOCTYPE i pod nią sprawdzają poprawność kodu. Z mojego doświadczenia wynika, że poprawny DOCTYPE to absolutna podstawa profesjonalnego front-endu, nawet jeśli wygląda jak coś „magicznego” na samej górze pliku.

Pytanie 31

Do czego odnosi się termin „front-end” w kontekście tworzenia stron internetowych?

A. do bazy danych z informacjami prezentowanymi na stronie
B. do organizacji danych na serwerze WWW
C. do działania skryptów wykonywanych po stronie serwera
D. do interfejsu strony i technologii działających w przeglądarce
Termin „front-end” odnosi się do warstwy widocznej dla użytkownika - interfejsu strony i technologii działających w PRZEGLĄDARCE (HTML, CSS, JavaScript). Dlatego front-end to interfejs strony i technologie działające w przeglądarce.

Pytanie 32

Po wykonaniu instrukcji języka JavaScript  x = Math.ceil(2.4); wartość zmiennej x będzie wynosić

A. 4
B. 3
C. 2
D. 8
W tym zadaniu najczęstszy problem polega na pomyleniu różnych sposobów zaokrąglania liczb w JavaScript. Wiele osób odruchowo myśli o zwykłym zaokrąglaniu matematycznym i zakłada, że 2.4 powinno zostać zaokrąglone do 2, bo jest bliżej dwójki niż trójki. To byłoby prawdziwe dla Math.round(2.4), ale nie dla Math.ceil(2.4). I tu jest cały haczyk.
Math.ceil() nie patrzy, czy liczba jest bliżej niższego czy wyższego całkowitego. Ta funkcja zawsze zaokrągla w górę, czyli w stronę dodatniej nieskończoności. Jeżeli mamy 2.0001, 2.4 czy 2.9 – w każdym z tych przypadków Math.ceil() zwróci 3. Jedynie gdy liczba jest już całkowita, np. 2.0, wynik pozostanie 2. Odpowiedź 2 wynika więc z błędnego założenia, że ceil działa jak klasyczne „zaokrąglanie w dół przy małej części ułamkowej”. Tymczasem do zaokrąglania w dół służy Math.floor(), która z 2.4 zrobiłaby 2.
Zdarza się też, że ktoś mechanicznie przeskakuje o „więcej niż jedną” jednostkę i wybiera 4 albo nawet 8, jakby ceil miał coś wspólnego z podwajaniem wartości albo jakimś magicznym przeskokiem. To już kompletnie nie ma uzasadnienia w definicji funkcji. Math.ceil() nie skaluje liczby, nie mnoży jej, nie patrzy na „odległość” od kolejnych całkowitych, tylko wybiera najbliższą liczbę całkowitą większą lub równą podanej wartości.
Z mojego doświadczenia taki błąd często wynika z mieszania w głowie kilku funkcji naraz: ceil, floor, round, czasem jeszcze parseInt. Dobra praktyka jest taka, żeby kojarzyć je kierunkowo: floor – w dół, ceil – w górę, round – do najbliższej. W codziennym programowaniu webowym ma to ogromne znaczenie, np. przy paginacji, gdzie zazwyczaj właśnie Math.ceil() liczy liczbę stron, bo nie możesz obciąć „końcówki” wyników. Jeśli zaokrąglisz w dół, użytkownik straci część danych. Jeżeli zrozumiesz dokładnie różnicę między tymi funkcjami, takie pytania nie będą sprawiały żadnego problemu.

Pytanie 33

W przedstawionym kodzie HTML, zaprezentowany styl CSS jest stylem:

<p style="color:red;">To jest przykładowy akapit.</p>
A. zewnętrznym
B. lokalnym
C. dynamicznym
D. nagłówkowym
Styl CSS określony wewnątrz elementu HTML poprzez atrybut style jest przykładem stylu lokalnego. Styl lokalny pozwala na bezpośrednie przypisanie konkretnych własności CSS do pojedynczego elementu co umożliwia szybkie i łatwe testowanie oraz modyfikacje wyglądu bez potrzeby edytowania zewnętrznych plików CSS. Praktyczne zastosowanie stylów lokalnych odnajdujemy w sytuacjach gdy chcemy wprowadzić zmiany dla pojedynczego elementu na stronie nie wpływając na inne elementy. Na przykład jeśli w jednym miejscu chcemy podkreślić wagę tekstu stosując kolor czerwony możemy użyć stylu lokalnego jak pokazano w pytaniu. Jednak styl lokalny nie jest zalecany dla większych projektów czy skomplikowanych stron ze względu na fakt że utrudnia zarządzanie i utrzymywanie spójnego stylu w całym projekcie. W takich przypadkach lepiej korzystać ze stylów zewnętrznych lub nagłówkowych które oferują lepszą organizację i elastyczność. Warto również pamiętać że implementacja stylu lokalnego może nadpisywać inne style co jest istotne przy rozwiązywaniu problemów związanych z dziedziczeniem stylów CSS.

Pytanie 34

Jakie znaki <header>, <article>, <section>, <footer> są typowe dla tego języka?

A. HTML 4.01 Transitional
B. XHTML 1.1
C. HTML 4.01 Strict
D. HTML 5
Znaczniki <header>, <article>, <section>, <footer> są częścią specyfikacji HTML5, która wprowadziła bardziej semantyczne podejście do strukturyzacji dokumentów webowych. Te elementy umożliwiają programistom tworzenie bardziej przejrzystych i zrozumiałych dokumentów, zarówno dla ludzi, jak i dla maszyn. Na przykład, znacznik <header> definiuje nagłówek strony lub sekcji, <article> służy do oznaczania samodzielnych treści, które mogą być niezależnie dystrybuowane, <section> grupuje powiązane tematycznie elementy, a <footer> zawiera informacje o końcu strony lub sekcji. Użycie tych znaczników ma kluczowe znaczenie dla SEO, ponieważ wyszukiwarki mogą lepiej zrozumieć strukturę treści na stronie. Dodatkowo, zastosowanie tych elementów wspiera dostępność, ułatwiając nawigację osobom korzystającym z czytników ekranu. W praktyce, stosując te znaczniki, programiści tworzą bardziej uporządkowane i zrozumiałe strony, co jest zgodne z najlepszymi praktykami w branży.

Pytanie 35

Czym jest w C++ zmienna zadeklarowana jako char zm1[10];?

A. tablicą łańcuchów
B. liczbą
C. tablicą znaków
D. znakiem
Deklaracja char zm1[10]; w C++ tworzy TABLICĘ dziesięciu znaków - ciąg char o indeksach 0-9. Tak w klasycznym C/C++ przechowuje się napisy (C-string zakończony \\0). Dlatego char zm1[10] to tablica znaków.

Pytanie 36

Grafik chce przekształcić bez utraty jakości obraz formatu JPEG w format PNG w ten sposób, żeby wszędzie tam, gdzie w pierwotnym obrazie jest kolor biały, w obrazie docelowym była przezroczystość. Aby to zrobić, powinien

A. dodać kanał alfa.
B. zaimportować obraz do edytora grafiki wektorowej.
C. zmniejszyć rozdzielczość obrazu.
D. przekształcić obraz w odcienie szarości.
Prawidłowa odpowiedź wynika z samej idei przezroczystości w grafice rastrowej. Żeby w PNG jakikolwiek piksel mógł być przezroczysty, obraz musi mieć kanał alfa, czyli dodatkową składową opisującą stopień przeźroczystości (opacity) dla każdego piksela. Standardowe RGB ma trzy kanały: R (czerwony), G (zielony), B (niebieski). Format PNG bardzo często używa wariantu RGBA, gdzie A (alpha) definiuje, na ile piksel jest widoczny: 0 oznacza całkowitą przezroczystość, 255 (albo 1.0 przy wartościach zmiennoprzecinkowych) pełną nieprzezroczystość. Dopiero po dodaniu kanału alfa można w programie graficznym zaznaczyć wszystkie białe obszary i ustawić im wartość alfa na 0. To właśnie realizuje wymaganie: „tam gdzie biały – ma być przezroczystość”. Z mojego doświadczenia w pracy z grafiką na potrzeby WWW, typowy workflow wygląda tak: otwierasz JPEG w edytorze rastrowym (np. GIMP, Photoshop, Krita), konwertujesz obraz do trybu z kanałem alfa (w Photoshopie: „Layer > New > Layer from Background” i „Add Layer Mask” albo „Add Alpha Channel” w GIMP-ie), następnie za pomocą narzędzia zaznaczania koloru (Magic Wand / Select by Color) wybierasz białe fragmenty i je usuwasz lub zmniejszasz im krycie. Dopiero potem zapisujesz jako PNG, który natywnie wspiera przezroczystość zgodnie ze specyfikacją formatu. Ważne też, że przy takim przekształceniu nie zwiększasz strat kompresji, bo PNG jest formatem bezstratnym. Straty są już w JPEG-u i ich się nie cofnie, ale samo przejście do PNG z kanałem alfa nie pogorszy jakości bardziej. W praktyce to jest standardowa procedura przygotowania ikon, logotypów i elementów UI na strony WWW, gdzie tło strony „prześwituje” przez przezroczyste fragmenty grafiki.

Pytanie 37

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s długość tekstu z zmiennej t
B. wyświetli długość tekstu z zmiennej t
C. przypisze zmiennej s zmienną t
D. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
Błędne przypuszczenie że kod wyświetli długość napisu ze zmiennej t wynika z niezrozumienia różnicy między przypisaniem a wyświetleniem wartości. W podanym przykładzie zmienna s przechowuje długość napisu ale kod nie zawiera żadnej instrukcji wyświetlenia tej wartości. W JavaScript do wyświetlenia w konsoli wymagane jest użycie funkcji console.log co nie zostało tu zawarte. Następnie błędna odpowiedź dotycząca przypisania fragmentu napisu wskazuje na niezrozumienie zastosowania właściwości length która zwraca całkowitą długość łańcucha a nie jego część. Aby uzyskać fragment łańcucha należałoby użyć metody substring lub slice które tej funkcji tutaj nie ma. Ostatnia błędna odpowiedź sugerująca że zmienna s przechowuje cały napis z t wykazuje brak zrozumienia samego przypisania w kontekście obiektów stringowych w JavaScript. Gdyby celem było przypisanie całego łańcucha należałoby użyć samego t bez length. Zrozumienie różnic w działaniach właściwości i metod w JavaScript jest kluczowe w skutecznym programowaniu i unikania błędów logicznych które mogą prowadzić do nieoczekiwanych rezultatów w działaniu aplikacji.

Pytanie 38

Które zdarzenie JavaScript zachodzi, gdy kursor myszy znajdzie się nad elementem, do którego jest przypisane?

A.
onmouseout
B.
onmouseover
C.
onmouseup
D.
onmousedown
Zdarzenie onmouseover jest wyzwalane w chwili, gdy kursor myszy najedzie na element, do którego je przypisano - wykorzystuje się je np. do podświetlania elementów czy wyświetlania podpowiedzi. Parą do niego jest onmouseout, zachodzące przy opuszczeniu elementu. Inne zdarzenia myszy dotyczą klikania: onmousedown (naciśnięcie) i onmouseup (zwolnienie). Dlatego najechanie kursorem obsługuje onmouseover.

Pytanie 39

Jakiego typu tablicy dotyczy instrukcja dodawania elementu w JavaScript?

Tablica['technik'] = 'informatyk';
A. liczbowej
B. stałej
C. wielowymiarowej
D. asocjacyjnej
Tablice statyczne są strukturami danych, których rozmiar jest ustalony podczas deklaracji i nie może być zmieniony w trakcie działania programu. W językach programowania takich jak C czy C++ tablice statyczne są powszechnie wykorzystywane, lecz w JavaScript, gdzie struktury danych są zazwyczaj dynamiczne, taki koncept jest mniej istotny. Tablice numeryczne w kontekście JavaScript to po prostu tablice, które używają indeksów liczbowych do przechowywania danych. Jednakże, możliwość przypisania wartości do indeksu tekstowego, jak w przypadku 'Tablica['technik'] = 'informatyk';', jest charakterystyczna dla tablic asocjacyjnych, nie dla numerycznych. Tablice numeryczne mogą przetrzymywać dane w uporządkowany sposób, ale nie umożliwiają użycia kluczy innych niż liczby całkowite, co ogranicza ich zastosowania w porównaniu do tablic asocjacyjnych. Tablice wielowymiarowe to kolekcje tablic, gdzie każda komórka może przechowywać inną tablicę. W JavaScript można tworzyć tablice wielowymiarowe poprzez zagnieżdżanie tablic, ale nie ma to związku z przypisywaniem kluczy tekstowych. Zastosowanie nazwanych kluczy, jak w podanym przykładzie, jest specyficzne dla tablic asocjacyjnych, które w JavaScript są implementowane jako obiekty i pozwalają na bardziej elastyczne zarządzanie danymi niż tablice wielowymiarowe, które skupiają się na przechowywaniu danych w formie tabeli. Typowym błędem jest mylenie tablic numerycznych z asocjacyjnymi, co może prowadzić do błędów w kodzie związanych z nieprawidłowym dostępem do danych lub ich organizacją, co wyraźnie pokazuje, że zrozumienie różnic między tymi strukturami danych jest kluczowe dla efektywnego programowania w JavaScript.

Pytanie 40

Poprawny zapis znacznika , za pomocą którego można umieścić na stronie internetowej obraz rys.jpg przeskalowany do szerokości 120 px i wysokości 80 px z tekstem alternatywnym "krajobraz" to

A. <img image="rys.jpg" width="120px" height="80px" alt="krajobraz">
B. <img src="rys.jpg" height="120px" width="80px" info="krajobraz">
C. <img href="rys.jpg" height="120px" width="80px" info="krajobraz">
D. <img src="rys.jpg" width="120px" height="80px" alt="krajobraz">
Odpowiedź <img src="rys.jpg" width="120px" height="80px" alt="krajobraz"> jest na pewno dobra! Używasz fajnego atrybutu 'src' do wskazania, skąd bierzesz obrazek, co jest super ważne. Atrybuty 'width' i 'height' też są dobrze ustawione, bo określają, jak duży ma być obrazek na stronie. To naprawdę przydaje się, zwłaszcza jak robimy responsywne strony. A ten 'alt', to świetny pomysł – daje tekst alternatywny, co bardzo pomaga osobom, które korzystają z czytników ekranu. Bez tego mogą nie wiedzieć, co jest na obrazku, a to jest spoko, bo dba o dostępność. Co do pikseli, używasz ich standardowo, ale pomyśl, że w CSS można też iść w procenty czy jednostki względne, żeby było jeszcze elastyczniej. W sumie, gdybyś chciał, mógłbyś bawić się CSS-em do stylizacji obrazów tła, co też sprawia, że wszystko lepiej się dopasowuje do różnych ekranów.