Você está na página 1de 18

ALGORITMI (pojam, strukture, kodiranje i programske strukture)

www.BesplatniSeminarskiRadovi.com

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 definiranim redoslijedom njihovog obavljanja, koji primijenjen na polazni skup podataka, dovodi do traenih rezultata. U procesu programiranja, skup akcija definiran 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. SLIDE 1 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 (3, 5, 7) Merge

Sort (1, 3, 4)

(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 BEZUVJETNOG SKOKA (naruavanje linearnosti)


Koristi se za testiranje algoritma (preskae dio algoritma) Izaziva greku bezuvjetnog ponavljanja( tzv. Beskonana petlja ili iteracija) Kombinira se s strukturom grananja radi naruavanja linearnosti / uspostavljanja ponavljanja (dijela) algoritma. PSEUDO JEZIK x. Idi na y Gdje su x i y brojevi linija algoritma Struktura bezuvjetnog skoka bez obzira na smjer BLOK DIJAGRAM

10

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 strukturom; 3) zamjenom algoritamskog koraka proizvoljne elementarne strukture korakom za poziv potprograma 4) kada se u ve formiranim algoritamskim strukturama ponavljaju zamjene pravila danih u tokama (1), (2) i (3). PLS1 Primjenom navedenih pravila mogu se formirati najraznovrsnije sloene algoritamske strukture. iz algoritamskim ili ciklinom

11

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.

12

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

13

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

14

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.

15

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

16

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.

17

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

18

Você também pode gostar