Sie sind auf Seite 1von 13

JU Prva srednja kola Cazin

Frizerska kola

Predmet: Informatika

Algoritmi
-seminarski rad-

Profesor: Uenik:

Nedad Redi Murti Emina

Cazin: 5. Maj 2017.godine

1|stranica
Sadraj

Uvod............................................................................................................................................3

1. Definicija Algoritma............................................................................................................4

2. Historija algoritma:..............................................................................................................6

3. 5 zakona algoritma...............................................................................................................7

4. Struktura algoritma..............................................................................................................9

4.1 Linijski algoritam.........................................................................................................9

4.2 Razgranati algoritam..................................................................................................10

4.3 Ciklina struktura.......................................................................................................11

LITERATURA..........................................................................................................................12

2|stranica
Uvod:
Tema ovog seminarskog rada su algoritmi. Algortam je niz koraka koji vode do rjeenja
problema ili dokazuju da problem nema rjeenje. Ova definicija je svakako i najjednostavnij
definicija algoritma, ali u ovom radu emo pomenuti i razne druge definicijama algoritma,
histoirijskim razvojem algoritma. Takoer emo govoriti o zakonitostima algoritma i
algoritamskim strukturama. Takoer emo navesti neke proste primjete ovih algoritamskih
struktura. U izradi ovog rada smo se koristili sa nekoliko internet stranica, a izmeu ostalih
najvie sa Web n Study koja je specijalizirana za osnove raunarstva, programiranja i
algoritme.

3|stranica
1. Definicija Algoritma

Po definiciji Miroslava Kia u rjeniku Englesko-hrvatski i hrvatsko engleski informatiki


rjenik Algoritam ili postupnik je konaan slijed dobro definiranih naredbi za ostvarenje
zadatka, koji e za dano poetno stanje terminirati u definiranom konanom stanju. Koriste u
mnogim disciplinama poput matematike, raunarstva.1

Postoji mnogo razliitih definicija algoritma. U ovom poglavlju emo spomenuti jo neke
definicije algoritma.

- Algoritam je kljuni pojam u raunarskoj obradi podataka jer je raunarski program


izvjestan algoritam koji raunaru objanjava koje korake (naredbe) i kojim redosljedom treba
da obavlja. Tako se algoritmom moe smatrati bilo koji niz koraka koji se moe uraditi na
raunaru.

-Jo jedna definicija je da je algoritam niz koraka koji jednoznano i jednostavno vode do
rjeenja peoblema, ili dokazuje da rjeenje ne postoji.

-Algoritam je precizan opis postupaka koji vode eljenom cilju. Algoritam je uputstvo za
obavljanje posla.

-Algoritam je skup uputstava koja opisuju kako doi do reenja problema.

-Algoritam predstavlja skup akcija sa definisanim redosledom njihovog obavljanja, koji


primenjen na polazni skup podataka, dovodi do traenih rezultata.

-Algoritam je konaan (ureen) skup strogo definisanoh algoritamskih koraka (pravila) ijom
primjenom na ulazne podatke (i meurezultate) dobijamo rjeenje zadatka poslije konano
mnogo vremena. Sve poslove koje raunar obavlja izvode se postupno, korak po korak, u
konanom vremenu. Svaki korak je jasno preciziran, kao i prelazak na svaki naredni korak.
Na kraju postupka, kad raunar zavri rad (ukoliko se to uopte desi, jer mogue je i da se rad
nikada ne zavri), dobije se neto kao rezultat.2

1 Prema https://hr.wikipedia.org/wiki/Algoritam#cite_note-InfoRjecnik-1
2 http://razno.sveznadar.info/02-2razred/5-Algoritam/1-AlgoritamF1.htm

4|stranica
5|stranica
2. Historija algoritma:
Rije algoritam dolazi od latinskog prijevoda imena iranskog matematiara Al-
-Hvarizmija koji se bavio matematikom, astronomoijom, kartografijom...

Al- Hvarizami se smatra ocem algebre jer je definirao osnovna pravila rjeavanja
linearnih i kvadratnih jednadbi. Njegovi radovi su osnova razvoja mnogih matematikih i
prirodnih disciplina, meu njima i raunarstva..

Prvi zapis algoritma prilagoen raunalu koji je pripadao Adi Byron iz 1842 (pa se zbog
ovoga smatra prvom programerkom), a raunao je Bernoullijeve brojeve. Raunalo za koje je
napisan je bio analitiki stroj, koji je zamislio, ali nikad u potpunosti proveo u djelo,
Englez Charles Babbage. Analitiki stroj je trebalo biti prvo programabilno raunalo,
sastavljeno u potpunosti od mehanikih dijelova. Mehaniki dijelovi i fizika glomaznost su
glavni razlozi zato nikad nije zavren.

Nedostatak vrste matematike forme pravio je odreene probleme matematiarima i


logiarima 19. i 20. stoljea prilikom analiziranja algoritama. Definicija Turingovog stroja je
rijeila veinu tih problema, a predstavio ju je engleski matematiar Alan Turing. Turingov
stroj omoguava izvoenje veine dananjih algoritama (uz odreene prilagodbe), a dodatno
olakava i analizu sloenosti zbog svoje jednostavnosti izvedbe (glava, funkcija pomaka glave
te beskonana ili jako duga traka za itanje/pisanje).

Primjenom Turingovog stroja kao idealnog modela definirani su mnogi moderni problemi
vezani uz analizu algoritama, kao npr. Turingov problem zaustavljanja ili klase NP-
tekih i NP-potpunih problema.3

Turingov stroj je imaginaran stroj koji moe uzvesti bilo koju kompjutaciju izvedivu na
bilo kojem raunalu. Stroj se sastoji od beskonane vrpce, radnog dijela i popisa pravila.
Ulazno/izlazna vrpca je podijeljena u polja na kojima se mogu nai simboli koje radni dio
stroja bilo ita, brie ili upisuje.Stroj se uvijek nalazi u nekom unutarnjem stanju, te ovisno o
tom stanju i zapisima na vrpci izvodi radnje pomicanja, brisanja ili pisanja. Popis pravila je
program koji odreuje ponaanje stroja u zadanim okolnostima. Turingov stroj ita simbole na
vrpci i gleda popis pravila, u skladu s time mijenja svoje unutarnje stanje te ili pie ili brie
simbole ili pomie svoj radni dio na lijevo ili na desno.4

3 https://hr.wikipedia.org/wiki/Algoritam#cite_note-InfoRjecnik-1
4 http://marul.ffst.hr/~logika/pilot/predavanja/turing.htm

6|stranica
7|stranica
3. 5 zakona algoritma
Svaki dobar algoritam mora ispotovati 5 osnovnih zakonitosti algoritma:

Definisanost (svi koraci moraju biti jasni i nedvosmisleni)


Konanost (izvrenje algoritma se mora obaviti u odreenom broju koraka)
Posjedovanje ulaza i izlaza ( moraju se definisati ulazi kojih moe biti: ni jedan, jedan
ili vie i izlazi kojih mora biti bar jedan ili vie)
Efikasnost (algoritam se izvrava u razumnom vremenskom intervalu)
Rezultativnost (algoritam mora dati rjeenje problema a ako nema rjeenja onda
poruku da rjeenje ne postoji) 5

U procesu programiranja, skup akcija definisan je mogunostima raunara, odnosno


naredbama programskog jezika koji se koristi, dok se redosled izvravanja akcija zadaje
pomou algoritamskih (programskih) struktura. Postoji veliki broj razliitih matematikih
formalizacija pojma algoritma. Matematiki se dokazuje da su sve formalizacije algoritama
meusobno ekvivalentne, odnosno svaki algoritam koji se moe predstaviti pomou jedne od
ovih formalizacija, moe se predstaviti i pomou bilo koje druge. Kad se uz algoritam vezuje
pojam obrade podataka, podrazumjeva se da se podatak prvo uita preko ulazne jedinice, a
ispisuje se na izlaznu jedinicu ili uva za kasniju upotrebu. Sauvani podaci se smatraju
dijelom unutranjeg stanja sistema.

Za svaki raunarski posao algoritam mora biti jasno definisan; naveden na nain koji
podrazumjeva sve mogue situacije koje se mogu pojaviti. Znai, svaki uslovni korak se mora
sistematino obraditi, sluaj po sluaj; uslov za svaki sluaj mora biti jasan i izraunljiv
(matematiki definisan). Pretpostavlja se da su instrukcije navedene jasno, da poinju od vrha
i da teku do dna. Ova ideja se formalno opisuje kontrolom toka. Ovo je najuobiajeniji
koncept u programiranju i opisuje postupke na mehaniki nain. Kod ovakve formalizacije se
unaprijed uzimaju pretpostavke o imperativnom programiranju. (Tehnike programiranja su
istovjetne s programskim stilovima i direktno su povezane s pojedinim programskim jezicima.
Imperativno programiranje opisuje raunanje kao izraze koji mijenjaju stanje programa. Kao
to se u govornom jeziku zapovijedni nain (ili imperativ) koristi za izraavanje naredbi, tako
se imperativni programi mogu posmatrati kao niz naredbi koje raunar treba izvriti).
Jedinstveno za ovaj koncept je operacija dodjeljivanja, to je davanje vrijednosti promenljivoj.
Ovo proizilazi iz intuitivnog poimanja memorije kao privremenog skladitenja odnosno

5 http://razno.sveznadar.info/02-2razred/5-Algoritam/1-AlgoritamF1.htm

8|stranica
pamenja. ) Algoritmi se obino razmatraju uz pretpostavku da u jednom trenutku izvravaju
jednu instrukciju jednog algoritma. Takvi raunari se zovu serijski raunari.

9|stranica
4. Struktura algoritma

Strukturu algoritma ini vie programskih koraka koji ine jednu celinu.

Tri osnovne algoritamske strukture:

1. Linijska
2. Razgranata
3. Ciklina.

4.1 Linijski algoritam

Linijska algoritamska struktura je ona kod koje se svaki korak izvrava tano jedanput.
Linijski algoritmi su osnovni. Oni predstavljaju najjednostavnije programe - ikada. To su
programi koji imaju ulaz (unos podataka), izlaz (ispis podataka), i izmeu ta dva obradu
podataka (naravno, ne obavezno tim redosledom).6

Primjer: izraunati obim pravouglog trougla.

Ovaj primer nam je znaajan jer tu prvi put koristimo


neku funkciju. U ovom sluaju to je funkcija sqrt(), koja
rauna kvadratni korijen zadate vrednosti. Kao to vidite,
funkcije se lako koriste - samo je ubacimo u izraz. Ako
funkcija ima argument (npr. broj koji se zadaje),
obavezno ga ubacujemo unutar zagrada. Veina funkcija
vraa neku vrednost koja se onda koristi za raunanje
ostatka izraza. U ovom sluaju, to je korijen zadatog
broja.

6 http://www.webnstudy.com/tema.php?id=linijski-algoritmi

10 | s t r a n i c a
4.2 Razgranati algoritam

Razgranata algoritamska struktura je ona kod koje se svaki korak izvrava jednom ili
nijednom. Stvar je u tome da, kada zadatak zahtjeva da se neke vrijednosti unesu u
promjenljive, jednostavno, ne moemo da znamo koje e to vrednosti biti. U linijskim
algoritmima smo pokazali razliite naine kako da doemo do rezultata na osnovu uneenih
vrijednosti, ali u mnogo veem broju sluajeva problem ne moemo rijeiti jednostavnim
nizom koraka. Prosto, potreban nam je neki korak pomou kojeg moemo da postavimo
pitanje "ta ako", ili moda tanije "da li je". Ovakav korak predstavlja "ravanje" izvravanja
programa. U naem algoritmu pripremamo dvije odvojene grane, i zavisno od provere na
"raskrsnici" izvrie se koraci u jednoj ili u drugoj. Zbog toga kaemo da se neki koraci izvre
jednom, a neki nijednom. Meutim, ta ako je potrebno imati vie od dvije mogunosti? Ako
je potrebno da se algoritam razvija u vie od dvije grane svaku granu uvek moemo ponovo
da "ravamo". Takoer, za specifian tip problema, moemo koristiti viestruko grananje.

Primjer zadatka je za unijeti broj x provjeriti da li je pozitivan, negativan ili jednak nuli.7

Na poetku se unosi neki broj i smeta se u promenljivu X. Onda dolazimo do prvog grananja
gde se provj

7 http://www.webnstudy.com/tema.php?id=razgranati-algoritmi

11 | s t r a n i c a
erava da li je X moda vee od 0. Iz ovog koraka idu dvije grane - jedna za da (desno) i jedna
za ne (dolje). Znai ako je uslov zadovoljen, odnosno njegova vrednost je true, izvrava se
korak koji se nalazi u desnom ogranku. Taj korak je ispis rijei "Pozitivan".

4.3 Ciklina struktura

Ciklina algoritamska struktura je ona kod koje se koraci mogu izvriti vie puta.

Kao i kod razgranate algoritamske strukture moe se desiti da ne znamo koje


e vrijednosti korisnik unijeti, ili ak koliko e ih biti.

Ogroman broj zadataka koje rjeavamo u programiranju zahtjeva da se podatak za podatkom


obrauje na isti nain. To sa stanovita algoritma znai da se jedni isti koraci ponavljaju vie
puta. Svim koracima kojima definiemo cikluse zajedniko je to to imaju "strelicu unazad".
Na taj nain vraaju algoritam nekoliko koraka unazad ime se pravi ciklus ili petlja.

Koraci unutar ciklusa su uvek isti, ali vrijednosti sa kojima se radi se menjaju. To je
u stvari i poenta rada sa ciklusima. Ciklini algoritmi takoer mogu imati grananja unutar
ciklusa.

Primjer je namjerno beskonaan ciklus.

Ako elimo da napravimo beskonaan ciklus,


najjednostavniji nain je uslovni ciklus sa
uslovom true. To je svakako uslov koji je uvijek
ispunjen.8

8 http://www.webnstudy.com/tema.php?id=ciklicni-algoritmi

12 | s t r a n i c a
LITERATURA:

-https://hr.wikipedia.org/wiki/Algoritam#cite_note-InfoRjecnik-1

http://razno.sveznadar.info/02-2razred/5-Algoritam/1-AlgoritamF1.htm

http://marul.ffst.hr/~logika/pilot/predavanja/turing.htm

http://www.webnstudy.com/tema.php?id=linijski-algoritmi

http://www.webnstudy.com/tema.php?id=ciklicni-algoritmi

http://www.webnstudy.com/tema.php?id=razgranati-algoritmi

13 | s t r a n i c a

Das könnte Ihnen auch gefallen