You are on page 1of 27

Programiranje

PMF Split Copyright Ani Amii,


Branko itko
1
ALGORITMI 1
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
2
Algoritam
Precizno opisan nain rjeenja nekog problema
Jednoznano odreuje to treba napraviti
Kao ishod algoritma pojavi se rezultat.
Konani broj koraka; svaki korak opisan
instrukcijom

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
3
Algoritam se grafiki predoava dijagramom toka. U
tom prikazu svaki algoritamski korak je iskazan
odgovarajuim grafikim simbolom. Algoritam se
tekstualno prikazuje pseudokodom.
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
4
Algoritam Kuhanje kave
Algoritam
kuhanje kave
peenje palainki
zbroj dva broja
(linijska struktura)
usporeivanje dva broja
(razgranata struktura)
broja
(ciklika struktura)
zadaci
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
5
Algoritam Kuhanje kave
Ulazni objekti: mljevena kava, eer, voda
Izlazni objekti (rezultati): skuhana kava
Proces kuhanja kave:
1. ulij vodu u posudu
2. zagrij posudu
3. ekaj sve dok voda ne pone kljuati
4. stavi mljevenu kavu u posudu s vodom i promijeaj
5. skini posudu sa kavom
6. stavi eer u posudu i promijeaj
poetak
zagrij posudu
mljevena kava
eer
voda
ekaj sve dok voda ne
pone kljuati
stavi mljevenu kavu u posudu s
vodom i promijeaj
skini posudu s kavom
stavi eer u posudu i
promijeaj
kava
kraj
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
6
Algoritam Peenje palainki
Ulazni objekti: ulje, smjesa
Izlazni objekti (rezultati): palainke
Proces peenja palainki:
1. pripremi smjesu
2. ulij ulje u tavu
3. zagrij tavu
4. dok ima smjese ponavljaj
a. ako je tava suha dolij malo ulja
b. ulij pravu koliinu smjese u tavu
c. ekaj dok se donja strana ispee
d. okreni palainku
e. ekaj dok se gornja strana ispee
f. premjesti palainku na tanjur
poetak
pripremi smjesu,
ulij ulje u tavu,
zagrij tavu
ulje
smjesa
dok ima smjese ponavljaj
dolij malo ulja
palainke
kraj
tava je
suha?
Da
Ne
ulij pravu koliinu smjese u tavu,
ekaj dok se donja strana ispee,
okreni palainku,
ekaj dok se gornja strana ispee,
premjesti palainku na tanjur
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
7
Algoritam
Instrukcije moraju biti izvedive i jednoznane
Primjeri za nedoputene instrukcije:
izraunaj 5/0
uveaj x za 6 ili 7
Uinkovitost:
U konanom vremenu moe se dobiti rezultat koristei olovku i
papir.
Primjeri:
Zbrajanje cijelih brojeva je uinkovito
Dijeljenje realnih brojeva nije jer se moe pojaviti broj s
beskonano mnogo znamenki, npr. 10/3 = 3.3333333...
Algoritam postaje uinkovit tek ako se broj znamenki unaprijed
ogranii

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
8
Algoritam
Algoritam je uporabljiv ako se dobije rezultat u konanom
vremenu
Vrijeme izvoenja mora biti "razumno"
Primjer: Algoritam koji bi izabirao potez igraa
aha tako da ispita sve mogue posljedice
poteza, zahtijevao bi milijarde godina na
najbrem zamislivom raunalu. Zato?
20 moguih prvih poteza bijelog
20 moguih prvih poteza crnog
> 20 moguih drugih poteza bijelog
> 20 moguih drugih poteza crnog itd...
Za 10 poteza svakog igraa, barem 2020
kombinacija ~ 1026
Kad bi se 1 kombinacija analizirala 1 s, to je
3170979198376 godina!
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
9
Algoritam Linijska struktura

Svaki algoritamski korak tijekom rjeavanja zadatka
izvrava se samo jedan put. U ovom sluaju
algoritamska shema se sastoji od algoritamskih
koraka ulaza, obrade i izlaza.

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
10
Algoritam Linijska struktura
Zbrajanje dva broja
Ulazni objekti: prvi broj, drugi broj
Izlazni objekti (rezultati): zbroj
Algoritam (linijska struktura):
1. unesi prvi broj
2. unesi drugi broj
3. zbroj je jednaka zbroju prvog i drugog broja
4. ispii zbroj
ZADATAK 1
poetak
kraj
zbroj = prvi_broj +
drugi_broj
prvi_broj
drugi_broj
zbroj
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
11
Algoritam Razgranata struktura
Svaki algoritamski korak izvrava se najvie jedan put
tijekom rjeavanja zadatka. Meutim, u ovakvoj strukturi
mogue su i situacije da se neki algoritamski koraci tijekom
rjeavanja zadatka ne izvre.
U razgranatoj algoritamskoj shemi uvijek postoji jedan
algoritamski korak koji omoguava grananje algoritma. Ovaj
se algoritamski korak naziva uvjetnim korakom odluke.
Postavlja se pitanje da li je neki uvjet ispunjen ili nije. U tom
smislu ispunjenje uvjeta generira daljnji tijek rjeavanja.
Odluka je uvijek popraena s odgovorima "DA" alternativno
"NE".

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
12
Jednostrana selekcija
Pseudokd
ako je logiki_izraz tada
naredbe


logiki_izraz
niz naredbi
N
D
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
13
Pseudokd
ako je logiki_izraz tada
niz_naredbi_1
inae
niz_naredbi_2

niz naredbi_1 niz naredbi_2
Dvostrana selekcija
logiki_izraz
N D
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
14
Algoritam Razgranata struktura
Usporeivanje dva broja
Ulazni objekti: prvi broj, drugi broj
Izlazni objekti (rezultati): manji_broj
Algoritam (razgranata struktura):
1. unesi prvi broj
2. unesi drugi broj
3. ako je prvi broj manji od drugog broja onda
manji broj je jednak prvom broju
4. inae
manji broj je jednak drugom broju
5. ispii manji broj
ZADATAK 2
poetak
kraj
prvi_broj
drugi_broj
manji broj
prvi_broj <
drugi_broj
manji_broj=prvi_broj
manji_broj=drugi_broj Ne
Da
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
15
Primjer
Sastaviti algoritamsku shemu za izraunavanje
vrijednosti y koji se ravna po relacijama:

1 2 1 2
1 2 1 2
x x akoje x x
y
x x akoje x x
+ s

=

>

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
16
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
17
Primjer
Sastaviti algoritamsku shemu za izraunavanje
vrijednosti y koji se ravna po relacijama :





1 2 1 2
1 2 1 2
1 2 1 2
x x x x
y x x x x
x x x x
+ <

= =

>

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
18
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
19
Algoritam Ciklika struktura

Niz algoritamskih koraka u kojem se jedan ili vie
algoritamskih koraka moe izvriti vie od jedanput,
pri jednom izvravanju algoritma zadatka, tvori
cikliku algoritamsku shemu.

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
20
Petlja s ispitivanjem uvjeta
ponavljanja na poetku
Pseudokod
dok je (logiki_izraz)
niz_naredbi


logiki_izraz
niz_naredbi
D
N
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
21
Petlja s ispitivanjem uvjeta
ponavljanja na kraju
ponavljaj
niz_naredbi
dok ne bude (logiki_izraz)


logiki_izraz
niz_naredbi
D
N
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
22
Petlja s poznatim brojem
ponavljanja
Pseudokod
za i = poc do kraj (korak k)
niz_naredbi



i = poc, kraj, korak
niz_
naredbi
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
23
Algoritam Ciklika struktura
Ispis svih brojeva do zadane granice:
Ulazni objekti: granica
Izlazni objekti (rezultati): broja
Algoritam (ciklika struktura):
1. unesi granicu
2. broja postavi na 0
3. ponavljaj dok je broja manji od granice
1. broja poveaj za jedan
2. ispii broja
ZADATAK 3

poetak
kraj
broja = 0
granica
broja
broja = broja + 1
broja <
granica
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
24
Izraunavanje N faktorijela 1. nain
Rjeenje s petljom u kojoj se uvjet ispituje na
poetku

uitaj n
fakt=1
i=1
dok je i <= n
fakt = fakt*i
i = i+1
ispii n,fakt
Programiranje
PMF Split Copyright Ani Amii,
Branko itko
25
Izraunavanje N faktorijela 2. nain
Rjeenje s petljom u kojoj se uvjet ispituje na kraju:
ucitaj n
fakt = 1
i = 1
ponavljaj
fakt = fakt * i
i = i+1
dok je i <= n
ispisi n,fakt

Programiranje
PMF Split Copyright Ani Amii,
Branko itko
26
Izraunavanje N faktorijela 3. nain
Rjeenje s petljom s poznatim brojem ponavljanja:

uitaj n
fakt = 1

za i = 1 do n
fakt = fakt * i

ispii n,fakt


Programiranje
PMF Split Copyright Ani Amii,
Branko itko
27
Algoritam Zadaci
1. Napravi algoritam za zbrajanje, oduzimanje i
mnoenje dva broja (linijska struktura algoritma)
nazad
2. Promjeni prethodni algoritam tako da doda dijeljenje
i kod dijeljenja provjeri da li se dijeli s nulom
(razgranata struktura algoritma)
nazad
3. Napravi algoritam koji e ekati na unos broja i kad se
unese broj vei od 10 ispisati njegov kvadrat
(ciklika struktura algoritma)

You might also like