Pascal-struktura jezika

Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Programski jezik PASCAL : 

Programski jezik PASCAL ETŠ "Nikola Tesla" Niš, Milena Krstić

Pascal : 

Pascal Paskal (Pascal) je proceduralni programski jezik, koji je 1970. godine razvio Niklaus Wirth, kao jezik pogodan za učenje programiranja. Imenovan je po čuvenom francuskom matematičaru i filozofu Blezu Paskalu. Standardizovan je 1983. godine od strane Međunarodnog komiteta za standardizaciju.

Struktura programskih jezika : 

Struktura programskih jezika Poput prirodnih i programski jezici se odlikuju svojom azbukom i gramatikom Svaki jezik ima usvojeni skup sintaksnih pravila za pisanje naredbi jezika (npr. iza naredbe se obavezno stavlja ;) Pod semantikom jezika podrazumeva se značenje dodeljeno usvojenim sintaksnim strukturama

Osnovni simboli jezika : 

Osnovni simboli jezika Osnovni simboli jezika su: Slova: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz Cifre: 0123456789 Specijalni znaci: + - * /< > . , : ; ’ ^ [ ] { } ( ) Neštampajući znaci: razmak (space), novi red (enter), tabulator (tab)

Ključne reči : 

Ključne reči Svaki programski jezik koristi vlastiti, ograničeni skup reči formiranih nad azbukom jezika, a koje imaju rezervisano i nepromenljivo značenje. Takve ćemo reči nazivati ključnim ili rezervisanim riječima. and, array, begin, case, const, div, downto, do, else, end, file, for, function, goto, if, in, label, mod, nil, not, of, or, procedure, program, record, repeat, set, then, to, type, until, var, while, with

Identifikatori (imena) : 

Identifikatori (imena) Koriste se za označavanje osnovnih objekata jezika – konstanti, promenljivih, korisničkih tipova podataka, korisničkih procedura i funkcija Identifikator je proizvoljan niz znakova (slova, cifara i znaka _) koji ne sme da počinje cifrom Korektno Nekorektno T_33 T 33 ili T-33 PrvaTacka ili Tacka1 1.Tacka ili Prva Tacka _prosek #prosek Pascal NE RAZLIKUJE VELIKA I MALA SLOVA – nije CaseSensitive (tj. Pera_Peric je isto što i pera_peric; xA je isto što i xa)

Promenljive : 

Promenljive Promenljiva je prosor u operativnoj memoriji kome je dodeljeno ime. Vrednost promenljive može se menjati u toku izvršenja programa. Svaka nova vrednost upisana u promenljivu potire prethodnu vrednost. Dodela vrednosti vrši se operatorom := Promenljivoj sa leve strane znaka dodele dodeljuje vrednost izraza sa desne strane (npr. A:=15; x:=x+1; p:=a*b) Sve vrednosti moraju pripadati nekom od tipova podataka definisanih u jeziku

Tipovi podataka : 

Tipovi podataka Određivanjem kog je tipa podataka promenljiva zadaje se: Skup mogućih vrednosti promenljive Skup operacija koje se mogu izvršiti nad tom promenljivom Način registrovanja promenljive u računaru

Tipovi podataka : 

Tipovi podataka

Celobrojni tip - INTEGER : 

Celobrojni tip - INTEGER Matematički skup cekih brojeva Z je beskonačan U računaru opseg celih brojeva koji se može predstaviti je ograničen na neki skup vrednosti koji zavisi od načina registrovanja broja u memoriji Kod tipa INTEGER broj se pamti na 16 bita i predstavljen je interval celih brojava Broj 32767 je imenovana konstanta MAXINT Tip LONGINT ima 32-bitni zapis koji daje opseg tj.

Celobrojni tip - INTEGER : 

Celobrojne konstante se predstavljalu kao niz cifara dekadnog brojnog sistema Ispred negativnog broj stoji predznak – Ispred pozitivnih brojeva može i ne mora da stoji predznak + Npr. +256, 45, -1475... Celobrojni tip - INTEGER

Celobrojni tip - INTEGER : 

Aritmetičke operacije nad celim brojevima (rezultat je takođe ceo broj): + sabiranje - oduzimanje * množenje div celobrojno deljenje mod ostatak pri celobrojnom odeljenju Prioritet: 1. *, div, mod 2. +, - Celobrojni tip - INTEGER

Celobrojni tip - INTEGER : 

Primeri: 13 div 2 = 6 19 div 4 = ? 13 mod 2 = 1 19 mod 4 = ? 24 div 3 = 8 5 div 10 = ? 24 mod 3 = 0 5 mod 10 = ? 51 div 15 = 3 112 div 10 = ? 51 mod 15 = 6 112 mod 10 = ? Celobrojni tip - INTEGER 4 3 0 5 11 2

Realni tip - REAL : 

Realni tip - REAL Realni tip podataka je podskup skupa realnih brojeva Realne konstante se predstavljaju na dva načina: Pozicioni 12.56 -32.7 0.23 Eksponencijalni 12.16E00 1.216e+01 0.1216e02 121.6E-01 (mantisa – broj ispred oznake E, eksponent – broj iza oznake E)

Realni tip - REAL : 

Primeri: Prevedi realni broj iz pozicionog u eksponencijalni oblik i obrnuto: 0.00006 = ? 3E-03 = ? -123.45 = ? 0.1E05 = ? -0.012 = ? 1.0E-06 = ? 4000000.0 = ? 0.2E04 = ? Realni tip - REAL 6.0E-05 -1.2345E02 -1.2E-02 4E+06 3*10-03=0.003 0.1*105=10000.0 1.0*10-6=0.000001 0.2*104=2000.0

Realni tip - REAL : 

PAŽNJA: Konstanta u zapisu 145 predstavlja CELOBROJNU vrednost Konstanta u zapisu 145.0 predstavlja REALNI broj Realni tip - REAL

Realni tip - REAL : 

Aritmetičke operacije nad realnim brojevima (rezultat je takođe realni broj): + sabiranje - oduzimanje * množenje / realno deljenje Prioritet: 1. * , / 2. + , - Realni tip - REAL

Realni tip - REAL : 

Celobrojni operatori div i mod ne mogu se primeniti nad realnim brojevima Realno deljenje se može izvoditi nad celim brojevima, a dobijeni rezultat je realnog tipa čak iako se radi o deljenju bez ostatka Primer: 4 div 2 = 2 (celobrojni rezultat) 4 / 2 = 2.0 (realni rezultat) Realni tip - REAL

Znakovni tip - CHAR : 

Znakovni tip - CHAR Ovu grupu podataka čine znakovi: slova engleskog alfabeta, numerički znakovi od 0 do 9, znakovi interpunkcija i specijalni znakovi. Najčešće korišćeni kod za znakove je ASCII Skup znakova je uređeni skup, tj. za svaki znak je tačno poznat njegov redni broj u skupu znakova (npr. slovo A je na poziciji 65, cifra 1 nas poziciji 49...)

Znakovni tip - CHAR : 

Znakovni tip - CHAR Promenljiva ili konstanta znakovnog tipa zauzima 1 bajt u memori Znakovna konstanta se piše između dva apostrofa: ’A’, ’#’, ’7’, ’s’, ’ ’ Apostrof kao znakovna konstanta se piše kao dva apostrofa ’’’’ Primeri: 5 je celobrojna konstanta + je aritmetički operator 5.0 je realna konstanta ’+’ je znakovna konstanta ’5’ je znakovna konstanta

Niz znakova - STRING : 

Niz znakova - STRING Tip string je tip kojim se označava niz znakova dužine 0 do 255 karaktera Ako se prilikom deklaracije promenljive tipa string ne navede dužina (npr. string ) koja označava max dužinu niza, podrazumeva se da je max dužina 255. Max dužina pokazuje koliko će se bajtova u memoriji rezervisati za pamćenje deklarisane string promenljive. String konstanta se navodi između apostrofa Prazan string, dužine nula zapisuje se kao ’’

Niz znakova - STRING : 

Niz znakova - STRING Redni brojevi simbola u stringu počinju od 1 Elementima stringa se pristupa navođenjem imena i rednog broja Primeri: ‘Ovo je string duzine 23’ (broji se razmak) ‘McDonald’’s’ (Apostrof posle slova d je deo stringa i zato se piše duplo. U suprotnom smatralo bi se da je to oznaka kraja stringa) 18000 je integer broj ‘18000’ je string koji označava poštanski broj grada Niša

Logički tip - BOOLEAN : 

Logički tip - BOOLEAN Logički tip podataka je uređeni skup dve vrednosti (false, true) U uređenom skupu vrednosti prvi podatak ima redni broj nula, sledeći jedan itd. Za memorisanje logičkih vrednosti u zauzima se jedan bajt memorijskog prostora

Logički tip - BOOLEAN : 

Logički tip - BOOLEAN Logički operatori (po prioritetu): not negacija and logičko I (konjunkcija) or logičko ILI (disjunkcija) xor eksluzivno ILI Tablice istinitosti

Logički tip - BOOLEAN : 

Logički tip - BOOLEAN Relacijski operatori: = jednako <> nejednako >= veće ili jednako > veće <= manje ili jednako < manje Operatori poređenja mogu biti celi brojevi, realni brojevi, znakovne ili logičke vrednosti, a rezultat je uvek logičkog tipa Poređenje podataka tipa char svodi se na poređenje rednih brojeva dodeljenih znacima u uređenom skupu znakova Poređenje podataka tipa Boolean svodi se na poređenje rednih brojeva koji su im dodeljeni u uređenom skupu logičkih vrednosti

Logički tip - BOOLEAN : 

Logički tip - BOOLEAN Primeri: Izraz Vrednost izraza 14 < 24 ? 23.25 <> 6.0 ? 25 = 36 ? ’A’ < ’a’ ? ’6’ >= ’z’ ? false < true ? ’Ana’ > ’Dragana’ ? true true true true false false false

PAŽNJA : 

PAŽNJA Operator dodele := promenljivoj sa leve strane znaka dodele dodeljuje se vrednost izraza sa desne strane x:=y – promenljiva x dobija vrednost promenljive y f1:=a*x2+b*y+c – sračunava se vrednost izraza sa desne strane znaka dodele i dobijena vrednost upisuje u promenljivu f1 Operator poređenja = Upoređuju se vrednosti izraza sa leve i sa desne strane znaka dodele i ako su iste rezultat poređenja je TRUE, u suprotnom FALSE x=y upoređuje vrednost promenljive x i vrednost promenljive y

Prioritet operatora : 

Prioritet operatora

Standardne funkcije : 

Standardne funkcije Standardne funkcije su preddefinisane ili ugrađene i mogu se pozivati navođenjem imena i argumenata funkcije Matematičke funkcije:

Standardne funkcije : 

Standardne funkcije Konverzione funkcije (prevode vrednost jednog tipa u drugi tip podataka):

Standardne funkcije : 

Standardne funkcije Mešovite funkcije:

Slide 32: 

Primeri: funkcija vrednost funkcije odd(7) ? odd(10) ? pred(12) ? succ(false) ? pred(‘C’) ? succ(‘c’) ? trunc(12.76) ? round(12.76) ? ord(‘A’) ? chr(65) ? ord(false) ? true false true ‘d’ 11 ‘B’ 12 13 65 ‘A’ 0 Standardne funkcije

Standardne funkcije : 

Standardne funkcije Argumenti funkcija mogu biti: Konstante Promenljive Izrazi Primeri: integer x:=15 y:=-12 real a:=0.25 b:=3.0 char z:=‘W’ Boolean L1:=true L2:=false funkcija vrednost funkcije odd(y) ? odd(5+y) ? pred(a) ? succ(z) ? abs(sqr(b)-10) ? succ(ord(‘A’)+3) ? trunc(sqrt(a)) ? round(sqrt(a)) ? ord(L1 xor L2) ? exp(b-3) ? false true ‘X’ 69 1.0 0 1 1 1.0 greška

Izrazi : 

Izrazi g:= (a+b) / ( b/c + 3) c:= sqrt( sqr(a) + sqr(b) ) x1:= (-b - sqrt(b*b - 4*a*c) ) / (2*a) Zadate izraze predstaviti sintaksom programskog jezika Pascal

Izrazi : 

Izrazi Zadate izraze predstaviti sintaksom programskog jezika Pascal f1:= (a+b-c) / (2*a + sqr(b) – a*b*c) f2:= exp(3*x) + ln(sqr(z)) f3:=sqr( sin(alpha) ) + sqrt( abs(x – y*z) ) f4:= (sin(sqr(aplha+beta))+x)/(abs(ln(x))+z)

Standardne procedure : 

Standardne procedure Standardne procedure su preddefinisane ili ugrađene i mogu se pozivati navođenjem imena i argumenata procedure Standardne procedure za ulaz – učitavanje podataka su READ i READLN Standardne procedure za izlaz – ispisivanje podataka su WRITE i WRITELN

READ / READLN : 

READ / READLN read (dat, prom1, prom2, prom3 ...) readln (dat, prom1, prom2, prom3 ...) Podaci se u program mogu unositi (tj. učitavati) iz neke datoteke zapamćene na hard disku ili sa standardnog ulaza – ukucavanjem na tastaturi Prvi argument u pozivu procedure je datotečka promenljiva koja označava ulaznu datoteku iz koje se učitavaju podaci Ako je u pozivu procedure izostavljen identifikator datoteke, podrazumeva se da je ulaz sa tastature Procedura readln može se koristiti samo kod učitavanja iz neke tekstualne datoteke (standardna input datoteka se smatra tekstualnom)

READ / READLN : 

READ / READLN read (prom1, prom2, prom3 ...) Procedura read čita vrednosti sa standardnog ulaza i unosi ih u promenljive navedene u listi argumenata funkcije Čita se onoliko vrednosti koliko ima argumenata u pozivu procedure Po završenom unosu, kursor ostaje u tekućem redu ulazne datoteke readln (prom1, prom2, prom3 ...) Procedura readln čita standardnu ulaznu datoteku i unosi vrednosti u promenljive iz liste Čita se onoliko vrednosti koliko ima argumenata u pozivu procedure Po završenom unosu, kursor skače u novi red ulazne datoteke

READ / READLN : 

READ / READLN Primeri: var a,b,c: integer; var x,y,z:real; _ _ readln(a); readln(b,c); read(a); read(b,c); read(a); readln(b,c); a:=10 b:=20 c:=30 a:=10 b:=30 c:=40 a:=10 b:=20 c:= 30 _

READ / READLN : 

READ / READLN PAŽNJA: var a: integer; var x,y:real; readln(x); readln(a); readln(x); readln(y); x:=1.5 ERROR x:=10.0 y:=30.0

READ / READLN : 

READ / READLN Unos promenljivih znakovnog tipa var z1, z2, z3: char; read/readln(z1, z2, z3); Ulaz: Ulaz: ANA A N A z1:=‘A’ z1:=‘A’ z2:=‘N’ z2:=‘ ’ z3:=‘A’ z3:=‘N’ Unos promenljivih logičkog tipa NIJE DOZVOLJEN, tj. vrednosti logičkih promenljivih se ne unose naredbom read-readln, već se postavljaju u programu (set-uju) naredbom dodele

READ / READLN : 

READ / READLN READLN; Naredba readln može se koristiti i bez argumenata Kada se u toku izvršenja programa dođe do ove naredbe, dalji tok programa se zaustavlja sve dok se sa tastaure ne unese znak za prelaz u novi red – ENTER Npr. for i:=1 to 28 do begin IspisiPodatke(ime, prezime, uspeh); writeln; writeln(‘Unesi ENTER za nastavak’); READLN; writeln(‘______________________________’); end;

WRITE / WRITELN : 

WRITE / WRITELN write (dat, prom/izraz1, prom/izraz2, prom/izraz3 ...) writeln (dat, prom/izraz1, prom/izraz2, prom/izraz3 ...) Izlazni podaci se mogu prikazivati (tj. upisivati) u izlaznu datoteku kreiranu na hard disku ili na standardni izlaz – prikazom na monitoru Prvi argument u pozivu procedure je datotečka promenljiva koja označava izlaznu datoteku u koju se upisuju podaci Ako je u pozivu procedure izostavljen identifikator datoteke, podrazumeva se da izlaz treba prikazati na monitoru Procedura writeln može se koristiti samo kod upisa u neku tekstualnu datoteku (standardna output datoteka se smatra tekstualnom)

Slide 44: 

write (prom1, prom2, prom3 ...) Procedura write vrednosti promenljivih iz liste argumenata funkcije ispisuje na monitoru Po završenom ispisivanju kursor ostaje u tekućem redu izlazne datoteke writeln (prom1, prom2, prom3 ...) Procedura writeln ispisuje vrednosti promenljivih iz liste na monitoru Po završenom unosu, kursor skače u novi red izlazne datoteke Argument procedure write / writeln ne može biti promenljiva, konstanta ili izraz Ako se kao argument procedure write / writeln javi string, vrednost stringa se ispisuje na monitoru (tj. upisuje se u izlaznu datoteku) Npr. writeln(‘Spisak odlicnih ucenika:’); WRITE / WRITELN

Slide 45: 

Format ispisivanja celih brojeva Primer: a:=10; b:=20; c:=30; d:=4; e:=3; f:=125 writeln(a,b,c); writeln(a:5,b:5,c:5); writeln(d,e,f); writeln(d:5,e:5,f:5); Izlaz: Izlaz: WRITE / WRITELN blanko

Slide 46: 

Format ispisivanja celih brojeva Format celog broja se zadaje tako što se iza imena promenljive stavi dvotačka posle koje se navede broj pozicija rezervisanih za zapis celog broja Ukoliko celi broj ima manje cifara od predviđenog broja mesta vrši se desno ravnanje, tj. višak pozicija sa leve strane se popunjava blanko simbolom Ako je broj cifara celog broja veći od previđenog broja mesta polje za ispis se proširuje do potrebnog broja mesta WRITE / WRITELN

Slide 47: 

Format ispisivanja realnih brojeva Primer: a:=1.5; b:=2; c:=3.12689; writeln(a); writeln(a:7:3); writeln(b,c); writeln(b:7:3,c:7:3); Izlaz: Izlaz: 1.5000000000E+00 2.0000000000E+00 3.1268900000E+00 WRITE / WRITELN

Slide 48: 

Format ispisivanja realnih brojeva Format realnog broja se zadaje u obliku promenljiva:X:Y Prvi broj u formatu (X) označava ukupan broj pozicija rezervisanih za zapis broja računajući celobrojni, razlomljeni deo i decimalnu tačku, dok drugi broj (Y) predstavlja broj pozicija iza decimalne tačke Ukoliko realni broj ima manje cifara od predviđenog broja decimalnih mesta vrši se dopunjavanje blanko simbolom Ako je broj cifara u decimalnom broja veći od previđenog broja mesta vrši se zaokruživanje na zadati broj decimala U slučaju kada se ne zada format za prikaz, realni broj će biti predstavljen u eksponencijalnom obliku WRITE / WRITELN

Slide 49: 

Format ispisivanja znakovnih i string podataka Format za prikaz znakovnih podataka i stringova isti je kao i kod celih brojeva, tj. zadaje se navođenjem ukupnog broja pozicija rezervisanih za zapis znakovne ili string promenljive pri čemu se višak pozicija sa leve strane popunjava blanko simbolima Format ispisivanja logičkih podataka Format za prikaz logičkih podataka isti je kao kod celih brojeva i kao kod sting promenljivih WRITE / WRITELN

Slide 50: 

Primer: var a,b,O,P:real; a:=2.5; b:=3.0; write(‘Stranice pravougaonika su: ‘); writeln(‘a=‘, a:5:2, ‘ i b=‘, b:5:2); writeln(‘Obim pravougaonika je O=‘, O:5:2, ‘cm’); writeln(‘Povrsina pravougaonika je P=‘, P:5:2, ‘cm2’); Izlaz: Stranice pravougaonika su: a= 2.50 i b= 3.00 Obim pravougaonika je O=11.00cm Povrsina pravougaonika je P= 7.50cm2 (Crvenom bojom su ispisani stringovi iz poziva procedura ispisa koji se samo prepisuju na standardni izlaz, dok su crnom bojom predstavljene vrednosti kojima su zamenjene odgovarajuće promenljive iz poziva procedura WRITE / WRITELN

WRITE / WRITELN : 

WRITE / WRITELN WRITELN; Naredba writeln može se koristiti i bez argumenata Kada se u toku izvršenja programa dođe do ove naredbe, kursor skače u novi red izlazne datoteke, tj. Ovom naredbom se u izlaznu datoteku “upisuje” prazan red Npr. ..... x:=3; y:=5, z:=7 ..... writeln(‘ovo je primer upravljanja izlazom’); writeln; write(x); writeln(y, z); writeln; write(‘_____________’); writeln(‘KRAJ primera); ovo je primer upravljanja izlazom _ 57 _____________ KRAJ primera 3 _ _ _ _ _ _ _

authorStream Live Help