Pascal prezentacija – teorija ukratko

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.