0% found this document useful (0 votes)
82 views16 pages

Algoritmi Pojam

This document discusses algorithms, including their definition, structures, coding and programming structures. It describes algorithms as precise sets of steps to solve problems, and discusses common algorithm structures like sequential, conditional, and iterative. It also covers topics like algorithm design techniques, canonical and non-canonical structures, testing algorithms, and coding algorithms.

Uploaded by

Goran Žeželj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views16 pages

Algoritmi Pojam

This document discusses algorithms, including their definition, structures, coding and programming structures. It describes algorithms as precise sets of steps to solve problems, and discusses common algorithm structures like sequential, conditional, and iterative. It also covers topics like algorithm design techniques, canonical and non-canonical structures, testing algorithms, and coding algorithms.

Uploaded by

Goran Žeželj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 16

ALGORITMI

(pojam, strukture, kodiranje i programske strukture)

SADRŽAJ

SADRŽŽ AJ………………………………………………………….……………..…………1
UVOD…………………………………………………………………………………..…. 2
ALGORITAM………………………………………..………………………….…..……3-4
OBLIKOVANJE ALGORITMA……………………………………………..…..……….5-6
PROGRAMSKE STRUKTURE……………………………………………………….…7-8

0
ALGORITAMSKE STRUKTURE……..…………………………………..…………...….9
SLOŽŽ ENE ALGORITAMSKE STRUKTURE………………………………………...10-11
KANONSKE I NEKANONSKE ALGORITAMSKE STRUKTURE……………………..12
TESTIRANJE ALGORITMA……….…………………..………………….…………..….13
KODIRANJE…………...….…………………..………………..………….…………...….14
ALGORITAM ŽA KODIRANJE…………...….………..……..……………..………...….15
ŽAKLJUČŽ AK….…………………..…………...………..……..……………..………...….16
LITERATURA……………………………………………………………………...….…..17

UVOD

Algoritam predstavlja skup akcija sa definiranim redoslijedom njihovog


obavljanja, koji primijenjen na polazni skup podataka, dovodi do trazž enih rezultata.

U procesu programiranja, skup akcija definiran je mogucć nostima racž unala, odnosno
naredbama programskog jezika koji se koristi, dok se redoslijed izvrsž avanja akcija zadaje
pomocć u algoritamskih (programskih) struktura.

1
ALGORITAM

Algoritam je skup pravila ili pravilo sa svojstvom preciznosž cću, jednoznacž nosti te obuhvacć a
konacž an broj koraka, a svaki korak je opisan instrukcijom. Instrukcije moraju biti izvedive i
jednoznacž ne.Algoritam opisuje rjesž avanje nekoga problema. SLIDE1

Postupak obavljanja algoritma je algoritamski proces. Algoritam ima definirane pocž etne objekte
nad kojima se obavljaju operacije, a ishod toga je skup rezultata tj. zavrsž nih objekata i on je
djelotvoran.

Da bi algoritam bio ucž inkovit rezultat se mora dobiti u prihvatljivom ili razumnom
vremenu. Insturkcije se mogu izvrsž iti nekoliko puta te instrukcije morajuu pokazivati na
ponavljanje, ali za bilo koju vrijednost ulaznih podataka algoritam zavrsž ava nakon konacž nog
broja ponavljanja. SLIDE 1

Kod zapisivanja algoritama upotrebljava se programski jezik Č, rijecž je o nedovrsž enom


kodu gdje su neki nizovi naredbi zamijenjeni tekstom. Analiza algoritma podrazumijeva procjenu
vremena za izvrsž avanje toga algoritma, a vrijeme se poistivjecć uje sa brojem operacija koje
odgovarajucć i program treba obaviti i on se izrazž ava kao funkcija.

2
Algoritam se zapisuje u :

 Obliku pseudo jezika ( govornog jezika koji oponasž a programski jezik)


 Graficž kom obliku tzv. Blok dijagram ili dijagram tijeka programa

3
Slika: BLOK DIJAGRAM

OBLIKOVANJE ALGORITMA

Oblikovanje algoritama se dijeli na tehnike: podijeli pa vladaj, dinamicž ko programiranje,


pohlepni pristup i backtracking. Svaka od ovih metoda ne garantira tocž no rjesž enje problema i
zbog toga se uvijek treba napraviti provjera.

PODIJELI PA VLADAJ

Metoda podijeli pa vladaj se dijeli na tri primjera: sortiranje sazž imanjem, trazž enjem elemenata
u listi i mnozž enje dugacž kih cijelih brojeva. Algoritam merge za sortiranjem liste se mozž e tumacž iti
da sž to je lista dulja to ju je tezž e sortirati, velika sortirana lista se dobiva relativno jednostavnim
postupkom sazž imanja malih sortiranih lista.

4
Primjer 1.
Sortiranje sazž imanjem
(5, 3, 7, 1, 4, 3)

Divide

(5, 3, 7) (1, 4, 3)

Sort Sort

(3, 5, 7) (1, 3, 4)

Merge

(1, 3, 3, 4, 5, 7)

5
PROGRAMSKE STRUKTURE

Postoje tri programske strukture a to su:

1. Linijska(slijed)
2. Razgranata(selekcija)
3. Čiklicž ka(iteracija)

1. Linijska (slijed) programska struktura:


-sve akcije se izvrsž avaju tocž no jednom u redoslijedu u kome su navedene.

SHEMA: linijska programska struktura

2. Razgranata (selekcija) programska struktura:


omogucć ava da se od visž e grupa akcija koje se nalaze u razlicž itim granama razgranate
strukture, izabere ona koja cć e se izvrsž iti jednom, dok se sve ostale grupe akcija necć e izvrsž iti ni
jednom.

6
Shema: Razgranata algoritamska struktura

3.Čiklicž ka (iteracija) programska struktura:


skup akcija mozž e se izvrsž iti visž e puta.

Shema: Čiklicž ka programska struktura


Algoritamsko rjesž enje bilo kojeg problema mozž e se uvijek zapisati korisž tenjem samo ove tri
strukture.

ALGORITAMSKE STRUKTURE

1. Slijedna (linearne ili sekvencijalne)SLIDE 8


 Pocž etak i kraj
 Definiranje varijabli i konstanti
 Ulaz

7
 Izlaz
 Aritmeticž ke i logicž ke operacije

2. Struktura bezuvjetnog skoka


3. Struktura grananja (sadrzž i logicž ke operacije)
kombinira se sa: - Slijednom strukturom
- Strukturom bezuvjetnog skoka
4. Struktura iteracije (ponavljanja ili petlje)

STRUKTURA BEZUVJETNOG SKOKA (narušavanje linearnosti)

Koristi se za testiranje algoritma (preskacž e dio algoritma)


Izaziva gresž ku bezuvjetnog ponavljanja( tzv. Beskonacž na petlja ili iteracija)
Kombinira se s strukturom grananja radi narusž avanja linearnosti / uspostavljanja
ponavljanja (dijela) algoritma.

PSEUDO JEŽIK BLOK DIJAGRAM



x. Idi na y
Gdje su x i y brojevi linija algoritma bez obzira na smjer
Struktura bezuvjetnog skoka

SLOŽENE ALGORITAMSKE STRUKTURE

Slozž ene algoritamske strukture nastaju kada se u elementarnim strukturama


pojedini algoritamski koraci zamjene drugim algoritamskim koracima ili
dugim elementarnim strukturama. Tako se na osnovama navedenog principa
nadgradnje mogu dati pravila za dobijanje slozž enih algoritamskih struktura.
To se postizž e:
1) kada se u prostoj linijskoj strukturi u sastavu razgranate linijske ili ciklicž ne strukture
algoritamski korak prve vrste (ne dovodi do grananja algoritma i ima
jedan ulaz i jedan izlaz) zamjeni algoritamskim korakom druge vrste

8
(dovodi do grananja algoritma i ima jedan ulaz i visž e izlaza)

2) kada se u prostoj linijskoj strukturi u sastavu razgranate linijske ili ciklicž ne strukture
algoritamski korak prve vrste zamjeni novom razgranatom linijskom ili ciklicž nom
strukturom;

3) zamjenom algoritamskog koraka proizvoljne elementarne strukture algoritamskim


korakom za poziv potprograma

4) kada se u vecć formiranim algoritamskim strukturama ponavljaju zamjene iz pravila


danih u tocž kama (1), (2) i (3).

PLS1
Primjenom navedenih pravila mogu se formirati najraznovrsnije slozž ene algoritamske strukture.

Jedna od mogucć ih klasifikacija ovih struktura je:

- slozž ene razgranate linijske strukture


- slozž ene ciklicž ne strukture
- slozž ene razgranate i ciklicž ne strukture
- algoritamske strukture sa potprogramima

Napomena: Ža slozž ene algoritamske strukture dobijene principom nadgradnje se mozž e


postaviti i zahtjev da budu strukturirane (da imaju jedan ulaz i jedan izlaz) cž ime se zadovoljava
princip strukturnosti primjenom tog zahtjeva u vecć ini slucž ajeva algoritamske strukture postaju
logicž ki preglednije i pogodnije za programsku realizaciju.

9
KANONSKE I NEKANONSKE ALGORITAMSKE STRUKTURE

Kombinacijom elementarnih struktura formiraju se kanonske, kvazi-kanonske i nekanonske


algoritamske strukture.

Postoje 4 kanonske, 5 kvazi-kanonskih i 2 nekanonske algoritamske strukture a


to su :

1. kanonske algoritamske strukture


- kanonska linijska struktura
- kanonska razgranata struktura
- kanonska ciklicž ka struktura

2. kvazi- kanonske algoritamske strukture

3. nekanonske algoritamske strukture

10
TESTIRANJE ALGORITMA

Izvodi se kao i u matematici uvrsž tavanjem vrijednosti u algoritam.Algoritam se testira


sekvencijalno pracć enjem svakog reda (instrukcije) algoritma od pocž etka do kraja, uz zapisivanje
vrijednosti koje varijable usput poprimaju, da bi se u konacž nici i saznala konacž na vrijednost
izlaznih varijabli.

Pr. Žadatka:

Kolika je vrijednost varijable s nakon izvođenja algoritma, ako za x ucž itamo 2, a za y ucž itamo 5:
SLIDE 14

1. X=0, Y=0, S=0


2. Ucž itaj X
3. Ucž itaj Y
4. S=S+Y
5. Ispisž i S S=5

11
KODIRANJE

Algoritam zapocž inje s praznim rjecž nikom, no uzmimo neki trenutak u tijeku kodiranja,
kad rjecž nik vecć sadrzž i neke stringove. Analiziramo prefiks koji slijedi u ulaznoj struji,
pocž evsž i sa praznim prefiksom. Ako njemu odgovarajucć i string (prefiks + sljedecć i znak, odnosno
P+Ž) postoji u rjecž niku, prosž irujemo prefiks P znakom Ž. Prosž irenje ponavljamo sve dok ne
dobijemo string koji ne postoji u rjecž niku. Tada na izlaz posž aljemo kodnu rijecž koja odgovara P-u,
a zatim i znak Ž. Sljedecć i prefiks koji analiziramo direktno se nastavlja na obrađeni.

Poseban je slučaj ako u rječniku ne postoji ni početni string od samo jednog znaka (to se
uvijek događa na početku kodiranja). Tada se na izlaz alje posebna kodna riječ koja
označava prazni string. Iza nje se šalje dotični znak i taj se znak dodaje u rječnik.

Izlaz iz algoritma su parovi kodna riječ-znak (K,Z). Svaki put kad se taj par pošalje na
izlaz, string iz rječnika koji odgovara kodnoj riječi K proširi se znakom Z i taj novi
string se doda u rječnik. To znači da u trenutku kad dodajemo neki string, u rječniku
već postoje svi stringovi dobiveni oduzimanjem znakova s kraja tog stringa.

Algoritam za kodiranje

1. Na pocž etku su rjecž nik i P prazni;


2. Ž := sljedecć i znak u ulaznoj struji;

12
3. Postoji li string P+Ž u rjecž niku?
a. ako postoji, P := P+Ž (P prosž iri Ž-om);
b. ako ne postoji,

--u izlaznu struju posž alji dva podatka, i to:

 kodnu rijecž stringa jednakog P-u (ako je P prazan, sž alji nulu);


 Ž, u istom obliku kao sž to je ucž itan iz ulazne struje;

--na prvo prazno mjesto u rjecž niku zapii string P+Ž;

--isprazni P;

c. ima li josž znakova u ulaznoj struji?

--ako ima, vrati se na korak 2;

--ako nema:

 ako P nije prazan, u izlaznu struju posž alji kodnu rijecž stringa
jednakog P-u;
 KRAJ

ZAKLJUČAK

Algoritamske strukture vazž an dio programiranja, pomocć u njih se zadaje redoslijed


izvrsž avanja akcija, tj. problema. One su bitan dio algoritama, jer se algoritmi nikako ne mogli
strukturirati , tj rjesž avati. Algoritam je postupak kojim se u konacž nom broju koraka i u
konacž nom vremenu dolazi do rjesž enja problema ili spoznaje da rjesž enja nema. Svaka vrsta stroja
za obradu podataka ima svoj jezik i ne mozž e se koristiti na drugom stroju, cž ak ni na razlicž itim
strojevima istog proizvođacž a.

13
LITERATURA

http://bs.wikipedia.org/wiki/Programiranje

http://www.pmfst.hr/~stankov/Programiranje_I_WWW/Osnove
%20programiranja/APL_SW2.PDF

http://www.pmfst.hr/~stankov/Programiranje_I_WWW/Ppt_prezentacije/strukture.pdf

Grbavac, V., Informatika

www.maturski.org

14
15

You might also like