Predgovor

Krajem je šezdesetih godina Nicklaus Wirth definirao jezik za programiranje veoma blizak svojim prethodnicima, Algolu 60 i Algolu W, ali koncizan, s jasnom sintaksom i semantikom. Nazvao ga je "Pascal". Prva verzija jezika Pascal pojavila se 1968. godine. Prvi prevodilac dobiven je 1970. godine, a objavljen je godinu dana kasnije. Veliki interes koji je Pascal izazvao svojom pojavom doveo je do njegove daljnje konsolidacije i revidiranja, što je objavljeno 1973. godine u knjizi "Pascal User Manual and Report". Ta je verzija bila prihvacena kao standardna definicija jezika, a formalno je standardizirana tek 1983. godine. Bila je implementirana na mnogim razlicitim vrstama kompjutora, od mikro do velikih.

TURBO PASCAL

Postoje proširenja standardne verzije Pascala, posebno pojavom osobnih kompjutera (PC). Medu njima nedvojbeno je najpopularniji i najrasprostranjeniji Turbo Pascal, trenutacno ver. 7.0, tvrtke BORLAND. Naš opis Pascala odnosit ce se iskljucivo na tu verziju.

Primarna je namjena Pascala u rješavanju problema "algoritamske prirode", gdje dolazi do izražaja primjena osnovnih konstrukata strukturnoga programiranja i postoji potreba za primjenom više tipova i struktura podataka. Takoder je prikladan za ucenje razvoja algoritama i metodologije programiranja. Kao osnovne karakteristike Pascala mogu se izdvojiti sljedece:

  1. Obavezno je deklariranje svih varijabli programa.
  2. Odredene kljucne rijeci, na primjer BEGIN, IF, THEN, WHILE, "rezervirane" su i ne smiju se koristiti kao imena.
  3. Standardni tipovi podataka su realni, cjelobrojni, logicki i znakovni.
  4. Standardne strukture podataka su polja, slogovi, skupovi i datoteke. Osim njih, uveden je poseban tip podataka - pokazivac. Pascal takoder dopušta definiranje vlastitih ("internih") tipova podataka.
  5. Procedure i funkcijski potprogrami mogu se pozivati rekurzivno.

Turbo Pascal sadrži mnoga proširenja standardnoga Pascala od kojih navodimo samo ona najbitnija:

  1. Uvedena je standardna struktura niz znakova (string) s odgovarajucim funkcijama i procedurama.
  2. U dijelu deklaracija i definicija moguce je inicijalizirati vrijednosti varijabli, što je posebno važno za inicijaliziranje vrijednosti elemenata polja.
  3. Uvedene su dvije naredbe, HALT i EXIT, za prekid izvršavanja programa i prijevremeni izlazak iz potprograma. Time je u potpunosti istisnuta uporaba naredbe GOTO.
  4. Mogucnost rada s objektima.

Pored toga, posljednja verzija Turbo Pascala (7.0) maksimalno iskorištava hardverske mogucnosti PC-a, ima mnoštvo ugradenih funkcija i procedura koje pružaju dodatne mogucnosti u programiranju grafike i zvuka, objektno programiranje te spregu s programima napisanim u drugim jezicima za programiranje, vezu s operacijskim sustavom MS-DOS i vanjskim uredajima. Turbo Pascal nije samo jezik, vec sustav koji objedinjuje nekoliko podsustava, koji zajedno znatno olakšavaju postupak pisanja, testiranja i izvršavanja programa.

Može se slobodno zakljuciti da je Turbo Pascal, zadržavajuci osnovnu strukturu standardnoga Pascala i s proširenjima u odnosu na standardni Pascal, pored osnovne namjene Pascala postao mocno "orude" i za:

SADRŽAJ KNJIGE

S obzirom na kompleksnost Turbo Pascala i programiranja u njemu, odlucili smo se za izvjesnu sistematizaciju, pa smo kompletno gradivo izložili u dvije knjige. Prva knjiga podijeljena je na dva dijela, Osnove i Pascal (1), i svojim sadržajem predstavlja "Osnove Pascala". Sadržava opis svih primitivnih tipova podataka, te strukture niza, skupa, polja, sloga i datoteke. Takoder su opisane sve primitivne naredbe, i vecina složenih, pa je sadržaj ovoga dijela dovoljan za programiranje vecine problema, posebno "algoritamskih" i "nebrojcnih".

Opcenito se sva poglavlja sastoje od dva dijela: dijela o jeziku (sintaksa i semantika naredbi) i dijela u kojem su dani primjeri programa koji kroz rješenje nekoga problema ilustriraju primjene naredaba. Svako poglavlje završava pitanjima i zadacima za vježbu.

Kad se kaže "Turbo Pascal" obicno se misli na sustav koji, pored prevoditelja (kompilatora) jezika Turbo Pascal, objedinjuje još nekoliko podsustava od kojih je najvažniji sustav za unos i ispravak teksta programa ("editor"). Opis toga podsustava nije složen, ali traži malo više prostora i nadilazi sadržaj ove knjige. Zbog toga upucujemo citatelja na prirucnik Turbo Pascala.

Potpuni uspjeh u savladavanju sadržaja ove knjige može se postici jedino radom na kompjuteru. Turbo Pascal je implementiran u operacijskom sustavu MS-DOS na osobnim kompjuterima (PC), ali se necemo baviti njime, jer i to nadilazi sadržaj ove knjige. Citatelja upucujemo na bogatu literaturu na engleskom i hrvatskom jeziku.

Teško se može naci pravi put za postupan i potpun opis jezika Pascal. Za razliku od nekih drugih jezika za programiranje (BASIC i FORTRAN, npr.), u kojima se odmah mogu pisati programi koji "nešto rade", ucenje Pascala i pisanje prvih programa zahtijeva dosta uvodnih razmatranja, s dosta formalnih pravila i precizne terminologije. Samo se tako može doci do konacnoga cilja: potpunoga ovladavanja jezikom Pascal. A to je tek uvjet da se mogu pisati "pravi" programi i rješavati problemi.

Samouke programere i one koji godinama programiraju u jezicima za programiranje druge ili trece generacije, Pascal najcešce demotivira nekim svojim formalizmima. To se prije svega odnosi na obvezu deklariranja svih varijabli i konstanti programa. Drugima, pak, smeta to što treba utrošiti više vremena nego pri ucenju drugih jezika da bi se došlo do prvih programa. I jednima i drugima može se poruciti da programiranje treba shvatiti kao posebnu, ne baš laku disciplinu, i da potpuno ovladavanje njome traži dosta strpljivoga rada.

Najprije je opisana osnovna leksicka, sintakticka i semanticka struktura Turbo Pascala. Potom slijede poglavlja posvecena opcenitom opisu tipova podataka, nosilaca vrijednosti tipova podataka - konstantama i varijablama, te opis osnovnih naredaba za pridruživanje i ispisivanje vrijednosti odredenog tipa. Preostala poglavlja sadrže opise drugih složenih i primitivnih naredbi te opis struktura podataka.

Pisanje je programa u Pascalu u tzv. "slobodnom formatu". To ponekad može biti uzrokom nepreglednosti teksta programa, ali, kao što ce biti pokazano u ovoj knjizi, istodobno omogucuje dizajniranje teksta programa po vlastitom ukusu, cineci ga "lijepim" i preglednim. Svakako da se pri tom ne mogu niti smiju dati stroga pravila (jer bi se tada izgubio "slobodni format"), pa programi dani u ovoj knjizi mogu poslužiti kao prijedlog za pisanje nekih složenih naredaba. Uvodenje svojih pravila sigurno ce povecati preglednost teksta programa i olakšati pronalaženje eventualnih logickih pogrešaka.

Pascal je medu prvim jezicima koji je svojom pojavom nametnuo potrebu za strogim (formalnim) pristupom problemu ucenja jezika i programiranja. Zbog toga smo u duljem uvodnom dijelu, nazvanom "OSNOVE", dali kratak repetitorij teorije skupova i matematicke logike, te uveli formalizme neophodne za potpuno razu-mijevanje ostalih dijelova knjige.

NAMJENA KNJIGE I PRIJEDLOG KOLEGIJA

Knjiga je u prvom redu namijenjena studentima dodiplomskoga i postdiplomskoga studija kompjuterskih znanosti i informatike. Medutim, veci dio knjige može se izucavati u srednjim školama informatickoga usmjerenja, gimnazijama prirodoslovno-matematickoga usmjerenja te fakultetima ekonomskoga, matematickoga i tehnickoga usmjerenja. Knjiga je takoder namijenjena inžinjerima i znanstvenicima, ali i drugim korisnicima.

Pored općega kolegija koji bi mogao nositi naslov kao i knjiga, dijelovi knjige mogu biti korišteni i u koncipiranju sljedećih kolegija:

UPUTE ČITATELJU

Ovladavanje Pascalom zahtijeva postupnost, temeljitost i strpljivost u radu. Takoder podrazumijeva predznanje iz odredenih područja matematike i strog, formalan pristup.

Struktura izloženoga gradiva, opis pojedinih tipova i sintaktickih kategorija koje se odnose na njih, koncipirana je tako da se uvijek pocinje s brojcanim (cjelobrojnim i realnim) tipovima. Zbog toga se citatelj u prvom citanju može posvetiti izucavanju samo brojcanih tipova, konstanti i varijabli, brojcanih izraza, relacijskih izraza koji se odnose na uporabu samo brojcanih podizraza, naredbi za pridruživanje vrijednosti i ispis koje se odnose na brojcane tipove, te složenih naredbi Pascala i strukture polja koje se takoder odnose na uporabu brojcanih tipova podataka.

U drugom citanju može se vratiti na preostale tipove i strukture podataka prve razine opisa Pascala i proširiti znacenje prethodno naucenih naredbi. Potom se može prijeci na ostale dijelove knjige. Potpuno ovladavanje sadržajem knjige podrazumijeva usporedni rad na kompjuteru.

Zagreb, rujna 1995.

Autor