Vous êtes sur la page 1sur 61

Algoritmi i programiranje modul2 PASCAL Predava: Dragica Jovanovi

Dragica Jovanovi: Algoritmi i programiranje Modul2 PASCAL (skripta i praktikum) Mihajlo Jaukovi: Programski jezik Turbo Pascal, Tehnika knjiga K Jensen, N Wirth Pascal prirunik, Mikro knjiga

Algoritmi i programiranje - Pascal

Potreban uslov za potpis i izlazak na ispit je


zavrenih 10 laboratorijskih vebi!

Vebe se odravaju svake nedelje po 2 asa. Sadraj Vebi:

Februar: Uopoznavanje sa okruenjem i jednostavni zadaci (pokazuje nastavnik). Samostalan rad studenata ( pripremiti zadatke kod kue): MART _1: Sekvence i ciklusi MART _2: Sekvence i ciklusi

APRIL_1: Funkcije i procedure APRIL_2: Funkcije i procedure


MAJ_1: Datoteke i slogovi MAJ_2: Datoteke i slogovi + Odbrana seminarskog rada
Algoritmi i programiranje - Pascal 2

1. UVOD U PREDMET,
OSNOVNI ELEMENTI JEZIKA PASCAL

Programski jezici
Azbuka, Simboli i separatori, Rei,

Podaci, Komentari
Struktura programa

Sintaksa i semantika

Algoritmi i programiranje - Pascal

Programski jezici
Prirodni jezici i Vetaki jezici

Klasifikacija programskih jezika

a) mainski zavisni: mainski mainski orjentisan: simboliki i makrojezik;


b) mainski nezavisni:

proceduralno orjentisan, problemski orjentisan.


Algoritmi i programiranje - Pascal 4

Mainski zavisni jezici


mainski jezik (azbuka sadri: nulu i jedinicu).

asembler(simboliki ma .jezik), II generacije


Makro

naredbe jedna asemblerskih instrukccija.

zamenjuje

desetinu

Problem prenosivosti programa sa jedne maine na

drugu i dalje ostaje, pa zato poinje razvoj prvih


mainski

nezavisni jezici: FORTRAN-1958, LISP-1958, COBOL-1960, ALGOL-1960.


Algoritmi i programiranje - Pascal 5

Mainski nezavisni jezici


algoritamski (proceduralni tj. imperativni) vii programski jezici nealgoritamski visoki programski jezici ta program radi, a ne kako RPG, MARS, ARIUS, PROZA, GRAPH

Algoritmi i programiranje - Pascal

Hronologija nastanka viih progr. jezika


Pojavom raunara tree... PASCAL 1969. g. ( na bazi ALGOLA 60).

BASIC 1965 na bazi FORTRAN-a,

PL/1 (FORTRAN-a, COBOL-a i ALGOL-a)

MODULA (1975) i ADA(1980) na bazi PASCAL-a.


Pojavom mikroprocesora... jezici vetake intiligencije su : PL/M-86 i

ADA.
Jezik C na operativnom sistemu UNIX Mikroraunari i kuni raunari su oiveli BASIC GWBASIC,

QBASIC, BASIC PLUS 2, VISUAL BASIC itd.


Algoritmi i programiranje - Pascal 7

Nivoi programskih jezika u odnosu na zavisnost od raunara:


0-ti nivo mainski I-vi nivo simboliki

II-i nivo makro jezik


III-i nivo proceduralno orjentisan

IV-ti nivo problemski orjentisan

Algoritmi i programiranje - Pascal

Osnovne karkteristike programskih jezika - sintaksa i semantika


Sintaksa izuava obraziovanje gramatiki korektnih

konstrukcija jezika
Semantika izuava znaenje sintaksno ispravnih konstrtukcija

jezika

Programski jezici su vetaki jezici kod kojih su azbuka,

sintaksa i semantika strogo definisani

Algoritmi i programiranje - Pascal

Za opisivanje semantike:

beki defincioni jezik i gramatika van Vajngardena.


Osnovni elementi sintakse: pravila za pisanje rei i pravila za pisanje ispravnih reenica.

Algoritmi i programiranje - Pascal

10

Rei mogu biti:


rezervisane, kljune rei, identifikatori tj. imena objekata (promenljive i

potprogrami: funkcije, procedure, moduli),


graninici imaju uvek isto sintaksni i semantiko

znaenje, npr graninik za komentar, izvravanja programa, i

konstante - veliine koje ne menjaju vrednost tokom operatori


aritmetiki (+, -, *, / , ..), relacioni (<, >, =,...), logiki (and, or, not), indeksni, adresni, itd.

Algoritmi i programiranje - Pascal

11

NAREDBA
Naredba - osnovni elemenat programa Opisne naredbe - opisuju neko svojstvo podataka

Izvrne naredbe opisuju akcije raunara


Komentari - konstrukcije programskog jezika pomou
kojih se objanjavaju pojedini delovi programa

Algoritmi i programiranje - Pascal

12

Programski jezik objekt PASCAL


Niklaus Virth krajem 69-70 je definisao

PASCAL
Pascal podrava strukturno programiranje
Sekvence, selekcije i ciklusi

i strukturiranim tipovima podataka ( nizovi, zapisi, skupovi, datoteke )


Algoritmi i programiranje - Pascal 13

1. Elementi jezika
Pascal programi su predstavljeni Simbolima :
specijalne simbole , simbolne rei, identifikatore, brojeve, stringove znakova, labele i direktive

i separatorima simbola

Algoritmi i programiranje - Pascal

14

Specijalni simboli:
+ - * / ; , : , { } ] [ = <> > >= < <= := ..
Algoritmi i programiranje - Pascal 15

Simbolne rei:
and

as
asm array begin case class const

exept exports file finally for function goto in

library mod nil not object of or procedure

shl shr string then to try type until

Algoritmi i programiranje - Pascal

16

Separatori:
Razmaci, krajevi linija (separatori linija) i

komentari
Komentar poinje sa { ili sa (* zavrava se } ili sa *)

Algoritmi i programiranje - Pascal

17

1.1.Skup znakova- Azbuka Pascal jezika


eng. alfabet 0123456789

+ - * /
; : { } ] [,

> < # =

Algoritmi i programiranje - Pascal

18

1.2. Leksiki simboli


Nedeljivi nizovi znakova

Identifikatori , konstante, slubene rei, operatori i

separatori Znak beline je separator


RE je konaan niz znakaova azbuke. Osmiljene rei

PASCAL jezika su: identifikatori, brojevi, niske i komentari.


Algoritmi i programiranje - Pascal 19

1.3. Identifikatori
astoje se od: slova, cifara i znaka podvueno ( _ ), mogu da imaju proizvoljnu duinu Identifikatori se dele na: standardne identifikatore, imena. Identifikatori se dele na: standardne identifikatore, imena.
Algoritmi i programiranje - Pascal 20

Standardni identifikatori su imena

standardnih:
datoteka, konstanti, tipova, procedura i funkcija.

Algoritmi i programiranje - Pascal

21

Imena
Ime je niz slova i / ili cifara koji poinje slovom, duine 6 ili 8 znakova
zavisno od verzije PASCAL-a

Algoritmi i programiranje - Pascal

22

Ispravni Neispraavni

ime dat1 PosPodne posle_podne


x1y2

pre-podne 1dat posle podne 3slog


a,b,c

$100

Algoritmi i programiranje - Pascal

23

1.4. Brojevi
U PASCAL-u postoje celi brojevi i realni brojevi
U PASCAL jeziku termini celi broj, odnosno realni brojevi se odnosi na nain zapisa, reprezentacije i obrade brojeva.
Algoritmi i programiranje - Pascal 24

Celi brojevi: 0 12 -345 +97877 neispravni celi brojevi: 12. 3,21 - 367 987%
Realni broj se zapisuje kao : osnovni realni broj, osnovni realni broj sa eksponentom ili celi broj sa eksponentom.

Algoritmi i programiranje - Pascal

25

Osnovni realni broj: od neobaveznog znaka broja i dva niza cifara dekadnog brojevnog sistema meusobno razdvojenih decimalnom takom. Na primer: +32.455

-908.3 45.29

Algoritmi i programiranje - Pascal

26

Osnovni realni broj sa eksponentom : osnovni realni broj i eksponenta. Eksponent se sastoji od slova E i celog broja.
Na primer ispravni:

+32.455E3

-908.3E+2 45.29E-2

Na primer neispravni:

0.

+.2 3

56,98E+4

+1.2-3

+1.2E
27

Algoritmi i programiranje - Pascal

1.5. Niske (stringovi)


Niska ili string je niz znakova stavljenih pod

apostrofe Primer: Dobar dan Nedelja Saberi A i B


Na primer neispravni:

dobar dan dobar dan kako ste Nedelja

Algoritmi i programiranje - Pascal

28

Labele
neoznaeni celi brojevi kojima se

ozbnaavaju Pascal iskazi.


Njihova vrednost mora biti u opsegu

od 0 do 9999.
Primeri labeal: 13 0100 9999

Algoritmi i programiranje - Pascal

29

1.6. Komentari
Mogu da se umetnu izmeu bilo koja dva leksika

simbola. Njih prevodilac zanemaruje.


{ , } ili (* , *) Primer: { Ovo je komentar } Neispravno:

{ Ovo nije } komentar } { Ovo nije komentar

Algoritmi i programiranje - Pascal

30

1.7. Direktive prevodioca


nisu deo jezika , slue za zadavanje nekih parametara

prevoenja,
piu se u obliku komentara, s tim da prvi

znak iza otvorene zagrade za poetak komentara bude znak $.

Algoritmi i programiranje - Pascal

31

1.8. Slubene rei i standardne


ditektive
naredbe, delove naredbi, neki operatori, neke konstante i

druge slubene elemente jezika


and as Asm array begin case class const exept exports file finally for function goto in

library mod nil not object of or procedure

shl shr string then to try type until


32

Algoritmi i programiranje - Pascal

Standardne direktive su:


absolute export
abstract

external assembler far at forward

near nodefault on override

published read resident stored

Algoritmi i programiranje - Pascal

33

2. Podaci
Podatak je opti pojam za svaki objekat koji

se obrauje na raunaru.
Podatak se predstavlja u raunaru kao niz

binarnih cifara.
Pojam tipa po def. ureeni skup vrednosti

koje se mogu dodeliti i skup operacija koje se mogu izvriti


Algoritmi i programiranje - Pascal 34

2.1. Tipovi podataka


Podaci su objekti. Tip je osnovno obeleje svakog podatka

Tipovi podataka odreuju: mogue vrednosti podataka i mogue operacije koje mogu da se izvode nad tim podacima.

Algoritmi i programiranje - Pascal

35

2.1.1.Standarni skalarni tipovi


Standarni skalarni tipovi podataka: celobrojni tipovi: Integer, ShortInt, LongInt, Byte i Word realni tipovi: Real, Single, Double, Extended i Comp logiki tipovi:
Boolean, ByteBool, WordBool, LongBool,

znakovni tip: Char.


Algoritmi i programiranje - Pascal 36

2.2. Konstante
Konstante su podaci koji ne mogu da se promene

Konstante celobrojnih tipova na primer: 123, -4782, +324 su decimalne celobrojne konstante.
Konstante logikog tipa True i False Znakovne konstante piu se izmeu para apostrofa

na primer A, UlVred, +,
znak apostrof pie se sa dva apostrofa izmeu para apostrofa: .

Algoritmi i programiranje - Pascal

37

2.3. Simbolike konstante


podaci
pomou ije vrednosti ne mogu da se promene i koji su predstavljeni

identifikatora.

Definiu se u odeljku const za definisanje konstanti:

const Konstanta1 = Vrednost1 ; ....

Konstantai = Vrednosti ;
Na primer:

const
Pi = 3.14159 ;

Tab = #9 ; Da = True ;
Algoritmi i programiranje - Pascal 38

2.4. Promenljive
podaci ije se vrednosti mogu promeniti za vreme
izvravanja programa.
Predstavljaju se pomou

identifikatora,

Definiu se u oveljku

var (variable promenljiva).

Algoritmi i programiranje - Pascal

39

3. Operatori i izrazi
Operatori predstavljaju radnje koje se izvravaju nad operandima (podacima), dajui pri tome odreene rezultate. Izrazi su
proizvoljno sloeni sastavi operanada i operatora.

Algoritmi i programiranje - Pascal

40

3.1. Aritmetiki operatori


+ * - / binarni operator mod (modulus moduo),

dva unarna operatora: + iji je rezultat vrednost samog operanda i - iji je rezultat vrednost samog operanda sa izmenjenim algebarskim predznakom.

Algoritmi i programiranje - Pascal

41

3.2. Relacioni operatori


= <> > >= < <= slue za uporeivanje numerikih i prebrojivih tipova podataka
Rezultati su logikog tipa i imaju vrednost
True ako ispitana relacija vai, False ako ispitana relaciaj ne vai.

Algoritmi i programiranje - Pascal

42

3.3. Logiki operatori


and or not
Iuzvravaju logike operacije nad logikim podacima i daju logike rezultate.

unarni logiki operator not (ne) za logiku negaciju binarni operatori and (i) zalogiku i operaciju, operator or (ili) za logiku ili operaciju, xor (exclusive or) za logiku iskljuivo ili operaciju.
Algoritmi i programiranje - Pascal 43

3.4. Operatori po bitovima


shl ( shift left pomeri ulevo) ispranjeni bitovi se popunjavaju nulama. shr (shift right - pomeri udesno)

3.5. Redosled izvravanja operatora

odreuje se okruglim zagradama i prioritetom operatora


prvo raunaju vrednosti unutar zagrada, ako nema zagrada potuje se prioritet operatora , a ako su istog prioriteta oni se izvravaju sleva udesno. 3.6. Biblioteki potprogrami ...za izvoenje dodatnih radnji nad standardnim tipovima podataka.

Algoritmi i programiranje - Pascal

44

4. Naredbe i upravljake strukture


Naredbe
su osnovne jedinice obrade u programima.

Upravljake strukture su sloene strukture naredbi kojima se odreuje redosled naredbi u programima.

izvravanja

Algoritmi i programiranje - Pascal

45

4.1. Naredbe za dodelu vrednosti


prosta naredba

rezultat nekog izraunavanja smeta u neku promenljivu

Promenljiva := Izraz; Promenljiva mesto u memoriji u koju se smeta rezultat, := - operator dodele vrednosti Izraz izraz ija se vrednost izraunava.
Algoritmi i programiranje - Pascal 46

Primer:
I := J + K div L A := S* 12.5 Znak := X Dan := Petak

Algoritmi i programiranje - Pascal

47

Napomena:
Promenljiva i izraz treba da se slau po tipu U trenutku dodeljivanja vrednosti Tip rezultata izraza Pretvara se u tip promenljive.
Ako je promenljiva realnog tipa izraz moe biti proizvoljnog numerikog tipa Ako je promenljiva celobrojnog tipa izraz moe biti bilo kog celobrojnog tipa Za sve ostale tipove (znakovne, logike, nabrajanja) Tip izraza mora biti isti kao tip promenljive

Algoritmi i programiranje - Pascal

48

4.2. Sekvenca
najjednostavnija upravljaka struktura niz naredbi povezanih u neku celinu naredbe u sekvenci se izvravaju po redosledu

navoenja.

begin
Naredba1 ; Naredba2 ; ... Naredbai end

Algoritmi i programiranje - Pascal

49

Primer:

begin a := 13.5 * X + Y; b := a*a z; c := a / b; end;

Algoritmi i programiranje - Pascal

50

4.3. Selekcija if Uslov then Naredba1 else Naredba2 if Uslov then Naredba1
Na primer:

if A > B then C := A else C := B if N<> 0 then S := S / N

Algoritmi i programiranje - Pascal

51

Primer: if ( a < min) or (a > max) then if p then a := (min + max) / 2 else a := sqrt (min *max);

Algoritmi i programiranje - Pascal

52

Selekcija pomou skretnice


case Izraz of NizVrednosti1 : Naerdba1 ; NizVrednosti2 : Naerdba2 ; NizVrednostik : Naerdbak ; else Naerdba end
Algoritmi i programiranje - Pascal 53

Primer:
case znak of 0...9 a..z : poruka:= cifra; : poruka:= slovo;

+, -, *,/ :poruka:= operator;


else end

Algoritmi i programiranje - Pascal

54

4.4. Ciklusi
Ciklusi sa izlazom na vrhu
while ( dok je) while Uslov do Naredba gde su : Uslov logiki izraz (tipa Boolean) za odluivanje o nastavljanju ciklusa , Naredba sadraj ciklusa.

Algoritmi i programiranje - Pascal

55

primer:
I :=1; S :=0 ; while I <= N do Begin S := S + I ; I := I +1 end;

Algoritmi i programiranje - Pascal

56

Ciklusi sa izlazom na dnu

repeat
Naredba1;

Naredba2 ;... Naredbak until Uslov ;

Algoritmi i programiranje - Pascal

57

primer:
I :=1; S :=0 ; repeat S := S + I ; I := I +1 until I > N ;

Algoritmi i programiranje - Pascal

58

Brojaki ciklus
naredba for (za), to do, downto nadole do, do - radi:

Algoritmi i programiranje - Pascal

59

for Promenljiva := Poetak to Kraj do Naredba for Promenljiva := Poetak downto Kraj do Naredba

Algoritmi i programiranje - Pascal

60

Kraj

Algoritmi i programiranje - Pascal

61

Vous aimerez peut-être aussi