Raunarstvo i informatika III razred Uvod u programski

  • Slides: 38
Download presentation
Računarstvo i informatika III razred

Računarstvo i informatika III razred

Uvod u programski jezik Pascal

Uvod u programski jezik Pascal

Šta je opisano u ovoj lekciji: n n n Osnovni simboli jezika Rezervisane reči

Šta je opisano u ovoj lekciji: n n n Osnovni simboli jezika Rezervisane reči Imena (identifikatori) Struktura jednostavnog programa Promenljive Tipovi podataka 3

UVOD u programski jezik PASCAL Programski jezik Pascal razvio je švajcarski matematičar Niklaus Virt

UVOD u programski jezik PASCAL Programski jezik Pascal razvio je švajcarski matematičar Niklaus Virt 1974. godine 4

Osnovni simboli jezika n Osnovni simboli jezika su: n n Specijalni znaci su i

Osnovni simboli jezika n Osnovni simboli jezika su: n n Specijalni znaci su i neštampajući znaci: n n n Slova: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz Cifre: 0 1 2 3 4 5 6 7 8 9 Specijalni znaci: + - * / = < > [ ]. , ; : ^ ( ) ‘ { } razmak (space), novi red (enter), znak za tabulaciju (tab) Skup osnovnih simbola Pascal-a je uređen i konačan Svaki simbol ima redni broj koji zavisi od implementacije jezika 5

Rezervisane (ključne) reči n n Osnovni elementi jezika koji imaju fiksirano značenje and, array,

Rezervisane (ključne) reči n n Osnovni elementi jezika koji imaju fiksirano značenje 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 6

Imena (identifikatori) n n Koriste se za označavanje osnovnih objekata jezika – konstanti, tipova,

Imena (identifikatori) n n Koriste se za označavanje osnovnih objekata jezika – konstanti, tipova, promenljivih, procedura i funkcija Ime je proizvoljan niz slova i cifara koji počinje slovom SLOVO CIFRA 7

Struktura programa u Pascal-u n Zaglavlje programa n n n Blok naredbi programa n

Struktura programa u Pascal-u n Zaglavlje programa n n n Blok naredbi programa n n n Počinje rezervisanom reči program iza koje se navodi ime programa Odeljak za definisanje konstanti Odeljak za opis promenljivih Kod složenijih programa postoje i odeljci za definisanje tipova, deklaraciju labela, deklaraciju funkcija i procedura Počinje rezerisanom reči begin i završava rezervisanom reči end Između se nalazi jedna ili više naredbi kojima se rešava problem Iza bloka naredbi programa obavezno se navodi tačka (. ) kao oznaka kraja programa. program Ime programa ; Odeljak za definisanje konstanti Odeljak za definisanje promenljivih begin naredba . end ; 8

Promenljive n n n Promenljiva je registar operativne memorije kome je dodeljeno ime Sadržaj

Promenljive n n n Promenljiva je registar operativne memorije kome je dodeljeno ime Sadržaj registra (vrednost promenljive) može se menjati u toku izvršavanja programa Svaka nova vrednost, upisana u registar, potire prethodnu vrednost, tako da u svakom vremenskom trenutku promenljiva ima samo jednu, tekuću vrednost Naredba dodele : = je naredba koja promenljivoj sa leve strane dodeljuje vrednost izraza sa desne strane – npr. a: =5, x: =x+1, a: =x+y Sve vrednosti koje se koriste moraju pripadati nekom od tipova koji su definisani u jeziku 9

Tipovi podataka n n n Pri programiranju treba imati na umu dva aspekta: naredbe

Tipovi podataka n n n Pri programiranju treba imati na umu dva aspekta: naredbe kojima se vrši obrada podataka i organizaciju podataka koji će biti obrađivani Organizacija podataka ostvaruje se korišćenjem koncepta tipa podataka Tipom se zadaje: n skup mogućih vrednosti promenljivih n skup operacija koje se mogu izvršiti nad promenljivom tog tipa n način registrovanja promenljivih u računaru 10

Tipovi podataka Prosti Standardni (ugrađeni) Korisnički (nestandardni) Celobrojni Realni Znakovni Logički Nabrojivi Intervalni Složeni

Tipovi podataka Prosti Standardni (ugrađeni) Korisnički (nestandardni) Celobrojni Realni Znakovni Logički Nabrojivi Intervalni Složeni Pokazivački Nizovi Slogovi Datoteke Skupovi Pokazivački tipovi su oni tipovi čije vrednosti lociraju podatak u memoriji 11

Celobrojni tip – INTEGER n Celobrojni tip podataka (na nivou programskog jezika) je niz

Celobrojni tip – INTEGER n Celobrojni tip podataka (na nivou programskog jezika) je niz cifara dekadnog brojnog sistema ispred koga može biti znak + ili – + CIFRA n Od načina registrovanja celog broja u memoriji računara (fizički nivo) zavisi njegov opseg vrednosti Ako je 16 -bitno registrovanje (2 bajta), najveći ceo broj (0111111112) koji se može predstaviti je 32767 – tu vrednost ima imenovana konstanta maxint Skup celih brojeva je ograničen na interval [-32768, 32767] i to je tip integer Ako je 32 -bitno registrovanje (4 bajta) interval je [-2 31, 231 -1] i to je tip longint 12

Celobrojni tip – INTEGER Aritmetičke operacije / celobrojni rezultat + − * div mod

Celobrojni tip – INTEGER Aritmetičke operacije / celobrojni rezultat + − * div mod sabiranje oduzimanje množenje celobrojno deljenje ostatak pri celobrojnom deljenju Prioritet operacija je * div mod + − 13

Celobrojni tip – INTEGER Operacije poređenja / rezultat logičkog tipa = <> < >

Celobrojni tip – INTEGER Operacije poređenja / rezultat logičkog tipa = <> < > <= >= jednako različito manje veće manje ili jednako veće ili jednako Vrednosti logičkog tipa – true (tačno) i false (netačno) 14

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / celobrojni rezultat abs(x) sqr(x) succ(x) pred(x)

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / celobrojni rezultat abs(x) sqr(x) succ(x) pred(x) apsolutna vrednost od x kvadrat od x sledbenik od x (x+1) prethodnik od x (x-1) 15

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / rezultat logičkog tipa odd(x) da li

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / rezultat logičkog tipa odd(x) da li je broj neparan 16

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / rezultat realnog tipa sin(x) cos(x) arctan(x)

Celobrojni tip – INTEGER Standardne (ugrađene) funkcije / rezultat realnog tipa sin(x) cos(x) arctan(x) ln(x) exp(x) sqrt(x) sinus od x kosinus od x arkus tangens od x prirodni logaritam od x stepen x za osnovu e kvadratni koren iz x 17

Celobrojni tip – INTEGER Celobrojni tipovi Delphi-jevog Pascal-a: Byte Shortint Integer Longint Word Int

Celobrojni tip – INTEGER Celobrojni tipovi Delphi-jevog Pascal-a: Byte Shortint Integer Longint Word Int 64 0. . 255 -128. . 127 -231. . 231 -1 0. . 65535 -263. . 263 -1 1 B 1 B 4 B 4 B 2 B 8 B 18

Realni tip – REAL n n Realni tip podataka je podskupa realnih brojeva koji

Realni tip – REAL n n Realni tip podataka je podskupa realnih brojeva koji se mogu registrovati u konkretnoj verziji programskog jezika npr. za 6 bajtova je [2. 9*10 -39, 1. 7*1038] Realni brojevi mogu da budu prikazani u dva oblika: n n pozicioni 2. 15, -31. 125 eksponencijalni 2. 15 E 00, 215 E-02, -3. 1125 E 01 mantisa – deo ispred E i eksponent – deo iza E 19

Realni tip – REAL Aritmetičke operacije / realan rezultat + − * / sabiranje

Realni tip – REAL Aritmetičke operacije / realan rezultat + − * / sabiranje oduzimanje množenje deljenje Jedan operand može da bude ceo broj 20

Realni tip – REAL Operacije poređenja / rezultat logičkog tipa = <> < >

Realni tip – REAL Operacije poređenja / rezultat logičkog tipa = <> < > <= >= jednako različito manje veće manje ili jednako veće ili jednako Vrednosti logičkog tipa – true (tačno) i false (netačno) 21

Realni tip – REAL Standardne (ugrađene) funkcije / realni rezultat abs(x) sqr(x) sin(x) cos(x)

Realni tip – REAL Standardne (ugrađene) funkcije / realni rezultat abs(x) sqr(x) sin(x) cos(x) arctan(x) ln(x) exp(x) sqrt(x) frac(x) apsolutna vrednost od x kvadrat od x sinus od x kosinus od x arkus tangens od x prirodni logaritam od x stepen x za osnovu e kvadratni koren iz x razlomljeni deo od x 22

Realni tip – REAL Standardne (ugrađene) funkcije / celobrojni rezultat trunc(x) round(x) ceo deo

Realni tip – REAL Standardne (ugrađene) funkcije / celobrojni rezultat trunc(x) round(x) ceo deo od x najbliži ceo broj od x 23

Logički tip – BOOLEAN n n Logički tip podataka definiše podatke koji mogu imati

Logički tip – BOOLEAN n n Logički tip podataka definiše podatke koji mogu imati vrednosti logičkih konstanti true ili false Promenljive logičkog tipa zauzimaju jedan bajt 24

Logički tip – BOOLEAN Logičke operacije / rezultat logičkog tipa not and or xor

Logički tip – BOOLEAN Logičke operacije / rezultat logičkog tipa not and or xor negacija konjunkcija disjunkcija ekskluzivna disjunkcija (true ako se operandi razlikuju) Prioritet operacija – not, and, or, xor Logički tip je uređen – false < true ord(false)=0, ord(true)=1 25

Znakovni tip – CHAR n n n Znakovni tip podataka definiše uređeni skup osnovnih

Znakovni tip – CHAR n n n Znakovni tip podataka definiše uređeni skup osnovnih znakova PASCAL jezika dozvoljenih u konkretnoj verziji programskog jezika Znakovnom tipu pripada praznina (space) Promenljiva znakovnog tipa zauzima jedan bajt Vrednost znakovne promenljive ili konstante je znak iz osnovnog skupa znakova Znakovna konstanta se navodi između apostrofa Apostrof se navodi sa dva apostrofa – '''' 26

Znakovni tip – CHAR Funkcije koje znak povezuju sa rednim brojem u uređenom skupu

Znakovni tip – CHAR Funkcije koje znak povezuju sa rednim brojem u uređenom skupu znakova ord(c) chr(i) redni broj (kod) znaka c u skupu znakova npr. ord(‘A’)=65, ord(‘B’)=66. . . znak čiji je redni broj (kod) i, pod uslovom da postoji chr(65)=‘A’, chr(66)=‘B’ ili #65=‘A’ ord(chr(i))=i , chr(ord(c))=c Znakovni tip je uređen – mogu se primeniti operacije poređenja =, <>, <, >, <=, >= i funkcije pred(c) i succ(c) 27

Niz simbola – STRING n n n Tip string se koristi za rad sa

Niz simbola – STRING n n n Tip string se koristi za rad sa nizovima simbola Kad se deklariše promenljiva – string[dužina] Podrazumevana dužina string promenljive je od 0 do 255 znakova Prazan string se obeležava sa dva apostrofa – ‘’ Elementima stringa pristupa se sa ime[indeks] Redni brojevi simbola u stringu počinju od 1 28

Niz simbola – STRING Funkcije za rad sa stringovima: length(st) copy(st, poz, n) concat(st

Niz simbola – STRING Funkcije za rad sa stringovima: length(st) copy(st, poz, n) concat(st 1, st 2. . . ) pos(st 1, st 2) dužina, broj simbola podstring dužine n počev od poz spajanje stringova (može i +) prvo pojavljivanje st 1 u st 2 (ako ne postoji onda je 0) delete(st, poz, n) brisanje n elemenata od poz insert(st 1, st 2, poz) umetanje st 1 u st 2 na poz Na podacima tipa string mogu se primeniti operacije poređenja 29

Struktura programa u Pascal-u n n n Neophodno – tačnost dobijenih rezultata Poželjno –

Struktura programa u Pascal-u n n n Neophodno – tačnost dobijenih rezultata Poželjno – što kraće vreme izvršavanja i što manje zauzeće memorije Preporuke za čitljivost koda: U svakoj liniji samo po jedna naredba n Ugnježdavanje struktura za po dva mesta n Velike programe razbijati na manje segmente n Smislena imena konstanti, promenljivih, funkcija i procedura n 30

Struktura programa u Pascal-u n Zaglavlje programa Odeljak za opis obeležja (label) n Odeljak

Struktura programa u Pascal-u n Zaglavlje programa Odeljak za opis obeležja (label) n Odeljak za definisanje konstanti (const) n Odeljak za definisanje tipova (type) n Odeljak za opis promenljivih (var) n Odeljak za opis funkcija i procedura program Ime programa ; n n n Svaki odeljak u zaglavlju završava se sa ; Sve se može izostaviti osim odeljka naredbi Odeljak za opis obeležja Odeljak za definisanje konstanti Odeljak za definisanje tipova Odeljak za opis promenljivih Odeljak za opis funkcija i procedura begin naredba ; . end 31

Odeljak za definisanje konstanti (const) const n n n Ime = konstantan izraz ;

Odeljak za definisanje konstanti (const) const n n n Ime = konstantan izraz ; Imenovana konstanta dobija vrednost koja je ceo ili realan broj, string ili ime već definisane konstante Konstante ne mogu menjati vrednost u programu Tipizirane konstante (promenljive sa inicijalnom vrednošću) const promenljiva: tip = vrednost n Standardne konstante true, false, maxint, maxlongint, Pi 32

Odeljak za opis promenljivih (var) var Ime : tip ; , n n Svaka

Odeljak za opis promenljivih (var) var Ime : tip ; , n n Svaka promenljiva mora biti deklarisana Ovako prevodilac može da raspodeli memoriju, tj. da veže imena i adrese 33

Izrazi n Izraz je sintaksna jedinica jezika koja definiše poredak i način izračunavanja neke

Izrazi n Izraz je sintaksna jedinica jezika koja definiše poredak i način izračunavanja neke vrednosti korišćenjem: n n Operacija definiše koje akcije treba izvršiti nad operandima n n n operanda (konstante, promenljive, funkcije) ovalnih (malih) zagrada operacijskih simbola unarne binarne Prioritet operacija n n not, − *, /, div, mod, and +, −, or =, <>, <, >, <=, >= 34

Naredba dodele – : = n n n promenljiva : = izraz Tip izraza

Naredba dodele – : = n n n promenljiva : = izraz Tip izraza mora biti isti kao i tip promenljive (osim real <- integer) Vrste izraza aritmetički n logički n tekstualni n n Pogledati udžbenik, strana 53, primer 6 n Razmena vrednosti dve promenljive 35

Procedure ulaza i izlaza n n Skoro svi programi imaju učitavanje podataka i izdavanje

Procedure ulaza i izlaza n n Skoro svi programi imaju učitavanje podataka i izdavanje rezultata Koriste se standardne procedure read / write koje rade sa standardnim datotekama input / output Kraj linije – Enter – CR Kraj datoteke (fajla) – Ctrl + Z – EOF 36

Učitavanje podataka n n n n read(A 1, A 2, . . . An)

Učitavanje podataka n n n n read(A 1, A 2, . . . An) readln Tipovi promenljivih i ulaza se moraju poklapati Praznine se ignorišu (razmak, Enter, Tab) osim za tekstualne promenljive Ne može se koristiti logička promenljiva String se učitava do zadate dužine ili do Enter 37

Izlaz podataka n n n write(A 1, A 2, . . . An) writeln

Izlaz podataka n n n write(A 1, A 2, . . . An) writeln Izlaz odgovara tipu promenljive Formatiranje izlaza write(i: izlaznopolje) write(r: izlaznopolje: decimale) ako se ne navede broj decimala izlaz je sa E višak se sa leve strane popunjava razmacima 38