You are on page 1of 18

Seminarski rad iz predmeta Algoritmi i strukture podataka

Tema- ALGORITMI (pojam, strukture, kodiranje i programske


strukture)

Predmetni profesor:
prof.dr.Duan Starevi

Student:
Vedran Vidi 27-10/RPI
0

SADRAJ
SADRAJ...1
UVOD... 2
ALGORITAM.....3-4
OBLIKOVANJE ALGORITMA.....5-6
PROGRAMSKE STRUKTURE.7-8
ALGORITAMSKE STRUKTURE........9
SLOENE ALGORITAMSKE STRUKTURE...10-11
KANONSKE I NEKANONSKE ALGORITAMSKE STRUKTURE..12
TESTIRANJE ALGORITMA.......13
KODIRANJE.............14
ALGORITAM ZA KODIRANJE..............15
ZAKLJUAK................16
LITERATURA......17

UVOD

Algoritam predstavlja skup akcija sa definisanim redoslijedom njihovog


obavljanja, koji primijenjen na polazni skup podataka, dovodi do traenih rezultata.
U procesu programiranja, skup akcija definisan je mogunostima raunala, odnosno
naredbama programskog jezika koji se koristi, dok se redoslijed izvravanja akcija zadaje
pomou algoritamskih (programskih) struktura.

ALGORITAM
Algoritam je skup pravila ili pravilo sa svojstvom preciznou, jednoznanosti te obuhvaa
konaan broj koraka, a svaki korak je opisan instrukcijom. Instrukcije moraju biti izvedive i
jednoznane.Algoritam opisuje rjeavanje nekoga problema. SLIDE1
Postupak obavljanja algoritma je algoritamski proces. Algoritam ima definirane poetne
objekte nad kojima se obavljaju operacije, a ishod toga je skup rezultata tj. zavrnih objekata i
on je djelotvoran.
Da bi algoritam bio uinkovit rezultat se mora dobiti u prihvatljivom ili razumnom
vremenu. Insturkcije se mogu izvriti nekoliko puta te instrukcije morajuu pokazivati na
ponavljanje, ali za bilo koju vrijednost ulaznih podataka algoritam zavrava nakon konanog
broja ponavljanja.
Kod zapisivanja algoritama upotrebljava se programski jezik C, rije je o
nedovrenom kodu gdje su neki nizovi naredbi zamijenjeni tekstom. Analiza algoritma
podrazumijeva procjenu vremena za izvravanje toga algoritma, a vrijeme se poistivjeuje sa
brojem operacija koje odgovarajui program treba obaviti i on se izraava kao funkcija.

Algoritam se zapisuje u :

Obliku pseudo jezika ( govornog jezika koji oponaa programski jezik)

Grafikom obliku tzv. Blok dijagram ili dijagram tijeka programa

Slika: BLOK DIJAGRAM

OBLIKOVANJE ALGORITMA
Oblikovanje algoritama se dijeli na tehnike: podijeli pa vladaj, dinamiko programiranje,
pohlepni pristup i backtracking. Svaka od ovih metoda ne garantira tono rjeenje problema i
zbog toga se uvijek treba napraviti provjera.

PODIJELI PA VLADAJ
Metoda podijeli pa vladaj se dijeli na tri primjera: sortiranje saimanjem, traenjem
elemenata u listi i mnoenje dugakih cijelih brojeva. Algoritam merge za sortiranjem liste se
moe tumaiti da to je lista dulja to ju je tee sortirati, velika sortirana lista se dobiva
relativno jednostavnim postupkom saimanja malih sortiranih lista.

Primjer 1.
Sortiranje saimanjem
(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)

PROGRAMSKE STRUKTURE
Postoje tri programske strukture a to su:
1. Linijska(slijed)
2. Razgranata(selekcija)
3. Ciklika(iteracija)

1.

Linijska (slijed) programska struktura:


-sve akcije se izvravaju tono jednom u redoslijedu u kome su navedene.

SHEMA: linijska programska struktura

2.

Razgranata (selekcija) programska struktura:


omoguava da se od vie grupa akcija koje se nalaze u razliitim granama

razgranate strukture, izabere ona koja e se izvriti jednom, dok se sve ostale grupe akcija
nee izvriti ni jednom.

Shema: Razgranata algoritamska struktura

3.Ciklika (iteracija) programska struktura:


skup akcija moe se izvriti vie puta.

Shema: Ciklika programska struktura


Algoritamsko rjeenje bilo kojeg problema moe se uvijek zapisati koritenjem samo ove tri
strukture.

ALGORITAMSKE STRUKTURE
1. Slijedna (linearne ili sekvencijalne)SLIDE 8

Poetak i kraj

Definiranje varijabli i konstanti

Ulaz

Izlaz

Aritmetike i logike operacije

2. Struktura bezuvjetnog skoka


3. Struktura grananja (sadri logike operacije)
kombinira se sa: -

Slijednom strukturom
-

Strukturom bezuvjetnog skoka

4. Struktura iteracije (ponavljanja ili petlje)

STRUKTURA BEZUSLOVNOG SKOKA (naruavanje linearnosti)


Koristi se za testiranje algoritma (preskae dio algoritma)
Izaziva greku bezuslovnog ponavljanja( tzv. Beskonana petlja ili iteracija)
Kombinira se s strukturom grananja radi naruavanja linearnosti / uspostavljanja
ponavljanja (dijela) algoritma.
PSEUDO JEZIK

BLOK DIJAGRAM

x. Idi na y
Gdje su x i y brojevi linija algoritma

bez obzira na smjer

Struktura bezuvjetnog skoka

SLOENE ALGORITAMSKE STRUKTURE


Sloene 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 sloenih algoritamskih struktura.
To se postie:
1) kada se u prostoj linijskoj strukturi u sastavu razgranate linijske ili cikline strukture
algoritamski korak prve vrste (ne dovodi do grananja algoritma i ima
jedan ulaz i jedan izlaz) zamjeni algoritamskim korakom druge vrste
(dovodi do grananja algoritma i ima jedan ulaz i vie izlaza)
2) kada se u prostoj linijskoj strukturi u sastavu razgranate linijske ili cikline strukture
algoritamski korak prve vrste zamjeni novom razgranatom linijskom

ili ciklinom

strukturom;
3) zamjenom algoritamskog koraka proizvoljne elementarne strukture

algoritamskim

korakom za poziv potprograma


4) kada se u ve formiranim algoritamskim strukturama ponavljaju zamjene

iz

pravila danih u takama (1), (2) i (3).


PLS1
Primjenom navedenih pravila mogu se formirati najraznovrsnije sloene algoritamske
strukture.

10

Jedna od moguih klasifikacija ovih struktura je:


- sloene razgranate linijske strukture
- sloene cikline strukture
- sloene razgranate i cikline strukture
- algoritamske strukture sa potprogramima

Napomena:

Za sloene algoritamske strukture dobijene principom nadgradnje se moe

postaviti i zahtjev da budu strukturirane (da imaju jedan ulaz i jedan izlaz) ime se
zadovoljava princip strukturnosti primjenom tog zahtjeva u veini sluajeva algoritamske
strukture postaju logiki preglednije i pogodnije za programsku realizaciju.

11

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 ciklika struktura

2. kvazi- kanonske algoritamske strukture


3. nekanonske algoritamske strukture

12

TESTIRANJE ALGORITMA
Izvodi se kao i u matematici uvrtavanjem vrijednosti u algoritam.Algoritam se testira
sekvencijalno praenjem svakog reda (instrukcije) algoritma od poetka do kraja, uz
zapisivanje vrijednosti koje varijable usput poprimaju, da bi se u konanici i saznala konana
vrijednost izlaznih varijabli.
Pr. Zadatka:
Kolika je vrijednost varijable s nakon izvoenja algoritma, ako za x uitamo 2, a za y
uitamo 5: SLIDE 14
1. X=0, Y=0, S=0
2. Uitaj X
3. Uitaj Y
4. S=S+Y
5. Ispii S

S=5

13

KODIRANJE

Algoritam zapoinje s praznim rjenikom, no uzmimo neki trenutak u tijeku


kodiranja,

kad rjenik ve sadri neke stringove. Analiziramo prefiks koji slijedi u ulaznoj

struji, poevi sa praznim prefiksom. Ako njemu odgovarajui string (prefiks + sljedei znak,
odnosno P+Z) postoji u rjeniku, proirujemo prefiks P znakom Z. Proirenje ponavljamo sve
dok ne dobijemo string koji ne postoji u rjeniku. Tada na izlaz poaljemo kodnu rije koja
odgovara P-u, a zatim i znak Z. Sljedei prefiks koji analiziramo direktno se nastavlja na
obraeni.
Poseban je sluaj ako u rjeniku ne postoji ni poetni string od samo jednog znaka (to se
uvijek dogaa na poetku kodiranja). Tada se na izlaz alje posebna kodna rije koja
oznaava prazni string. Iza nje se alje dotini znak i taj se znak dodaje u rjenik.
Izlaz iz algoritma su parovi kodna rije-znak (K,Z). Svaki put kad se taj par poalje na
izlaz, string iz rjenika koji odgovara kodnoj rijei K proiri se znakom Z i taj novi
string se doda u rjenik. To znai da u trenutku kad dodajemo neki string, u
rjeniku ve postoje svi stringovi dobiveni oduzimanjem znakova s kraja tog
stringa.

14

Algoritam za kodiranje
1. Na poetku su rjenik i P prazni;
2. Z := sljedei znak u ulaznoj struji;
3. Postoji li string P+Z u rjeniku?
a. ako postoji, P := P+Z (P proiri Z-om);
b. ako ne postoji,
--u izlaznu struju poalji dva podatka, i to:

kodnu rije stringa jednakog P-u (ako je P prazan, alji nulu);

Z, u istom obliku kao to je uitan iz ulazne struje;

--na prvo prazno mjesto u rjeniku zapii string P+Z;


--isprazni P;
c. ima li jo znakova u ulaznoj struji?
--ako ima, vrati se na korak 2;
--ako nema:

ako P nije prazan, u izlaznu struju poalji kodnu rije stringa


jednakog P-u;

KRAJ

15

ZAKLJUAK

Algoritamske strukture vaan dio programiranja, pomou njih se zadaje redoslijed


izvravanja akcija, tj. problema. One su bitan dio algoritama, jer se algoritmi nikako ne mogli
strukturirati , tj rjeavati. Algoritam je postupak kojim se u konanom broju koraka i u
konanom vremenu dolazi do rjeenja problema ili spoznaje da rjeenja nema. Svaka vrsta
stroja za obradu podataka ima svoj jezik i ne moe se koristiti na drugom stroju, ak ni na
razliitim strojevima istog proizvoaa.

16

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.BesplatniSeminarskiRadovi.com

17

You might also like