Arkusz INF.03 : 2024 - czerwiec - zad. 02 (js)
- Oznaczenie: INF.03-02-24.06-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Folder z rezultatami pracy oraz płytę należy opisać numerem zdającego, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu. Dalej w zadaniu numer ten jest nazwany numerem zdającego.
Wykonaj aplikację będącą prototypem części front-end do chata, 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 ZIP o nazwie PlikiCz202402 zabezpieczone hasłem: ChaT_Ch@t
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 Obrazie 1.
Obraz 1. Baza danych

Za pomocą narzędzia phpMyAdmin wykonaj operacje na bazie danych:
- Utwórz bazę danych o nazwie
chat, 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
PNGi nazwijimport. 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 SQL działające na bazie
chat. Zapytania zapisz w plikukwerendy.txt. Wykonaj zrzuty ekranu przedstawiające wyniki działania kwerend. Zrzuty zapisz w formacieJPEGi nadaj im nazwykw1,kw2,kw3,kw4,kw5. Zrzuty powinny obejmować cały ekran monitora z widocznym paskiem zadań.- Zapytanie 1: wstawiające do tabeli
logowanienick „Jeremi” z hasłem „Jer123”. Wstawianemu wierszowi należy nadaćidentyfikator, odpowiadający wartości klucza obcego dla wiersza z danymi „Jeremi Kowalski” z tabeliuczestnicy - Zapytanie 2: obliczające
średni rok urodzeniauczestników. Wybrana kolumna powinna mieć nazwę (alias) „Średni rok urodzenia”, a obliczony wynik powinien być zaokrąglonyw dółdo liczby całkowitej - Zapytanie 3: wybierające jedynie
imięinazwiskouczestnika oraz odpowiadające munickihasłodla imion rozpoczynających się literąJ. Należy posłużyć sięrelacją - Zapytanie 4: tworzące użytkownika
uczestniknalocalhostz hasłemUcz123& - Zapytanie 5: nadające utworzonemu użytkownikowi prawa do
wybieraniaiaktualizacjidanych jedynie dla tabeliuczestnicy
- Zapytanie 1: wstawiające do tabeli
Witryna internetowa
Obraz 2. Witryna internetowa. Stan początkowy

Cechy grafiki:
- Grafika
Jolka.jpgprzygotowana, podobnie jakKrzysiek.jpg. GrafikęJolka.jpgnależy wykadrować do kwadratu tak, aby była widoczna tylko cała twarz. Następnie należy przeskalować dokładnie do rozmiaru70 pxna70 px.
Cechy witryny:
- Składa się ze strony o nazwie
chat.htmlzapisanej w językuHTML5 - Ustawiony język zawartości strony na
polski - Jawnie zastosowany właściwy standard kodowania polskich znaków
- Tytuł strony widoczny na karcie przeglądarki: „Chat”
- Arkusz stylów w pliku o nazwie
styl.cssprawidłowo połączony z kodem strony - Podział strony na
baneri pod nim blokgłówny, obok obu bloków blokbocznyoraz na dolestopka. Podział zrealizowany wyłącznie za pomocąsemantycznych znacznikówsekcji językaHTML5tak, aby po uruchomieniu w przeglądarce wygląd układu bloków był zgodny zObrazem 2 - Zawartość banera: nagłówek
drugiegostopnia o treści „Chat” - Zawartość bloku bocznego:
- Nagłówek
trzeciegostopnia o treści „Chaty” - Lista
punktowanaz elementami: „Ogólny” , „Tematyczne”. Drugi element zagnieżdża listę numerowaną z elementami „Turystyczny”, „Żeglarski”, „Filatelistyczny”, „Hodowla zwierzątek domowych” - Nagłówek
trzeciegostopnia o treści „Uczestnicy” - Paragraf (akapit) o treści „Jolanta Nowak”
- Obraz
Jolka.jpgz tekstem alternatywnym "Jolanta Nowak" - Paragraf o treści „Krzysztof Łukasiński”
- Obraz
Krzysiek.jpgz tekstem alternatywnym "Krzysztof Łukasiński"
- Nagłówek
- Zawartość bloku głównego:
- Blok chatu zawierający:
- Jeden blok z wypowiedzią Jolanty: Obraz
Jolka.jpgi paragraf: „Cześć idziesz jutro do kina?” - Jeden blok z wypowiedzią Krzysztofa: Obraz
Krzysiek.jpgi paragraf: „Tak! A ty?”
- Jeden blok z wypowiedzią Jolanty: Obraz
- Obok siebie: napis „Wpisz wiadomość:”, pole edycyjne, przycisk o treści „Wyślij”. Kliknięcie przycisku powoduje wywołanie funkcji skryptu
- Poniżej: przycisk o treści: „Generuj losową odpowiedź”. Kliknięcie przycisku powoduje wywołanie funkcji skryptu
- Blok chatu zawierający:
- Zawartość stopki: nagłówek
piątegostopnia o treści: „Chat wykonał: ”, dalej wstawionynumer zdającego.
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
Garamond - Dla banera: kolor tła
Tomato,białykolor czcionki, wyrównanie tekstudo środka, szerokość80%, wysokość80 px - Dla bloku głównego: szerokość
80%, wysokość600 px - Dla bloku bocznego: kolor tła
Coral, szerokość20%, wysokość680 px - Dla stopki: kolor tła
Tomato,białykolor czcionki, wyrównanie tekstudo środka - Dla selektora obrazu: zaokrąglenie rogów
50%, marginesy wewnętrzne lewy i prawy10 px - Dla bloku chatu: obramowanie linią
ciągłąo szerokości1 pxi kolorzeTomato, marginesy zewnętrzne15 px, wysokość470 px, paski przewijania zawsze widoczne na stronie - Wspólne dla bloków z wypowiedziami: zaokrąglenie rogów
5 px, szerokość90%, wysokość70 px, marginesy zewnętrzne2%, marginesy wewnętrzne3 px - Dodatkowo dla bloków z wypowiedziami Jolanty: kolor tła
#EEE, obraz opływany tekstem zprawejstrony (obraz po lewej stronie) - Dodatkowo dla bloków z wypowiedziami Krzysztofa: kolor tła
#CCC, wyrównanie tekstu doprawejstrony, obraz opływany tekstem zlewejstrony (obraz po prawej stronie) - Dla obu przycisków: kolor tła
Tomato, obramowanie liniąciągłąo szerokości1 pxi kolorzeDarkRed, marginesy wewnętrzne5 px, czcionkapogrubiona - Dla pola edycyjnego tekstowego: szerokość
500 px
- UWAGA!
- Styl CSS obrazu należy zdefiniować wyłącznie przy pomocy selektora znacznika obrazu. Jest to uwarunkowane projektem późniejszej rozbudowy witryny.
Skrypt
Wymagania dotyczące skryptu:
- Napisany w języku JavaScript
- Należy stosować znaczące nazewnictwo wszystkich zmiennych i funkcji
- Działanie funkcji wywoływanej po kliknięciu przycisku Wyślij:
- Pobierany jest tekst z pola edycyjnego i umieszczany w oknie chatu jako ostatni
- Tekst jest formatowany jako wypowiedź
Jolanty, zgodnie zObrazem 3, czyli utworzony jest blok z wypowiedzią zawierający obrazJolka.jpgi paragraf zgodny z tekstem wpisanym do pola edycyjnego - Jeśli blok chatu jest cały wypełniony, powinien być przewinięty do nowo wstawionej wypowiedzi
Obraz 3. Działanie funkcji wywoływanej kliknięciem przycisku Wyślij

- Działanie funkcji wywoływanej po kliknięciu przycisku „Generuj losową odpowiedź”
- Losowana jest wypowiedź
Krzysztofaz wcześniej zadeklarowanej tablicy. Tablica zawiera9 elementów, którymi są wypowiedzi. Należy je skopiować z pliku pomocniczegotekstyDoChatu.txtrozpakowanego z archiwum - Losowana liczba z przedziału od
0do8jest indeksem tablicy - Wypowiedź jest umieszczana w oknie chatu jako ostatnia
- Tekst jest formatowany jako wypowiedź
Krzysztofa, zgodnie zObrazem 4, czyli utworzony jest blok z wypowiedzią zawierający obrazKrzysiek.jpgi paragraf zgodny z wylosowanym tekstem - Jeśli blok chatu jest cały wypełniony, powinien być przewinięty do nowo wstawionej wypowiedzi
- Losowana jest wypowiedź
Obraz 4. Działanie funkcji wywoływanej kliknięciem przycisku Generuj...

- 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.
- UWAGA!
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny znajdować się pliki: chat.html, import.png, Jolka.jpg, Krzysiek.jpg, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kw5.jpg kwerendy.txt, przeglądarka.txt, styl.css, 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 będzie podlegać 5 rezultatów:
- operacje na bazie danych
- zawartość witryny internetowej
- działanie witryny internetowej
- styl CSS witryny internetowej
- skrypt.
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 nowych elementów DOM i wstawianie ich do bloków
- UWAGA!
- W miejscu element należy wstawić obiekt konkretnego elementu, zwróconego takimi funkcjami jak getElementById, createElement...
| Kod | Opis |
|---|---|
| document.createElement("h2"); | Tworzy element DOM <h2> i zwraca go. Jako parametr należy podać nazwę elementu, np. ul, p, table ... |
| element. classList.add("klasa1"); | Przypisuje do danego elementu klasę stylu CSS |
| element.nazwa-atrybutu = ... | Ustawia wartości atrybutów dla danego elementu |
| element.innerText = .... | Ustawia tekst dla elementów takich jak paragraf, nagłówek, przycisk itp. |
| element1.appendChild(element2); | Zagnieżdża element2 w elemencie1. Elementem1 może być cały dokument, blok, lista lub inny element agregujący. Wewnątrz niego zostaje umieszczony element2 |
| element.scrollIntoView(); | Przewija zawartość bloku / strony do wskazanego elementu |
Tabela 3. Wybrane funkcje numeryczne MySQL
| CEIL(number) | The CEIL() function returns the smallest integer value that is bigger than or equal to a number. |
| FLOOR(number) | The FLOOR() function returns the largest integer value that is smaller than or equal to a number. |
| ROUND(number, decimals) | The ROUND() function rounds a number to a specified number of decimal places. |
| TRUNCATE(number, decimals) | The TRUNCATE() function truncates a number to the specified number of decimal places. |

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!