Arkusz INF.03 : 2025 - czerwiec - zad. 05 (js)
Oznaczenie: INF.03-05-25.06-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Numer, którym został podpisany arkusz egzaminacyjny (PESEL lub w przypadku jego braku numer paszportu) jest w zadaniu nazywany numerem zdającego.
Wykonaj aplikację internetową salonu fotograficznego, wykorzystując edytor grafiki rastrowej, pakiet XAMPP oraz edytor zaznaczający składnię.
Aby wykonać zadanie, należy zalogować się na konto Egzamin bez hasła. Na pulpicie znajduje się archiwum 7z o nazwie PlikiCz202505 zabezpieczone hasłem: #Foto+Foto&
Archiwum należy rozpakować
Na pulpicie konta Egzamin należy utworzyć folder. Jako nazwy folderu należy użyć numeru zdającego. Wszystkie wyniki należy zapisać w tym folderze.
Operacje na bazie danych
Do wykonania operacji na bazie należy wykorzystać przedstawione na Ilustracji 1 tabele. Kluczem obcym dla relacji jest pole rodzaj w tabeli zamowienia.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj następujące operacje na bazie danych:
- Utwórz bazę danych o nazwie
fotografia, z zestawem polskich znaków (np.utf8_unicode_ci) - Z rozpakowanego archiwum zaimportuj tabele z pliku
fotografia.sql - Wykonaj zrzut ekranu po imporcie. Zapisz zrzut w formacie
PNGpod nazwąimport. Nie kadruj zrzutu. Powinien on obejmować cały ekran monitora, z widocznym paskiem zadań. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel - Wykonaj
zapytania SQLdziałające na baziefotografia. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formaciePNGi nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie pola
plik,nr_klienta,liczba_odbitekdla zamówień napapierze matowym, z liczbą odbitek większą od100 - Zapytanie 2: wybierające dla klienta o identyfikatorze
3wartościjego zamówień, obliczane na podstawie liczbyodbitekiceny, nazwa kolumny (alias) „Do zapłaty”. Należy posłużyć sięrelacją - Zapytanie 3: zliczające
sumęwszystkich odbitek napapierze błyszczącym - Zapytanie 4: tworzące konto użytkownika
Annanalocalhostz hasłem@NNa
- Zapytanie 1: wybierające jedynie pola
Witryna internetowa
Ilustracja 2. Wygląd strony internetowej w przeglądarce Chrome, widać dymek dla obrazu 7.jpg

Cechy grafiki 10.jpg:
- Grafikę należy przeskalować z zachowaniem proporcji do wysokości
200 px
Cechy witryny:
- Składa się z podstron o nazwach
zamowienie.html,regulamin.html,uslugi.html - W pliku
regulamin.htmlnależy zapisać jedynie: „Regulamin” - W pliku
uslugi.htmlnależy zapisać jedynie: „Usługi”
Cechy strony zamowienie.html:
- Zapisana w języku
HTML5 - Zadeklarowany
polskijęzyk zawartości witryny - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: „Fotografia”
- Arkusz stylów w pliku o nazwie
style.cssprawidłowo połączony z kodem strony - Podział strony na bloki zrealizowany za pomocą
semantycznych znacznikówbloków językaHTML5tak, aby po uruchomieniu w przeglądarce układ bloków na stronie był zgodny zIlustracją 3 - Zawartość bloku nagłówkowego: nagłówek
pierwszegostopnia o treści „Fotografia artystyczna” - Zawartość bloku sekcji obrazów: 10 obrazów od
1.jpgdo10.jpg. Wszystkie obrazy mają tekst alternatywny „obrazy do sprzedaży” oraz tekst dymka podpowiedzi taki sam jak nazwa pliku, np. 1.jpg - Zawartość bloku głównego: bloki sekcji lewej, nawigacyjny i sekcji prawej
- Zawartość sekcji lewej:
- Nagłówek
trzeciegostopnia o treści „Zamówienie” - Etykieta „Wybierz obraz: ”, powiązana z polem edycyjnym znajdującym się obok
- Pole edycyjne przeznaczone do wyboru
pliku. Akceptuje tylko obrazy w formacieJPEG - Poniżej etykieta „Liczba Kopii: ”, powiązana z polem edycyjnym znajdującym się obok
- Pole edycyjne przeznaczone do wpisywania jedynie
liczb - Poniżej pole opcji „Papier błyszczący”, domyślnie zaznaczone
- Poniżej pole opcji „Papier matowy”
- W jednym momencie można zaznaczyć
tylko jednopole opcji - Przycisk „Dodaj do koszyka”, którego kliknięcie wywołuje skrypt
- Nagłówek
- Zawartość bloku nawigacyjnego:
- Lista
punktowana(nieuporządkowana) z elementami:- Odnośnik prowadzący do podstrony
regulamin.htmlo treści „Regulamin” - Odnośnik prowadzący do podstrony
uslugi.htmlo treści „Usługi” - Odnośnik prowadzący do strony internetowej
https://pixabay.como treści „Zdjęcia”
- Odnośnik prowadzący do podstrony
- Lista
- Zawartość sekcji prawej:
- Nagłówek
trzeciegostopnia o treści „Koszyk" - Blok, w którym zostanie umieszczony efekt działania skryptu
- Nagłówek
- Zawartość stopki:
paragrafo treści „Autor strony: ”, dalej wstawionynumer zdającego. Numer zdającego jest zapisany za pomocą znacznika semantycznego oznaczającego tekstuwypuklony, formatowany domyślnie jakopochylony
Ilustracja 3. Układ bloków

Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym pliku o nazwie style.css. Cechy formatowania CSS działające na stronie:
- Domyślnie, dla wszystkich selektorów: krój czcionki
Century Gothic, w przypadku brakuArial - Dla ciała strony: kolor tła
BlanchedAlmond - Dla bloku nagłówkowego i stopki: kolor tła
Sienna,białykolor czcionki, marginesy wewnętrzne5 px, wyrównanie tekstudo środka, rozmiar czcionki130% - Dla sekcji lewej: kolor tła
NavajoWhite, marginesy zewnętrzne10 px, wewnętrzne20 px, szerokość35%, wysokość400 px, cień o przesunięciu5 pxw obu osiach, rozmyciu10 pxi kolorzeDimGray - Dla bloku nawigacyjnego: szerokość
50%, wysokość50 px - Dla sekcji prawej: szerokość
50%, wysokość420 px, paski przewijania pojawiające się tylko w przypadku przepełnienia bloku - Dla pola edycyjnego i przycisku: jedynie zewnętrzny margines górny
20 px - Dla selektora elementu listy: sposób wyświetlania
liniowo-blokowy - Dla selektora obrazu: szerokość
10%, opływaniepo prawej stronie(obraz po lewej stronie) - Dla selektora odnośnika: kolor czcionki
Sienna, jedynie zewnętrzny margines prawy30 px - W momencie, gdy kursor znajdzie się na odnośniku jego kolor czcionki zamienia się na
#4C1900
- UWAGA!
- Styl CSS elementu listy, obrazu i odnośnika należy zdefiniować wyłącznie przy pomocy selektora tych znaczników. Jest to uwarunkowane projektem późniejszej rozbudowy witryny.
Skrypt
W Tabeli 1 zamieszczono wybrane pola i metody modelu DOM w języku JavaScript. Wymagania dotyczące skryptu:
- Wykonywany po stronie klienta, po kliknięciu przycisku
- Należy stosować znaczące nazewnictwo zmiennych i funkcji w języku polskim lub angielskim
- Pobiera dane z kontrolek
- Oblicza cenę na podstawie liczby kopii i rodzaju papieru. Dla papieru błyszczącego cena jednostkowa wynosi
1,5 zł, dla papieru matowego –2 zł - Ustala nazwę pliku z wartości pobranej z pierwszego pola edycyjnego
- Tworzy elementy i dodaje je do bloku z sekcji prawej (
Ilustracja 4):- Element DOM dla obrazu z ustaloną nazwą pliku
- Element DOM dla paragrafu z treścią „Liczba kopii: <kopie>”, gdzie pole <> jest pobrane z kontrolki
- Element DOM dla paragrafu z treścią „Cena: <cena>”, gdzie pole <> jest wyliczoną ceną
Ilustracja 4. Działanie skryptu – trzy razy wypełniono i zatwierdzono formularz


Tabela 1. Wybrane pola i metody modelu DOM języka JavaScript
| Wyszukiwanie elementów |
|---|
| document.getElementById(Id) |
| document.getElementByTagName(TagName) |
| document.getElementsByClassName(ClassName) |
| document.getElementsByName(ElementName) |
| document.querySelector(CSSselector) |
| document.querySelectorAll(CSSselector) |
| Zmiana elementów |
|---|
| element.innerHTML = "nowa zawartość" |
| element.attribute_name = "nowa wartość" |
| element.setAttribute(atrybut,wartość) |
| element.style.property_name = "nowa wartość" |
| Operacje na elementach dokumentu |
|---|
| document.createElement(element) |
| document.removeChild(element) |
| document.appendChild(element) |
| document.replaceChild(element) |
| document.write(text) |
| Wybrane właściwości obiektu style |
|---|
| backgroundColor |
| color |
| fontSize |
| fontStyle = "normal | italic | oblique | initial | inherit" |
| fontWeight = "normal | lighter | bold | bolder | value | initial | inherit" |
| listStyleType = "circle| decimal | disc | none | square | initial..." |
| Wybrane zdarzenia HTML |
|---|
| Zdarzenia myszy: onclick, ondblclick, onmouseover, onmouseout |
| Zdarzenia klawiatury: onkeydown, onkeypress, onkeyup |
| Zdarzenia obiektów: onload, onresize, onfocusin, onfocusout |
| Elementy formularzy |
|---|
| Ważniejsze typy pola input: button, checkbox, number, password, radio, text, range |
| Inne elementy: select, textarea |
| Metody i pola obiektu string (JS) |
|---|
| length |
| indexOf(text) |
| search(text) |
| substr(startIndex, endIndex) |
| replace(textToReplace, newText) |
| toUpperCase() |
| toLowerCase() |
Tabela 2. Tworzenie elementów w JavaScript

Tabela 3. Semantic Elements in HTML
| Tag | Description |
|---|---|
| <article> | Defines independent, self-contained content |
| <aside> | Defines content aside from the page content |
| <details> | Defines additional details that the user can view or hide |
| <figcaption> | Defines a caption for a <figure> element |
| <figure> | Specifies self-contained content, like illustrations, diagrams, photos, code listings, etc. |
| <footer> | Defines a footer for a document or section |
| <header> | Specifies a header for a document or section |
| <main> | Specifies the main content of a document |
| <mark> | Defines marked/highlighted text |
| <nav> | Defines navigation links |
| <section> | Defines a section in a document |
| <summary> | Defines a visible heading for a <details> element |
| <time> | Defines a date/time |
- UWAGA!
- Po zakończeniu pracy utwórz plik tekstowy o nazwie przeglądarka.txt. Zapisz w nim nazwę przeglądarki internetowej, w której weryfikowana była poprawność działania witryny. Umieść go w folderze z numerem zdającego.
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego, powinny znajdować się pliki: 10 obrazów o nazwach 1.jpg – 10.jpg, import.png, kw1.png, kw2.png, kw3.png, kw4.png, kwerendy.txt, przeglądarka.txt, regulamin.html, style.css, uslugi.html, zamowienie.html, ewentualnie inne przygotowane pliki. Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę numerem zdającego i pozostaw zapakowaną w pudełku na stanowisku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 150 minut.
Ocenie podlegać będzie 5 rezultatów:
- operacje na bazie danych
- zawartość witryny internetowej
- działanie witryny internetowej
- styl CSS witryny internetowej
- skrypt.

Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!