You are on page 1of 10

Algoritmi u svakodnevnom

životu
• Algoritme koristimo svakodnevno a da
toga često nismo niti svjesni.
ALGORITMI • Na primjer

korisničke upute.
2
kuharski recept.
put u školu

Što je dobar algoritam? KORACI ALGORITMA


• U svim okolnostima daje točan rezultat Prvi korak - razumijevanje problema.
• Rješava problem u najkraćem mogućem
vremenu Drugi korak - detaljna razrada svakog
• Razumljiv je ostalima pojedinačnog koraka.

Treći korak – provjera algoritma na


granične uvjete

Primjer
• primjera algoritma napisanog hrvatskim
jezikom (ne u programskom kodu).
• Određuje da li je zadani broj n paran ili
neparan:
1. POČETAK
2. Pročitaj / Učitaj vrijednost n.
3. Podijeli n sa 2 i zapamti ostatak u pom.
4. Ako je pom 0 idi na stavku 7.
5. Ispiši „n je neparan broj“.
6. Idi na stavku 8.
7. Ispiši „n je paran broj“.
8. KRAJ

1
I = 1,k

Obračun telefonskih troškova


• ZADATAK
• Sastavite algoritam za obračunavanje
telefonskih troškova na kraju mjeseca ako
su poznati, broj potrošenih telefonskih
impulsa, cijena jednog impulsa i iznos
telefonske pretplate. U iznos telefonske
pretplate uračunato je prvih 100 impulsa.

2
3
Grananje(Selekcija) Ponavljanje (Iteracija)
• razgranata linijska struktura • višestruko izvršavanje naredbi - petlja
ne Za svaki i =….
?

da inače naredbe

tada slijedeći i

1. primjer
start

A, B

Kreirati blok dijagram koji


Z=A+B
izračunava zbroj dva broja A i B!
Z

kraj

4
2. primjer
start

A, B

Sastaviti blok dijagram koji A>0 ne


B>0
izračunava umnožak dva
da
pozitivna broja!
U=A*B

kraj

ili
3. primjer
start

A, B
Sastaviti blok dijagram koji
ne
A>0 izračunava razliku dva broja
da X i Y s tim da se uvijek oduzima
ne
B>0 manji od većeg.
da

U=A*B

kraj

4. primjer
start

X, Y

Kreirati blok dijagram koji


X>=Y
da
R=X-Y
izračunava zbroj prvih
• 20 brojeva
ne
• n brojeva
R=Y-X

kraj

5
5. primjer
start
start
n
Z=0
Z=0
i = 1, 20 Napraviti algoritam za
i = 1, n
Z=Z+i izračunavanje aritmetičke sredine
Z=Z+i prvih m brojeva!

Z
Z
kraj
kraj

6. primjer
start

S=0
Sastaviti dijagram toka
i = 1, m
koji izračunava funkciju
S=S+i
y = xn !
P=S/m

kraj

7. Primjer
start

X, n
Kreirati algoritam za sljedeći problem:

Y=1
ako je
da
x>3 => y = x2 + 5
n=0 Y kraj
x=3 => y=1
ne x<3 => y = 1 / (x2 + 5)
Y=Y*X

n=n-1

6
start 8. Primjer
x Napraviti dijagram toka za izračunavanje
vrijednosti funkcije:
da
x>3 Y = x*x+5
x*y za x = y
ne
f= x-y za x > y
da
x=3 Y=1 x+y za x < y
ne

Y = 1/(x^2+5)

kraj

start
Polja/Područja (array)
X, Y Podatkovna struktura gdje isto ime dijeli
ne ne
više podataka.
X>Y X=Y
- uređeni skup podataka čiji su
da da
elementi istog tipa.
f=X+Y f=X-Y f=X*Y
- najčešća struktura podataka
- indeks je osnovni elemenat pristupa
f polju koji definira uređenost polja.

kraj

Nizovi –jednodimenzionalna polja


Za svaki I=1 do n (petlja)
pozicije u nizu
Ciklička struktura koja podrazumijeva da
˙˙˙ je broj iteracija unaprijed poznat:
1 2 3 4 5 6 7 8 9 10

5 4 9 7 19 7 5 9 23 6
- određena se vrijednost broji od neke
početne vrijednosti pa sve do neke
krajnje vrijednosti,
vrijednosti (elementi) - rad s područjima (jednodimenzijalna
- liste, dvo i višedimenzijalna
područja).

7
Nizovi
Polja/Područja (array)
Martica •Unos niza na dva načina:
15P(4,4)
14P(4,3)
1 2 3 4 13P(4,2)
12P(4,1)
1 0 1 3
2 11P(3,4)
10P(3,3)
start start
2 4 5 6 7 9P(3,2)
8P(3,1)
8 10 11
3 9 7P(2,4)
X(i), n n
6P(2,3)
4 12 13 14 15
5P(2,2)
4P(2,1)
3P(1,4)
2P(1,3)
… i = 1, n
1P(1,2)
0P(1,1)

X(i)
Preslikavanje elemenata po redovima

start

1. Primjer n

i = 1, n
Napraviti dijagram toka koji
X(i)
izračunava zbroj svih
elemenata niza!
Zbroj = 0

i = 1, n

Zbroj = Zbroj + X(i)

Zbroj

kraj

2. Primjer start
X(i), Y(i), n

Sastaviti algoritam za sljedeći problem: zbroj = 0

Dana su dva niza: X(i) i Y(i), i=1, n. i = 1, n

Formirati niz Z(i) prema formuli:


ne
X(i)=Y(i)
Z(i) = X(i)*Y(i) za X(i)=Y(i)
da
X(i)+Y(i) za X(i)≠Y(i)
Z(i)=X(i)*Y(i) Z(i)=X(i)+Y(i)

i izračunati sumu elemenata svih nizova! zbroj=zbroj+X(i)+Y(i)+Z(i)

8
3. Primjer
1

Napraviti blok dijagram


i = 1, n
koji određuje
najveći element niza!
Z(i)

Zbroj

kraj

start
n 4. Primjer
i = 1, n
X(i)
Napraviti blok dijagram koji elemente niza
sortira od najmanjeg ka najvećem!
max = X(1)

i = 2, n

ne
X(i)>max

da
max = X(i)

max
kraj

1 2
start
i = 1, n-1
i = 1, n
5. Primjer
n
j = i+1, n
i = 1, n
X(i) Kreirati blok dijagram koji računa
X(i)>Y(i)
ne frekvenciju (broj ponavljanja) svakog broja
X(i) kraj
u nizu!
da

1 pom = X(i)
X(i) = X(j)
X(j) = pom

9
1 2
start
i = 1, n j = 1, n 6. Primjer
n
f=0

i = 1, n
p=0 X(i)=X(j)
ne Napraviti blok dijagram koji za neku
k = 1, i-1 da
provedenu anketu broji koliko je odgovora
X(i)
f = f+1 ‘da’, koliko ‘ne’, a koliko ‘mozda’!
ne
X(k)=X(i)
1
“.....” + f
da Odgovori: (‘da’, ‘da’, ‘ne’, ‘mozda’, ‘mozda’,
p=1
‘da’, ‘da’, ‘mozda’, ‘mozda’, ‘mozda’, ‘ne’,
kraj ‘da’, ‘ne’, ‘mozda’, ‘da’)
ne
p=0

da
2

start
1
2 domaća zadaća
i = 1, 15
“...” +b
i = 1, 15
Odg(i)=‘da’ a = a+1 “...” +a
Odg (i) Kreirati blok dijagram koji
“...” +c određuje najmanji element niza
a=0 Odg(i)=‘ne’ b = b+1 kraj i njegovu poziciju (indeks)!
b=0
c=0

1 Odg(i)=‘mozda’

c = c+1

PITANJA?

10

You might also like