Professional Documents
Culture Documents
Nositelj:
Izv.prof.dr.sc. Ivica Lukić
Predavanje 4
2. Algoritmi
Pojam algoritma i osnovna svojstva
algoritama
• riječ algoritam– dolazi od imena arapskog matematičara Muhamed ibn Musa al
Khwarizmi (IX.st.)
• al Horezmi = Algorizmi = Algorithmus = Algoritam
• U prvo su vrijeme algoritmima nazivana samo pravila računanja s brojevima
zapisanim u dekadskom sustavu, da bi se kroz naredna stoljeća taj naziv počeo
upotrebljavati za pravila obavljanja raznovrsnih zadataka.
• Pojavom računala pojam algoritma se rasprostranio u područje računarstva, a zatim i
u druge djelatnosti.
• Matematička teorija algoritama bavi se mogućim oblicima algoritama i istražuje
svojstva samih algoritama.
• Algoritmi se koriste za jasno utvrđivanje pravila dostizanja nekog postavljenog cilja.
Zbrajanje dvaju ili više decimalnih
brojeva
Primjer 1: Napisati decimalne brojeve jedan ispod drugog tako da znamenke iste težine budu u istom vertikalnom stupcu
(decimalne točke su pritom jedna ispod druge). Ako kod nekih brojeva lijevo ili desno nedostaju znamenke, zamisliti da
su na tim mjestima zapisane nule. Zatim zbrajati znamenke u istom stupcu i pribrajati im eventualni prijenos s nižeg
mjesta. Počinje se zbrajanjem zdesna (brojevnim mjestom najmanje težine) i smatra se da je tu prijenos jednak nuli.
Postupak se zaustavlja kada se dosegne krajnji lijevi stupac.
3.14159
.52
+ 27.
___________________
30.66159
Svojstva algoritama
1.konačnost – napisanim postupkom trebamo doći do
konačnog rješenja
2.preciznost (determiniranost) – pojedini koraci algoritma
propisuju točno što trebamo izvršiti u pojedinim
uvjetima
3.učinkovitost (efektivnost) – algoritam treba trošiti što
manje kapaciteta procesora, memorije računala i
ostalih resursa
Svojstva algoritama
Uz svaki algoritam moraju jasno biti definirani početni objekti nad kojima
se obavljaju operacije.
Kao ishod provođenja algoritma pojavljuju se završni objekti ili rezultati.
Algoritam mora biti sastavljen od konačnog broja koraka koji ukazuju na
slijed operacija koje treba obaviti nad početnim objektima kako bi se
dobili završni objekti ili rezultati.
Svaki korak opisuje se instrukcijom.
Obavljanje algoritma naziva se algoritamskim procesom. Tijekom
odvijanja algoritamskog procesa i postupne izgradnje završnog
objekta mogu se pojaviti i neki među rezultati.
Za obavljanje algoritma potreban je izvoditelj algoritma koji razumije
algoritam i zna točno obaviti svaki korak algoritma.
Vrste algoritama
• SPECIJALIZIRANI – primjenjuju se samo na pojedine početne objekte (primjer: recept
za baklavu, površina kruga...)
• OPĆENITI – dozvoljavaju različite vrijednosti početnih objekata (primjer: algoritam za
zbrajanje bilo kojih decimalnih brojeva, površina bilo kojeg lika...). Kod općenitih
algoritama definira se klasa ulaznih objekata koji su dozvoljeni u izvođenju.
• Djelovanje algoritma je ispravno samo nad dozvoljenom klasom ulaznih objekata i
rezultira klasom izlaznih objekata.
• Algoritam je upotrebljiv ako se za bilo koji član iz početne klase objekata može dobiti
rezultat iz klase dozvoljenih završnih objekata u konačnom vremenu, tj. uz konačni
broj koraka u algoritamskom procesu.
• Neki teorijski uporabljivi algoritmi su krajnje neprikladni za uporabu jer trajanje
njihovog izvođenja može biti neprihvatljivo dugo. Uvođenjem ograničenja takvi
algoritmi mogu postati upotrebljivi što znači da se algoritam zaustavlja kada se pojavi
prepreka ili nakon određenog broja koraka.
Primjer 2.
Promotrimo primjer algoritma čiji algoritamski proces mora biti prekinut zbog prepreke u jednom od koraka. Početni objekt je prirodni
broj. Algoritam je opisan sa slijedećih pet koraka:
4. Podijeliti početni broj s dobivenim ostatkom iz koraka 3. Taj kvocijent je završni objekt. Prijeći na peti korak.
Ako je početna vrijednost jednaka 6, tada će se u pojedinim koracima dobivati slijedeći rezultati:
korak 1. 6 × 2 = 12;
korak 2. 12 + 1 = 13;
korak 4. 6 ÷ 1 = 6;
korak 5. kraj.
Primjer 2. nastavak
Međutim, ako je početna vrijednost jednaka 7, tada se u pojedinim koracima dobiva:
korak 1. 7 × 2 = 14;
korak 2. 14 + 1 = 15;
Ovaj neupotrebljivi algoritam se može pretvoriti u upotrebljivi, ako se u trećem koraku ugradi ograničenje koje dozvoljava prijelaz u
četvrti korak samo ako je ostatak dijeljenja različit od nule, a u protivnom javlja nastalu iznimku i prelazi na peti korak.
3. Naći ostatak dijeljenja te sume s brojem 3. Ako je ostatak jednak nuli, javiti nastalu
4. Podijeliti početni broj s ostatkom. Taj kvocijent je završni objekt. Prijeći na peti korak
• S obzirom da su vrste osnovnih objekata u takvim jezicima relativno jednostavne i da najčešće poprimaju oblik
brojki ili slova, objekti se najčešće nazivaju podacima, a klase objekata tipovima podataka.
• Pojedini koraci u algoritmu zapisuju se instrukcijama koje su sastavljene od simbola operatora (kazuje koju
operaciju treba provesti s odabranim operandima - argumentima).
Jezici za zapisivanje algoritama
• Početne vrijednosti objekata nazivaju se ulaznim podacima, a završne vrijednosti objekata izlaznim podacima
programa.
• Stvaranje programa započinje njegovim zasnivanjem u jeziku zasnivanja programa (engl. Program Desing
Language – PDL), a zatim se tako zapisan algoritam prepisuje u konačni oblik u nekom višem programskom
jeziku.
• Argumente zovemo ulaznim varijablama, a rezultate izlaznim varijablama i svaku od njih označavamo svojim
simbolom – imenom.
• Za označavanje simbola varijabli koriste se velika slova ili više uzastopno napisanih velikih slova i
znamenki, s tim da prvi znak uvijek bude slovo.
• Napomena! Znak pridruživanja ne smije se zamijeniti sa znakom jednakosti u matematici.
• Argumenti (ulazne varijable) nepromjenjive veličine nazivaju se konstantama.
Primjer 3.
funkcija instrukcija
____________________________________
y=x Y := X;
y=a*x+b Y := A * X + B;
y=x*y Y := X * Y;
y=1/x Y := 1 / X;
y=x*x+1 Y := X * X + 1;
y = x * ( x –1 ) Y := X * ( X – 1 )
y=a*(x*(x–1)+b) Y := A * ( X * ( X – 1 ) + B );
Primjer 4.
• Sljedeći slijed instrukcija određuje redom prvih pet potencija ulazne varijable X:
Y := 1;
Y := Y * X;
Y := Y * X;
Y := Y * X;
Y := Y * X;
Y := Y * X;
• Nakon prve instrukcije varijabla Y poprima vrijednost 1. Nakon obavljanja druge
instrukcije Y poprima vrijednost X, a nakon treće vrijednost X * X = X2. Sljedeće
instrukcije redom izračunavaju slijedeće potencije varijable X. Nakon zadnje
instrukcije varijabla Y poprima vrijednost X5.
• Napomena! Svaki broj različit od nule na nultu potenciju ima vrijednost 1, tako da se
prvo pridruživanje Y := 1 može smatrati nultom potencijom varijable X
Grupe instrukcija i programi
• Grupiranje instrukcija označava se vertikalnom crtom ispred cijele grupe.
• U nekim višim programskim jezicima početak i kraj grupe označava se
posebnim znacima ili posebnim riječima:
Pascal: početak – begin
kraj – end
C: početak – {
kraj – }
• Ključne ili rezervirane riječi – odabrane riječi ili kratice za označavanje
nekog djelovanja u algoritmu (obično se tiskaju masnim slovima ili se
podcrtavaju)
Grupe instrukcija i programi
• Početak programa označava se riječju početak, a njegov završetak riječju kraj i točkom iza te riječi.
Instrukcije programa se pišu jedna ispod druge, te se pretpostavlja da će one biti obavljane onim
redom kojim su zapisane.
• Program pisan jezikom zasnivanja ima slijedeći izgled:
početak
instrukcija 1;
instrukcija 2;
instrukcija 3;
instrukcija N;
kraj.
Instrukcije za određivanje toka programa, slikovni
prikaz programa
Jedna od važnih instrukcija za određivanje toka programa određena je ključnim riječima: “ ako je… onda… inače“.
Ona služi za donošenje odluke o obavljanju jedne od dviju alternativnih grupa instrukcija koje se može nazvati granama. Tri ključne riječi instrukcije ako je, onda i
inače (engleski if, then, else)
onda
inače
ako je uvjet
onda instrukcija grane1
inače instrukcija grane2;
• Napomena! Kada neposredno iza instrukcije u programu dolazi ključna riječ(primjerice iza “instrukcija grane1” piše
inače) nije potrebno upotrijebiti razdjelnik “;”, jer ključna riječ istovremeno služi i kao razdjelnik.
Instrukcije za određivanje toka programa, slikovni
prikaz programa
Kada postoji samo jedna grana koja se obavlja uz ispunjeni uvjet, tada otpada ključna riječ inače i njezina
grana, pa struktura složene instrukcije izgleda ovako:
ako je uvjet
onda
prva instrukcija grane ;
:
zadnja instrukcija grane;
ili, ako se uz ispunjenje uvjeta obavlja samo jedna instrukcija:
ako je uvjet
onda instrukcija grane
Primjer 5.
Neka se za vrijednosti x < 5 želi izračunavati funkcija y = 2x2+ 3, a za vrijednosti x>= 5 funkcija y = (2x+3)2–1,
Program koji obavlja taj zadatak bi mogao glasiti ovako:
početak
ako je X < 5
onda
Y := X * X ;
Y := 2 * Y ;
Y := Y + 3
inače
Y := 2 * X ;
Y := Y + 3 ;
Y := Y * Y ;
Y := Y - 1 ;
kraj.
Primjer 6.
Funkcija apsolutne vrijednostivarijable /x/ definirana je ovako:
y = { /x/ = x ako je x >= 0;
y = { /x/ = - x ako je x < 0
Složena instrukcija koja za danu vrijednost nezavisne varijable X određuje apsolutnu vrijednost i pridružuje je varijabli Y,
glasila bi ovako:
ako je X < 0
onda Y := - X;
inače Y := X;
Uz pretpostavku da se varijabla X kasnije više neće upotrebljavati u izvornom obliku, pa prema tome ne smeta ako se
njezina vrijednost promijeni, algoritam se može modificirati u:
ako je X < 0
onda X := - X;
Y := X;
Slikovni prikazi algoritma
• Dijagram toka programa
1. instrukcije koje pridružuju pojedinim varijablama konstantne vrijednosti (pridruživanje unutar samog programa)
2. instrukcije za zadavanje vrijednosti varijabli tijekom odvijanja algoritamskog procesa (dovođenje varijabli izvana)
izlaz (X, Y, Z) ;
Instrukcije pridruživanja konstante i načini crtanja ulaznih i
izlaznih instrukcija
• Instrukcija pridruživanja konstante i ulazna instrukcija nemaju ulaznih priključaka, dok izlazna
instrukcija nema izlaznih priključaka.
• Napomena! Podebljane crte koje povezuju instrukcije označavaju redoslijed njihova obavljanja, a
vertikalne dvostruke crte s horizontalnim ograncima simboliziraju varijable. Horizontalne strelice koje
vode od izlaznih priključaka instrukcija prema crti varijable “stavljaju” na crtu varijable novu vrijednost.
Horizontalne strelice usmjerene od crte dovode na ulazne priključke instrukcije vrijednosti varijable.
• Tijekom odvijanja algoritamskog procesa vrijednost na vertikalnoj crti varijable se mijenja samo onda
kada neka instrukcija na nju postavlja novu vrijednost.
Instrukcije za ponavljanje dijelova
programa
Izračunavanje prvih deset potencija varijable X može se zapisati kao cjeloviti
program na slijedeći način:
početak izlaz (Y) ;
ulaz (X) ; Y := Y * X ;
Y := 1 ; izlaz (Y) ;
Y := Y * X ; Y := Y * X ;
izlaz (Y) ; izlaz (Y) ;
Y := Y * X ; Y := Y * X ;
izlaz (Y) ; izlaz (Y) ;
Y := Y * X ; Y := Y * X ;
izlaz (Y) ; izlaz (Y) ;
Y := Y * X ; Y := Y * X ;
izlaz (Y) ; izlaz (Y) ;
Y := Y * X ; kraj
Instrukcije za ponavljanje dijelova
programa
Program bi mogao biti kraći kada bismo ga mogli
napisati na ovaj način:
početak
ulaz (X) ;
Y := 1;
10 puta ponoviti
Y:= Y * X ;
izlaz (Y) ;
kraj .
Instrukcije za ponavljanje dijelova
programa
U hrvatskom jeziku za zasnivanje programa to možemo napisati na sljedeći način:
početak
ulaz (X) ;
Y := 1;
za I := 1 do 10 činiti
Y:= Y * X ;
izlaz (Y) ;
kraj .
• Kako bismo nadzirali broj ponavljanja petlje, uvodimo upravljačku varijablu I (iterator). Njezina je početna vrijednost
jednaka 1 i pri svakom ponavljanju vrijednost joj se povećava za 1. Ponavljanje se zaustavlja kada ona dosegne
vrijednost 10.
• Taj se postupak naziva inkrementiranje (povećavanje za 1). Suprotan postupak naziva se dekrementiranje(smanjivanje
za 1).
• Na temelju ovog primjera može se uvesti općenita algoritamska konstrukcija koja omogućuje ponavljanje dijelova
programa s unaprijed zadanim brojemponavljanja.
Instrukcije za ponavljanje dijelova
programa
• Uvodimo upravljačku varijablu I koja poprima vrijednosti iz skupa prirodnih brojeva i
mijenja se od neke početne vrijednosti PV do neke konačne vrijednosti KV. Varijabla
se pri svakom ponavljanju povećava za 1. Ponavljanje prestaje kada upravljačka
varijabla poprimi svoju konačnu vrijednost.
Ponavljanje se zapisuje ovako:
za I := PV do KV činiti
instrukcija 1 ;
instrukcija 2 ;
.
:
instrukcija N ;
Instrukcije za ponavljanje dijelova
programa
Djelovanje instrukcije ponavljanja može se razjasniti sljedećim programom:
I := PV ;
instrukcija 1 ;
instrukcija 2 ;
.
:
instrukcija N ;
I := I +1 ;
ako je I<= KV
onda “vrati se na instrukciju 1” ;
Instrukcije za ponavljanje dijelova
programa
Slikovni prikaz ovog programa prikazan je na slijedećoj slici:
- PV i KV su konstante
Ponavljanje s ispitivanjem uvjeta
Koriste se dvije vrste petlje:
1.) petlje s ispitivanjem uvjeta prije izvođenja niza instrukcija
2.) petlje s ispitivanjem uvjeta nakon izvođenja niza instrukcija
Petlja s ispitivanjem uvjeta prije izvođenja niza instrukcija prikazuje se slijedećom konstrukcijom:
dok je uvjet činiti
instrukcija 1 ;
instrukcija 2 ;
.
:
instrukcija N ;
odrediti uvjet
• Na početku se ispituje uvjet, ako je uvjet ispunjen obavlja se niz instrukcija ispred kojih je vertikalna crta.
Pretpostavlja se da se tijekom izvođenja instrukcija mijenjaju vrijednosti varijabli koje određuju moguću promjenu
uvjeta.
Ponavljanje s ispitivanjem uvjeta
• Nakon niza instrukcija vraća se na početak niza instrukcija i ispituje uvjet. Kada se ustanovi da uvjet nije ispunjen, instrukcije se
prestaju ponavljati. Instrukcija “odrediti uvjet” samo simbolički označava to djelovanje i ne mora se posebno pojavljivati u petlji.
Važno je samo da se unutar petlje nekako dogodi promjena uvjeta. Ako se nizom instrukcija uvjet nikada ne bi promijenio, petlja
bi se ponavljala trajno. Petlja s ispitivanjem uvjeta nakon izvođenja niza instrukcija prikazuje se sljedećom konstrukcijom.:
ponavljati
instrukcija 1 ;
instrukcija 2 ;
instrukcija N ;
odrediti uvjet
do uvjet
• Uvjet se ispituje nakon obavljanja niza instrukcija. Niz instrukcija se ponavlja sve dok uvjet nije ispunjen. Kada se
djelovanjem instrukcija dogodi ispunjenje uvjeta, ponavljanje prestaje i program počinje izvoditi instrukciju koja slijedi
iza petlje.
Ponavljanje s ispitivanjem uvjeta
Ponavljanje s ispitivanjem uvjeta
Slika a) prikazuje petlju “dok je”. Zbog pravilne uporabe ove petlje treba znati sljedeće:
• uvjet se ispituje na početku petlje
• prije ulaska u petlju mora biti poznata početna vrijednost uvjeta UV
• instrukcije u petlji bit će ponavljane dok je uvjet ispunjen, tj. petlja se napušta kada uvjet prestaje biti ispunjen
• može se dogoditi da pri ulasku u petlju uvjet nije ispunjen, pa se instrukcije petlje tada neće obaviti nijednom
Slika b) prikazuje petlju “ponavljati”. Zbog pravilne uporabe ove petlje treba znati sljedeće:
• uvjet se ispituje na kraju petlje
• nije potrebno poznavati vrijednost uvjeta UV pri ulasku u petlju
• instrukcije u petlji bit će ponavljane dok uvjet nije ispunjen, tj. petlja se napušta kada se uvjet ispuni
• instrukcije petlje obavit će se sasvim pouzdano barem jedanput
• Algoritmi se uvijek mogu prilagoditi tako da je moguća uporaba ili jedne ili druge vrste petlje. Petlja
“za” može se prevesti u petlju “dok je” ili u petlju ”ponavljati”.
Primjer 7.
• Množenje dvaju prirodnih brojeva x i y može se svesti na uzastopno pribrajanje
množenika y onoliko puta kolika je vrijednost množitelja x. Množenje se može
ostvariti pomoću petlji “dok je” ili “ponavljati”:
ulaz ( X, Y ) ;
U := X ;
V := Y ;
dok je U ≠ V činiti
ako je U> V
onda U := U – V
inače V := V – U ;
Z := U ;
izlaz (Z)
Složene instrukcije –programske
funkcije
• Provjera algoritma može se načiniti s nekim odabranim parovima vrijednosti X i Y. Na primjer, ako je X
= 24, a Y = 18, tada su međurezultati prikazani tablicom.
• Dakle, najveći zajednički djelitelj je Z = 6.
ulaz ( X, Y ) ;
U := X ;
V := Y ;
R := 1 ;
dok je R ≠ 0 činiti
ako je U > V
onda
U := mod ( U, V )
R := U ;
W := V
inače
V := mod ( V, U )
R := V ;
W := U ;
izlaz ( W )
Složene instrukcije –programske
funkcije
Početna vrijednost varijable R određena je s R := 1. Međutim, to bi mogla biti i bilo koja druga vrijednost
različita od nule.
Važno je samo osigurati da se pokrene prvi prolaz kroz petlju. Provjera algoritma s vrijednostima varijabli X
= 24 i Y = 18 i dalje.
Treba zapaziti da je drugu varijantu algoritma složenije zapisati, ali da se ona kod većine slučajeva obavlja
u manje prolaza kroz petlju. Međutim, kada je funkcija mod ( u, v ) ostvarena uzastopnim odbijanjem,
tada je broj osnovnih operacija koje treba obaviti podjednak u obje varijante
Neke praktične funkcije
• Funkcija za određivanje apsolutne vrijednosti cijelog broja, funkcija za određivanje većeg, odnosno manjeg od dvaju
brojeva. Određivanje apsolutne vrijednosti nekog broja iz skupa cijelih brojeva može se definirati kao funkcija:
abs (X)
ako je X < 0
onda Y := -X
inače Y := X ;
vratiti (Y) ;
kraj.
max( X, Y ) min ( X, Y )
ako je X > Y ako je X > Y
onda Z := X onda Z := Y
inače Z := Y ; inače Z := X ;
vratiti (Z) ; vratiti (Z) ;
kraj . kraj .
• Vrste algoritama:
1. Imitacijski algoritmi
oponašaju ili imitiraju ponašanje stvarnih objekata
2. Eksperimentalni algoritmi
usko su povezani s imitacijskim algoritmima
nastaju na temelju eksperimentiranja u neživoj prirodi, organskom svijetu ili u društvu
3. Teorijski algoritmi – najsloženiji, objedinjuju imitacijske i eksperimentalne algoritme
4. Konstrukcijski algoritmi
• čine skup svih prethodnih algoritama
• slaganjem prethodnih algoritama mogu se konstruirati novi algoritmi
Ekvivalentni algoritmi i složenost
algoritama
• Dva algoritma su ekvivalentna kada su:
• klase ulaznih objekata dozvoljene i za jedan i za drugi algoritam
• rezultati jednog i drugog algoritma za jednake ulazne objekte jednaki
• Ispravnost ili korektnost algoritama
• algoritam je korektan ako za sve objekte iz klase dozvoljenih ulaznih
objekata omogućuje određivanje rezultata i ako je taj rezultat ispravan pri
svim mogućim vrijednostima ulaznih varijabli
• provjeravanjem algoritma s različitim vrijednostima ulaznih varijabli ne
može se potpuno sigurno utvrditi da li je algoritam ispravan
• ako se otkrije i samo jedan pogrešan rezultat, može se tvrditi da je
algoritam nekorektan
Ekvivalentni algoritmi i složenost
algoritama
• Trajanje algoritamskog procesa
• odgovara broju osnovnih operacija koje treba izvesti,
odnosno proporcionalno je ukupnom broju operacija
• naziva se još i vremenska složenost ili kompleksnost
algoritma
• zapisuje se kao O ( n )
• ako je trajanje algoritma proporcionalno s brojem ulaznih
vrijednosti, pišemo da je njegova složenost O ( n )
• algoritam konstantnog trajanja ima složenost npr. O ( 1 )
Ekvivalentni algoritmi i složenost
algoritama
• Tablica različitosti trajanja algoritamskog procesa mjerena brojem operacija
:
koje treba obaviti
Kako se čitaju programi?
• Složene programe je vrlo teško čitati, naročito ako nisu komentirani. Oni se stoga razlažu na manje
cjeline, tzv. Module koji su razumljiviji. To se može načiniti smo onda kada je već pri pisanju program
modularno sagrađen. Osnovna zamisao je program načiniti od odsječaka koji se međusobno
nadovezuju, što je preduvjet strukturiranog programiranja.
• Primjer: Program za izračunavanje pete potencije varijable x može se napisati na sljedeći način:
ulaz ( X ) ;
Y:=1;
Y:=Y*X;
Y:=Y*X;
Y:=Y*X;
Y:=Y*X;
Y:=Y*X;
izlaz ( Y) ;
Kako se čitaju programi?
• Dijagram toka programa s označenim stanjima
Kako se čitaju programi?
• Dijagram:
• početno stanje je označeno kao stanje 0
• u tom stanju operandi imaju vrijednost X0 i Y0
• početno stanje varijable X bit će određeno nakon što program
obavi instrukciju ulaz (X ) , a početno stanje varijable Y određeno
je instrukcijom pridruživanja konstante Y : = 1
• vrijednosti u sljedećim stanjima označene su redom indeksima od
1 do 5
• analizom programa, koja se lakše obavlja promatranjem
dijagrama toka, može se redom pisati vrijednosti varijabli u
pojedinim stanjima:
Kako se čitaju programi?
• Vrijednosti varijabli u pojedinim stanjima
Svojstva algoritama
• U stanju 5 pronalazi se konačni rezultat Y5. Uz Yo = 1, dobiva se Y5= Xo5, što se i
željelo postići.
• Program za izračunavanje pete potencije može se napisati pomoću petlje “za “:
ulaz ( X ) ;
Y := 1 ;
za I := 1 do 5 činiti
Y := Y * X ;
izlaz ( Y ) ;
• Pri čitanju tog programa stanje se mora očitati nakon svakog prolaza kroz petlju, tako
da se dobiva potpuno jednaki opis stanja kao za prethodni program. To znači da
petlje u programu treba čitati tako da se zamišlja kao da su instrukcije petlje
napisane uzastopce onoliko puta koliko se petlja ponavlja.
Primjer 8.
• Ustanoviti kakvu funkciju obavlja sljedeći program:
ulaz ( X ) ;
Y := A ;
Y := X * Y + B ;
Y := X * Y + C ;
Y := X * Y + D ;
izlaz ( Y ) ;