algoritmi algoritmi algoritmi algoritmi
TRANSCRIPT
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
1/36
ALGORITMI
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
2/36
TEORIJSKA OSNOVA RAUNARA
Sve poslove koje raunar obavlja izvode se postupno,korak po korak, u konanom vremenu.Svaki korak je jasno preciziran, kao i prelazak na svakinaredni korak.Na kraju postupka, kad raunar zavri rad (ukoliko se to
uopte desi, jer mogue je i da se rad nikada ne zavri), dobijese neto kao rezultat.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
3/36
TEORIJSKA OSNOVA RAUNARAAlgoritam predstavlja skup akcija sa definisanimredosledom njihovog obavljanja, koji primenjen na polazni skuppodataka, dovodi do traenih rezultata.U procesu programiranja, skup akcija definisan je
mogunostima raunara, odnosno naredbama programskogjezika koji se koristi, dok se redosled izvravanja akcija zadajepomoualgoritamskih (programskih) struktura.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
4/36
TEORIJSKA OSNOVA RAUNARA
Efektivni postupci su svuda prisutni u realnosti, od onihsvakodnevnih:buenja,ustajanja,umivanja,doruka,koji se obino izvode rutinski, po ustaljenim navikama i redu.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
5/36
OSNOVNI POJMOVI ALGORITAMAPomenimo da postoji veliki broj razliitih matematikihformalizacija pojma algoritma.Mi emo pomenuti najvanije:1. Tjuringove maine2. Postovi sistemi3. Karkovljevi algoritmi4. Rekurzivne funkcije5. erov -raun6. Kombinatorski raun7. URK (beskonane registarske maine)
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
6/36
OSNOVNI POJMOVI ALGORITAMA
Matematiki sedokazuje da su sve oveformalizacije algoritamameusobno ekvivalentne,odnosno svaki algoritam kojise moe predstaviti pomoujedne od ovih formalizacija,moe se predstaviti ipomou bilo koje druge.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
7/36
OSNOVNI POJMOVI ALGORITAMA
Za nas je dovoljno da koristimo neku od intuitivnih definicijaalgoritma: 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.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
8/36
OSNOVNI POJMOVI ALGORITAMA
Svaki programski jezikpredstavlja neku formalizacijualgoritama, pa zato moemokoristiti definiciju pojmaprogram:Program je algoritam zapisanna nekom programskom jeziku.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
9/36
OPISIVANJE ALGORITMA
Na osnovu prethodno reenom o algoritmu, jasno je da sealgoritam moe opisati kako pomou bilo koje od navedenihmatematikih formalizacija, tako i pomou nekog programskogjezika.Upoznaemo neke od naina za opisivanje algoritama:
prirodni jezikpseudo jezikblok eme (dijagrami toka)
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
10/36
OPIS ALGORITMA PRIRODNIM JEZIKOM
Da bi algoritam koji saoptavamo prirodnim jezikom bioprecizan i dovoljno detaljan potrebno je voditi rauna daizlaganje bude jasno i nedvosmisleno, to je posebno znaajnopri izlaganju redosleda operacija koje se moraju izvriti.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
11/36
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
12/36
OPIS ALGORITMA DIJAGRAMOM TOKA
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
13/36
PROMENLJIVE VELIINE U ALGORITMU
Promenljiva je prostor u memoriji raunara koji je imenovani slui za uvanjeodgovarajuih vrednosti.Pri izradi algoritama promenljivim se daju imena (oznake)po elji, bitno je samo da se ta imena mogu zapisati u okviruzapisa algoritma.U programimskim jezicima imena se obino ograniavajuna slova latinice i jo neke dopunske simbole.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
14/36
PROMENLJIVE VELIINE U ALGORITMUprimeriNapraviti algoritam za poveavanje promenljive X za 2.reenje:X = X+2.Napraviti algoritam za meusobnu zamenu vrednostipromenljivih X i Y.reenje:Z = X;X = Y;Y = Z.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
15/36
ELEMENTARNE STRUKTURE ALGORITMA
Strukturno programiranje je stil programiranja (pisanjaprograma i formiranja algoritama) koji podrazumeva upotrebuizvesnih pravila koja su poznata kao (lepo pisanje) kojaobezbeuju preglednost programa.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
16/36
ELEMENTARNE STRUKTURE ALGORITMA
Kao rezultat upotrebe novog stila rada poveana je itljivostprograma, smanjena verovatnoa pojavljivanja greaka iolakano njihovo pronalaenje, olakano je dokazivanjekorektnosti programa, pojednostavljen je postupak naknadnogprilagoavanja i prepravljanja programa.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
17/36
ELEMENTARNE STRUKTURE ALGORITMA
Dokaz da se svaki algoritam moe predstaviti i bezupotrebe skokova, samo uz upotrebu programskih struktura:if...then...else...(ako...onda...inae..struktura koja
obezbeujeodluivanje i grananje) iwhile...repeat... (dok vai...ponavljaj... struktura kojaobezbeuje ponavljanje) praktino je omogueno zasnivanje iupotrebu novog stila. Radi itljivosti i efikasnosti proceduralniprogramski jezici najee obuhvataju i jo neke programske
strukture.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
18/36
ELEMENTARNE STRUKTURE ALGORITMA
Pod algoritamskom (programskom) strukturompodrazumevamo vie koraka (komandi programskog jezika)koji ine jednu celinu. Postoje tri elementarne algoritamskestrukture:
Linijska Razgranata Ciklina
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
19/36
LINIJSKA STRUKTURA
Niz algoritamskih koraka koji se bezuslovno izvode jedanza drugim naziva se linijskom (sekvencijalnom) algoritamskomstrukturom.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
20/36
LINIJSKA STRUKTURALinijska algoritamska struktura ima tano jednu ulaznutaku, tano jednu izlaznu taku i takav tok da se svaki njenkorak bezuslovno izvravatano jednom. Predstaviemo pseudojezikom i dijagramom toka elementarnu linijsku strukturu koju ini
niz od dva koraka: proces 1; proces 2;
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
21/36
LINIJSKA STRUKTURAprimer: Svima nama poznat je algoritam koji opisuje kako stavitimleko u friider:
Pocetak
Otvoriti
friider
Kraj
(1) Otvoriti friider;
(2) Staviti mleko u friider;
(3) Zatvoriti friider.
Staviti mleko
u friider
Zatvoritifriider
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
22/36
RAZGRANATA STRUKTURAAlgoritamska struktura koja obezbeuje izvoenje dvarazliita postupka pri emu izbor zavisi od nekog uslova nazivase uslovnim grananjem ili razgranatom algoritamskom
strukturom.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
23/36
RAZGRANATA STRUKTURAUslovno grananje ima tano jednu ulaznu taku, tanojednu izlaznu taku i takav tok da se svaki njen korak izvravanajvie jednom, pri emue svaki korak biti izvren pod nekimodgovarajuim uslovom (ne postoji korak koji se ni pod kojim
uslovima neeizvriti).
proces 1 proces 2
uslovDa Ne
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
24/36
RAZGRANATA STRUKTURAPoseban sluaj uslovnog grananja je viestruko grananje.Viestruko grananje moemo predstaviti kao vie dvostrukihuslovnih grananja, a u sluaju kada se odluuje na osnovuvrednosti samo jednog izraza tada moemo koristiti i poseban
zapis:
Uslov
Proces 1 Proces 2 Proces n...
... vrednost n ostalo
Proces n+1
...vrednost 1 vrednost 2
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
25/36
RAZGRANATA STRUKTURAPoetak
Kraj
1) Uneti X;
2) Ako je X=1 onda:
dan je ponedeljak
3) ...inae, ako je X=2 onda:
dan je utorak
4) ...inae, ako je X=3 onda:
dan je sreda
5) ...inae, ako je X=4 onda:
dan je etvrtak
6) ...inae, ako je X=5 onda:
dan je petak
7) ...inae, ako je X=6 onda:dan je subota
8) ...inae, dan je nedelja;
9) Ispisati dan.
Uneti X
X=1
Ispisati
dan
Da
Ne
X=2
X=3
Ne
X=4
Ne
X=5
Ne
X=6
Ne
Da
Da
Da
Da
Da
dan = 'nedelja'
Ne
dan = 'utorak'
dan =
'ponedeljak'
dan = 'sreda'
dan = 'etvrtak'
dan = 'petak'
dan = 'subota'
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
26/36
CIKLINA STRUKTURA
Ponavljanjem, iliciklinom algoritamskomstrukturom nazivamo strukturukoja obezbeuje ponavljanjenekih koraka algoritma.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
27/36
CIKLINA STRUKTURA
Ciklina algoritamska struktura ima tano jednu ulaznutaku,tano jednu izlaznu taku i obezbeuje da se u zavisnostiod nekog uslova izvravaju koraci koji se ponavljaju ili izlazi izstrukture.
U upotrebi je vieciklinih struktura:(dok) struktura (while)(do) struktura (until)brojaka struktura (for)
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
28/36
CIKLINA STRUKTURAPredstaviemo dok strukturu pseudo jezikom i na dvanaina dijagramom toka:1.dok je ispunjen uslov ponavljati: 22.proces;
proces
uslovDa
Ne
proces
uslov
Da
Ne
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
29/36
CIKLINA STRUKTURAPoetak
Kraj
1) Postaviti Zbir=0;
2) Uneti Broj;
3) Dok je Broj>=0 ponavljati 4-5
5) Uneti Broj;
4) Zbir=Zbir+Broj;
6) Ispisati Zbir;
Uneti Broj
Broj >= 0
Ispisati
Zbir
Da
Ne
Zbir = 0
Zbir=Zbir+Broj
Uneti Broj
Ovo je primer upotrebe "dok" strukture.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
30/36
CIKLINA STRUKTURAFormirati algoritam za izraunavanje proizvoda dva prirodna broja:
Poetak
Kraj
1) Uneti M i N;
2) Postaviti Proizvod=0;
3) Ponavljati:4-5 do: N=0
4) Proizvod = Proizvod + M;
5) N = N-1;
6) Ispisati Proizvod;
Uneti M,N
N=0
IspisatiProizvod
Ne
Da
Proizvod = 0
Proizvod = Proizvod + M
N = N - 1
Ovo je primer upotrebe "do" strukture.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
31/36
CIKLINA STRUKTURA
Brojaka strukturaobezbeuje ponavljanjenekog procesa zadati broj
puta. Ulazna taka jepoetak brojanja, izlaznataka je kraj brojanja.Brojaka strukturapredstavlja skraivanjezapisa "dok" strukture:
proces
brojac
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
32/36
CIKLINA STRUKTURA1. neka je broja := poetak;2. dok je broja
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
33/36
CIKLINA STRUKTURAu obliku:
za broja := poetak do kraj (sa korakom 1) ponavljati: 2proces;
Brojakustrukturu u dijagramu toka moemo predstavljati kao
gde je i broja, p poetna vrednost brojaa, k krajnja vrednostbrojaa i s korak kojim se broja menja.
proces
brojac
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
34/36
CIKLINA STRUKTURAprimerFormirati algoritam za izraunavanje sume brojeva 1 do N, gde
se N uitava:
Poetak
Kraj
1) Uneti N;
2) Postaviti Suma=0;
3) Za A:=1 do N ponavljati:4
4) Suma:=Suma+A;
6) Ispisati Suma;
Uneti N
Ispisati
Suma
Suma = 0
Suma := Suma + A
za A:=1..N
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
35/36
FORMIRANJE ALGORITMA
Postoji vie metoda formiranja algoritma, ali mi emo se
zadrati na metodu od vrha nanie (top-down).Metod formiranja algoritama od vrha prema dnu
podrazumeva postepeno reavanje detalja u polaznom vrlo
uoptenom algoritmu.
Reavanje po nivoima omoguava izgradnju sloenog
algoritma iz vie jednostavnijih, ime se postupak inijednostavnijim i brim i smanjuje se verovatnoa pojavljivanja
greaka.
-
7/28/2019 algoritmi algoritmi algoritmi algoritmi
36/36
FORMIRANJE ALGORITMA
Konstrukcija algoritma se zavrava kada svi procesi budu
do kraja razvijeni, odnosno opisani dovoljno detaljno da se
algoritam moe implementirati.
Ovaj metod se dobro uklapa u strukturno programiranje i
kao svoj zavrni rezultat daje program na nekom programskom
jeziku.