220 likes | 531 Views
OSNOVI RA ČUNARSKE TEHNIKE 1. ALGORITMI 11. Osnovni elementi razvoja softvera. Jasno definisanje problema Analiza problema. Razvoj algoritma Koncepcija odozgo-nadole. Program – implementacija algoritma pisanjem instrukcija Prevođenje programa Testiranje programa. Izrada dokumentacije.
E N D
OSNOVI RAČUNARSKE TEHNIKE 1 ALGORITMI 11
Osnovni elementi razvoja softvera • Jasno definisanje problema • Analiza problema • Razvoj algoritma • Koncepcija odozgo-nadole • Program – implementacija algoritma pisanjem instrukcija • Prevođenje programa • Testiranje programa • Izrada dokumentacije
Algoritam • Algoritam je skup pravila formulisanih u cilju rešavanja određenog tipa zadatka • Algoritam se sastoji od niza algoritamskih koraka, čiji je redosled tačno utvrđen • Polazne veličine su ulazne veličine algoritma, a rešenja zadatka su izlazne veličine • Prikazivanje algoritma • Dijagramom toka • Pregledan i lako čitljiv i za ljude koji ne znaju da programiraju • Nezavisan od vrste računara i programskog jezika • Primenom pseudojezika • Lakše je prevođenje u odgovarajuće programske instrukcije
Algoritam • Razlaganje algoritma na korake ulazi x1, x2,...,xi • Opšta šema algoritma primenom dijagrama toka A1 ulazi x1, x2,...,xi A2 skup operacija skup operacija A izlazi y1, y2,...,yj Ak izlazi y1, y2,...,yj
Algoritam početak / kraj programa • Simboli za grafički opis algoritma obrada unošenje podataka izdavanje podataka odluka povezivanje algoritamskih koraka priključna tačka
Algoritam • Struktura algoritma je redosled izvršavanja algoritamskih koraka • Osnovne kontrolne strukture: • Sekvence • Proste linijske strukture • Selekcije • Razgranate linijske strukture • Skokovi (bezuslovni skokovi, višestruki skokovi) • Ciklične strukture (petlje) • Uslovni ciklusi • Brojački ciklusi • Iterativni ciklusi • Svakoj kontrolnoj strukturi odgovara određena instrukcija u programskom jeziku
početak Sekvence ulazi x1, x2,...,xi A1 • Kod proste linijske strukture • Koraci algoritma se izvršavaju jedan za drugim • Svaki korak se izvršava samo jednom begin naredba1 naredba 2 ... naredba k end A2 Ak izlazi y1, y2,...,yj kraj
početak Selekcije ulazi x1, x2,...,xi A1 • Kod razgranate linijske strukture • Tok izvršavanja zavisi od ispunjenosti nekih uslova • Mora da postoji bar jedan uslovni korak koji omogućava grananje algoritma • Neki koraci se izvršavaju samo jednom, a neki se uopšte ne izvršavaju ne da uslov ispunjen? A2 A3 A4 izlazi y1, y2,...,yj kraj
Selekcije • Razgranata linijska struktura • Jednograna selekcija: iflogički izrazthennaredba A1 A1 da da uslov ispunjen? uslov ispunjen? A2 ne ne A3 A3
Selekcija • Razgranate linijske struktura • Dvograna selekcija: iflogički izraz thennaredba1 elsenaredba 2 endif A1 ne da uslov ispunjen? A2 A3
Selekcije • Skokovi mogu da budu uslovni i bezuslovni • Bezuslovnim skokovima se na nekom željenom mestu prekida obavljanje niza operacija, da bi se postupak obrade nastavio na nekom drugom zadatom mestu • Dosledna primena pravila strukturnog programiranja eliminiše potrebu za bezuslovnim skokovima i zato u strukturnim dijagramima ne postoji poseban simbol za ovaj korak • Primeri instrukcija za skok bilo gde unutar programa GO TO, BRANCH, JUMP • Primer instrukcije za odlazak na kraj kontrolne strukture je EXIT, a za odlazak na kraj programa je STOP
Selekcije • Višestruki skokovi • U zavisnosti od vrednosti kontrolne promenljive ili vrednosti izraza, omogućava se skok na različite instrukcije unutar programa • Primer instrukcije za višestruki skok je CASE CASESEL of s1:A1 s2:A2 s3:A3 sk:Ak else B end CASE SEL s1 s2 sk A1 A2 A3 Ak B
Ciklične strukture (petlje) • U cikličnoj strukturi (petlji) • Telo ciklusa čine naredbe čije se izvršavanje ponavlja pri jednom izvršavanju programa • Izlazni kriterijum ili uslov obezbeđuje prestanak izvršavanja ciklusa • Kod ciklusa sa uslovom broj ponavljanja nije poznat unapred, već zavisi odispunjenosti uslova • Kod brojačkih ciklusa kriterijum za izlazak iz petlje je broj ponovljenih ciklusa • Kod iterativnih ciklusa kriterijum za izlazak iz pelji je dostignuta tačnost izračunavanja
Ciklične strukture (petlje) • Ciklične strukture sa uslovom • U ciklusu sa uslovom za izlazak na vrhu(while)blok naredbi seizvršava u petlji sve dok je ispunjen neki uslov ne uslov ispunjen? whileUSLOVdo begin ... end da TELO CIKLUSA
Ciklične strukture (petlje) • Ciklične strukture sa uslovom • U ciklusu sa uslovom za izlazak na dnu(repeat until)blok naredbi seizvršava u petlji sve dok se ne ispuni neki uslov TELO CIKLUSA repeat ... until USLOV uslov ispunjen? ne da
Ciklične strukture (petlje) • Elementi svakogbrojačkog ciklusa(FOR) su: • Brojač • Početna vrednost brojača • Krajnja vrednost brojača • Korak brojača • Na početku izvršavanja brojačkog ciklusa brojaču se dodeljuje početna vrednost • Postoje brojački ciklusi sa brojanjem unapred i sa brojanjem unazad • Vrednost brojača se sa svakim izvršavanjem ciklusa menja (uvećava ili smanjuje) za zadati korak • Ciklus se završava kada brojač dostigne krajnju vrednost
Ciklične strukture (petlje) • Struktura brojačkog ciklusa(FOR) sa brojanjem unapred • Vrednost brojača se uvećava za zadati korak sa svakim izvršavanjem ciklusa početna vrednost brojača telo da brojač = krajnja vrednost? ne brojač = brojač + korak
Ciklične strukture (petlje) • Struktura brojačkog ciklusa(FOR) sa brojanjem unazad • Vrednost brojača se umanjuje za zadati korak sa svakim izvršavanjem ciklusa početna vrednost brojača telo da brojač = krajnja vrednost? ne brojač = brojač - korak
Ciklične strukture (petlje) • Kraći grafički zapis brojačkog ciklusa(FOR) ne brojač = poč. vrednost, krajnja vrednost, korak da telo ciklusa
Ciklične strukture (petlje) • Iterativni ciklusi se koriste za programiranje iterativnih numeričkih postupaka • Jedan prolazak kroz programski ciklus odgovara jednoj iteraciji u numeričkom postupku Primer: Definisati algoritam koji za zadato x izračunava po Njutnovoj iterativnoj formuli: gde je Proces izračunavanja se prekidakada se dostigne zadata tačnost , tako da je .