Académique Documents
Professionnel Documents
Culture Documents
Tema: Algoritam
Datum: 10.03.2009. 1
Program i algoritam
1
Program i algoritam
Program i algoritam
2
Program i algoritam
DEFINICIJA:
Algoritam je kona an niz nedvosmislenih koraka koji su
izvodljivi i ako se slijede, dovode do rješenja problema.
Opis algoritma:
-Neformalni (osnovni skup koraka koji se moraju izvršiti da bi se došlo
do odre enog (zadanog) rezultata)
-Matemati ki rigorozni (slijed koraka koji se izvršavaju mora imati
pet važnih zna ajki: kona nost, definiranost, ulaz, izlaz i efektivnost).
5
Program i algoritam
3
Program i algoritam
PRIMJER
KUHANJE KAVE
4
Program i algoritam
Program i algoritam
- * prirodni jezik
- * dijagram toka (engl. flowchart)
- * pseudokod
- * Nassi-Scheidermann dijagram
- * programski jezik
10
5
Program i algoritam
DA Uvjet NE
Simbol to ke odluke koristi se is pun jen?
12
6
Vrijednost naspram varijabla
Logi ka razlika:
• Vrijednost je “pojedina na konstanta” (npr. 3), vrijednost
nema lokacije u vremenu ili prostoru. Nema ažuriranja!!
Vrijednost se može predstaviti u memoriji pomo u
kodiranja, i takvo predstavljanje tj. pojava ima lokaciju u
vremenu i prostoru.
• Varijabla služi za pohranu predstave tj. pojave
vrijednosti.
Varijabla ima lokaciju u vremenu i prostoru. Može se
ažurirati !!!
- predstavljanje vrijednosti je “model” koncept
- Kodiranje predstavljanja je “implementacijski” koncept
13
X = -(A(A+B)/B-(A-B))
14
7
Primjeri blok dijagrama
1. Postaviti broja na 5
2. Postaviti proizvod na 1
3. Sve dok je broja ve i od nule ponavljati
slijede e korake:
3.1. pomnožiti proizvod i broja
3.2. umanjiti broja za 1
4. Kada vrijednost broja a postane nula,
zaustavlja se izvršavanje algoritamskih
koraka. 15
16
8
Primjeri blok dijagrama
17
18
9
P O E T AK
E OF? DA N E MA
PO DAT AKA
NE
RADNO
M JE S TO ,
PL A A
DA
S LU ŽB E N IK ? P LA A = P LA A *1.1
NE
PRO DAVA ?
DA P LA A = P LA A *1.2
NE
A N A L ITI A R ?
DA P LA A =P LA A *1 .2 5
NE
P L A A = P L A A *1 .3
R A D N O M JE S TO ,
PL A A
KRAJ
19
20
10
Primjeri dijagrama toka
a) Nepoznat broj lanova(elemenata) zbroja
21
22
11
Polje (array)
Podatkovna struktura gdje isto ime dijeli
više podataka.
- ure eni skup podataka iji su
elementi istog tipa.
- naj eš a struktura podataka
- indeks je osnovni elemenat pristupa
polju koji definira ure enost polja.
23
Polje (array)
P [0...4] polje
24
12
Polje (array)
15P(3,3)
14P(3,2)
0 1 2 3 13P(3,1)
12P(3,0)
0 1 2 3 11P(2,3)
0
10P(2,2)
1 7
4 5 6 9P(2,1)
2
8P(2,0)
8 9 10 11
3 7P(1,3)
6P(1,2)
12 13 14 15
5P(1,1)
4P(1,0)
3P(0,3)
2P(0,2)
1P(0,1)
0P(0,0)
25
FOR petlja
26
13
FOR petlja Po etak
...
Postavljanje broja a
Algoritamski korak 1
Algoritamski korak 2
...
Algoritamski korak n
...
kraj
27
28
14
Formirati algoritam za izra unavanje zbroja brojeva za prvih 20
brojeva
29
NE
Uvjet
Uvjet
NE Uvjet
Uvjet
30
15
Dvostruko ugnjež ene cikli ne strukture (2)
i1=m1,m2 i1=m1,m2
i2=m1,m2 i2=m1,m2
31
32
16
Primjer
33
Primjer
Po etak
i = 1, N-1
X(i)
j = i+1, N
X(j)
DA
X(i)<X(j)
NE
pom = X(i) 1
X(i) = X(j)
X(j) = pom
X(i)
1
Kraj
34
17
Primjer
35
Primjer
18
Primjer
37
Primjer
38
19
39
Pseudokod
40
20
Pseudokod – osnovne programske strukture
Sekvencija
…
algoritamski korak (naredba/izraz) 1
algoritamski korak (naredba/izraz) 2
…
algoritamski korak (naredba/izraz) n
…
41
21
Pseudokod
Selekcija
START
postaviti broja na 5
postaviti proizvod na 1
IF broja > 0 THEN
pomnožiti proizvod i broja
umanjiti broja za 1
ponoviti ispitivanje vrijednosti broja a
ELSE
prikazati faktorijel
END IF
END
43
22
Pseudokod
Iteracija DO WHILE
START
postaviti broja na 5
postaviti proizvod na 1
WHILE broja > 0 DO
pomnožiti proizvod i broja
umanjiti broja za 1
END WHILE
prikazati faktorijel
END
45
23
Pseudokod
Iteracija DO UNTIL
START
postaviti broja na 5
postaviti proizvod na 1
REPEAT
pomnožiti proizvod i broja
umanjiti broja za 1
UNTIL broja >0
prikazati faktorijel
END
47
24
Pseudokod
Iteracija FOR
START
postaviti proizvod na 1
FOR i = 1 TO 5
pomnožiti proizvod i broja
umanjiti broja za 1
REPEAT
prikazati faktorijel
END
49
Primjer: Izgradnja Algoritma za odre ivanje broja razli itih elemenata niza
A(i), i=1,n
START
u itati N
FOR i=1 TO N
u itati elemente niza A(i)
REPEAT
postaviti Broja na 1
FOR i = 2 TO N
Postaviti k na 0
FOR j=1 TO i-1
IF A(i)=A(j) THEN
k=1
END IF
REPEAT
IF k = 0 THEN
Broja = Broja +1
END IF
REPEAT
prikazati Broja
END
50
25
P I T A NJA
51
26