Egzamin praktyczny INF.03: anatomia zadania

INF.03 · teoria
autor: redakcja · 09.09.2026
Jak zbudowany jest arkusz praktyczny INF.03: polecenie otwierające, konto Egzamin, archiwum ZIP, folder z numerem PESEL, pięć ocenianych rezultatów, cztery bloki zadania w 150 minutach, nazwy plików i zrzuty ekranu. Lekcja 13.1 kursu INF.03.
Po tej lekcji umiesz roz­pla­no­wać 150 minut eg­za­mi­nu prak­tycz­ne­go i wiesz, co musi zna­leźć się w fol­de­rze z wy­ni­ka­mi, żeby wszyst­kie pięć oce­nia­nych re­zul­ta­tów miało z czego być oce­nio­ne. Za­da­nie ma za każdym razem ten sam szkie­let: to samo po­le­ce­nie otwie­ra­ją­ce, ten sam zestaw czte­rech bloków, te same nazwy plików. Ko­lej­ne lekcje działu wcho­dzą w te bloki po kolei: baza i kwe­ren­dy, strona i styl, skryp­ty PHP i JavaScript.

Po­le­ce­nie, konto Eg­za­min i folder z nu­me­rem PESEL

Arkusz otwie­ra jedno zdanie i od lat wy­glą­da ono tak samo. W za­da­niu z in­for­ma­to­ra CKE brzmi: „Wy­ko­naj apli­ka­cję in­ter­ne­to­wą biura tu­ry­stycz­ne­go, wy­ko­rzy­stu­jąc pakiet XAMPP oraz edytor za­zna­cza­ją­cy skład­nię." W przy­kła­do­wym ar­ku­szu opu­bli­ko­wa­nym przez CKE zmie­nia się wy­łącz­nie temat: „Wy­ko­naj apli­ka­cję in­ter­ne­to­wą por­ta­lu dla węd­ka­rzy, wy­ko­rzy­stu­jąc pakiet XAMPP oraz edytor za­zna­cza­ją­cy skład­nię." Zmien­na jest branża, stałe są na­rzę­dzia: pakiet XAMPP i edytor ko­lo­ru­ją­cy skład­nię, czyli to, co akurat stoi na sta­no­wi­sku (No­te­pad++, Visual Studio Code, Sub­li­me Text).
Przed wła­ści­wym czasem jest 10 minut na za­po­zna­nie się z za­da­niem i sta­no­wi­skiem, nie­wli­cza­nych do 150 minut. To moment na prze­czy­ta­nie całego ar­ku­sza do końca, także ostat­niej strony z wy­ma­ga­nia­mi wobec skryp­tów, bo od nich zależy, jak za­pro­jek­tu­jesz stronę.
Dalej idzie stała se­kwen­cja czyn­no­ści. Za­lo­go­wa­nie na konto o nazwie Eg­za­min. Roz­pa­ko­wa­nie ar­chi­wum ZIP za­bez­pie­czo­ne­go hasłem (hasło podaje arkusz albo ogła­sza je prze­wod­ni­czą­cy ze­spo­łu nad­zo­ru­ją­ce­go). Utwo­rze­nie fol­de­ru, któ­re­go nazwą jest numer PESEL zda­ją­ce­go, w miej­scu wska­za­nym w ar­ku­szu. Wszyst­ko, co ma zostać oce­nio­ne, ląduje w tym jednym fol­de­rze:
1
2
3
4
5
6
7
8
9
10
11
12345678901/
noclegi.php
styl_1.css
kwerendy.txt
import.jpg
kw1.png
kw2.png
kw3.png
kw4.png
przeglądarka.txt
(obrazy i pozostałe pliki z rozpakowanego archiwum)
Plik, który został tylko w htdocs albo na pul­pi­cie, nie ist­nie­je dla eg­za­mi­na­to­ra. Ocena odbywa się po eg­za­mi­nie, na pod­sta­wie za­war­to­ści tego fol­de­ru, bez zda­ją­ce­go przy kom­pu­te­rze.

Pięć oce­nia­nych re­zul­ta­tów

Za­da­nie nie jest oce­nia­ne jako całość. Arkusz z in­for­ma­to­ra kończy się zda­niem: „Ocenie będzie pod­le­gać 5 re­zul­ta­tów: ope­ra­cje na bazie danych, za­war­tość wi­try­ny in­ter­ne­to­wej, dzia­ła­nie wi­try­ny in­ter­ne­to­wej, styl CSS wi­try­ny in­ter­ne­to­wej, skrypt po­łą­cze­nia z bazą." W przy­kła­do­wym ar­ku­szu CKE drugi re­zul­tat nazywa się „wygląd wi­try­ny in­ter­ne­to­wej", reszta jest iden­tycz­na.
Re­zul­ta­ty są od siebie nie­za­leż­ne, a każdy roz­pa­da się na kil­ka­na­ście drob­nych wy­ma­gań spraw­dza­nych osobno. Prak­tycz­na kon­se­kwen­cja: blok, któ­re­go nie skoń­czysz, nie prze­kre­śla po­zo­sta­łych, a strona z nie­dzia­ła­ją­cym skryp­tem nadal jest oce­nia­na jako za­war­tość i jako styl CSS. Od­wrot­na sy­tu­acja też się zdarza i boli bar­dziej. Dobry skrypt za­pi­sa­ny pod inną nazwą niż ta z ar­ku­sza nie ma re­zul­ta­tu, do któ­re­go mógłby zostać przy­pi­sa­ny.
Pu­łap­ka: próg zdania części prak­tycz­nej to 75 pro­cent punk­tów, znacz­nie wyżej niż 50 pro­cent w części pi­sem­nej. Zo­sta­wie­nie całego bloku na póź­niej zwykle kończy sesję.

Cztery bloki za­da­nia i po­dział 150 minut

Bloki są zawsze te same i idą w ar­ku­szu w tej ko­lej­no­ści. Po­dział czasu po­ni­żej to pro­po­zy­cja, nie reguła z ar­ku­sza, ale wynika z tego, ile pracy jest w każdym bloku.
Blok
Co po­wsta­je
Ile czasu
Ope­ra­cje na bazie danych
baza egzamin, import tabel, kwerendy.txt, import.jpg, kw1.png do kw4.png
30 min
Wi­try­na in­ter­ne­to­wa
jeden plik .php ze struk­tu­rą sekcji, na­głów­ka­mi, ob­ra­za­mi, tabelą i for­mu­la­rzem
35 min
Styl CSS
ze­wnętrz­ny arkusz o nazwie z za­da­nia, na przy­kład styl_1.css
30 min
Skryp­ty
po­łą­cze­nie z bazą, wy­pi­sa­nie wy­ni­ków według wzoru, skrypt JavaScript na modelu DOM
45 min
Za­mknię­cie
zrzuty ekranu, przeglądarka.txt, sko­pio­wa­nie wy­ni­ków, na­gra­nie płyty
10 min
Ko­lej­ność w ar­ku­szu jest też ko­lej­no­ścią za­leż­no­ści: strona bez za­im­por­to­wa­nej bazy nie ma czego wy­pi­sać, a styl bez go­to­wej struk­tu­ry sekcji nie ma czego sty­lo­wać. Jedyny blok, który da się zrobić poza ko­lej­no­ścią, to CSS, bo działa na znacz­ni­kach, które już ist­nie­ją.
Ostat­nie 10 minut nie jest za­pa­sem, tylko osobną czyn­no­ścią. Zrzuty ekranu, plik z nazwą prze­glą­dar­ki i prze­nie­sie­nie wy­ni­ków zaj­mu­ją tyle czasu na­praw­dę, a ro­bio­ne w po­śpie­chu po sy­gna­le końca po prostu się nie udają.

XAMPP: Apache, MySQL i adres lo­cal­host

Pierw­sza czyn­ność po roz­pa­ko­wa­niu ar­chi­wum to uru­cho­mie­nie dwóch usług w oknie XAMPP Con­trol Panel: Apache (serwer stron) oraz MySQL (serwer bazy danych). Bez pierw­szej nie wykona się żaden plik .php, bez dru­giej nie otwo­rzy się phpMyAdmin i nie po­łą­czy się skrypt. In­sta­la­cję oraz to okno opi­su­je lekcja o XAMPP i phpMyAdmin.
Pliki wi­try­ny muszą leżeć w ka­ta­lo­gu htdocs pa­kie­tu XAMPP, a stronę otwie­ra się ad­re­sem, nie po­dwój­nym klik­nię­ciem w plik:
1
C:\xampp\htdocs\egzamin\noclegi.php -> http://localhost/egzamin/noclegi.php
Powód jest jeden i wraca w każdym za­da­niu: PHP wy­ko­nu­je się na ser­we­rze. Plik otwar­ty prosto z dysku (adres za­czy­na­ją­cy się od file:///) nie prze­cho­dzi przez Apache, więc nikt nie wy­ko­nu­je kodu i prze­glą­dar­ka po­ka­zu­je pustą stronę albo surową treść skryp­tu. Ten sam plik pod ad­re­sem http://localhost/ idzie przez serwer, ten wy­ko­nu­je PHP i odsyła gotowy HTML.
Naj­wy­god­niej pisać od razu w pod­ka­ta­lo­gu htdocs, a na koniec sko­pio­wać całość do fol­de­ru z nu­me­rem PESEL. Miej­sce, w którym mają wy­lą­do­wać wyniki, wska­zu­je arkusz i tylko ono jest wią­żą­ce.

Dys­cy­pli­na plików: nazwy, zrzuty, płyta

Nazwy w ar­ku­szu są do­słow­ne. Jeśli wi­try­na ma na­zy­wać się noclegi.php, to nie Noclegi.php, nie noclegi.html i nie index.php. Arkusz podaje też nazwę ar­ku­sza stylów, nazwę bazy (egzamin w za­da­niu z in­for­ma­to­ra) oraz nazwy plików wy­ni­ko­wych. Zmiana nazwy pliku nie jest dro­bia­zgiem sty­li­stycz­nym: to jedyne, po czym eg­za­mi­na­tor roz­po­zna­je, który plik jest którym re­zul­ta­tem.
Zrzuty ekranu obo­wią­zu­ją w bloku ba­zo­da­no­wym. Po im­por­cie tabel robi się zrzut o nazwie import.jpg, a do każdej z czte­rech kwe­rend zrzut wyniku: kw1.png, kw2.png, kw3.png, kw4.png. Dwie rzeczy trzeba zrobić do­kład­nie tak, jak każe arkusz. Po pierw­sze, zrzut obej­mu­je cały ekran razem z pa­skiem zadań, a nie samo okno prze­glą­dar­ki, bo wi­docz­ny pasek po­ka­zu­je, że praca po­wsta­ła na tym sta­no­wi­sku. Po drugie, roz­sze­rze­nia się różnią: zrzut im­por­tu ma być pli­kiem JPG, zrzuty kwe­rend pli­ka­mi PNG. Zapis kw1.jpg to inna nazwa niż ta z ar­ku­sza.
Treść kwe­rend idzie osobno, jako tekst w pliku kwerendy.txt. Za­pi­su­je się je w ko­lej­no­ści z ar­ku­sza, każdą za­koń­czo­ną śred­ni­kiem, bez zrzutu za­miast tekstu i bez tekstu za­miast zrzutu: arkusz chce obu form. Do tego do­cho­dzi przeglądarka.txt z nazwą prze­glą­dar­ki użytej do spraw­dze­nia wi­try­ny.
Na koniec wyniki się prze­ka­zu­je. Za­da­nie z in­for­ma­to­ra kończy się na­gra­niem płyty z za­war­to­ścią fol­de­ru i opi­sa­niem jej nu­me­rem PESEL, a płyta jest wtedy je­dy­nym no­śni­kiem, który wy­jeż­dża z sali. Sposób prze­ka­za­nia wy­ni­ków opi­su­je ostat­nia strona ar­ku­sza i to ona roz­strzy­ga, gdyby w twojej sesji zbie­ra­no je ina­czej.

Ściągi do­łą­czo­ne do ar­ku­sza i inne za­da­nia prak­tycz­ne

Arkusz nie jest testem z pa­mię­ci. Do za­da­nia do­łą­czo­ne są tabele, któ­rych po prostu się używa:
Tabela w ar­ku­szu
Co za­wie­ra
Wybór funk­cji języka PHP do ob­słu­gi bazy MySQL i MariaDB
mysqli_connect, mysqli_select_db, mysqli_query, mysqli_fetch_row, mysqli_fetch_array, mysqli_num_rows, mysqli_num_fields, mysqli_error, mysqli_close
Wy­bra­ne pola i metody modelu DOM języka JavaScript
getElementById, getElementsByTagName, getElementsByClassName, innerHTML, setAttribute, style, createElement, appendChild oraz zda­rze­nia onclick, onkeyup, onload
Ele­men­ty for­mu­la­rzy
input w od­mia­nach button, check­box, number, pas­sword, radio, text, a także select i textarea
Metody obiek­tu string języka JavaScript
length, indexOf, search, substr, replace, toUpperCase, toLowerCase
Wnio­sek jest prak­tycz­ny: nazw tych funk­cji nie musisz umieć z pa­mię­ci, bo leżą na stole. Musisz wie­dzieć, która co robi i w jakiej ko­lej­no­ści idą jej ar­gu­men­ty, a tego tabela nie pod­po­wie. Sam SQL, HTML i CSS ściągi nie mają, więc skład­nia SELECT, nazwy znacz­ni­ków sekcji i nazwy wła­ści­wo­ści CSS muszą być w głowie.
In­for­ma­tor do­pi­su­je jesz­cze, czego za­da­nie może do­ty­czyć poza sche­ma­tem opi­sa­nym wyżej. W skró­cie: własna gra­fi­ka oraz ob­rób­ka gra­fi­ki ra­stro­wej i wek­to­ro­wej, po­bie­ra­nie danych ze strony in­ter­ne­to­wej i za­pi­sy­wa­nie ich do bazy, sys­te­my CMS (Joomla! i WordPress), cia­stecz­ka i me­cha­nizm sesji, skryp­ty mo­dy­fi­ku­ją­ce, do­da­ją­ce i usu­wa­ją­ce ele­men­ty strony przez model DOM, za­py­ta­nia ak­tu­ali­zu­ją­ce bazę, funk­cje agre­gu­ją­ce, za­py­ta­nia wy­ko­rzy­stu­ją­ce re­la­cje między ta­be­la­mi, za­rzą­dza­nie użyt­kow­ni­ka­mi bazy, pseu­do­kla­sy, pseu­do­ele­men­ty oraz style po­tom­ków i braci w CSS, reguła @media i strony re­spon­syw­ne, ta­bli­ce glo­bal­ne PHP, ob­słu­ga dat i na­pi­sów, bi­blio­te­ki wbu­do­wa­ne ję­zy­ków skryp­to­wych, wa­li­da­cja for­mu­la­rzy. Żadna z tych rzeczy nie za­stę­pu­je czte­rech bloków, tylko pod­mie­nia w nich szcze­gó­ły. Ska­lo­wa­nie obrazu do za­da­nej sze­ro­ko­ści po­ja­wi­ło się już w przy­kła­do­wym ar­ku­szu CKE, więc z tej listy jest naj­bar­dziej praw­do­po­dob­ne.

Gdzie traci się punkty

  • Plik na­zwa­ny ina­czej niż w ar­ku­szu, także wiel­ko­ścią liter albo roz­sze­rze­niem: kw1.jpg za­miast kw1.png, import.png za­miast import.jpg.
  • Wyniki zo­sta­wio­ne w htdocs i nie­sko­pio­wa­ne do fol­de­ru o nazwie numeru PESEL.
  • Zrzut ekranu przy­cię­ty do samego okna, bez paska zadań.
  • Strona otwar­ta z dysku za­miast przez http://localhost/, przez co skryp­ty w ogóle się nie wy­ko­nu­ją i wy­glą­da to na błąd w kodzie, któ­re­go nie ma.
  • Kwe­ren­dy tylko na zrzu­tach, bez tekstu w kwerendy.txt, albo od­wrot­nie.
  • Cały czas zje­dzo­ny przez pierw­szy blok, bo kwe­ren­da nie chcia­ła za­dzia­łać. Sen­sow­niej zo­sta­wić ją nie­do­koń­czo­ną, przejść dalej i wrócić na końcu, skoro re­zul­ta­ty ocenia się osobno.
  • Brak pliku przeglądarka.txt, o którym łatwo za­po­mnieć, bo nie wiąże się z żadnym kodem.
  • Baza za­ło­żo­na pod inną nazwą niż podana w ar­ku­szu. Skrypt łączy się wtedy z bazą, której nie ma, a wy­ma­ga­nie mówi wprost o użyt­kow­ni­ku root bez hasła i bazie o nazwie egzamin na ser­we­rze localhost.
Kwe­ren­dy da się prze­ćwi­czyć wcze­śniej: plac zabaw SQL wy­ko­nu­je za­py­ta­nia w prze­glą­dar­ce, bez sta­wia­nia XAMPP-a. Same ar­ku­sze z po­przed­nich sesji leżą w bazie ar­ku­szy.

Ściąga

Ele­ment za­da­nia
Co do­kład­nie
Po­le­ce­nie otwie­ra­ją­ce
„Wy­ko­naj apli­ka­cję in­ter­ne­to­wą ..., wy­ko­rzy­stu­jąc pakiet XAMPP oraz edytor za­zna­cza­ją­cy skład­nię."
Konto
Eg­za­min
Ar­chi­wum
ZIP za­bez­pie­czo­ny hasłem, roz­pa­ko­wy­wa­ny na po­cząt­ku
Folder na wyniki
nazwa to numer PESEL zda­ją­ce­go
Czas
150 minut, plus 10 minut na za­po­zna­nie się z za­da­niem
Oce­nia­ne re­zul­ta­ty
ope­ra­cje na bazie danych, za­war­tość (wygląd) wi­try­ny, dzia­ła­nie wi­try­ny, styl CSS wi­try­ny, skrypt po­łą­cze­nia z bazą
Usługi XAMPP
Apache i MySQL uru­cho­mio­ne w XAMPP Con­trol Panel
Adres strony
http://localhost/..., pliki w ka­ta­lo­gu htdocs
Baza
nazwa z ar­ku­sza (egzamin), użyt­kow­nik root bez hasła, serwer localhost
Zrzut po im­por­cie
import.jpg, cały ekran z pa­skiem zadań
Zrzuty kwe­rend
kw1.png, kw2.png, kw3.png, kw4.png
Treść kwe­rend
kwerendy.txt, w ko­lej­no­ści z ar­ku­sza
Nazwa prze­glą­dar­ki
przeglądarka.txt
Ściągi w ar­ku­szu
funk­cje mysqli, pola i metody DOM, ele­men­ty for­mu­la­rzy, metody obiek­tu string
Na koniec
sko­pio­wa­nie wy­ni­ków do fol­de­ru PESEL i na­gra­nie płyty
Pobierz ściągę PDF
ZAWODNIK
egzamin zawodowy INF.02 · INF.03 · INF.04
Serwer Discord
Egzaminy zawodowe IT/Matury/Studia
@yastor
© 2026 Zawodnik · by Yastor
Arkusze i zasady oceniania pochodzą z CKE. Serwis nie jest powiązany z Centralną Komisją Egzaminacyjną.