Pascal u Power Point-u Elementi Pascala Alfabet programskog jezika Pascal sastoji se od svih velikih i malih slova engleskog alfabeta,cifara 0-9,i sljedećih specijalnih znakova: + - * / . , : ; ' ( ) [ ] { } ^ = < > >= <= := .. (* *) Pored toga,alfabet jezika Pascal uključuje i prazninu(ili blanko znak). Sve riječi koje poznaje Pascal dijele se na ključne,predefinirane i korisnički definirane. Komentar pišemo tako da u vitičastim zagradama napišemo navedeni tekst koji služi za bolju razumljivost i preglednost programa. Separatori u programu odvajaju imena,konstante ili ključne riječi.Kao separator možemo koristiti komentar,razmak ili znak za kraj reda Ime je niz alfanumeričkih znakova,a prvi znak mora biti slovo.Prvih osam znakova se uzima u obzir.Imenom označavamo program,funkciju,proceduru,tip,varijablu i konstantu.Pascal dopušta velika i mala slova ali ih ne razlikuje. U Pascalu koristimo cijele(integer) i realne(real)broje zapisane u dekadnim brojevnom sistemu.Broj može imati predznak + ili -. Cijeli broj zapisuje se kao niz cifara i ne smije sadržavati decimalnu tačku niti eksponent. Realni brojevi sadrže decimalnu tačku.Ispred i iza decimalne tačke mora biti bar jedan broj.Realni broj se može pisati i sa decimalnim eksponentom String je niz znakova u jednostrukim navodnicima(tekstualna konstanta).Jednostruki navodnik unutar stringa piše se kao dva navodnika. Oznaka naredbe je niz od jedne ili najviše četiri broja Konstanta je zadana nepromjenljiva vrijednost ili podatak.Ona može biti numerička,logička ili tekstualna. Struktura programa Program se sastoji od zaglavlja(heading) i bloka(block).U zaglavlju navodimo ime programa i popis parametara preko kojih je program povezan s okolinom.Kao parametre najčešće koristimo standardne datoteke input(standardni ulaz)i output(standardni izlaz). U bloku se nalazi opis podataka i opis akcija.Svi objekti koji se koriste u programu moraju prethodno biti deklarirani (najavljeni) u pojedinim odjeljcima bloka. Oznaka može biti cijeli broj od 0 do 9999 i mora biti jedinstvena u jednom bloku.Koristi se za označavanje naredbe kod upotrebe bezuvjetnog skoka (GOTO). U definiciji za pojedine konstante uvodimo ime koje upotrebljavamo umjesto konstante. Primjeri: CONST pi = 3.14159; U Pascalu,osim standardnih tipova,možemo koristiti i vlastite tipove podataka,koje definiramo u ovom odjeljku. U deklaraciji varijabli navodimo sve varijable i njihove tipove.Svakoj se varijabli pridruži dio memorijskog prostora,a veličina tog prostora određena je tipom varijable. Odjeljek naredbi mora postojati u svakom bloku i u njemu navodimo naredbe odvojene znakom ,,;” (tačka-zarez).Naredbe opisuju akcije koje će se izvršiti za vrijeme rada programa. Primjer: BEGIN read(a,b);c:=a +b;writeln(‘zbir =’ , c) END Prosti tipovi podataka U Pascalu možemo koristiti nekoliko tipova podataka.Tip je konačan skup vrijednosti za koje vrijede neka zajednička svojstva. Tipove podataka možemo podijeliti u tri grupe: 1.prosti: standardni logički(Boolean) znakovi(char) cjelobrojni(integer) korisnički realni(real) pobrojani(enumerated) intervalni(subrange) 2.strukturalni: skup(SET) niz(ARRAY) zapisi(RECORD) datoteka(FILE) 3.pokazivački(pointers) Logički tip je standardni redni tip podataka sa dva elementa false i true gdje su false(laž) i true(istina) standardne imena. Promjenljive znakovnog tipa,mogu kao svoju vrijednost sadržavati proizvoljan znak,tj.slovo,cifru ili znak interpukcije.Konstanta tipa char se zapisuje u jednostrukim navodnicima :’’‚’.’‚’A’‚’’’’. Integer je standardni redni tip podataka i predstavlja konačan podskup skupa cijelih brojeva.Najveći cijeli broj (maxint) zavisi od konkretne realizacije na računaru. Tip podataka real je standardni tip i predstavlja konačan podskup skupa realnih brojeva.Tip real i integer su dva disjunktna skupa. Pascal omogućuje korisniku stvaranje vlastitog (korisničko definiranog )tipa kao linearno uređenog skupa podataka (imena).Definiraju se uz pomoć ključne riječi type. Interavalni tip podataka zadajemo kao interval prethodno definiranog rednog tipa (podbrojani,char,Boolean,integer) određujući donju i gornju granicu sa dvije tačke između("..") Varijable i izrazi Varijabla je objekt čija se vrijednost mijenja tokom rada programa.Ime varijable je stalno.Varijable omogućavaju definiranje postupaka na različitim podacima. Svaka varijabla koja se javlja u programu mora biti deklarirana. Izraz određuje način izračunavanja vrijednosti.Sastoji se od operanada i operatora koji moraju biti istog tipa.Tip vrijednosti izraza zavisi od tipa operanada. Operatori definiraju operacije koje treba izvršiti na operandima da se dobije rezultat.Svojstva operacije zavise o tipu operanada. * DIV MOD + - Operacije na cjelobrojnom tipu operanada množenje rezultat cjelobrojnog dijeljenja ostatak cjelobrojnog dijeljenja sabiranje oduzimanje Kod dijeljenja drugi operand mora biti različit od nule.Ako su operandi tipa integer,rezultat dijeljenja je tipa real. Operacije na logičkom tipu operanada NOT AND OR negacija konjugacija(i) disjunkcija(ili) Operacije na skupovnom(SET)tipu operanada * + - presjek skupova unija skupova razlika skupova Standardne funkcije olakšavaju pisanje i računanje izraza.Tip argumenta i tip vrijednosti funkcije unaprijed su određeni.Mogu imati samo jedan argument koji može biti izraz odgovarajućeg tipa Čitanje i pisanje podataka Da bismo omogućili razmjenu podataka između standardnog ulaza(input),programa i standardnog izlaza(output),koristimo odgovarajuće procedure za čitanje podataka s ulaza (read i readln), te ispisivanje podataka na izlaz (write i writeln). Razlika : read sljedeće čitanje se nastavlja od mjesta gdje se prethodno čitanje završilo,a naredba readln čitanje novih podataka;write sljedeći ispis nastavlja tačno od mjesta gdje se tekući ispis završio,a naredba writeln sljedeći ispis nastavlja u novom redu ekrana. Naredbe PROSTE STRUKTURALNE prazna naredba naredba pridruživanja bezuvjetni skok složena naredba uvjetne naredbe naredba za ponavljanje GOTO IF CASE WHILE REPEAT FOR U Pascalu je dopuštena prazna naredba koja nema nikakvu oznaku niti utječe na izvršavanje programa. Naredba pridruživanja je prosta naredba koja varijabli pridružuje vrijednost izraza.Znak " : = " je znak pridruživanja. Primjeri: 1. n : = n – 1; 2. suma : = suma + broj; 3.radijani : = alfa * pi / 180 ; Složena naredba Složena naredba je niz naredbi koje su odvojene sa";" i ograničene ključnim riječima BEGIN i END. Grafički prikaz: Naredba IF a)IF...THEN Ako logički izraz B ima vrijednost istina (true),tada se izvršava naredba S. 1.Računa se vrijednost izraza B. 2.Ako je B = true,izvršava se naredba S i prelazi na sljedeću naredbu. 3.Ako je B = false,prelazi se na sljedeću naredbu. Grafički prikaz: Primjer: PROGRAM najmanji(input,output); (*Najmanji od tri unesena broja*) VAR i,j,k,min : integer ; BEGIN writeln(' Upišite tri cijela broja : '); read(i,j,k); min : = i; IF j < min THEN min : = j ; IF k < min THEN min : = k; Writeln(' najmanji je ',min) END. b)IF...THEN...ELSE Ako logički izraz ima vrijednost istina (true),tada se izvršava prva naredba S,inače druga naredba S1.Ako je S1 prazna naredba, tada imamo slučaj IF B THEN S. Izvršavanje naredbe IF...THEN...ELSE: 1.Računa se vrijednost logičkog izraza B. 2.Ako je B = true, izvršava se naredba S. 3.Ako je B = false, izvršava se naredba S1. Grafički prikaz: Primjer: IF (znak < ' a ') OR (znak > ' z ') THEN write (znak) ELSE write(chr(ord(znak) + ord(' A ') – ord (' a '))); Naredbu IF B THEN IF B1 THEN S1 ELSE S2 možemo protumačiti na dva načina: 1. IF B THEN BEGIN IF B1 THEN S1 END; 2. IF B THEN BEGIN IF B1 THEN S1 END ELSE S2; Naredba CASE Naredba CASE omogućava grananje programa u više smjerova.Vrijednost izraza može biti rednog tipa (char,Boolean,integer,podbrojani ili neki intervalni tip). Svaka naredba povezana je sa popisom case-oznaka koje se ne deklariraju i definirane su samo unutar prostora naredbe CASE. Grafički prikaz: Naredba WHILE Broj izvršavanja naredbe S zavisi od zadanog uvjeta.Sve dok logički izraz B ima vrijednost istina (true),izvršava se naredba S. Izvršavanje naredbe WHILE: 1.Računa se vrijednost logičkog izraza B. 2.Ako je B = true,izvršava se naredba S i prelazi na tačku 1. 3.Ako je B = false,završava se naredba WHILE. Grafički prikaz: Naredba REPEAT Izvršava se naredba S sve dok se ne zadovolji uvjet B (dok vrijednost logičkog izraza ne bude istina (true) ).Naredba će se bar jednom izvršiti,jer se uvjet provjerava na kraju petlje. Izvršavanje naredbe REPEAT: 1.Izvršava se naredba S. 2.Računa se vrijednost logičkog izraza B. 3.Ako je B = false,nastavlja se izvršavanje naredbe REPEAT tačkom 1. 4.Ako je B = true,završava se naredba REPEAT Grafički prikaz: Naredba FOR Kontrolna varijabla odbrojava broj prolaza kroz petlju mijenjajući od početne do konačne vrijednosti sa jediničnim korakom. Kontrolna varijabla mora biti prethodno deklarirana i tip varijable može biti neki redni tip (char,Boolean,integer,podbrojani ili neki intervalni tip).Vrijednost kontrolne varijable nije dopušteno mijenjati unutar područja naredbe FOR. Izvršavanje naredbe FOR...TO...DO Grafički prikaz: Naredba GOTO Naredba GOTO u mnogim je jezicima osnovna naredba,ali u Pascalu njena upotreba narušava strukturu programa,pa je treba izbjegavati.Naredba GOTO prekida prirodno izvršavanje naredbi te prenosi kontrolu na naredbu s navedenom oznakom (broj od 0 do 9999).Sve oznake moraju biti deklarirane na početku bloka. Oznaka se piše ispred naredbe,a između oznake i naredbe mora biti dvotačka. Procedure i funkcije Procedure i funkcije omogućavaju nam rastavljanje programa u jednostavnije i razumljivije logičke cjeline,kako pozivamo na izvršavanje njihovim imenom. Procedure su potprogrami koji mogu imati više ulaznih i viša izlaznih vrijednosti pridruženih varijablama.Deklaracija procedure sastoji se iz zaglavlja procedure i bloka. U popisu parametara navodimo sve formalne parametre (ulazne i izlazne) i njihove tipove. Osim unaprijed definiranih funkcija korisnik može sam definirati vlastite funkcije. Funcije su potprogrami koji daju određenu izlaznu vrijednost koja mora biti pridružena imenu funkcije.Tip vrijednosti mora odgovarati tipu funkcije kojeg definiramo u zaglavlju tako da navedemo ime nekog prostog tipa. Deklaracija funkcije sastoji se od zaglavlja funkcije i bloka. U funkciji se mogu pozvati funkcije i procedure koje su prethodno deklarirane. U potprogramu (FUNCTION ili PROCEDURE) mogu se pozivati drugi potprogrami koji su prethodno deklarirani.Ako potprogram poziva samog sebe,onda za njega kažemo da je rekurzivan. Pored vrijednosnih i varijablinih parametara standardni Pascal dopušta da parametri budu funkcije i procedure.U popisu parametara navodimo formalna imena funkcija i procedura. Strukturalni tipovi podataka U Pascalu možemo stvarati potrebne strukturalne tipove podataka upotrebljavajući prethodno definirane proste tipove. Možemo upotrebljavati sljedeće strukturalne tipove: SKUP (SET) NIZ (ARRAY) ZAPIS(RECORD) DATOTEKA(FILE) SKUP(SET) Tip SET je skup svih podskupova osnovnog tipa.Osnovni tip može biti bilo koji redni tip.Skup zadajemo tako da navedemo elemente odvojene zarezom u uglatim zagradama. Na tipu SET definirani su skupovni operatori * , + , - , IN , = , <> , >= , <= Sljedeći operatori daju rezultat tipa SET: A*B presjek A+B unija A–B razlika Sljedeći operatori na tipu SET daju rezultat tipa Boolean: e IN B e je elemenat skupa B A=B A jednako B A <> B A različito od B A <= B A podskup od B A >= B A nadskup od B Tip SET se koristi često umjesto složenih logičkih izraza,jer su operacije sa skupom mnogo brže: z IN [’A’..’Z’,’a’..’z’] znači (z > = ’A’) AND (z < = ’Z’) OR (z > =’a’) AND (z < =’z’) NIZ(ARRAY) Niz je sastavljen od komponenata istog tipa.Tip komponenata može biti bilo koji prosti ili strukturalni tip osim FILE. Komponentu označavamo imenom niza dodajući u uglatim zagradama indeksni izraz. Definicija tipa: TYPE niz = ARRAY [T1] OF T2; T1 je tip indeksa i mora biti neki redni tip ,,integer” (T1 može biti tipa integer). T2 je tip komponente niza i može biti proizvoljan tip. Primjeri: TYPE dani = (po ,ut ,sr ,ce ,pe ,su ,ne ) ; mjeseci = (jan ,feb ,mar ,apr ,maj ,jun ,jul ,aug ,sep ,okt ,nov ,dec ) ; VAR sati : ARRAY [ po..pe] OF 1..31; brojdana : ARRAY [mjeseci] OF 1..31; Označavanje komponente: Višedimenzionalni niz Komponente niza mogu biti proizvoljnog tipa. TYPE matrica = ARRAY[T1] OF ARRAY[T2] OF T ; VAR m : matrica ; T1 , T2 su tipovi indeksa (redni tip) T je tip komponente Uobičajeno je skraćeno označavanje : TYPE matrica = ARRAY [T1 ,T2] OF T ; VAR m : matrica ; m[i, j] ; Neka je VAR mat : ARRAY [1..3, 1..3] OF integer; U memoriji za varijablu mat rezervira se prostor u koji se mogu smjestiti sve komponente varijabli. ZAPIS(RECORD) Zapis je sastavljen od određenog broja komponenti (polja) koje mogu biti proizvoljnog tipa (osim FILE).Zapis može biti i komponenta nekog drugog strukturalnog tipa (ARRAY,RECORD,FILE). Ako imamo dva zapisa istog tipa tada možemo koristiti operator pridruživanja,te relacijske operatore = i <> . Definicija tipa : Promjenljivi zapis Zapis može biti sastavljen od stalnog dijela i promjenljivog dijela (varijante)koji se mijenja zavisno o vrijednosti polja oznaka. TYPE VAR izbor = (x,y,z) ; element1 = RECORD rijec : ARRAY [1..15] OF char ; CASE ind : izbor OF x : (i : integer) ; y : (r : real); z : (b : Boolean) END ; e1 : element1; Varijabla e1 ima strukturu zapisa sa tri polja.Prvo polje (stalni dio) je niz znakova,drugo je polje tipa (x,y,z),a treće polje može biti tipa integer,real ili Boolean. NAREDBA WITH Naredba WITH omogućava da ime svakog polja zapisa koristimo kao ime varijable i tako skratimo zapisivanje komponente.U naredbi WITH navodimo sve potrebne varijable tipa RECORD,a komponente u području naredbe WITH označavamo imenom polja. Komponentu varijable tipa RECORD označavamo tako da navedemo ime varijable i ime polja.Ako je ovo polje opet tipa RECORD,tada zapisivanje može postati nepregledno. DATOTEKA(FILE) Datoteka je tip komponenata istog tipa spremljenih na vanjskim nosiocima podataka.U standardnom Pascalu definirana je sekvencijalna datoteka: TYPE datoteka = FILE OF T; Text je standardni tip podataka definiran kao datoteka znakova organiziranih u redove.Svaku datoteku možemo posmatrati kao datoteku znakova.Redovi se odvajaju posebnim kontrolnim znakom – end of line (eoln). Program možemo shvatiti kao opis postupaka koji ulaznu datoteku (input) pretvara u izlaznu datoteku (output). U Pascalu su definirane standardne datoteke input i output koje su definirane prije početka svakog programa,a predstavljaju standardni ulaz i izlaz. VAR input,output : text; input datoteka se može samo čitati,tj. može se koristiti samo get. output datoteka se može koristiti samo za pisanje,tj. može se koristiti samo put. POKAZIVAČI Dinamičke varijable se po potrebi stvaraju i brišu za vrijeme izvršavanja programa-ne zavisi od statičke strukture programa. Pokazivači se najčešće (popisa) podataka.Svaki (može i više)polje koje adresu sljedećeg člana upotrebljavaju za stvaranje dinamičke vezane liste član liste je zapis (RECORD) kojem je dodano jedno je pokazivač nekog člana liste,odnosno koje sadrži liste. Binarno stablo je hijerarhijska struktura zadataka u kojoj svaki nadređeni element može imati najviše dva podređena elementa.Elemente stabla nazovimo čvorovima.Binarno stablo možemo definirati aksiomatski: 1. prazan skup čvorova je binarno stablo, 2. ako je C čvor, S1 i S2 binarna stabla,tada je uređena trojka (S1, C, S2) binarno stablo. Čvor je zapis koji ima dva dodatna pokazivačka polja,što pokazuje na lijevo i desno podstablo.Za pristup u stablo potreban je jedan glavni pokazivač (korijen) poznat izvan stabla. ZAKLJUČAK Pascal je danas najpopularniji programski jezik i kreirao ga je Niklaus Wirth. Pascal je nastao kao zamjena za ALGOL 60. Na početku je bio namijenjen školovanju programera i razvijanju stila u programiranju, ali je zbog svojih dobrih svojstava postao najpopularniji programski jezik. Moderniji programski jezici znatno su teži od Pascala. Poznavanje Pascala je često preduvijet za savladavanje drugih proceduralnih i objektno – orijentiranih programskih jezika.
© Copyright 2024 Paperzz