Uvod u programiranje u Turbo Pascalu 7 (1)

 

 

Pregled razvoja programskih jezika 
 

Prvi ra

č

unari bili su vrlo složeni za koriš

ć

enje. Njih su koristili isklju

č

ivo stru

č

njaci koji su 

bili osposobljeni za komunikaciju s ra

č

unarom. Ta komunikacija se sastojala od dva osnovna 

koraka: davanje uputstava ra

č

unaru i 

č

itanje rezultata obrade. I dok se 

č

itanje rezultata vrlo 

brzo u

č

inilo koliko-toliko snošljivim uvo

đ

enjem štampa

č

a na kojima su se rezultati ispisivali, 

unošenje uputstava – programiranje – se sastojalo od mukotrpnog upisivanja niza nula i 
jedinica. Ti nizovi su davali ra

č

unaru uputstva kao što su: „saberi dva broja”, „premesti 

podatak s neke memorijske lokacije na drugu”, „sko

č

i na neku instrukciju izvan normalnog 

redosleda instrukcija” i sli

č

no. Kako je takve programe bilo vrlo složeno pisati, a još složenije 

č

itati i ispravljati, ubrzo su se pojavili prvi programerski alati nazvani 

asembleri 

(engl. 

assembler

s). 

 
U asemblerskom jeziku svaka mašinska instrukcija predstavljena je mnemonikom koji je 
razumljiv ljudima koji 

č

itaju program. Tako se sabiranje naj

č

ć

e obavlja mnemonikom 

ADD, dok se premeštanje podataka obavlja mnemonikom MOV. Time se postigla bolja 

č

itljivost programa, ali i dalje je bilo vrlo složeno pisati programe i ispravljati ih jer je bilo 

potrebno davati sve, pa i najmanja uputstva ra

č

unaru za svaku pojedinu operaciju. Javlja se 

problem koji 

ć

e kasnije, nakon niza godina, dovesti i do pojave tzv. viših programskih jezika, 

tj. potrebno je razviti programerski alat koji 

ć

e osloboditi programera rutinskih poslova i 

omogu

ć

iti mu da se usredi na problem koji rešava. 

 
Zbog toga se pojavljuje niz viših programska jezika, koji preuzimaju na sebe neke „dosadne” 
programerske poslove. Tako je FORTRAN bio posebno pogodan za matemati

č

ke prora

č

une, 

zatim BASIC koji se vrlo brzo u

č

io, COBOL koji je bio po pravilu namenjen upravljanju 

bazama podataka. 
 
 

Šta je program i kako ga napisati?

 

 

Elektronski ra

č

unari postali su danas pribor kojim se svakodnevno koristimo kako bismo sebi 

olakšali posao ili se zabavili. Prvi navod 

ć

e mnogi poricati, navode

ć

i kao kontraargument 

č

injenicu da im je za podizanje novca u banci pre trebalo znatno manje vremena nego otkad 

su šalteri kompjuterizovani. Me

đ

utim, 

č

injenica je da su mnogi poslovi danas nezamislivi bez 

ra

č

unara; u krajnjoj liniji, dokaz za to je tekst koji upravo 

č

itate koji je u potpunosti napisan 

pomo

ć

u ra

č

unara. 

 
Sam ra

č

unar, 

č

ak i kada se uklju

č

i na niskonaponsku mrežu, nije u stanju da uradi ništa 

korisno. Na današnjim ra

č

unarima se ne može 

č

ak ni zagrejati jelo, što je ina

č

e bilo mogu

ć

na ra

č

unarima sa elektronskim cevima. Ono što vam nedostaje je pamet neophodna za 

koristan rad ra

č

unara: programi, programi, … i samo programi. Pod programom 

podrazumevamo niz naredbi u mašinskom jeziku koje procesor u vašem ra

č

unaru izvršava i 

shodno njima obra

đ

uje podatke, izvodi matemati

č

ke prora

č

une, ispisuje tekstove, iscrtava 

krive na ekranu itd. Pokretanjem programa sa diska, diskete ili kompakt diska (CD-ROM-a), 
program se u

č

itava u radnu memoriju ra

č

unara i procesor po

č

inje sa mukotrpnim postupkom 

njegovog izvršavanja. 
 

Programi koje pokre

ć

ete na ra

č

unaru su u 

izvršnom obliku 

(engl. 

executabl

e), razumljivom 

samo procesoru vašeg (i njemu sli

č

nih) ra

č

unara. U suštini, mašinski kôd se  sastoji od nizova 

binarnih cifara: nula i jedinica.  
 
Budu

ć

i da su današnji programi tipi

č

no dužine nekoliko megabajta, naslu

ć

ujete da ih autori 

nisu pisali direktno u mašinskom kôdu. Gotovo svi današnji programi se pišu u nekom od 

viših programskih jezika 

(FORTRAN, BASIC, Pascal, C) koji su donekle razumljivi i 

ljudima (barem onima koji imaju nešto pojma o engleskom jeziku). Naredbe u tim jezicima 
se sastoje od mnemonika. Kombinovanjem tih naredbi programer slaže 

izvorni kôd 

(engl. 

Source cod

e) programa, koji se pomo

ć

u posebnih programa 

prevodilaca 

(engl. 

compile

r) i 

poveziva

č

(engl. 

linker) 

prevodi u izvršni kôd. Prema tome, pisanje programa u užem smislu 

podrazumijeva pisanje izvornog kôda. Me

đ

utim, kako pisanje koda nije samo sebi svrha, pod 

pisanjem programa u širem smislu podrazumeva se i prevo

đ

enje, odnosno povezivanje 

programa u izvršni kôd. Prema tome,  možemo govoriti o 

č

etiri faze kod pravljenja programa: 

 
1. pisanje izvornog kôda 
2. prevo

đ

enje izvornog kôda, 

3. povezivanje u izvršni kôd i 
4. testiranje programa. 
 
Da bi se za neki program moglo re

ć

i da je uspešno napravljen, treba uspešno pro

ć

i kroz sve 

č

etiri faze. Kao i svaki drugi posao, i pisanje programa zahteva odre

đ

eno znanje i veštinu. 

Prilikom pisanja programera vrebaju Scile i Haribde, danas poznatije pod nazivom greške ili 

bugovi 

(engl. 

bug 

- stenica) u programu. Ako se pojave greške u nekoj od faza izrade 

programa, izvorni kôd treba doraditi i ponoviti sve prethodne faze. Zbog toga postupak izrade 
programa nije pravolinijski, ve

ć

 manje-više podse

ć

a na mukotrpno kretanje u krug. Na slici 1. 

je šematski prikazan celokupni ciklus izrade programa, od njegovog po

č

etka, pa sve do 

njegovog završeta. Analizirajmo najvažnije faze izrade programa. 

 

background image

upozorenja. Greške koje prijavi prevodilac nazivaju se 

greškama pri prevo

đ

enju 

(engl. 

compile-time error

s). Nakon toga programer 

ć

e pokušati ispraviti sve navedene greške i 

ponovo prevesti izvorni kôd – sve dok prevo

đ

enje koda ne bude uspešno okon

č

ano, ne može 

se pristupiti povezivanju koda. Prevo

đ

enjem izvornog dobija se datoteka 

objektnog kôda 

(engl. 

object cod

e), koja se lako može prepoznata po tome što obi

č

no ima nastavak 

.o 

ili 

.obj 

(u našem primeru bi to bilo 

primer.obj

). 

 
Nakon što su ispravljene sve greške uo

č

ene prilikom prevo

đ

enja i kôd ispravno preveden, 

pristupa se povezivanju objektnih kôdova u izvršni. U ve

ć

ini slu

č

ajeva objektni kôd dobijen 

prevo

đ

enjem programerovog izvornog kôda treba povezati sa postoje

ć

im 

bibliotekama 

(engl. 

librarie

s). Biblioteke su datoteke u kojima se nalaze ve

ć

 prevedene gotove funkcije ili 

podaci. One se isporu

č

uju zajedno s prevodiocem, mogu se posebno kupiti ili ih programer 

može sam razviti. Bibliotekama se izbegava ponovno pisanje vrlo 

č

esto koriš

ć

enih operacija. 

Tipi

č

an primer za to jesu biblioteka matemati

č

kih funkcija koja se uvek isporu

č

uje uz 

prevodilac, a u kojoj su definisane sve funkcije poput trigonometrijskih, eksponencijalnih i 
sli

č

no. 

 
Prilikom povezivanja proverava se mogu li se svi pozivi kodova realizovati u izvršnom kodu. 
Ukoliko poveziva

č

 tokom povezivanja uo

č

i neku nepravilnost, ispisa

ć

e poruku o greški i 

onemogu

ć

iti generisanje izvršnog koda. Ove greške nazivaju se 

greškama pri povezivanju 

(engl. 

link-time error

s) – sada programer mora prionuti na ispravljanje grešaka koje su 

nastale pri povezivanju. Nakon što se isprave sve greške, kôd treba ponovno prevesti i 
povezati. 
 
Uspešnim povezivanjem dobija se izvršni kôd. Me

đ

utim, takav izvršni kôd još uvek ne 

garantuje da 

ć

e program raditi ono što ste zamislili. Na primer, može se dogoditi da program 

radi pravilno za neke vrednosti podataka, ali da se za druge ponaša nepredvidivo. U tom se 
slu

č

aju radi o 

greškama pri izvo

đ

enju 

(engl. 

run-time error

s). 

 
Da bi program bio potpuno korektan, programer mora da istestira program da bi uo

č

io i 

ispravio te greške, što zna

č

i ponavljanje celog postupka u lancu „ispravljanje izvornog koda-

prevo

đ

enje-povezivanje-testiranje”. Kod jednostavnijih programa broj ponavljanja 

ć

e biti 

manji i smanjiva

ć

e se proporcionalno sa rastu

ć

im iskustvom programera. Me

đ

utim, kako 

raste složenost programa, tako se pove

ć

ava broj mogu

ć

ih grešaka i celi postupak izrade 

programa neiskusnom programeru može postati mukotrpan. 
 
Za ispravljanje grešaka pri izvo

đ

enju, programeru na raspolaganju stoje programi za 

otkrivanje grešaka (engl. 

debugge

r). Radi se o programima koji omogu

ć

avaju prekid 

izvo

đ

enja izvršnog koda programa koji testiramo na unapred zadatim naredbama, izvo

đ

enje 

programa naredbu po naredbu, ispis i promene trenutnih vrednosti pojedinih podataka u 
programu. Najjednostavniji programi za otkrivanje grešaka ispisuju izvršni kôd u obliku 
mašinskih naredbi. Me

đ

utim, ve

ć

ina današnjih naprednih programa za otkrivanje grešaka su 

simboli

č

ki 

(engl. 

symbolic debugge

r) – iako se izvodi prevedeni, mašinski kôd, izvo

đ

enje 

programa se prati preko izvornog kôda pisanog u višem programskom jeziku. To omogu

ć

ava 

vrlo lagano lociranje i ispravljanje grešaka u programu. 
 
Osim grešaka, prevodilac i poveziva

č

 redovno prijavljuju i upozorenja. Ona ne 

onemogu

ć

avaju nastavak prevo

đ

enja, odnosno povezivanja koda, ali predstavljaju 

potencijalnu opasnost. Upozorenja se mogu podeliti u dve grupe. Prvu grupu 

č

ine upozorenja 

koja javljaju da kôd nije potpuno korektan. Prevodilac ili poveziva

č

 

ć

e zanemariti našu 

grešku i prema svom naho

đ

enju generisati kôd. Drugu grupu 

č

ine poruke koje upozoravaju da 

„nisu sigurni da je ono što smo napisali upravo ono što smo želeli napisati”, tj. radi se o 
dobronamernim upozorenjima na zamke koje mogu proizi

ć

i iz na

č

ina na koji smo program 

napisali. Iako 

ć

e, uprkos upozorenjima, program biti preveden i povezan (možda 

č

ak i 

korektno), pedantan programer ne

ć

e ta upozorenja nikada zanemariti – ona 

č

esto upu

ć

uju na 

uzrok grešaka pri izvo

đ

enju gotovog programa. Za precizno tuma

č

enje poruka o greškama i 

upozorenja neophodna je dokumentacija koja se isporu

č

uje uz prevodilac i poveziva

č

 
Da zaklju

č

imo: „Šta nam, dakle, treba za pisanje programa na jeziku Turbo Pascal?” Osim 

ra

č

unara, programa za pisanje i ispravljanje teksta, prevodioca i poveziva

č

a trebaju vam još 

samo tri stvari: interesovanje, puno slobodnog vremena i dobra literatura. Interesovanje 
verovatno postoji, ako ste sa 

č

itanjem ovog teksta stigli 

č

ak dovde. Slobodno vreme 

ć

e vam 

trebati da isprobate primere i da se sami oprobate u bespu

ć

ima Turbo Pascala. 

 

 

Uvod u Turbo Pascal 

Zašto je Pascal dobar izbor programskog jezika? Odgovor 

ć

e se sam nametnuti, ako se kaže 

bar nekoliko re

č

i o nastanku jezika Pascal. 

 
Njegov tvorac Niklaus Wirth (profesor na Eidgenossische Technische Hochschule, Cirih, 
Švajcarska) izborom imena jezika po

č

astio je velikog francuskog nau

č

nika i filozofa Blaisea 

Pascala (1623 — 1662) koji je izgradio jedan od prvih mehani

č

kih ra

č

unara.  

 
Stvaraju

ć

i programski jezik Pascal, Wirth je težio da nau

č

i u

č

enika da programira tako da ne 

mora da menja logiku stvari koje je ve

ć

 ranije nau

č

io, da ono što želi da izrazi bude i u 

programu 

č

itljivo, jasno i pregledno. Omogu

ć

iti u

č

eniku da svoje misli saopštava programom 

tako, da naredbe slede misli, da se njihov tok ne gubi u iznenadnim skokovima, da se 
razumeju bez muke. Wirth je želeo da se programiranje u

č

i takvim jezikom u kojem 

ć

e se 

misli lako prenositi, a s druge strane, da program jasno odražava misli programera. Imaju

ć

na raspolaganju više programske jezike kao što su Fortran, Algol i Basic Wirth nije bio 
zadovoljan. Pokušao je da svoje želje zadovolji ubacivanjem novih stvari u Algol. Ubrzo je 
bio nezadovoljan krparenjem Algola i odlu

č

io je da napiše novi jezik. S radom je po

č

eo 

šezdesetih godina, a prvi program-prevodilac proradio je u kasnim sedamdesetim godinama. 

 
Wirth je prvi proklamovao prednosti strukturnog programiranja. One se sastoje u 
mogu

ć

nosti razlaganja problema u manje celine (module ili blokove) od kojih svaka sme da 

ima samo jedan ulaz i jedan izlaz izbegavaju

ć

i naredbu GO TO. Informacije se prenose u 

sledu iz bloka u blok, dok se ne do

đ

e do kona

č

nog rešenja. 

 
Wirth je želeo kao prvo, jezik koji 

ć

e odražavati principe sistemati

č

nog kreiranja i drugo, da 

njegovo ostvarenje na ra

č

unaru bude pouzdano i efikasno. To je i ostvario Pascalom, 

zajedni

č

ki rade

ć

i sa svojim kolegama, a baza mu je bila Algol. 

 
Wirth smatra da u

č

enje programiranja zapravo zna

č

i u

č

enje struktura podataka, toka 

informacija i kontrole. 

 
Programski jezici kao što su Fortran i Basic nemaju takve osobine i konstrukcije da 
programer može direktno izraziti programom svoje ideje. 

Č

esto se name

ć

e potreba da 

background image

 

Akcije od 1 do 
N ponavljaju se 
odre

đ

eni broj 

puta. 

Ponavljanje do 
akcije N izvrši se 
bar jedanput, a 
zatim se u 
zavisnosti od 
rezultata testa 
nastavlja ili 
prekida. 

Ponavljanje zavisi od testa, 
može se desiti da se obavi 
ili ne obavi nijednom. 

 
 

c)

 

Slu

č

aj selekcije 

 

Tok programa zavisi od selektora 

č

iju vrednost 

odre

đ

uje test. 

 

Svi su ovi tokovi ostvarivi u Pascalu bez naredbe GO TO primenom naredbi FOR, IF . . 
THEN . . ELSE, REPEAT, WHILE, CASE. One omogu

ć

uju da se i letimi

č

nim 

č

itanjem 

dobro napisanog programa Pascal može pretpostaviti njegovo ponašanje, tj. stati

č

ki plan 

koda odre

đ

uje njegovo dinami

č

ko ponašanje. To je vrlo zna

č

ajno za programera, jer on mora 

ispravljati greške u programu i mora održavati program. Ukoliko je mogu

ć

e obuhvatiti što 

više informacija jednostavnim 

č

itanjem programa, to 

ć

e biti lakše i brže izdvojiti greške. 

Želiš da pročitaš svih 210 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti