57
Turbo Pascal Turbo Pascal

Turbo Pascal1

Embed Size (px)

Citation preview

Page 1: Turbo Pascal1

Turbo PascalTurbo Pascal

Page 2: Turbo Pascal1

Istorijski razvoj programskog jezika Istorijski razvoj programskog jezika PASCALPASCAL

Originalnu verziju programskog jezika Originalnu verziju programskog jezika PASCALPASCAL je razvio švajcarac je razvio švajcarac Niklaus Niklaus Wirth Wirth profesor na profesor na EIDGENOSSISCHE EIDGENOSSISCHE TECHNISCHE HOCHSCHULE-TECHNISCHE HOCHSCHULE-Cirih. Cirih. Programski jezik Pascal je dobio ime po Programski jezik Pascal je dobio ime po francuskom filozofu, matematičaru i francuskom filozofu, matematičaru i fizičaru Blejzu Pascalu /fizičaru Blejzu Pascalu /BLAISE BLAISE PASCALPASCAL/. /.

Page 3: Turbo Pascal1

Programiranje u Programiranje u PASCALPASCAL-u se temelji -u se temelji na postavkama strukturnog na postavkama strukturnog programiranja. Pascal ima jednostavnu programiranja. Pascal ima jednostavnu sintaksu, omogućava modularnost, sintaksu, omogućava modularnost, dozvoljava rekurzivno pozivanje dozvoljava rekurzivno pozivanje procedura i funkcija, moguće je vlastito procedura i funkcija, moguće je vlastito definisanje tipova podataka. Naredbe definisanje tipova podataka. Naredbe IF, IF, CASE, FOR, WHILECASE, FOR, WHILE i i REPEATREPEAT omogućuju jednostavno i pregledno omogućuju jednostavno i pregledno pisanje programa.pisanje programa.

Page 4: Turbo Pascal1

Faze razvoja programaFaze razvoja programa

Programiranje obuhvata nekoliko faza: Programiranje obuhvata nekoliko faza: Definisanje problemaDefinisanje problema. (bitna stavka). (bitna stavka) Glavni koraci rješenjaGlavni koraci rješenja. . ((uključuje veći uključuje veći

broj programera i programabroj programera i programa,, vvažno je ažno je međusobno uskladiti njihove poslovemeđusobno uskladiti njihove poslove))

Izbor algoritma i izrada algoritmaIzbor algoritma i izrada algoritma KodiranjeKodiranje Otklanjanje grešaka – DEBUGGINGOtklanjanje grešaka – DEBUGGING TestiranjeTestiranje DokumentacijaDokumentacija Održavanje programaOdržavanje programa

Page 5: Turbo Pascal1

Elementi u PASCAL-uElementi u PASCAL-u Elementi programskog jezika su slova, cifre Elementi programskog jezika su slova, cifre

i specijalni znaci kao i ključne riječi i specijalni znaci kao i ključne riječi /KEYWORDS/.  Naša slova č, ć, ž, š, đ ne /KEYWORDS/.  Naša slova č, ć, ž, š, đ ne pripadaju skupu slova. pripadaju skupu slova.

Slova:Slova:A B C D E F G H I J K L M N O P Q R S T U A B C D E F G H I J K L M N O P Q R S T U V W X Y ZV W X Y Za b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z

Cifre:Cifre:0    1    2    3    4    5    6    7    8    9  0    1    2    3    4    5    6    7    8    9  Posebni znaciPosebni znaci

-  *  /  :=  <  >  =  <=  >=  <> , . :  ;  .. _ '  [  -  *  /  :=  <  >  =  <=  >=  <> , . :  ;  .. _ '  [  ]  {  }  (*    *)   (.   .) ]  {  }  (*    *)   (.   .)

Page 6: Turbo Pascal1

Svaki program u Svaki program u PASCALPASCAL-u počinje se -u počinje se ključnom riječi ključnom riječi PROGRAMPROGRAM i imenom i imenom programaprograma..

Zatim moraju da se koriste riječ Zatim moraju da se koriste riječ BEGINBEGIN za za početak programa i riječ početak programa i riječ ENDEND za kraj za kraj programa. Ove riječi su obavezne bez obzira programa. Ove riječi su obavezne bez obzira na broj naredbi; za nijednu ili više na broj naredbi; za nijednu ili više PASCALPASCAL naredbi. naredbi.

Svaka naredba se završava sa tačka-zapetom, Svaka naredba se završava sa tačka-zapetom, osim zadnje (osim zadnje (ENDEND.), koja se završava sa .), koja se završava sa tačkom. tačkom.

Page 7: Turbo Pascal1

Primjer 1Primjer 1

Program koji ispisuje na ekranu rijec Program koji ispisuje na ekranu rijec Zdravo.Zdravo.

Program Primjer;Program Primjer;

BeginBegin

Writeln(‘Zdravo’);Writeln(‘Zdravo’);

Readln;Readln;

End.End.

Page 8: Turbo Pascal1

Vrste tipova podataka Tip podataka možemo podijeliti u tri grupe:

Prosti: Standardni prosti:

cjelobrojni(INTEGER)     realni(REAL)     znakovni (CHAR)     logički (BOOLEAN)

Korisnički: pobrojani (ENUMERATED)     intervalni (SUBRANGE)

Strukturni: skup (SET)    niz (ARRAY)     zapis (RECORD)     fajl (FILE) i

pokazivači (POINTER)

Page 9: Turbo Pascal1

Tipovi podataka Tip je uređen skup vrijednosti i dodjeljuje mu se skup

operacija (tip operanda i tip rezultata). Integer – cijeli broj, bez zareza koji može da

sadrži brojeve (od -32 768 do 32 767). Real – realni broj sa zarezom, ali piše se sa

tačkom(.) String – može da sadrži tekst, npr. ime,

rečenicu i slično (ograničen je sa 255 znakova)

Char – može da sadrži samo jedan znak Boolean – true/false (tačno/netačno) Longint – koristi se za veće brojeve (od -2 147

483 648 do 2 147 483 647)

Page 10: Turbo Pascal1

Program – svaki program mora sadržavati ključnu riječ Program a poslije nje se navodi naziv programa. Naziv ne smije biti neka od ključnih riječi koje je Pascal rezervisao samo za sebe. Pascal ne razlikuje velika i mala slova, npr ako napišemo AUTO, aUtO ili auto Pascal će to tretirati kao jednu varijablu ili funkciju.

Pascal razlikuje nazive u prvih 8 znakova, npr Geografija i Geografijski on će tretirati isto, jer se ne razlikuju u prvih 8 znakova.

Početni znak naziva programa mora biti slovo i naziv programa ne može se sastojati od dvije riječi tj. ne može upotrebljavati razmak (space).

Page 11: Turbo Pascal1

Begin – označava početak glavnog programa

End. – označava kraj glavnog programa i samo ova naredba sadrži tačku na kraju, a kod svih ostalih naredbi i funkcija piše se tačkazarez (;)

Writeln – u ovoj naredbi sve ono što se nalazi pod apostrofima (‘ ‘) biće ispisano. Takođe ova naredba služi za ispis rezultata programa.

Readln – da bismo koristili ovu naredbu, prvo je potrebno odrediti varijablu u koju ćemo smjestiti neku vrijednost. Služi za učitavanje podataka u program.

:= ova naredba se koristi kada nekoj varijabli želimo dodijeliti neku vrijednost

Page 12: Turbo Pascal1

Var – varijable, koristi se prije početka glavnog programa, kada želimo da definišemo varijablu ili više njih. Poslije imena varijable slijedi dvotačka (:) a potom definišemo tip varijable nakon čega se piše ;

Primjer: Nabrajanje više varijabli različitih tipovavar

a,b:integer; c:char; d:real;

Page 13: Turbo Pascal1

LINIJSKA STRUKTURA - LINIJSKA STRUKTURA - READ(LN) i WRITE(LN) READ(LN) i WRITE(LN)

Naredba Naredba WRITEWRITE((LNLN)) ispisuje tekst, ispisuje tekst, brojnu vrijednost, vrijednost brojnu vrijednost, vrijednost konstantekonstante,, promjenljive i promjenljive i aritmetičkog izraza. aritmetičkog izraza.

Ispisti vlastito prezime i ime u jednoj Ispisti vlastito prezime i ime u jednoj liniji, grad u drugoj liniji, ulicu i broj liniji, grad u drugoj liniji, ulicu i broj u trećoj liniji. u trećoj liniji.

Page 14: Turbo Pascal1

Izaračunavanje u naredbi Izaračunavanje u naredbi ispisa WRITE(LN) ispisa WRITE(LN)

Tabela  Operatori u PASCAL-uTabela  Operatori u PASCAL-u

OperacijaOperacija PASCALPASCALSabiranjeSabiranje ++OduzimanjeOduzimanje --MnoženjeMnoženje **DijeljenjeDijeljenje //Cjelobrojno dijeljenjeCjelobrojno dijeljenje DIVDIVOstatak cjelobrojnog djeljenjaOstatak cjelobrojnog djeljenja MODMODKvadrat (x2)Kvadrat (x2) SQRSQRKvadratni korijen Kvadratni korijen SQRTSQRT

Page 15: Turbo Pascal1

Napisati program za izračunavenje Napisati program za izračunavenje aritmetičkog izraza: aritmetičkog izraza: 9 + 2 (7 - 4)9 + 2 (7 - 4)..

PROGRAM Racun;PROGRAM Racun;

BEGINBEGIN

Writeln(9+2*(7-4));Writeln(9+2*(7-4));

Readln;Readln;

END. END.

Page 16: Turbo Pascal1

Deklarisanje konstante Deklarisanje konstante /CONST/ /CONST/

Konstanta je zadana nepromjenljiva Konstanta je zadana nepromjenljiva vrijednost ili podatak. vrijednost ili podatak. DDefiniše sa efiniše sa naredbom naredbom CONST CONST iza koje se nalazi iza koje se nalazi onoliko deklaracija konstanti koliko onoliko deklaracija konstanti koliko trebate u programu. trebate u programu.

Page 17: Turbo Pascal1

Primjer:Varijabla X u programu ima vrijednost 3 (konstanta). Ispisati vrijednos varijable X i uvećanu vrijednost X za 2.

Program Konstanta;Const x=3;Beginwriteln(‘x= ‘,x);writeln(‘x+2 = ‘,x+2)readln;End.

Page 18: Turbo Pascal1

Operacije nad cijelim brojevima Operacija Operator

unarniČuvanje znaka +

Promjena znaka -

binarni

Sabiranje +Oduzimanje -Množenje *Količnik cijelog dijeljenja

DIV

Ostatak cijelog dijeljenja

MOD

Operandi i rezultati navedenih operacija su vrijednosti cijelog tipa. Dijeljenje nulom nije dozvoljeno, količnik je nedefinisan.

Page 19: Turbo Pascal1

Operacije nad cijelim brojevima

Operacija Operator

unarniČuvanje znaka +Promjena znaka -

binarni

Sabiranje +Oduzimanje -Množenje *Dijeljenje /

Operandi i rezultati navedenih operacija su vrijednosti realnog tipa. Dijeljenje nulom nije dozvoljeno, količnik je nedefinisan.

Page 20: Turbo Pascal1

Logički tip /BOOLEAN/

Logički (Bulov) tip je skup logičkih konstanti (vrijednosti) i skup operacija nad logičkim konstantama  laž /FALSE/, istina /TRUEOperacije nad logičkim tipom:

Operacija Operator

Unarni Negacija NOT

Binarni Disjunkcija(ILI) OR

Konjukcija(I) AND

Page 21: Turbo Pascal1

Operacije na logičkom tipu p q NOT p p OR q p AND q p=q p<>q p<=q

false false true false false true false true

false true true true false false true true

true false false true false false true false

true true false true true true false true

Page 22: Turbo Pascal1

Relacijski operatori

Relacijski operator

= <> > >= <= <

Relacija jednako različito većeveće ili jednako

manje ili jednako

manje

Page 23: Turbo Pascal1

Linijska struktura

Zadaci:

1)Napisati program za upis i ispis broja.

2)Napisati program za ispis zbira dva broja.

3)Napisati program koji izračunava sljedeće izraze:

c=x*y

d=x-y

e=c-x+y

4)Napisati program koji rješava jednačinu ax+b=0.

Page 24: Turbo Pascal1

1) PROGRAM Broj; var a:integer; Begin Writeln(‘Unesi broj’); Readln(a); Writeln(‘Uneseni broj je ’, a); Readln; End.2) PROGRAM Zbir; var a,b:integer; Begin Writeln(‘Unesi brojeve’); Readln(a,b); Writeln(‘Zbir brojeve je ’, a+b); Readln; End.

Page 25: Turbo Pascal1

3) PROGRAM Racun; VAR x, y, c, d, e : Integer; BEGIN Write(‘Unesi dva broja '); Readln(x, y); c := x * y; d := x - y; e := c - x + y; Writeln('c=', c, ' d=', d, ' e=',e); Readln; END.

Page 26: Turbo Pascal1

4. Program jednacina;var a,b,x:real;Beginwriteln(‘Unesite a i b’);readln(a,b)x:=-b/a;writeln(‘Rjesenje jednacine je ’, x);readln;End.

Page 27: Turbo Pascal1

Razgranata struktura

Naredba IF THEN je naredba grananja. Na osnovu istinitosti logičkog izraza donosi se odluka da li  se izvodi naredba.

IF Logicki_izraz THEN   Naredba S

znači, ako je Logicki_izraz istinit izvedi Naredbu S

Page 28: Turbo Pascal1

Primjeri:

1. Sa tastature upisati broj. Ako je veći od nule napisati "BROJ JE POZITIVAN".

2. Napisati program za ispis uspjeha na osnovu prosjeka.

3. Zavisno o upisanoj vrijednosti časa 0-23 ispisati poruku:

0 – 8 Dobro jutro 9 – 18 Dobar dan 19 – 23 Dobro veče

Page 29: Turbo Pascal1

1. PROGRAM pozitivan; VAR a: Real; BEGIN

Write('Vas broj '); Readln(a); IF a > 0 THEN Writeln('POZITIVAN'); Readln; END.2. PROGRAM uspjeh; VAR pr: REAL; BEGIN Writeln(Unesi prosjek '); Readln(pr); IF pr < 1.5 THEN Writeln('Nedovoljan'); IF (pr >= 1.5) and (pr < 2.5) THEN Writeln('Dovoljan'); IF (pr >= 2.5) and (pr < 3.5) THEN Writeln('Dobar'); IF (pr >= 3.5) and (pr < 4.5) THEN Writeln('Vrlo dobar'); IF (pr >= 4.5) and (pr<=5) THEN Writeln('Odlican'); Readln; END.

Page 30: Turbo Pascal1

3. Program poruka;var h:integer;Beginwriteln(‘Unesi vrijeme 0-24 casa’);readln(h);if (h>=0) and (h<=8) then writeln(‘Dobro jutro’);if (h>=9) and (h<=18) thenwriteln(‘Dobar dan’); if (h>=19) and (h<=23) thenwriteln(‘Dobro vece’);readln;End.

Page 31: Turbo Pascal1

IF THEN ELSE naredba

Ako je logički izraz istinit tada naredba1 inače naredba2.

Ispred  ELSE naredbe se nikad ne piše tačka zaraz (;) jer je  to dio IF THEN ELSE naredbe.

Page 32: Turbo Pascal1

Primjeri:1. Napisati program za odredjivanje z po formuli:     x+3,     x>=0

          z =                  x-1,     x < 0

2. Od tri upisana broja (a, b, c) sa tastature naći najmanji i recipročnu vrijednost najmanjeg.

3. Za 3 učitana broja ispitati da li je jedan od njih jednak zbiru druga dva.

4. Napisati program koji od korisnika učitava godinu i utvrđuje da li je godina prestupna. Po gregorijanskom kalendaru prestupne godine se računaju na sljedeći način:

Ako je godina djeljiva sa 400, prestupna je Ako godina nije djeljiva sa 400, a djeljiva je sa

100, nije prestupna Ako godina nije djeljiva sa 100, a djeljiva je sa

4, prestupna je Ako godina nije djeljiva ni sa 100 ni sa 4 nije

prestupna

Page 33: Turbo Pascal1

1. PROGRAM izracunavanje; VAR x, z : REAL; BEGIN WRITE('Broj '); READLN( x ); IF x >= 0 THEN z := x+3 ELSE z := x-1; WRITELN(' z= ',z ); READLN; END.

Page 34: Turbo Pascal1

2. PROGRAM broj; VAR a, b, c, min: Real; BEGIN Write('Vasa tri broja '); Readln(a, b, c); min := a; IF b < min THEN min := b; IF c < min THEN min := c; Writeln('Najmanji broj je ', min); IF min <> 0 THEN Writeln('Reciprocna vrijednost najmanjeg je ', 1/min) ELSE Writeln('Dijeljenje sa nulom); Readln; END.

Page 35: Turbo Pascal1

3. Program jednaki; var a,b,c:integer; begin

Writeln(‘Unesite tri broja’); Readln(a,b,c); IF (a=b+c) or (b=a+c) or (c=a+b) THEN

Writeln(‘Da, jednak je’)elsewriteln(‘Ne, nije jednak’);

Readln; END.

Page 36: Turbo Pascal1

4. Program Godina;var god:integer;Beginwriteln(‘Unesi godinu’);readln(god);if (god mod 400=0) or ((god mod 4=0) and (god mod 100<>0)) thenwriteln(‘Godina je prestupna’)elseif (god mod 400<>0) and (god mod 100=0) thenwriteln(‘Nije prestupna godina’)elsewriteln(‘Nije prestupna godina’);readln;End.

Page 37: Turbo Pascal1

CASE naredba

Naredba CASE omogućuje višestruko grananje.

Page 38: Turbo Pascal1

Primjeri:1. Napisati program za upis bodova i ispis

uspjeha. 0..60 Nedovoljan

61..70 Dovoljan

71..80 Dobar

81..90 Vrlo dobar

91..100 Odlican

Page 39: Turbo Pascal1

1. PROGRAM Test; VAR bb: 0..100; BEGIN Write('Broj bodova na testu (0 - 100)');

Readln(bb); CASE bb OF 0..60 : Writeln('Nedovoljan'); 61..70 : Writeln('Dovoljan'); 71..80 : Writeln('Dobar'); 81..90 : Writeln('Vrlodobar'); 91..100 : Writeln('Odlican'); END; Readln; END.

Page 40: Turbo Pascal1

Ciklična struktura

FOR petlja

Page 41: Turbo Pascal1

Kontrolna promjenljiva k odbrojava broj prolaza kroz petlju i mijenja se od početne do krajnje vrijednosti s jediničnim korakom.

Kontrolna promjenljiva mora biti prethodno deklarisana.

Tip početne i krajnje vrijednosti i tip kontrolne promjenljive se mora slagati.

Vrijednost kontrolne promjenljive nije dopušteno mijenjati unutar područja FOR naredbe.

Page 42: Turbo Pascal1

ZADACI:

1. Napisati program za  ispis prirodnih brojeva od 1 do 5.

2. Izračunati sumu parnih prirodnih brojeva u intervalu od k do n.

3. Napisati program za prebrojavanje brojeva od k do n djeljivih sa 3.

Page 43: Turbo Pascal1

1. PROGRAM pet;

VAR i: INTEGER;

BEGIN

WRITELN('1 do 5');

FOR i:=1 TO 5 DO

WRITELN ('i=',i);

READLN;

END.

Page 44: Turbo Pascal1

2. PROGRAM parni; VAR i, n, k, s : INTEGER; BEGIN WRITE(‘Unesi granice intervala '); READLN( k,n ); s := 0; FOR i := k TO n DO BEGIN IF i MOD 2 = 0 THEN s := s + i; END; WRITELN('od ', k, ' do ', n, ' suma parnih ', s); READLN; END.

Page 45: Turbo Pascal1

3. PROGRAM prebrojavanje; VAR i,k,n,br:integer; BEGIN writeln ('k n '); readln(k,n); br:=0; FOR i := k TO n DOBEGIN IF i MOD 3 = 0 THEN br:=br+1; END; writeln('djeljivih sa 3 ', br); readln; END.

Page 46: Turbo Pascal1

WHILE petlja

WHILE-naredba se izvršava na slijedeći način: izračunava se vrijednost logičkog izraza B ako je vrijednost logičkog izraza B istinita

(TRUE) izvršava se naredba S i prelazi na izvršavanje koraka 1

ako je vrijednost logičkog izraza B laž (FALSE) završava se izvršavanje WHILE naredbe.

Page 47: Turbo Pascal1

ZADACI:1. Napisati program za  ispis prirodnih

brojeva od 1 do 5. 2. Napisati program za ispis prirodnih

brojeva u intervalu od  k do n. Granice intervala se upisuju sa tastature.

3. Napisati program za ispis parnih brojeva od 1 do n.

4. Izračunati i ispisati sumu prirodnih brojeva od k do n. Koristiti WHILE petlju.

5. Prebrojati prirodne brojeve iz intervala od k do n koji su djelivi sa 3.

Page 48: Turbo Pascal1

1. PROGRAM prirodni;VAR i: Integer; BEGIN i := 1; WHILE i <= 5 DO BEGIN Writeln('i = ', i); i := i + 1; END; Readln; END.

Page 49: Turbo Pascal1

2. PROGRAM kn;VAR i, k, n : INTEGER;BEGIN WRITELN('Interval k-n'); READLN(k,n); i: = k; WHILE i <= n DO BEGIN WRITELN('i=',i ); i := i+1; END; READLN;END.

Page 50: Turbo Pascal1

3. PROGRAM arni;VAR i, n: Integer;BEGIN Writeln(' 'Do broja '); Readln(n); i := 1; WHILE i <= n DO BEGIN IF i MOD 2 = 0 THEN Writeln('i=',i); i:= i + 1; END; READLN;END.

Page 51: Turbo Pascal1

4. PROGRAM suma;VAR i, n, k, s : INTEGER;BEGIN WRITE(‘Granice intervala’); READLN( k,n ); s := 0; i := k; WHILE i <= n DO BEGIN s := s + i; i: = i + 1 END; WRITELN('suma je', s ); READLN;END.

Page 52: Turbo Pascal1

5. PROGRAM d3;VAR i, k, n, br: Integer;BEGIN Writeln('Granice intervala '); Readln(k, n); br := 0 ; i := k; WHILE i <= n DO BEGIN IF i MOD 3 = 0 THEN br := br + 1; i := i + 1; END; Writeln(' brojeva djeljivih sa 3 ima',br); Readln;END.

Page 53: Turbo Pascal1

REPEAT UNTIL petlja

REPEAT-naredba se izvršava na slijedeći način: izvodi se naredba S izračunava se vrijednost logičkog izraza B ako je vrijednost logičkog izraza B laž (FALSE) prelazi na

izvršavanje koraka 1 ako je vrijednost logičkog izraza B istinita (TRUE) završava se

izvršavanje REPEAT naredbe.

Page 54: Turbo Pascal1

ZADACI: Napisati program za  ispis

prirodnih brojeva od 1 do 5. Napisati program za ispis prvih n

prirodnih brojeva unazad REPEATpetljom.

Izračunati sumu neparnih prirodnih brojeva u intervalu od k do n.

Page 55: Turbo Pascal1

1. PROGRAM p5;VARi: INTEGER;BEGINi:=1; REPEATWRITELN('i=',i );i := i+1;UNTIL i>5;READLN;END.

Page 56: Turbo Pascal1

2. PROGRAM p8;VAR i, n : INTEGER;BEGIN WRITELN(' n'); READLN(n); i:= n; REPEAT WRITELN('i =',i); i:=i - 1; UNTIL i<1; READLN;END.

Page 57: Turbo Pascal1

3. PROGRAM p08;VAR i, k, n, s: Integer;BEGIN REPEAT Writeln('Granice'); Readln(k, n); UNTIL k<n; s := 0; i := k; REPEAT IF i MOD 2=1 THEN s := s + i; i := i + 1; UNTIL i > n; Writeln('Suma neparnih brojeva ', s); Readln;END.