Pojęcia: program, kod źródłowy, kompilator i interpreter, języki skryptowe, paradygmaty

INF.03 · teoria
autor: redakcja · 02.11.2026
Czym są program, algorytm i kod źródłowy oraz jak kod staje się wykonywanymi instrukcjami. Kompilacja, interpretacja i programowanie strukturalne na krótkich przykładach. Lekcja 10.1 kursu INF.03.

[ INF.03: PYTANIA Z TEGO DZIAŁU ]

Pro­gram to zapis in­struk­cji, które kom­pu­ter wy­ko­nu­je, aby zre­ali­zo­wać okre­ślo­ne za­da­nie. Na eg­za­mi­nie trzeba od­róż­nić pro­gram od al­go­ryt­mu, roz­po­znać język skryp­to­wy i wska­zać rolę kom­pi­la­to­ra lub in­ter­pre­te­ra. Przy two­rze­niu apli­ka­cji te po­ję­cia po­zwa­la­ją usta­lić, gdzie wy­ko­nu­je się kod i jak spraw­dzić jego wynik.

Pro­blem, al­go­rytm i kod

Pro­blem pro­gra­mi­stycz­ny opi­su­je, co należy otrzy­mać przy okre­ślo­nych danych. Przy­kła­dem jest wy­li­cze­nie ceny za­mó­wie­nia na pod­sta­wie ceny jednej sztuki i liczby sztuk. Al­go­rytm to jed­no­znacz­ny sposób roz­wią­za­nia ta­kie­go pro­ble­mu. Kod źró­dło­wy jest za­pi­sem roz­wią­za­nia w wy­bra­nym języku pro­gra­mo­wa­nia. Ten sam al­go­rytm można za­pi­sać w Py­tho­nie, JavaScript i PHP, choć skład­nia będzie różna.
Spe­cy­fi­ka­cja okre­śla dane wej­ścio­we, ocze­ki­wa­ny wynik i wa­run­ki. Dla pro­ste­go za­mó­wie­nia przyj­mij­my cenę w całych zło­tych i nie­ujem­ną liczbę sztuk. Wy­ni­kiem ma być cał­ko­wi­ta kwota. Jeżeli nie usta­li­my, czy cena za­wie­ra po­da­tek i czy do­pusz­cza­my rabat, dwa pro­gra­my mogą po­li­czyć różne war­to­ści mimo po­praw­ne­go mno­że­nia. Naj­pierw ustala się zna­cze­nie danych, potem wy­bie­ra in­struk­cje.
1
2
3
4
cena = 25
ilosc = 3
kwota = cena * ilosc
print(kwota)
Pro­gram wy­pi­sze 75. Znak rów­no­ści przy­pi­su­je war­tość nazwie, gwiazd­ka ozna­cza mno­że­nie, a print (WYPISZ) prze­ka­zu­je wynik na wyj­ście. Nazwy cena, ilosc i kwota są zmien­ny­mi, czyli na­zwa­mi po­wią­za­ny­mi z danymi. To kom­plet­ny przy­kład dla Py­tho­na 3. Nie trzeba prze­tłu­ma­czyć go ręcz­nie do kodu ma­szy­no­we­go, aby uru­cho­mić go in­ter­pre­te­rem.
Kod źró­dło­wy nie jest tym samym co wynik pro­gra­mu. Plik za­wie­ra in­struk­cje, na­to­miast liczba 75 jest re­zul­ta­tem ich wy­ko­na­nia. Za­pi­sa­nie pliku nie uru­cha­mia ob­li­cze­nia. Wy­świe­tle­nie kodu PHP jako tekstu w prze­glą­dar­ce także nie do­wo­dzi wy­ko­na­nia go przez serwer. O miej­scu uru­cho­mie­nia de­cy­du­je śro­do­wi­sko, a nie samo roz­sze­rze­nie wi­docz­ne w edy­to­rze.

Kom­pi­la­cja i in­ter­pre­ta­cja

Kom­pi­la­tor to pro­gram tłu­ma­czą­cy kod z jed­ne­go języka na inną postać. Często jest to kod ma­szy­no­wy wy­ko­ny­wa­ny przez pro­ce­sor, ale może to być także kod po­śred­ni albo inny język. Kom­pi­la­cja może wykryć okre­ślo­ne błędy przed uru­cho­mie­niem. Nie do­wo­dzi jednak, że pro­gram po­praw­nie roz­wią­zu­je za­da­nie. Źle do­bra­ny wzór na rabat może dać po­praw­nie skom­pi­lo­wa­ny pro­gram z błęd­nym wy­ni­kiem.
In­ter­pre­ter to pro­gram wy­ko­nu­ją­cy kod zgod­nie z re­gu­ła­mi języka, bez wy­ma­ga­nia od użyt­kow­ni­ka sa­mo­dziel­ne­go przy­go­to­wa­nia osob­ne­go pliku wy­ko­ny­wal­ne­go. Po­pu­lar­ne uprosz­cze­nie „czyta zawsze jedną linię i od razu ją wy­ko­nu­je” nie opi­su­je wszyst­kich in­ter­pre­te­rów. Kod może naj­pierw zostać prze­ana­li­zo­wa­ny i prze­tłu­ma­czo­ny do po­sta­ci po­śred­niej. Na przy­kład im­ple­men­ta­cja CPython kom­pi­lu­je kod Py­tho­na do kodu baj­to­we­go, który wy­ko­nu­je jej ma­szy­na wir­tu­al­na.
Kom­pi­la­cja i in­ter­pre­ta­cja mogą współ­pra­co­wać. Silnik JavaScript może ana­li­zo­wać kod, wy­ko­ny­wać go i kom­pi­lo­wać wy­bra­ne frag­men­ty pod­czas dzia­ła­nia. Po­dział na języki kom­pi­lo­wa­ne i in­ter­pre­to­wa­ne opi­su­je typowy sposób użycia lub im­ple­men­ta­cję, a nie nie­zmien­ną wła­sność każ­de­go moż­li­we­go wy­ko­na­nia. Do­ku­men­ta­cja Py­tho­na wy­ja­śnia tę róż­ni­cę w słow­ni­ku pojęć.
Dla eg­za­mi­nu naj­waż­niej­sze są role: kom­pi­la­tor tłu­ma­czy, in­ter­pre­ter uczest­ni­czy w wy­ko­na­niu, a edytor służy do pi­sa­nia. Edytor może uru­cha­miać inne na­rzę­dzia, lecz sam ko­lo­ro­wy tekst nie ozna­cza, że kod został spraw­dzo­ny. Pod­kre­ślo­ny błąd jest wska­zów­ką; rze­czy­wi­sty wynik trzeba po­twier­dzić uru­cho­mie­niem w od­po­wied­nim śro­do­wi­sku.

Język skryp­to­wy i miej­sce dzia­ła­nia

Język skryp­to­wy to język uży­wa­ny między innymi do au­to­ma­ty­za­cji i opi­sy­wa­nia dzia­łań wy­ko­ny­wa­nych w okre­ślo­nym śro­do­wi­sku. JavaScript, PHP i Python są ty­po­wy­mi przy­kła­da­mi. Skrypt może ob­słu­gi­wać for­mu­larz, przy­go­to­wy­wać od­po­wiedź ser­we­ra albo prze­twa­rzać pliki. Słowo skrypt nie ozna­cza, że pro­gram musi być krótki lub nie może być czę­ścią dużej apli­ka­cji.
JavaScript w prze­glą­dar­ce może re­ago­wać na klik­nię­cie i zmie­niać treść do­ku­men­tu. PHP na ser­we­rze może od­czy­tać dane z bazy i przy­go­to­wać od­po­wiedź. Python może dzia­łać jako część ser­we­ra albo jako lo­kal­ny pro­gram uru­cha­mia­ny z kon­so­li. Miej­sce wy­ko­na­nia wynika z uży­te­go śro­do­wi­ska. JavaScript może także dzia­łać poza prze­glą­dar­ką, więc utoż­sa­mie­nie języka z jednym miej­scem jest zbyt wąskie.
HTML opi­su­je struk­tu­rę do­ku­men­tu, a CSS jego pre­zen­ta­cję. Nie za­stę­pu­ją języka opi­su­ją­ce­go ogólne ob­li­cze­nia i ste­ro­wa­nie pro­gra­mem. Prze­glą­dar­ka ko­rzy­sta z nich razem, ale każdy ma inne za­da­nie. Szcze­gó­ły JavaScript za­wie­ra pierw­sza lekcja działu JS, a drogę skryp­tu ser­we­ra wpro­wa­dze­nie do PHP.

Pro­gra­mo­wa­nie struk­tu­ral­ne

Pro­gra­mo­wa­nie struk­tu­ral­ne or­ga­ni­zu­je kod wokół se­kwen­cji, wyboru i po­wta­rza­nia oraz dzie­le­nia za­da­nia na mniej­sze części. Se­kwen­cja wy­ko­nu­je in­struk­cje w ko­lej­no­ści. Wybór roz­strzy­ga, którą gałąź wy­ko­nać, za­leż­nie od wa­run­ku. Pętla po­wta­rza czyn­no­ści. Te trzy kon­struk­cje wy­star­cza­ją do za­pi­sa­nia wielu al­go­ryt­mów bez cha­otycz­nych skoków między do­wol­ny­mi miej­sca­mi kodu.
1
2
3
4
5
6
ilosc = 3
cena = 25
if ilosc >= 3:
cena = 20
kwota = cena * ilosc
print(kwota)
Pro­gram wy­pi­sze 60. Wa­ru­nek if (JEŻELI) spraw­dza, czy liczba sztuk wynosi przy­naj­mniej trzy. Po­nie­waż tak jest, cena zo­sta­je zmie­nio­na na 20. Potem wy­ko­nu­je się mno­że­nie i wy­pi­sa­nie. Wcię­cie wska­zu­je in­struk­cje na­le­żą­ce do wa­run­ku. Zmiana wcię­cia mo­gła­by zmie­nić zna­cze­nie pro­gra­mu, nawet jeśli użyte słowa po­zo­sta­ły­by te same.
Pro­ce­du­ra lub funk­cja po­zwa­la nazwać wy­dzie­lo­ne za­da­nie i wy­ko­rzy­sty­wać je w róż­nych miej­scach. Pa­ra­me­try prze­ka­zu­ją dane do funk­cji, a wynik można prze­ka­zać z po­wro­tem. Dobra nazwa opi­su­je czyn­ność, na przy­kład oblicz_kwote. Po­dział pomaga spraw­dzać frag­men­ty osobno i unikać po­wta­rza­nia tej samej reguły. Sama duża liczba funk­cji nie daje jesz­cze po­praw­nej struk­tu­ry; każda po­win­na mieć jasny cel.

Różne spo­so­by or­ga­ni­za­cji pro­gra­mu

Pa­ra­dyg­mat pro­gra­mo­wa­nia to ogólny sposób or­ga­ni­zo­wa­nia roz­wią­za­nia. W po­dej­ściu pro­ce­du­ral­nym za­pi­su­je się ko­lej­ne czyn­no­ści i gru­pu­je je w pro­ce­du­ry lub funk­cje. Po­dej­ście obiek­to­we łączy dane z ope­ra­cja­mi w obiek­tach. Na przy­kład obiekt za­mó­wie­nia może prze­cho­wy­wać po­zy­cje i udo­stęp­niać ope­ra­cję ob­li­cza­nia sumy. Nie ozna­cza to, że każda zmien­na jest osob­nym rze­czy­wi­stym przed­mio­tem.
W po­dej­ściu de­kla­ra­tyw­nym opi­su­je się ocze­ki­wa­ny wynik, po­zo­sta­wia­jąc wybór części szcze­gó­łów wy­ko­na­nia na­rzę­dziu. Za­py­ta­nie SQL okre­śla po­trzeb­ne ko­lum­ny i wa­run­ki, a silnik bazy wy­bie­ra sposób uzy­ska­nia wyniku. Pro­gra­mo­wa­nie zda­rze­nio­we or­ga­ni­zu­je re­ak­cje na zda­rze­nia, na przy­kład klik­nię­cie. Funk­cja ob­słu­gu­ją­ca przy­cisk może we­wnątrz nadal używać zwy­kłe­go wa­run­ku i pętli.
Te spo­so­by nie muszą się wza­jem­nie wy­klu­czać. Apli­ka­cja może re­ago­wać na zda­rze­nia, używać obiek­tów i wy­ko­ny­wać pro­ce­du­ry. W py­ta­niu o pa­ra­dyg­mat trzeba roz­po­znać wska­za­ną cechę, a nie przy­pi­sy­wać każ­de­mu ję­zy­ko­wi jedną wy­łącz­ną ety­kie­tę. W tym kursie krót­kie przy­kła­dy al­go­ryt­micz­ne po­zo­sta­ją struk­tu­ral­ne, aby dało się prze­śle­dzić ich prze­bieg bez do­dat­ko­wych pojęć.

Na eg­za­mi­nie

Jeżeli py­ta­nie do­ty­czy tłu­ma­cze­nia kodu, szukaj kom­pi­la­to­ra. Jeżeli opi­su­je zapis spo­so­bu roz­wią­za­nia nie­za­leż­ny od języka, chodzi o al­go­rytm. Przy pro­gra­mo­wa­niu struk­tu­ral­nym roz­po­znaj ko­lej­ność, wa­run­ki i pętle. W ana­li­zie li­stin­gu za­pi­suj bie­żą­ce war­to­ści zmien­nych za­miast od­ga­dy­wać wynik po nazwie pro­gra­mu.
Pu­łap­ka: po­praw­na skład­nia i moż­li­wość uru­cho­mie­nia nie do­wo­dzą po­praw­no­ści ob­li­cze­nia. Pro­gram może kon­se­kwent­nie wy­ko­ny­wać nie­wła­ści­wy al­go­rytm.
W za­da­niu prak­tycz­nym oddaj kod źró­dło­wy i sprawdź za­cho­wa­nie w wy­ma­ga­nym śro­do­wi­sku. Zrzut po­praw­ne­go wyniku nie za­stę­pu­je pliku pro­gra­mu, a plik pro­gra­mu bez próby uru­cho­mie­nia nie po­twier­dza wyniku. Te dwa dowody do­ty­czą róż­nych ele­men­tów pracy.

Ściąga

Po­ję­cie
Zna­cze­nie
pro­blem
cel oraz wa­run­ki
al­go­rytm
jed­no­znacz­ny sposób roz­wią­za­nia
kod źró­dło­wy
zapis roz­wią­za­nia w języku
kom­pi­la­tor
tłu­ma­cze­nie kodu
in­ter­pre­ter
wy­ko­na­nie w śro­do­wi­sku języka
se­kwen­cja
czyn­no­ści po kolei
wybór
gałąź za­leż­na od wa­run­ku
pętla
po­wta­rza­nie czyn­no­ści
pa­ra­dyg­mat
sposób or­ga­ni­zo­wa­nia roz­wią­za­nia
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ą.