Osnove Pascala1

You might also like

Download as pps, pdf, or txt
Download as pps, pdf, or txt
You are on page 1of 41

Programski jezik

PASCAL

Osnove programiranja u Pascalu


(1. dio)
Povijest jezika Pascal

Pascal je programski jezik razvijen 1970. godine od strane Niklausa Wirtha


kao jezik posebno pogodan za strukturalno programiranje (za razliku od
danas ope prihvaene OOP metode). Baziran na temeljima programskog
jezika Algol dobio je ime u ast matematiara i filozofa Blaisa Pascala.
Iako je inicijalno bio zamiljen kao jezik namijenjen uenju programiranja u
kolama i univerzitetima irom svijeta danas se koristi u industriji razvoja
softwarea u svojoj najpoznatijoj inkarnaciji - Object Pascal, Delphi. Delphi
je razvijen od strane korporacije Borland za svestrani razvoj aplikacija od
sistemskih alata i igara do desktop, database i vieslojnih kompleksnih
aplikacija.
Prvu implementaciju Pascala napravio je Niklaus Wirth za raunalo CDC
6000 1970. u Zrichu, dok je prvi program prevodilac za Pascal napisan u
SAD -u bio stvoren na University of Illinois u nadlenosti Donalsa B. Gilliesa
za porodicu raunala DEC PDP-11 u assembleru. Niklaus Wirth je olakao
presaivanje Pascala na druga raunala tako to je stvorio kit za portiranje,
to je imalo za cilj da smanji koliinu posla potrebnog za stvaranje programa
prevodioca s jedne porodice raunala na druga.

Srednja mjeovita kola epe | Robert Vrbi


Sintaksa, gramatika i semantika

Sintaksa definira stroga pravila pisanja rijei nekog jezika. Npr. reenica:
Idem kui autobuzom ima sintaksnu greku jer jedna rije nije ispravno
napisana.
Gramatika jezika definira pravila povezivanja rijei u reenice. Npr. reenica:
Jue u ii na izlet je gramatiki pogrena iako ne sadri greke u sintaksi.
Semantika definira znaenje, odnosno smisao reenice. Mogue je formirati
sintaksno i gramatiki ispravne reenice koje su potpuno besmislene, dakle
semantiki pogrene, npr.: Dva mlada ptia plave kose sjede na banderi i
umau keks u struju.
Sintaksa i gramatika nekog programskog jezika mogu se precizno opisati
formalnim matematikim pravilima (tzv. Backus-Naurova forma), to
omoguava prevoditelju (kompilatoru) da izvri detaljnu provjeru sintakse i
gramatike napisanog programa i ukae na eventualne greke. Sa
semantikom je znatno vei problem, jer ju je praktino nemogue u
potpunosti formalizirati, tako da sematike greke kompilator ne moe otkriti,
ve se one otkrivaju u fazi testiranja programa.

Srednja mjeovita kola epe | Robert Vrbi


Alfabet programskog jezika Pascal

Opis svakog programskog jezika neophodno je zapoeti


navoenjem skupa simbola (alfabeta) od kojih se
formiraju rijei i iskazi datog jezika. Alfabet pascala se
sastoji od:
svih velikih (A-Z) i
malih (a-z) slova engleskog alfabeta,
cifara 0 9 i
posebnih (specijalnih) znakova ( ( ) + - * / , . : ; < > = [ ] ^ { } @ $
_ )

Srednja mjeovita kola epe | Robert Vrbi


Pravila pisanja programa u Pascalu

1. Program se sastoji od zaglavlja i bloka naredbi. U zaglavlju se definiraju


ime programa, sve funkcije i procedure koje se koriste, varijable,
konstante i novi tipovi podataka. Zaglavlje zapoinje rezerviranom rijei
program. Zaglavlje sadri neophodne informacije za kompilator. Blok
naredbi predstavlja pravi izvrni dio programa u kojem se definira nain
obrade podataka. Zapoinje rezerviranom rijei begin, a zavrava sa end.
Na primjer:
program imeprograma;
var a,b: tip_podataka1;
c,d: tip_podataka2;
zaglavlje programa
begin
naredba_1;
naredba_2;
... naredbeni blok
naredba_n;
end.

Srednja mjeovita kola epe | Robert Vrbi


Pravila pisanja programa u Pascalu

2. Jedna naredba se pie u jednom redu, a naredbe se meusobno


odvajaju znakom toka-zarez (;)

3. Komentari se u Pascalu piu unutar vitiastih zagrada i namijenjeni


su ovjeku-programeru, radi boljeg razumijevanja funkcionalnosti, a
ne raunalu. Kompilator sadraj unutar vitiastih zagrada prilikom
prevoenja ignorira i on ne ulazi u izvrni kod.

Srednja mjeovita kola epe | Robert Vrbi


Rijei programskog jezika Pascal

Sve rijei koje Pascal poznaje dijele se na:


1. Kljune (rezervirane),
2. Predefinirane i
3. Korisniki definirane rijei (identifikatori).
Sve rijei Pascala sastoje se iskljuivo od slova engl. alfabeta i cifara pri
emu cifra ne smije biti na prvoj poziciji. Rijei moraju biti meusobno
razdvojene barem jednom prazninom ili nekim znakom koji ne tvori rije (npr.
, + : ).
Kljune rijei su one rijei koje predstavljaju sr svakog pascal programa.
One imaju tono i unaprijed definirana znaenja, koja je nemogue
promijeniti. Standardni Pascal posjeduje 35 kljunih rijei, dok Turbo
Pascal posjeduje neto vie.
Predefinirane rijei su one rijei koje posjeduju unaprijed definirano
znaenje, koje je mogue promijeniti. Pascal posjeduje prilino velik broj
predefiniranih rijei (turbo Pascal ih ima preko 1000).
Korisniki definirane rijei (identifikatori) ne posjeduju nikakvo unaprijed
predvieno znaenje, nego ga definira sam programer.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi i komentari

Iskazi (izjave) programskog jezika Pascal mogu sadravati konstante, rijei,


operatore i separatore, na nain koji je propisan pravilima jezika. Iskazi slue
za opis strukture podataka koji e se koristiti u programu (deklarativni
iskazi), kao i za opis postupaka koji e se obavljati nad podacima
definiranim deklarativnim iskazima. Operatori su znakovi kojima se definira
neka operacija (+ - zbrajanje, * - mnoenje i sl.), dok su separatori znakovi
za razdvajanje cjelina (, ; : i sl.). Naroito je znaajan u pascalu separator ;
kojim se meusobno razdajaju iskazi.
Komantar je specian dio programskog jezika ija je osnovna svrha da
program uini razumljivim i za druge. Komentari slue i samim programerima
jer nakon odreenog vremena i sam autor programa zaboravi to je tono u
kojoj programskoj liniji, pogotovo ukoliko se radi o kompliciranijim
programima sa velikim brojem programskih linija. Komentar se moe javiti u
bilo kojem dijelu programa s tim da mora biti omeen znakovima {. Unutar
vitiastih zagrada se moe nalaziti bilo kakav tekst, koji ne predstavlja dio
programa i ne prevodi se.
{ovo je komentar
s:=s+i; {poveati sumu za vrijednost varijable i

Srednja mjeovita kola epe | Robert Vrbi


Konstante

Fiksne odnosno nepromjenljive vrijednosti nazivamo konstante. U Pascalu


konstante se definiraju na sljedei nain:
CONST ime=vrijednost;
gdje CONST predstavlja rezerviranu rije koja oznaava da slijedi
definicija konstanti.

Ime konstante se u programu ravnopravno koristi sa vrijednosti te konstante.


Deklaracijom konstante se nekoj memorijskoj lokaciji pridruue naziv
konstante a vrijednost konstante je sadraj te lokacije.

Primjer:
CONST istina=true;
pi=3.14159;
inch=2.54;

Srednja mjeovita kola epe | Robert Vrbi


Promjenljive (varijable)

Promjenljiva ili varijabla je vrlo vaan pojam u programiranju. Osnovne


karakteristike promjenlive su njeno ime i vrijednost. Promjenjiva
omoguava da se nekoj memorijskoj lokaciji pridrui ime promjenjive pri
emu je sadraj te memorijske lokacije vrijednost promjenjive.

Promjenjive u PASCAL -u se deklariraju pomou rezervirane rijei VAR,


nakon koje slijedi lista promjenjivih odgovarajuih tipova. Svaka promjeniva
koja se koristi u programu mora biti deklarirana, inae e kompajler javljati
greke.

Primjer:
VAR ocjena: integer;
prosjek:real;
slovo: char;

Srednja mjeovita kola epe | Robert Vrbi


Tipovi podataka

Svaka promjenljiva mora imati svoj tip podataka koji odreuje skup
vrijednosti (domenu) koje promjenljiva moe uzimati. Svi tipovi podataka u
Pascalu se mogu podijeliti na proste tipove i sloene tipove.
U proste tipove podataka spadaju sljedei tipovi podataka:
CJELOBROJNI TIP
REALNI TIP
ZNAKOVNI TIP
LOGIKI (BOOLOV) TIP
POBROJANI I
INTERVALNI TIP.
Prva etiri navedena tipa su osnovni tipovi,a preostala dva su izvedeni tipovi
podataka.

Srednja mjeovita kola epe | Robert Vrbi


Cjelobrojni tip - INTEGER

Cjelobrojni tip podataka (integer) se koristi za prikaz cijelih brojeva.


Domen vrijednosti za podatke ovog tipa u veini verzija Pascala je ogranien
na opseg vrijednosti od -32768 do 32767, meutim ovaj opseg esto nije
dovoljan pa mnoge verzije Pascala uvode i tip longint, koji je doputa
znatno iri opseg vrijednosti od -2147483648 do 2147483647.
Pored ova dva cjelobrojna tipa postoji jo nekoliko tipova za rad sa cijelim
brojevima: byte, shortint, word.

Tip podataka Rezervirana rije Najmanja vrijednost Najvea


vrijednost
Cijeli brojevi (+) byte 0 255
Cijeli brojevi (- i +) shortint -128 127
Cijeli brojevi (- i +) integer -32768 32767
Cijeli brojevi (+) word 0 65535
Cijeli brojevi (- i +) longint -2147483648 2147483647
Srednja mjeovita kola epe | Robert Vrbi
Cjelobrojni tip - INTEGER

Primjer deklariranja cjelobrojne promjenljive:


var broj: integer;
var a: longint;
Ukoliko je potrebno deklarirati vie varijabli istog tipa tada nazive
promjenljivih odvajamo zarezom. Na primjer:
var prvi, drugi, treci, cetvrti, peti: integer;

Na podacima tipa integer definirane su sljedee operacije:


(+) zbrajanje dva cijela broja - rezultat je cijeli broj
(-) oduzimanje dva cijela broja - rezultat je cijeli broj
(*) mnoenje dva cijela broja - rezultat je cijeli broj
(DIV) cjelobrojno dijeljenje bez ostatka - rezultat je cijeli broj
(MOD) ostatak dijeljenja dva cijela broja - rezultat je cijeli broj

Srednja mjeovita kola epe | Robert Vrbi


Realni tip - REAL

Realni tip predstavlja konani podskup skupa racionalnih brojeva. Ovaj tip
omoguava zaposivanje decimalnih brojeva npr. -3.56, 3567.987,
-0.099999 ...
Vrlo velike i male vrijednosti realnih brojeva zapisuju se u sljedeem obliku:
mantisa*10eksponent
Ovakav nain zapisivanja brojeva poznat je kao nain pisanja sa pokretnim
zarezom, gdje eksponent pokazuje za koliko mjesta treba pomaknuti
decimalnu tokuulijevo ili udesno ovisno o tome da li je eksponent pozitivan
ili negativan. Na raunalu broj u pokretnom zarezu se zapisuje u obliku:
mantisa E predznak eksponent
npr. 2.5E4 - vrijednost 2.5 x 10 =2.5 x 10000=25000
4

1.0E-4 - vrijednost 1.0 x 10 -4=0.0001

Primjer deklariranja realne prmjenljive:


var a: real; ili var a,b,c: real;

Srednja mjeovita kola epe | Robert Vrbi


Realni tip - REAL

Nad ovim tipom su definirani sljedei operatori:


(+) za zbrajanje realnih brojeva
(-) za oduzimanje realnih brojeva
(*) za mnoenje realnih brojeva
(/) za dijeljenje realnih brojeva
Kao i u sluaju cjelobrojnih podataka Pascal i za realne vrijednosti prua vie
podtipova podataka koji se razlikuju po opsegu vrijednosti (preciznosti): real, single,
double, extended.

Tip podataka Rezervirana rije Najmanja vrijednost Najvea vrijednost


real 2.9E-39 1.7E38

single 1.5E-45 3.4E38


Raelni
brojevi double 5.0E-324 1.7E308

extended 3.4E-4932 1.1E4932

Srednja mjeovita kola epe | Robert Vrbi


Realni tip - REAL

Bitno je napomenuti da realni tip troi znatno vie memorije od cjelobrojnog


(od 2 do pet puta), stoga ukoliko znamo da neki podatak moe uzimati samo
cjelobrojne vrijednosti tako ga treba i deklarirati kako bi se program
efikasnije izvravao.

Primjer deklariranja dvije cjelobrojne i dvije realne varijable:


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

Srednja mjeovita kola epe | Robert Vrbi


Znakovni tip - CHAR

Ovu grupu podataka ine znakovi: slova abecede, numeriki znakovi od 0 do


9, znakovi interpunkcija i specijalni znakovi.
Znakovna konstanta sastoji se od znaka ogranienog jednostrukim
navodnicima (literalima), na primjer: 'B' b' 'Z' ' # ' '@' '10'

Primjer deklaracije znakovne promjenljive:


var znak: char;
Ovako deklarirana varijabla u jednom trenutku moe sadravati samo jedan
znak, to znai da u ovako deklariranu promjenljivu nije mogue smjestiti
npr. rije klasa. Da bi se prevazilo ovo ogranienje mnoge verzije uvode i
tip string koji omoguava unos podatka duine do 255 znakova. Dakle, ako
deklariramo promjenljivu ime na sljedei nain:
var ime: string;
moi emo joj dodijeliti npr. Vrijednost Pero Peri.
Tip podataka string NIJE prosti tip podataka, mada je srodan znakovnom.

Srednja mjeovita kola epe | Robert Vrbi


Logiki tip - BOOLEAN

U programima je potrebno ispitivati tonost odreenih uvjeta i na temelju


toga donositi odreene odluke. Rezultat provjere upita je tono (true) ili
netono (false) i te dvije vrijednosti su domen vrijednosti logikog tipa.
Raunalo ove vrijednosti interpretira na sljedei nain: true- 1, false - 0, tako
da se u literaturi mogu nai i termini logika 0 i logika 1.
Primjer deklaracije logike varijable:
var ozenjen: boolean;
ime je deklarirana promjenljiva ozenjen koja moe imati samo dvije
vrijednosti true ili false.

Nad ovim tipom su definirani sljedei operator:


NOT - negacija, AND - konjunkcija i OR - disjunkcija.
Operator NOT je unarni operator (operator nad samo jednom vrijednosti), a
AND i OR su binarni operatori (izvravaju se nad dva operanda).

Srednja mjeovita kola epe | Robert Vrbi


Osnovne naredbe

Pridruivanje vrijednosti
Nekoj promjenivoj x dodjeljuje se vrijednost pomou iskaza
pridruivanja koji ima oblik:
x:=izraz;
gdje je x promjenjiva kojoj se dodjeljuje vrijednost izraza sa desne
strane, npr.
x:=a+b;
prosjek:=sumaocjena/brojocjena;
s:=s+i;
a:=15;
b:=sqrt(a);...

Srednja mjeovita kola epe | Robert Vrbi


Osnovne naredbe

Naredbe za unos
Naredba pascala kojom se osigurava itanje (unos) podataka je read
odnosno readln
Sintaksa naredbe readln je:
readln(lista promjenjivih);
npr. readln(a,b,c,d);
Sintaksa naredbe read je ista kao i kod naredbe readln, meutim ove dvije
naredbe se razlikuju i to po tome to se nakon izvravanja naredbe readln
pokaziva za uitavanje novog podatka pomjera na poetak novog reda, to
kod naredbe read nije sluaj.

Srednja mjeovita kola epe | Robert Vrbi


Osnovne naredbe

Naredbe za ispis
Ispis poruka, vrijednosti neke promjenljive ili rezultata obrade vri se pomou
naredbi write i writeln. Naredba writeln ima oblik:
writeln(lista promjenjivih, konstanti, izraza);
pri emu su promjenljive, konstante i izrazi u zagradi odvojeni zarezima.
Primjeri:
writeln ('a=',5,'b=',3);
writeln(P=,p);
writeln(Zbroj je: ;a+b);
writeln(Pascal);
writeln(x:5:2); za ispis varijable x rezervirano je 5
mjesta, od ega 2 za decimale.

Ako vrijednost broja zauzima vie pozicija nego to je to predvieno u iskazu


write tada se zadani format.

Srednja mjeovita kola epe | Robert Vrbi


Vjeba

1. Izradi algoritam i napii program u Pascalu za izraun i ispis


vrijednosti povrine i opsega kvadrata za proizvoljnu vrijednost
stranice a.

2. Izradi algoritam i program u Pascalu za pretvaranje unijetog broja


sati u minute i sekunde.

3. Izradi algoritam i program u Pascalu kojim se izraunava brzina


kretanja (u km/h) ako se zadaju preeni put (u km) i potrebno
vrijeme (u satima). Rezultat brzinu prikazati i u m/s.

Srednja mjeovita kola epe | Robert Vrbi


Standardne funkcije

abs (x) Apsolutna vrijednost


sqr (x) Kvadrat broja x
sqrt (x) Kvadratni korijen
trunc (x) Odsijecanje decimalnog dijela realnog broja, npr. trunc
(3.75) je 3
round (x) Zaokruivanje realne vriujednosti na cjelobrojnu npr.
round(3.75) je 4
sin (x) Sinus od x
cos (x) Kosinus od x
atan (x) Arkus tangens
ln (x) Prirodni logaritam od x
exp (x) Eksponencijalna funkcija iji je eksponent x
int(x) Cijeli dio broja x, prikazan kao realan broj
frac (x) Decimalni dio realnog broja x
pred (x) Prethodnik broja x
succ(x) Sljedbenik broja x

Srednja mjeovita kola epe | Robert Vrbi


Zadaci za vjebu

1. Napisati program kojim se izraunava udaljenost dviju toaka u ravni.

program rastojanje;
uses crt;
var x1,x2,y1,y2,d:real;
{ x1, y1 koordinate prve toke}
{ x2, y2 koordinate druge toke}
{ d rastojanje}
begin
crlscr;
writeln(Unesi koordinate prve toke);
readln(x1,y1);
writeln(Unesi koordinate druge toke);
d:=sqrt(sqr(x2-x1) + sqr(y2-y1));
writeln(Rastojanje izmeu toaka je:, d:5:3);
readln;
end.

Srednja mjeovita kola epe | Robert Vrbi


Zadaci za vjebu

2. Definirati konstantu x, zatim izraunati kvadrat, kv. korijen, apsulutnu


vrijednost i prirodni logaritam broja x.

program standard;
const x=25.0;
var kv,ko,aps,prirodni:real;
begin
aps:=abs(x);
prirodni:=ln(x);
kv:=sqr(x);
ko:=sqrt(x);
writeln('apsolutna vr.(x)=',aps);
writeln('kvadrat(x)=',kv:4:2);
writeln(kv.korijen(x)=',ko:4:2);
writeln(ln(x)=,prirodni:5:3);
end.

Srednja mjeovita kola epe | Robert Vrbi


Zadaci za vjebu

3. Napisati program koji unijetu temperaturu u Celzijima pretvara u


Farenhajte.

program cel_far;
uses crt;
var tempC, tempF: real;
begin
crlscr;
writeln(Unesi temperaturu u Celzijima);
readln(tempC);
tempF:=tempC*1.8+32;
writeln(Temperatura po Forenhajtu, tempF:8:2)
end.

Srednja mjeovita kola epe | Robert Vrbi


Naredbe izbora (selekcije)

Iskazi selekcije omoguavaju grananje programa ovisno o


ispunjenju odreenog uvjeta.

NAREDBA IF
Jednostruki izbor: IF logiki_izraz THEN S
Ako logiki izraz ima vrijednost istina (true) onda e se izvriti sekvenca
naredbi S.
npr. IF a>b THEN writeln('a je vee od b');

Dvostruki izbor: IF log_izraz THEN S1 ELSE S2


Ako logiki izraz ima vrijednost istina izvrie se sekvenca S1, a ako je
vrijednost logikog izraza la (false) izvrit e se sekvenca S2.
npr. IF a>b THEN writeln('a je vee od b')
ELSE writeln('b je jednako ili manje od a');

Srednja mjeovita kola epe | Robert Vrbi


Naredbe izbora (selekcije)

NAREDBA CASE

Naredba CASE omoguava viestruko grananje programa u zavisnosti od


vrijednosti selektorskog izraza. Vrijednost selektorskog izraza moe biti
rednog tipa (char, integer, boolean, pobrojani ili neki intervalni tip).

Sintaksa naredbe:
CASE selektorski_izraz OF
L1:S1;
L2:S2;
L3:S3;
.
Ln:Sn
END;

Srednja mjeovita kola epe | Robert Vrbi


Naredbe izbora (selekcije)

Naredba CASE se izvodi tako to se rauna vrijednost selektorskog izraza


i ako u popisu case oznaka (L1,L2,L3,...,Ln) postoji oznaka ista vrijednosti
selektorskog izraza tada se izvrava pripadna naredba ili sekvenca
naredbi.

.
npr CASE round(prosjek) OF
1: writeln('nedovoljan');
2: writeln('dovoljan');
3:writeln('dobar');
4:writeln('vrlodobar');
5:writeln('odlian')
END;

Srednja mjeovita kola epe | Robert Vrbi


Vjeba

1. Napisati program kojim se za unijetu ocjenu ispisuje: 1 - nedovoljan,


2 - dovoljan, 3 - dobar, 4 - vrlodobar, 5 - odlian.

Ovaj zadatak moe se rijeiti na dva naina pomou sloene naredbe IF


ili pomou naredbe CASE .

Srednja mjeovita kola epe | Robert Vrbi


Vjeba

program ocjene;
var ocjena : integer;
begin
Writeln('Unesi ocjenu : ');
Readln(ocjena);
case ocjena of
1: WriteLn('Nedovoljan');
2: WriteLn('Dovoljan');
3: WriteLn('Dobar');
4: WriteLn('Vrlo dobar');
5: WriteLn('Odian');
End;

End.
Srednja mjeovita kola epe | Robert Vrbi
Vjeba

program ocjene2;
var ocjena:integer;
begin
write('unesi ocjenu: ');
readln(ocjena);
if ocjena=1 then
writeln('nedovoljan')
else if ocjena=2 then
writeln ('dovoljan')
else if ocjena=3 then
writeln ('dobar')
else if ocjena=4 then
writeln ('vrlo dobar')
else if ocjena=5 then
writeln ('odlian')
end.
Srednja mjeovita kola epe | Robert Vrbi
Iskazi ponavljanja - petlje

Ponavljanje (petlja, iteracija) je struktura koja omoguava ponavljanje


odreenih aktivnosti.
FOR petlja
Iskaz FOR omoguava da se neki dio algoritma ponovi tono
odreeni broj puta. Sintaksa ovog iskaza je:
for kp:=pv to kv do iskaz;
gdje je kp - kontrolna promjenjiva koja odreuje koliko e se puta izvriti
iskaz u for iskazu;
pv - poetna vrijednost kontrolne promjenjive;
kv - krajnja vrijednost kontrolne promjenjive;
Iskaz for se moe pisati i na sljedei nain
for kp:=kv downto pv do iskaz;
pri emu se iskaz izvrava za vrijednosti koje idu od krajnje do poetne,
odnosno od vee ka manjoj vrijednosti kontrolne promjenjive.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

Primjer 1: Izraditi program kojim se ispisuje zbroj svih brojeva od 1 do


1000.

program suma;
uses crt;
var i, s: longint;
begin
clrscr;
s:=0;
for i:=1 to 1000 do s:=s+i;
writeln('zbroj svih brojeva od 1 do 1000 iznosi',s);
end.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

Primjer 2: Fibonaccijev niz (Prvi Fibonaccijevi brojevi: 0, 1, 1, 2, 3, 5, 8,


13, 21, 34, 55, ... svaki sljedei je zbroj prethodna dva broja)
Ponekad se za ovaj niz smatra da poinje na F1 = 1, ali uobiajenije je
ukljuiti F0 = 0.
Fibonaccijevi brojevi su imenovani po Leonardu od Pise, poznatom kao
Fibonacci, iako su ranije opisani u Indiji.

Fibonaccijev niz se esto povezuje i sa brojem zlatnog reza fi (phi, ), ili brojem
kojeg mnogi zovu i "Boanskim omjerom". Uzmemo li jedan dio Fibonaccijevog
niza, 2, 3, 5, 8, te podijelimo li svaki slijedei broj s njemu prethodnim, dobit
emo uvijek broj priblian broju 1,618 (3/2=1,5; 5/3=1,66; 8/5=1,6). Broj 1,618
jeste broj fi. Odnosi mjera kod biljaka, ivotinja i ljudi, sa zapanjujuom
preciznou se pribliava broju fi.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

program Fibonacci;{ispisuje prvih 20 Fibonaccijevih br.}


uses crt;
var i, F1, F2, F3: integer;
begin
clrscr;
F1:=0;
F2:=1;
for i:=1 to 20 do
begin
writeln(F1);
F3:=F1+F2;
F1:=F2;
F2:=F3;
end;
readln;
end.
Srednja mjeovita kola epe | Robert Vrbi
Iskazi ponavljanja - petlje

WHILE petlja
Iskaz WHILE omoguava izvravanje nekog iskaza sve dok je neki
uvjet ispunjen, odnosno istina (true). Kada uvjet prestane biti istina,
prestaje i izvravanje iskaza, odnosno iskae se iz petlje i program se
nastavlja izvravanjem iskaza koji je izvan WHILE strukture.
while log_izraz do iskaz;

Vidljivo je da je mogue da se while iskaz ne izvri niti jedanput


ukoliko je vrijednost logikog izraza odmah postavljena na false.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

Primjer 3: Izraditi program kojim se ispisuje zbroj svih brojeva od 1 do


1000 primjenom while naredbe.

program suma;
uses crt;
var i, s: longint;
begin
clrscr;
s:=0;
i:=1;
while i<=1000 do
begin
s:=s+i;
i:=i+1;
end;
writeln('zbroj svih brojeva od 1 do 1000 iznosi',s);
end.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

REPEAT ... UNTIL petlja


Iskaz REPEAT...UNTIL omoguava izvravanje odreenih akcija sve
dok je uvjet (logiki izraz) jednak false, tj. dok uvjet nije zadovoljen. U
trenutku kada logiki izraz poprimi vrijednost true prestaje izvravanje
iskaza unutar repat...until strukture.
repeat
naredba_1;
naredba_2;
...
naredba_n
until uvjet;
U ovakvoj strukturi iskaz(i) e se izvriti najmanje jednom, jer se za razliku
od while petlje ovdje uvjet testira naknadno, tj. prvo se izvri skupina
iskaza unutar petlje, a potom se testira istinitost logikog izraza.

Srednja mjeovita kola epe | Robert Vrbi


Iskazi ponavljanja - petlje

Primjer 4: Izraditi program kojim se ispisuje zbroj svih brojeva od 1


do 1000 primjenom repeat ... until petlje.

program suma;
uses crt;
var i, s: longint;
begin
clrscr;
s:=0;
i:=1;
repeat
s:=s+i;
i:=i+1;
until i>1000;
writeln('zbroj svih brojeva od 1 do 1000 iznosi ',s);
end.

Srednja mjeovita kola epe | Robert Vrbi


Zadaci za ponavljanje i vjebu

1. Izradi program kojim se ispisuju svi parni brojevi od 2 do 1000.


2. Izradi program kojim se rauna suma svih neparnih brojeva do 1000.
3. Izradi program koji ispisuje sumu kvadrata svih brojeva do 50.
4. Napii program koji ispisuje za sve neparne brojeve njihove kvadratne korijene, a za
sve parne brojeve do 50 njihove kvadrate.
5. Napii program koji od tri unijeta broja pronalazi i ispisuje najvei i najmanji.
6. Napii program kojim se uitavaju tri cijela broja i ispisuju u redoslijedu: najmanji,
srednji, najvei.
7. Napii program kojim se ispituje da li je unijeti broj prosti broj ili ne. (Prost broj je
djeljiv samo sa 1 i sa samim sobom).
8. Napii program koji na ekranu ispisuje tablicu mnoenja za brojeve od 1 do 10 u
vidu tablice 10x10.
9. Izradi program koji izraunava i ispisuje faktorijel unijetog broja. (n!=1 x 2 x 3 x ... X
(n-1) x n tj. Umnoak svih brojeva do unijetog broja)
10. Napii program za pogaanje sluajno generiranog broja (randomize). Ispisati broj
pokuaja iz kojeg je pogoen zamiljeni broj.

Srednja mjeovita kola epe | Robert Vrbi

You might also like