Arkusz INF.03 : 2025 - czerwiec - zad. 02 (js)
Oznaczenie: INF.03-02-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ą obsługującą notatki z zadaniami do wykonania, wykorzystując pakiet XAMPP, edytor grafiki rastrowej 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 PlikiCz202502 zabezpieczone hasłem: #ToDoList@
Archiwum należy rozpakować.
Na pulpicie konta Egzamin należy utworzyć folder. Jako nazwy folderu należy użyć numeru zdającego. Rozpakowane pliki należy umieścić w tym folderze. Po skończonej pracy wszystkie wyniki należy zapisać w tym folderze.
Operacje na bazie danych
Baza danych jest zgodna ze strukturą przedstawioną na Ilustracji 1.
Ilustracja 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj operacje na bazie danych:
- Utwórz bazę danych o nazwie
notatki, z zestawem polskich znaków (np.utf8_unicode_ci) - Do bazy zaimportuj tabele z pliku
baza.sqlz rozpakowanego archiwum - Wykonaj zrzut ekranu po imporcie. Zrzut zapisz 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 bazie notatki. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacieJPEGi nadaj im nazwykw1,kw2,kw3,kw4. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań- Zapytanie 1: wybierające jedynie najmniejszą
wartość priorytetu notatkidla osoby oidrównym3 - Zapytanie 2: wybierające jedynie
nazwę notatkii jejpriorytetdla notatek, którychnazwazawiera cząstkę „na” - Zapytanie 3: wybierające jedynie
imięosoby i odpowiadającą munazwę notatkidla notatek, którychpriorytetjest równy5. Należy posłużyć sięrelacją - Zapytanie 4:
liczącedla każdego imienia osobyliczbę jego notatek. Kwerenda wybiera jedynieimięi odpowiadającą muliczbę notatek. Należy posłużyć sięrelacją
- Zapytanie 1: wybierające jedynie najmniejszą
Witryna internetowa
Ilustracja 2. Witryna internetowa. Stan początkowy

Przygotowanie grafiki:
- Plik
obraz.jpg, wypakowany z archiwum, należy przeskalować z zachowaniem proporcji do wysokości610 px
Cechy witryny:
- Składa się ze strony o nazwie
notatki.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: „Planer zadań”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo połączony z kodem strony - Podział strony na blok boczny i obok niego bloki: blok
nagłówkowy, blokdodający zadanie, blokgłówny, blokstopki. - 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 bocznego:
- Obraz o nazwie
obraz.jpgz tekstem alternatywnym „notatki”
- Obraz o nazwie
- Zawartość bloku nagłówkowego:
- Nagłówek
drugiegostopnia o treści „Moje zadania”
- Nagłówek
- Zawartość bloku nawigacyjnego:
Pole edycyjnez podpowiedzią o treści „Dodaj zadanie...”Przycisk„Dodaj”, którego wciśnięcie powoduje wywołanie funkcji w skrypcie
- Zawartość bloku głównego:
- Lista
punktowana(nieuporządkowana) zawierająca w stanie początkowym6 elementów. Każdy element listy zawiera:- Wpis (kolejne wpisy można skopiować do kodu HTML z pliku
zadania.txt) - Przycisk o treści „Wykonane”, którego wciśnięcie powoduje wywołanie skryptu dla danego elementu listy
- Wpis (kolejne wpisy można skopiować do kodu HTML z pliku
- Lista
- Zawartość stopki:
- Nagłówek
trzeciegostopnia o treści: „Notatki: ”, dalej wstawionynumer zdającego.
- Nagłówek
Ilustracja 3. Układ bloków

Styl CSS witryny internetowej
Styl CSS zdefiniowany jest w całości w zewnętrznym pliku o nazwie styl.css. Cechy formatowania CSS, działające na stronie:
- Domyślne formatowanie wszystkich selektorów: krój czcionki
Verdana - Dla bloku bocznego: szerokość
20%, wysokość610 px - Dla obrazu: szerokość
100%, wysokość610 px - Dla bloku nagłówkowego, stopki i nawigacyjnego: kolor tła
MediumPurple,białykolor czcionki, szerokość80%, wysokość50 px, wyrównanie tekstudo środka, cień tekstu o przesunięciu4 pxw obu osiach i kolorzeDimGray - Dodatkowo dla bloku nawigacyjnego: margines wewnętrzny górny
10 px - Dla bloku głównego: kolor tła
Thistle, szerokość80%, wysokość450 px, paski przewijania dodawane tylko, gdy zawartość nie mieści się w bloku - Dla przycisków w liście: opływanie
do prawej strony, kolor tłaMediumPurple,białykolor czcionki, wysokość30 px, bez obramowania - Dla listy punktowanej: marginesy zewnętrzne górny i dolny
40 px, lewy i prawy automatycznie wyliczane przez przeglądarkę, szerokość70%, rozmiar czcionki25 px, obramowanie liniąciągłąo szerokości2 pxi kolorzeMediumPurple, lista nie ma znaków punktora - Dla elementu listy: marginesy wewnętrzne
10 px - Dla parzystych elementów listy: kolor tła
#DDCADD - Gdy kursor znajduje się na elemencie listy, jego kolor tła zmienia się na
Lavender
Skrypt
Wymagania dotyczące skryptu:
- Napisany w języku
JavaScripti działający na liście punktowanej - Należy stosować znaczące nazewnictwo zmiennych i funkcji w języku polskim lub angielskim
- Dla uproszczenia należy założyć, że w stanie początkowym jest 6 elementów listy, elementy mogą być dodawane, ale nie są usuwane
- Działanie funkcji wywoływanej po wciśnięciu dowolnego z przycisków „Wykonane”:
- Przekreśla treść elementu listy związanego z tym przyciskiem. Na
Ilustracji 4pokazano efekt wciśnięcia przycisku „Wykonane” w drugim elemencie listy. W wyniku tego tekst „Gimnastyka” został przekreślony
- Przekreśla treść elementu listy związanego z tym przyciskiem. Na
- Działanie funkcji wywoływanej po wciśnięciu przycisku „Dodaj”:
- Tworzy nowy element listy na jej końcu. Element składa się z
- Treści pobranej z
pola edycyjnego - Przycisku o treści „Wykonane”, który jest formatowany tak jak reszta przycisków w liście i jego kliknięcie powoduje wywołanie odpowiedniej funkcji
- Treści pobranej z
- Na
Ilustracji 4pokazano efekt wciśnięcia przycisku Dodaj. Został utworzony nowy element listy „Lekarz” wraz z przyciskiem „Wykonane”. Wybranie utworzonego przycisku spowoduje wykonanie skryptu dla elementu listy „Lekarz”
- Tworzy nowy element listy na jej końcu. Element składa się z
Ilustracja 4. Działanie aplikacji

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. Cień elementu i tekstu w CSS

Tabela 3. Tworzenie elementów w JavaScript

Tabela 4. 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: import.png, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt, notatki.html, obraz.jpg, przeglądarka.txt, styl.css, ewentualnie inne przygotowane pliki. Po nagraniu płyty sprawdź poprawność jej odczytu. Opisz płytę numerem zdającego, którym został podpisany arkusz i pozostaw zapakowaną w pudełku na stanowisku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 150 minut.
Ocenie będzie podlegać 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!