You are on page 1of 3

1.

Elementi strukturiranih algoritama Resenje bilo kog problema, koji je po svojoj prirodi resiv pomocu racunara, moze se izraziti kao superpozicija sledecih struktura:1.sekvence, 2.selekcije, i 3.iteracije.Sekvenca je uredjen niz instrukcija gde se po zavrsetku i-1 instrukcije moze izvrsavati i-ta instrukcija, a posle nje i+1 instrukcija i tako redom.Selekcija omogucava izbor jedne putanje kojom ce se nastaviti izvrsavanje instrukcija. Izbor putanje se vrsi na osnovu uslova koji je definisan kao logicki izraz.Razlikuju se sledeci tipovi selekcija:IF uslov THEN operacija interpretacija: AKO je ispunjen uslov TADA izvrsi operacija struktura dozvoljava izvrsavanje operacije ako je ispunjen uslov pre nego sto se nastavi izvrsavanje po putanji. Ovaj tip selekcije moze umetnuti jednu aiternativnu putanju u trenutnu putanju izvrsavanja.IF usiov THEN operaciiai ELSE operacija2 interpretacija: AKO je ispunjen uslov TADA izvrsi operaciju1 INACE izvrsi operaciju2 struktura selektuje izvrsavanje operacijai ili operacija2, zavisno od ispunjenosti uslova, pre nego sto se nastavi izvrsavanje po putanji. Ovaj tip selekcije moze umetnuti jednu od dve moguce alternativnu putanju u trenutnu putanju izvrsavanja. CASE uslov OF V1: OP1 OF V2 : OP2 ELSE OPn interpretacija: U SLUCAJU DA uslov IMA VREDNOST V1 tada izvrsi OP1 AKO IMA VREDNOST V2 tada izvrsi OP2 ... INACE izvrsi OPn struktura selektuje izvrsavanje operacijel ili operacije2 ili ... ili operacijeN, zavisno od vrednosti uslova, pre nego sto se nastavi izvrsavanje po putanji. Ovaj tip selekcije moze umetnuti jednu alternativnu putanju u trenutnu putanju izvrsavanja. Iteracija omogucava ponavljanje operacija tela iteracije potreban broj puta.Broj ponavljanja se kontrolise uslovom u formi predikata. Polozaj mesta kontrole ponavljanja u odnosu na telo iteracije je osnov za klasifikovanje iteracija na: Iteracija sa izlaskom na vrhu: WHILE uslov DO operacije tela iteracije interpretacija: DOKLE uslov ispunjen RADI operacije tela iteracije prvo proverava uslov i ako je on ispunjen dozvoljava izvrsenje operacija tela iteracije, a u suprotnom se nastavlja trenutna putanja izvrsavanja. Kada se jedno izvrsavanje operacija tela zavrsi, uslov se ponovo proverava sto moze rezultovati ponavljanjem izvrsavanja tela. Vazno je obezbediti da operacije tela iteracije modifikuju elemente uslova kako bi vrednost uslova iteracije konvergirala vrednosti kojom se iteracija zavrsava. U ovu klasu iteracija spada i FOR start TO kraj DO operacije tela iteracije.Interpretacija: OD start DO kraj RADI operacije tela iteracije koja je specijalizovana while iteracija gde se modifikacija elemenata uslova vrsi automatski u uslovnom izrazu,a ne u telu iteracije. iteracije sa izlaskom na vrhu omogucavaju nijedno, jedno ili vise izvrsavanja operacija tela iteracije sto je i kriterijum za izbor ove iteracije. Iteracija sa izlaskom na dnu REPEAT operacije tela iteracije UNTIL uslov interpretacija: RADI operacije tela iteracije DOKLE uslov NE POSTANE ispunjen prvo dozvoljava izvrsenje operacija tela iteracije pa se zatim proverava uslov. Ako uslov nije ispunjen, ponavlja se izvrsenje operacija tela, u suprotnom nastavlja se trenutna putanja izvrsavanja. Operacije tela iteracije modifikuju elemente uslova kako bi se obezbedilo zavrsavanje iteracije. Iteracije sa izlaskom na dnu obezbeduju sigurno jedno, ali i vise izvrsavanja operacija tela iteracije. Iteracija sa izlaskom u sredini omogucava ponavljanje operacija tela iteracije sa mogucnoscu uslovijenog napustanja iteracije bilo gde u telu iteracije. Ova klasa iteracije ima uglavnorn teorijski znacaj i retka je u praksi sem u softveru za upravljanje tehnickim sistemima. Iteracije sa izlaskom u sredini tela iteracije obezbedjuju sigurno jedno, ali I vise izvrsavanja operacija pre uslova napustanja. 2.Razvoj strukturiranih algoritama Razvoj algoritma se smatra vestinom koja je potrebna da bi se definisale diskretne operacije nad datim ulaznim podacima radi dobijanja izlaznih vrednosti koje odredjuju funkcionalnost algoritma. Zadatak algoritma je da precizira kako ulazne podatke transformisati u izlazne podatke radi ostvarenja date funkcionalnosti. Tokom transformacije mogu se pojaviti i medurezultati koji se kasnije koriste za formiranje izlaznih podataka. U algoritmima se za prihvatanje ulaznih podataka, formiranje i izdavanje izlaznih podataka kao i za formiranje i cuvanje medurezultata koriste promenljive sto je potrebni uslov masovnosti algoritma. Promenljivu u racunarstvu karakterisu: -Naziv promenljive, ili identifikator, koji mora imati i deskriptivnu dimenziju, informaciju o prirodi podatka koji se nalazi u promenljivoj. -Tip podatka koji se cuva u promenljivoj. -Ogranicenje na vrednost koju promenljiva moze prihvatiti je veoma vazno tokom projektovanja i implementacije algoritma jer se time podize robusnost resenja. 3.Podalgoritam i rekruzija Podalgoritam je algoritam koji resava jedan aspekt problema i biva angazovan od strane glavnog algoritma ili drugog podalgoritma. Podalgoritam je tako sigurno subordiniran dok moze, ali i ne mora biti. Kao sto je to bio slucaj i kod projektovanja arhitekture softvera, podalgoritmi moraju biti razvijeni sa maksimalnom kohezijom i minimalnom kopulativnoscu. Intenzitet kohezije zavisi od interijera podalgoritma, posvecen samo jednoj podfunkciji modula, a kopulativnost bi trebala biti na nivou kopulativnosti podataka. Ovaj nivo kopulativnosti podrazumeva razmenu podataka izmedju superordiniranog algoritama i subordiniranog algoritama putem liste parametara izbegavajuci deljenje zajednickih podataka sto bi vodilo ka visem nivou -tipska kopulativnost. Parametri podalgoritama mogu se klasifikovati prema mestu njihovog definisanja na: *Formalne parametre, navode se pri definisanju podalgoritma kako bi se formalizovale uiazne i iziazne vrednosti u formi naziva i tipova internih promenijivih podalgoritma. Formalni parametri su istovremeno i lokalne promenljive podalgoritma. Ove promenljive prihvataju ulazne, odnosno formiraju izlazne vrednosti. Ovaj tip parametara obezbeduje masovnost algoritama. *Stvarne parametre, navode se pri pozivanju podalgoritma u superordiniranom aigoritmu i oni sadrze konkretne vrednosti koje ce podalgoritam prihvatiti (poslati) preko svojih formalnih parametra. Za stvarne ulazne parametre se mogu postaviti promenljive, izrazi i konstante superordiniranog algoritma, dok se za stvarne izlazne parametre mogu postaviti samo promenljive superordiniranog algoritma. Prema smeru prenosa vrednosti, razlikuju se tri tipa parametara: -Ulazni parametri nose u sebi ulazne vrednosti za dati podalgoritam. Mehanizam prenosa ulaznih parametara cine sledeci koraci: Superordinirani algoritam pri pozivu podalgoritma, a pre transfera upravljanja, postavlja konkretne vrednosti na mesta ulaznih stvarnih parametara. Pozvani podalgoritam preuzima stvarne vrednosti koje su prosledjene i prihvata ih kao vrednosti odgovarajucih formalnih ulaznih parametara kada postaje moguce izvrsavanje odredenih operacija nad njima u telu podalgoritma. -Izlazni parametri nose u sebi izlazne vrednosti datog podalgoritma, rezultate njegovog izvrsavanja. Mehanizam prenosa izlaznih parametara cine sledeci koraci: 1. Pozvani podalgoritam pri kraju svog izvrsavanja, a pre transfera upravljanja, postavlja konkretne vrednosti na mesta izlaznih formalnih parametara. 2. Superordinirani algoritam prihvata vrednosti koje su prosledjene kao izlazni parametri pozvanog podalgoritma i dalje manipulise njima kao vrednostima svojih internih promenijivih koje su imale ulogu stvarnih parametara. Podalgoritam mora imati barem jedan izlazni parametar jer u suprotnom ne bi imao sredstvo da iskaze rezultat svog rada. Postoje slucajevi kada algoritam u ovom svetlu nema nijedan izlazni parametar jer rezultate svog rada prezentuje direktno korisniku, a to su pak izlazni podaci sa stanovista celog softvera. -Ulazno/izlazni parametri nose u sebi vrednosti koje za dati podalgoritam imaju ulogu i ulaznih i izlaznih vrednosti. Mehanizam prenosa ulazno/izlaznih parametara cine sledeci koraci: Superordinirani algoritam pri pozivu podalgoritma, a pre transfera upravljanja, uspostavlja vezu izmedu odredjenih internih promenljivih koje sadrze konkretne vrednosti sa ulazno/izlaznim stvarnim parametrima. Pozvani podalgoritam preuzima dobijene veze sa stvarnim parametrima kako bi bio u mogucnosti da pomocu svojih formalnih parametara pristupa vrednostima interijera superordiniranog algoritma. Na ovaj nacin, pozvani podalgoritam je snabdeven ulaznim vrednostima nad kojima moze da izvrsi odredene operacije. Zahvaljujuci uspostavljenim vezama, svaka izmena vrednosti formalnih ulazno/ izlaznih parametara nacinjena unutar pozvanog podalgoritma bice vidljiva superordiniranom aigoritmu i po zavrsetku rada pozvanog algoritma. Kada se upravljanje vrati superordiniranom aigoritmu, on u odredjenim stvarnim parametrima ima one vrednosti koje je postavio pozivani podalgoritam. Postoji posebna klasa podalgoritma koji su sami sebi i superordinirani i subordinirani - rekurzivni podalgoritmi. Drugim recima, rekurzivni podalgoritam poziva sam sebe sa razlicitim vrednostima ulaznih parametara potreban broj puta. Rekurzivni podalgoritmi se sastoje iz sledeca tri dela:

-Deo koji se izvrsava u dubinu cine operacije podalgoritma koje se izvrsavaju pre operacije poziva samog sebe. Ovaj deo se jedini izvrsava tokom jednog poziva rekurzivnog podalgoritma. -Uslovljeni poziv omogucava samopozivanje rekurzivnog algoritma ako je ispunjen postavljeni uslov. Vazno je istaci da uslov mora konvergirati neispunjenosti kako bi se obezbedio zavrsetak rekurzivnog izvrsavanja. U suprotnom, dobila bi se beskonacna rekurzija koja ima katastrofalne posledice na citav modul i racunarski sistem u celini. Konvergencija uslova se obezbeduje odgovarajucim promenama vrednosti promenljivih koje su ukljucene u uslov pri svakom novom pozivu rekurzivnog podalgoritma. -Deo koji se izvrsava ka povrsini cine operacije koje se izvrsavaju posle operacije poziva samog sebe. Ovaj deo ce se prvi put izvrsiti unutar poslednjeg poziva rekurzivnog podalgoritma i nastaviti izvrsavati ka prethodnim pozivima sve do prvog poziva.Rekurzivni podalgoritam ne mora sadrzati prvi, odnosno poslednji deo ali mora sadrzati uslovljeni poziv.Veoma je vazno obezbediti promene vrednosti promenljivih koje formiraju uslov pozivanja tako da posle odredenog broja pozivanja uslov postane neispunjen. 4.Predstavljanje strukturiranih algoritama Razlikuju se dve klase formalnih notacija za fizicko predstavljanje algoritama: Graficke notacije koriste odredjeni skup grafickih simbola za predstavljanje operacija i struktura algoritama nad kojima se primenjuje strogo definisani skup pravila njihovog predstavljanja i povezivanja. Graficke notacije imaju veliku deskriptivnu moc sa kognitivnog aspekta ali zahtevaju odredenu vestinu crtanja i veci prostor za fizicki prikaz algoritma. Tekstualne notacije koriste odredeni skup sluzbenih reci za predstavljanje struktura, a operacije se predstavljaju u formi recenice govornog jezika kojima se cesto dodaju opstepoznate matematicke notacije. Fizicka predstava algoritma u ovoj notaciji veoma podseca na sam program. Tekstualne notacije imaju manju deskriptivnu moc sa kognitivnog aspekta, ali ne zahtevaju posebnu vestinu za njihovo zapisivanje pri cemu zauzimaju znatno manji prostor za fizicki prikaz algoritma. Blok dijagram (flowchart) je najstarija, ali i najrasprostranjenija, graficka notacija za predstavljanje algoritama. Uvedena je 60-tih godina kao sredstvo za opis algoritama koji ce biti implementirani na programskom jeziku Fortran. Blok dijagrami su namenjeni za opis nestrukturiranih algoritama, ali odlican izbor osnovnih grafickih simbola omogucio je njihovu primenu i za strukturirane algoritme.Osnovni graficki simboli blok dijagrama su: Terminalni simbol oznacava pocetak, odnosno kraj algoritma. Upisom odredjene reci u simbol dobija se njegovo znacenje. Dozvoljene reci za algoritam su: POCETAK i KRAJ (START i STOP), a za podalgoritam: POCETAK i POVRATAK (START i RETURN). Simbol obrade oznacava operaciju koja ce se izvrsiti u datom trenutku izvrsavanja algoritma.Operacija se navodi unutar simbola. Simbol selekcije oznacava grananje toka algoritma.Uslov se navodi unutar simbola, a rezultati testiranja uslova se navode uz odgovarajuce tokove. Simbol ulaza/izlaza oznacava ulaz/izlaz vrednosti u/iz promenljivih navedenih unutar simbola. Obavezna je naznaka da li se radi o ulazu (ULAZ ili INPUT) ili izlazu (IZLAZ ili OUTPUT) vrednosti. Simbol poziva podalgoritma oznacava poziv podalgoritma ciji su identifikator i lista stvarnih parametara navedeni unutar simbola. Simbol toka oznacava tok izvrsavanja algoritma (podalgoritma). Tok moze biti uslovljen rezultatom testiranja ako je njegovo izvoriste simbol selekcije. Simbol komentara daje dodatno objasnjenje simbola sa kojim je povezan. Preporuka je da se pocetni terminalni simboli i ulazno/izlazni simboli obavezno komentarisu. Simbol konekcije omogucava konekciju vise ulaznih tokova u jedan izlazni tok. Takodje, sluzi za prenos toka na sledeci crtez algoritma kada je obavezno postaviti unutar simbola jedinstven identifikator. Blok dijagram algoritma (podalgoritma) se formira povezivanjem predstavljenih simbola pomocu tokova. Dijagram strukture programa Nesi-Snajdermanove simbole cine sledeci graficki simboli: Sekvenca procesa (operacija) predstavlja sekvencijalno izvrsavanje procesa. Redosled izvrsavanja procesa je od gore ka dole, odnosno s leva u desno. Selekcija IF THEN ELSE oznacava selektivno izvrsavanje procesa P-da (ako je uslov ispunjen) i P_ne (u suprotnom). Suzavanjem NE dela simbola dobija se IF THEN selekcija. Selekcija CASE OF oznacava selektivno izvrsavanje vise od dva procesa (P_a, P_b,... , P_x) za vrednosti uslova (A, B, ... , X). iteracija sa izlaskom na vrhu (WHILE) oznacava nijedno, jedno ili vise ponavljanja izvrsenja tela iteracije dok god je uslov ispunjen. iteracija sa izlaskom na dnu {REPEAT UNTIL) oznacava jedno ili vise ponavljanja izvrsenja tela iteracije dok uslov ne postane ispunjen. Poziv potprocesa oznacava poziv podalgoritma. Pseudokod, ili jezik za razvoj programa je tekstualna notacija za opis algoritama. Pseudokod, za razliku od grafickih notacija, omogucava kompaktniji opis strukturiranog algoritma ukljucujuci i opis koristenih promenljivih. Ovo poslednje se moze navesti kao ozbiljna zamerka grafickim notacijama, osim u slucaju blok-dijagrama koji dozvoljavaju komentarisanje uglavnom izlaznih i ulaznih promenljivih. Pseudokod se sastoji od iskaza govornog jezika i upravljackih struktura koji zajedno definisu logiku softvera. 5.Osnovi strukturiranja podataka Klasifikacija struktura podataka moze biti uradjena po sledecim kategorijama: 1. nivo apstrakcije, gde se pravi razlika prema nivou apstrakcije koji je upotrebljen za predstavljanje strukture. Prema nivou apstrakcije, strukture podataka mogu se podeliti na sledece tri potkategorije krecuci se od apstraktnijih ka konkretnijim: logicke strukture podataka su strukture koje se posmatraju na najvisem apstraktnom nivou, nivou matematickih objekata, koji u potpunosti ostavlja nevaznim da li ce se ta struktura implementirati na digitalnom racunaru ili nekom drugom uredjaju, programske strukture podataka su strukture koje se pojavljuju na apstraktnom nivou programskog jezika. Kako ce se to videti u poglavljima koja opisuju programske jezike Paskai i C, ista logicka struktura se da realizovati na razlicite nacine zavisno od mehanizama odabranog programskog jezika. Nije neuobicajeno da se ista logicka struktura drugacije zapisuje na razlicitim programskim jezicima, na primer nizovi na programskim jezicima Paskai i C. fizicke strukture podataka su strukture koje odgovaraju fizickoj organizaciji podataka u samom racunaru, konkretnije u sekvencijalno organizovanoj memoriji bilo da se radi o lokacijama poluprovodnicke memorije, cilindrima i sektorima magnetnih memorija ili stazama i biokovima optickih memorija. 2. tip relacije, gde se posmatra posebno svaka relacija koja stoji izmedu podataka date strukture, tako da se razlikuju:linearna struktura, podrazumeva strukturu u kojoj svaki podatak ima tacno jednog prethodnika i jednog sledbenika. Primer linearne strukture je niz brojeva gde se zna da elementu sa indeksom i prethodi element sa indeksom i-1 a sledbenik je element sa indeksom i + 1. Ovde se uglavnom proucavaju linearne strukture podataka. struktura tipa stabla, podrazumeva strukturu gde svaki podatak ima tacno jednog prethodnika i nijednog, jednog ili vise sledbenika. mrezna struktura, podrazumeva strukturu gde svaki podatak moze imati proizvoljan broj prethodnika i sledbenika. 3. mesto memorisanja, gde se posmatra medij na kome se memorisu podaci organizovani datom strukturom. Mesto memorisanja odreduje sledece dve potkategorije struktura: strukture na masovnoj memoriji, podrazumevaju strukturu koja se memorise na masovnoj, sekundarnoj, memoriji koja je uglavnom zasnovana na magnetnim ili optickim medijima. Strukture na masovnoj memoriji sluze uglavnom za trajno memorisanje podataka, dok je sprovodenje ozbiljnije obrade podataka u ovim strukturama veoma retka jer za to sluze operativne strukture koje daju daleko efikasnije rezultate, delimicno zasiugom podrazumevajuceg tipa memorijskog medija. operativne strukture, podrazumevaju strukturu koja se memorise u operativnoj, poluprovodnickoj, memoriji racunara. Kako je namena operativne memorije cuvanje instrukcija, operanada i (medju)rezultata koji su potrebni procesoru za tekuce izvrsavanje programa, zakljucuje se da je i namena operativnih struktura da omoguce efikasan i direktan rad nad njenim podacima, sto implicira i naziv ove strukture podataka.

Cobol. mašinske instrukcije. korektnije procesora. gornjim ili najvisim. nego su imali akronimske nazive. Integralan opis indeksiranih struktura dat je sledecim stavovima: -svaki element. 10.. -uklanjanja elementa sa levog. -Memorija zauzeta cvorom koji se uklanja. pozicija elementa u indeksiranoj strukturi je oznacena svojim indeksom. toliko tabela ima kolona. Operacija je destruktivna jer se njenom primenom povecava broj elemenata reda pri cemu se mora voditi racuna o memorijskom prostoru koji je dodeljen redu. RED (QUEUE) red je linearna struktura podataka ciji se terminal gde se vrsi dodavanje novog elementa naziva krajem. -OUTQUEUE.U siucaju da na steku nema elemenata. skraceni ili prosireni celobrojni i realni skalari. arhitektonskog projektovanja ili samog razvoja algoritma. 3. gde broj dimenzija definise broj klasa podataka ukljucenih u listi Kruzna lista. Konstrukcije ovih jezika.Sekvencijalni prolazak kroz strukturu.6.jezici nezavisni od hardvera računara. imperativni jezici. u sebi moze cuvati jednu od dve vrednosti.Dinamicke strukture Dinamicke strukture podataka su veoma mocno sredstvo za organizovanje podataka u operativnoj memoriji racunara posto ne namecu ogranicenja na tri osnovne operacije nad strukturama. Primeri ovakvih jezika su jezici za generisanje izveštaja. 0 i 1. asembler lntelovih procesora. Programski jezici četvrte generacije . Dinamicke strukture se dele prema tipu reiacije koja se uspostavlja u strukturi na sledece potklase: lista. danas veoma retki. ima jednog sledbenika.Testiranje algoritama Testiranje algoritama moze ukazati na greske koje su posiedica omaski tokom specifikacije zahteva. Testiranje algoritma treba da ukaze na greske koje su vidtjive na nivou algoritma. odakle potice i naziv ove klase struktura. obezbeduje izvrsavanje neke aktivnosti nad svakim elementom strukture 2. N-arno stablo podrazumeva eksplicitnu specifikaciju direktno podredenih cvorova tokom defmisanja stabla. logicku istinu ili neistinu. bez obzira u kojoj fazi razvoja se nalazi njihov izvor. -dodavanje elementa je moguce na kraju sekvence. Sekvenca se prvenstveno koristi kao mehanizam organizovanja podataka na masovnim. Alfabet ovih jezika je značajno proširen dostignuvši alfabet engleskog jezika. na prvu poziciju dodaje se kolona koja nosi oznaku naredbe algoritma koja je prouzrokovala promenu predstavljenu datim redom tabele. 3. odnosno desnom terminalu deka.Skalari Skalar je najjednostavnija operativna struktura podataka. Predstavljena organizacija cvora dinamicke strukture omogucila je da se operacija dodavanja novog elementa sprovodi kroz sledece korake: -Od operativnog sistema se zatrazi kompaktni. generatori aplikacija i slično. memorija- ma bilo magnetnog bilo optickog medija. Podstablo obuhvata sve podredene cvorove nekog cvora stabla. a sprovodi se pomocu jedinstvenog indeksa (pozicije) elementa u strukturi. direktno su izvršive od strane računara. skalar predstavija velicinu koja je potpuno odredjena vrednoscu do koje se dolazi navodjenjem identifikatora skalara. 2. nad njima definisane sve tri operacije. -pristup svakom elementu je direktan i proizvoljan. Kako njegov naziv implicira. obezbeduje pronalazenje svih onih pojava tipa entiteta koji imaju atribute specifikovanih vrednosti. -svi elementi strukture su istog tipa -indeks pozicije elementa moze da sadrzi neku semanticku vrednost Tri operacije primenljive na svaku klasu struktura podataka: 1. i sasvim proizvoljan. odnosno nema ili ima jednog ili vise sledbenika. za razliku od prvih. -POP. Lista je dinamicka struktura koja je linearna po svakoj relaciji uspostavljenoj medju njenim podacima.pristup elementu strukture je direktan. Aigol. Programski jezik treće generacije . -operacije dodavanja i uklanjanja nisu definisane zbog staticke prirode broja elemenata strukture. Generacija jezika koji su u potpunosti okrenuti ljudima sa minimalnim programerskim iskustvom i specifičnim oblastima primene.stack. -PUSH. Koliko algoritam ima promenijivih (parametara). kako njegov engleski naziv kaze. drugim recima. pristupa elementu na pocetku reda i vraca njegovu vrednost uklanjajuci ga iz reda. sekundarnim. Ova generacija je programske jezike načinila pristupačnijim širem krugu ljudi. 3GL. u sebi cuvaju celobrojne ili realne vrednosti koje su po svom opsegu redukovani ili prosireni u odnosu na opseg vrednosti standardnog celobrojnog ili realnog skalara. Tipični predstavnici ove klase jezika su Fortran.Indeksirane strukture zajedno sa skalarima su najstarije strukture podataka koriscene u racunarstvu. Klasifikacija stabla na dve velike grupe: Uopsteno stablo podrazumeva implicitnu specifikaciju direktno podredenih cvorova svakog cvora. iza poslednjeg elementa. a suprotni terminal je pocetak reda jer se tamo obavljaju operacije pristupa i uklanjanja elementa. ima jednog prethodnika. 8. postoje operacije: -pristup elementu na levom. drugim recima pristupnekom elementu nije uslovljen prethodnim pristupanjima drugim elementima. ima najslabije restrikcije na primenu operacija nad elementima ove linearne strukture. -INQUEUE. Programski jezici druge generacije . 11. upita nad bazom podataka (SQL . staticke strukture podataka mogu klasifikovati na sledece dve potklase: 1. a gde kraj. znakovni skalar. 9. su uskospecijaiizovani profesionalci koji moraju dobro poznavati hardver računara do najsitnijih detalja.Trazenje. bez restrikcija i brzo pristupati bilo kom elementu strukture.STEK (STACK) Karakteristika stek strukture podataka je da su sve operacije definisane nad prvim. Operacija je destruktivna jer se njenom primenom smanjuje broj elemenata na steku pri cemu element koji je bio do najviseg postaje element na vrhu steka. Nad nepraznim redom definisane su sledece operacije: -FRONT. Cvor strukture se realizuje kao slog sa sledece dve grupe elemenata: -informacioni element sloga cvora dinamicke strukture nosi podatak dinamicke strukture -pokazivacki element sloga cvora dinamicke strukture nosi informaciju o susednom cvoru po datoj relaciji. Postoji nekoliko indicija za upotrebu indeksirane strukture kao sto su: -elementi strukture se ne moraju dodavati ni uklanjati. Zato se cesto kaze da stek struktura po svojoj organizaciji podseca na magacin ili plast odakle je dobio i naziv . pristupa elementu na vrhu steka i uklanja ga sa steka. . A2. Proširena su i pravila za sastavljanje jezičkih konstrukcija na način koji je sličan čovekovom rešavanju problema. organizuje podatke po vise relacija u vise dimenzija. unapređeni jezici prve generacije tako da su postali razumljiviji i za ne tako uskostručne ljude. poseduju alfabet od samo dva simbola. odnosno parametara.Pregled razvoja programskih jezika 1GL. Siromašan alfabet je proširen slovima i svim dekadnim ciframa. uglavnom se radi o jednostruko spregnutim listama Stablo je nelinearna dinamicka struktura podataka gde svaki cvor ima jednog i samo jednog prethodnika. sekvence operacija i upravljačke konstrukcije. -uklanjanje je moguce samo nad svim elementima sekvence odjednom. Svaka kolona tabele sadrzi zapise o promenama vrednosti jedne promenljive. U siucaju da se izvrsi operacija PUSH nad stekom koji je potpuno ispunio dodeljeni memorijski prostor. -U pokazivacki deo cvora smestaju se vrednosti pokazivaca koje zadovoljavaju uspostavljene relacije u strukturi Operacija uklanjanja cvora dinamicke liste sprovodi se obrnutim redosledom od operacije dodavanja kroz sledece korake: -U pokazivacke delove susednih cvorova prebacuju se vrednosti pokazivackog dela cvora koji se brise kako bi se ocuvala uspostavljena relacija. Visina stabla je broj cvorova na najduzem putu stabla. ili multilista. elementom koji se naziva i vrh steka. 2. 7. i to: -pristup je moguc bilo kom elementu sekvence. a ko je prethodni cvor po datoj relaciji Visestruka lista. ovi jezici podrazumevaju prevodioce i/ili interpretere čime postaju potpuno nezavisni od hardvera računara za razliku od prethodnih generacija. nemoguce ga je menjati. sem poslednjeg. dodavanje i uklanjanje je moguce izvrsiti nad svakim elementom strukture bez obzira na njegovu poziciju u strukturi. odnosno sa sto manje gresaka (error-free).mašinski kod. Operacija je destruktivna jer se njenom primenom povecava broj elemenata steka pri cemu se mora voditi racuna o memorijskom prostoru koji je dodeljen steku. Ovako se ostavlja mogucnost veoma dinamickog organizovanja podataka za pracenje slozene dinamike entiteta. -potrebno je direktno. Pristup. uz znatne restrikcije njihove upotrebe. aii za razliku od drugih. Tako.simbolički asembler. ali sa istim pravilima sastavljanja konstrukcija kao i u prvoj generaciji sa razlikom što eIementi jezičkih konstrukcija nisu binarno kodirani.. Na taj nacin je omogucena dodatna optimizacija memorijskih resursa.SEKVENCA (SEQUENCE) Sekvenca. sem prvog.Tipovi lista: Jednostruko spregnuta lista organizuje podatke po jednoj relaciji gde pokazivacki deo cvora liste ima informaciju samo o sledecem cvoru po toj relaciji Dvostruko spregnuta lista organizuje podatke po jednoj relaciji gde pokazivacki deo cvora liste ima dve informacije: ko je sledeci. PaskaI i C. pristupa elementu na vrhu steka i vraca njegovu vrednost bez destrukcije sadrzaja steka. Razlikuju se sledece cetiri potklase poludinamickih struktura: 1. ali krecuci se od elementa kome se prethodno pristupalo. 4GL. -dodavanja elementa na levom. Novonastale vrednosti se zapisuju u odgovarajucu tabelu koja sada ima ulogu operativne memorije. istovremeno. obezbedjuje ispitivanje da li se u strukturi nalazi pojava tipa entiteta koja ima atribute specifikovanih vrednosti. Operacija je destruktivna jer se njenom primenom smanjuje broj elemenata reda pri cemu element koji je bio drugi postaje element na pocetku reda. sem najviseg cvora koji nema nadredjenog i naziva se koren stabla. Tipovi skalara: celobrojni skalar realni skalar logicki skalar. prema poziciji. smesta na vrh steka novi element pri cemu se element koji je do tada bio na vrhu steka spusta na nizu poziciju. u sebi cuva jedan znak iz skupa znakova koji su prepoznatljivi od strane racunarskog sistema. vraca se operativnom sistemu kao slobodna memorija cime se nepovratno gubi informacioni sadrzaj cvora koji se brise. . pristupa elementu na pocetku reda i vraca njegovu vrednost bez destrukcije sadrzaja reda. desice se prekid tipa “stack overflow”.problem orijentisani jezici. -Smestanje podataka u informacioni deo cvora. Algoritam se izvrsava tako sto se po toku algoritma interpretira svaka naredba nad test podacima. Svaki element staticke strukture podataka je okarakterisan svojom pozicijom gde se zavisno od nacina oznacavanja pozicije elementa. kako bi se faza kodiranja i testiranja zapocela detaljnom specifikacijom softvera koja je maksimalno korektna. odnosno desnom terminalu deka. N]. Primer jezika ove generacijeje ASM86. broj elemenata strukture je nepromenljiv. Red stabla je najveci broj direktno podredenih cvorova nekog cvora.Staticke strukture Osnovne karakteristike statickih struktura su: 1. odnosno desnog terminala deka.standard query language). nadogradjuje strukturu reda mogucnoscu obavljanja svake operacije na oba terminala deka cime se dovodi u pitanje gde je pocetak. Kako naziv strukture indicira. 4. Osnovne karakteristike stabla su: Put stabla reda N je niz cvorova Ai. Programskijezici prve generacije . Nad stekom su definisane sledece operacije: -TOP. Ovaj proces se naziva prelancavanje ili prevezivanje cvora.Pretrazivanje. kao struktura podataka. algoritma. DEK (DOUBLEENDED QUEUE) Struktura podataka klase dek. slobodni memorijski prostor koji je dovoijan za cuvanje svih elemenata cvora strukture. stablo i mrezna struktura.. neoznaceni celobrojni ili realni (skraceni ili prosireni) skalar je slican prethodno navedenim (oznacenim) skalarima s razlikom da se u njemu mogu cuvati samo pozitivne vrednosti. Korisnici ovih jezika. An+1 takav da iz cvora Aj postoji grana koja vodi u cvor Ai+1 za svako i iz intervala [1. Radi lakseg pracenja dogadaja koji su tabelom predstavljeni. smesta na kraj reda novi element pri cemu do tada poslednji element postaje pretposiednji. -svaki element. brisanje sekvence. POP operacija je definisana samo nad nepraznim stekom jer se u suprotnom desava prekid tipa “empty stack”. Ocigledno da cvor dinamicke strukture ima onoliko pokazivackih elemenata koliko je relacija uspostavljeno u strukturi.Poludinamicke strukture Poludinamicke strukture podataka se nalaze negde izmedu statickih i dinamickih struktura podataka jer su. 2GL. Ova klasa jezika podrazumeva najviši nivo apstrakcije pa se stoga nalazi na najvišim koordinatama sintaksno/semantičkog prostora. operacija vraca poseban indikator “empty stack”.operacije dodavanja i uklanjanja nisu definisane jer je broj eiemenata u strukturi konstantan.

predstavlja]u osnovne dimenzije svakog programskog jezika.određene ključne riječi (naredbe ili dijelovi naredbi). 18.Programsko zaglavlje procedure koje počinje službenom rečju procedure.Osnovni tipovi podataka 1. Razlikuju se: -Osnovni tip: real.NEPROCEDURALNI-osnovna karakteristika je mogucnost apstrahovanja algoritma za resenja problema Neroceduralni jezici su:PROLOG. 6) ODREDITI NEKI OD PROGRAMSKIH ZAHTEVA I REALIZOVATI GA NA PSEUDOJEZIKU KORISTECI PRI TOME JEDINO UPRAVLJACKE STRUKTURE IZ ODREDJENE USVOJENE BAZE.Nestrukturirano grananje lzraz nestrukturirano grananje se odnosi na upravljanje tokom izvrsavanja programa direktnirn preusmeravanjem toka pomocu goto naredbe i sistema labela. u svetu računarskih programa je to memorijska adresa. KARAKTERI.obavezno je deklariranje svih varijabli koje se koriste u programu 2. uzimaju vrednosti svih simbola kodiranih ASCII tabelom. 2. takav parametar biće prenesen tehnikom prenosa po referenci.PROCEDURALNI-osnovna karakteristika je visoka algoritmicnost. definiše na kraju. za neoznačene brojeve (skup prirodnih brojeva uključujući nulu). SUSTINA METODE PREDSTAVLJA POSTEPENI PRELAZ OD OPSTEG OPISA BUDUCEG PROGRAMA KA NJEGOVOJ REALIZACIJI. i comp. kao odgovor na opravdane primedbe slabog rukovanja sekvencama karaktera.pokazivački tip kao osnova za gradnju dinamickih struktura podataka.Procedure i funkcijski potprogrami mogu pozivati sami sebe tj. 3. tačno i netačno.24.pitanje) 22. dvostruki opseg. Klasifikacija programskih jezika Postoje 4 vrste: 1.C++. Podoblasni tip se definiše minimaSnom i maksimalnom vrednošću opsega. cetvorostruki opseg. Sve subordinirane procedure (funkcije) moraju biti definisane pre definicije njima superordinirane procedure (funkcije). apsolutna vrednost. rekurzivno 15.Slogovi zajedno sa višedimenzionalnim skaiarima su najpoznatije statičke strukture podataka. Boolean) vrednostima. Važnoje napomenuti da se ovom tehnikom ne mogu prenositi neposredni operandi. -Skraćeni osnovni tip: single. karakter. s tim da započinje službenom rečju function a završava se deklaracijom tipa koji će funkcija vratiti svojim nazivom. a to su:niz znakova – string. 23. Formalni parametar se definiše svojim identifikatorom i tipom vrednosti koju prenosi. Nabrojani tip omogućava programeru definisanje vrednosti koje novonastali tip pokriva.DELFI. 2) FORMULISATI OSNOVNU IDEJU ALGORITAMSKOG RESENJA.pitanje) 21.skupovi .Važno je naglasiti da se u telu funkcije mora barem na jednom mestu dodeliti vrednost identifikatoru funkcije koja će biti na kraju prosledjena kao izlaz. Parametri se mogu koristiti unutar tela procedure i funkcije kao obične lokalne promenljive bez obzira na tip parametra i tehniku kojom su preneseni osim ako nije reč 0 netipiziranom parametru. 16.Aritmeticki i logicki izrazi Sračunavanje aritmetičkog izraza rezultuje aritmetičkom vrednošću (broj iz skupa celih ili racionalnih brojeva) dok sračunavanje logičkog izraza rezultuje jednom od dve logičke vrednosti (tacno ili netačno).uspostavljanje struktura koje maksimalno pokrivaju dinamiku i statiku reainog sveta. “rezervirane” su i ne smiju se koristiti u druge svrhe 3. Ovako definisan parametar se prenosi tehnikom prenosa vrednosti pa se i naziva parametar vrednosti. 4) IZDVOJITI POGODNU MANJU CELINU I RAZLOZITI JE NA DETALJNIJE PROGRAMSKE ZAHTEVE. Onda prevede drugu. Na kraju izvršavanja. 4.Glavni programski blok procedure Nekoliko puta navedeno pravilo Paskala da sve što se u nekom trenutku upotrebi. pod aritmetičkim izrazom u programskom jeziku Paskal podrazumeva se svaki izraz koji ne sadrži iogičke operatore.Procedure i funkcije Procedura je mehanizam kojim Paskal implementira podalgoritam na način koji je skoro identičan samom podalgoritmu a posebno njegovom zapisu u Ada-PDL pseudo kodu.polja – array. Logički operatori rezultuju logičkim (bulovim.Selekcija (1. Prva podsekcija je programsko zaglavlje procedure za kojom sledi podsekcija globalnih podataka (konstante. Zatim se navodi sekcija lokalnih podataka i na kraju je programski blok funkcije kako je to definisano i formom Paskal programa. IZVODI SE TAKO STO SE CVOROVI-PROCESI.12. dok se specifične operacije izvršavaju pozivanjem standardnih Paskal funkcija i procedura (kvadrat.String tip je uveden u programski jezik Paskai kasnije. Programski jezik Paskal podrazumeva pod logičkim izrazom bilo koji izraz koji obuhvata barem jedan logicki operator. za označene brojeve. tipove i labele. BROJEVI U POKRETNOM ZAREZU uzimaju vrednosti iz skupa racionalnih brojeva čije vrednosti mogu biti zapisane u razlomljenom obliku ili eksponencijalnom obliku.char 4. i extended. WHILE. Posle deklaracije slede sekcija globalnih podataka. maksimalno 256. Veoma važna osobina Paskal procedure je mogucnost potpunog zatvaranja svih pripadajućih (pot)procedura unutar superordinirane procedure.KOMPAJLER. Vrednosti tipa su raziičiti identifikatori razdvojeni zarezima unutar malih zagrada. mora biti pre tog trenutka i definisano.2. jezika prve i druge generacije i nije potpuno u skladu sa strukturiranim pristupom programiranju . njegov zapis zauzima šest bajtova memorije. 5. -Prosireni osnovni celobrojni tipovi: longint.zatim je izvrsava. ali se mora reći da se ovaj lip koristi I za implementaciju drugih struktura na fizičkom nivou.INTERPRETATOR-usmeni prevodilac(prvo prevede recenicu. Aritmetičke operacije se primenjuju u izrazima nad operandima rezuitujuci aritmetičkim vrednostima.JAVA.file of 5.Prema oblati primene: 1. što je funkciju učinilo intuitivno bližom čovekovom razmišljanju pri rešavanju nekog problema pomoću računara. U praksi.logički – boolean.. pa je izvrsava) Oni su translatori. Ovako definisan formalni parametar se naziva parametar imena pošto se prenosi njegovo ime. i word. NA POCETKU DATI DEFINICIJU POTREBNIH STRUKTURA PODATAKA. Stoga se glavni program. razlikuju se dve tehnike prenosa parametara: 1. GRAF TOKA PROGRAMA SISTEMATSKI PREVEDE U OBLIK KOJI JE STRUKTUIRAN MEHANIZMOM IDENTICNIM ONOM KOD DOKAZA TEOREME. Sintaksa jezika (pravopis) jesu pravila koja definišu dozvoljene sekvence elemenata alfabeta obiikujući tako razne konstrukcije jezika bez ulaženja u njihovo značenje. tipovi. označava početak definicije procedure. potom definicije internih procedura i funkcija.set of. METODA SUKCESIVNE DEKOMPOZICIJE: OVA METODA SE KORISTI ZA SAMU IZRADU PROGRAMA. mogu se precizno planirati akcije koje se trebaju izvrsiti Proceduralni jezici su: PASCAL. koje novonastali tip pokriva. 2.Prema nacinu prevodjenja: 1.Standardni tipovi podataka su:realni – real.Jedina opravdana upotreba nestrukturiranog grananja je u slučajevima kada bi se time značajno skratilo vreme izvršavanja programa.Prema nacinu resavanja problema 1. 17. dok se svi ostali izrazi smatraju logičkim.Prenos po vrednosti podrazumeva prenos vrednosti parametara preko steka u oba smera zavisno od tipa.11. Semantika jezika jeste njegova druga dimenzija koja definiše značenje (efekte) teksta koji je konstruisan u skladu sa sintaksom jezika. ne prenose se svi ulazni parametri po vrednosti jer bi u slučaju da se radi o parametrima koji nisu skalari bio zauzet značajan memorijski prostor steka. jedan od takozvanih “generičkih tipova” U nestandardne tipove programskog jezika Paskal se ubrajaju: 1. 2.Sintaksa i semantika programskog jezika Pascal Sintaksa i semantika. TE DA SE NE ZAHTEVAJU NAKNADNE INTERVENCIJE.Skup. -Prošireni osnovni tipovi: double. Osnovne aritmetičke operacije se predstavljaju simbolima koji su nasleđeni iz matematike. 5) PONAVLJATI PRETHODNI KORAK DOK SE NE DOBIJU ZAHTEVI DOVOLJNO JEDNOSTAVNI DA SE MOGU REALIZOVATI KAO PROGRAMSKI SEGMENTI NA NEKOM PSEUDOJEZIKU. dvostruki prostor i veća preciznost.VISUAL BASIC. Važno je istaći značaj redosieda postavijanja i preuzimanja vrednosti (adresa) sa steka jer bi svako odstupanje prouzrokovalo nepravilan prenos parametara. logički tip. pa se ona stoga rado koristi za implementaciju podalgohtma. Superordinirani modu! postavi vrednosti ulaznih parametara na stek i pozove se subordinirani koji sa steka preuzima vrednosti parametara. 3) NAPISATI OSNOVNE KOMPONENTE PROGRAMSKOG RESENJA U VIDU NIZA KOMENTARA. promenljive i labele) procedure. .pismeni prevodilac(prvo prevede sve naredbe.Programski jezik Pascal-osnovne karakteristike 1. 24. slika 3. LOGIČKE VREDNOSTI uzimaju vrednosti Bulove algebre.LISP 4. ORGANIZOVAN TAKO DA SE U FAZAMA VRSI SVE VECA DETALJIZACIJA. kao superordiniran svim ostalim modulima.Postoje i složeni ili strukturirani tipovi podataka.Osnovne upravljacke strukture Pascal-a 19. koje su razdvojene sa dve tačke. npr. I PRI TOME POVECAVATI NIVO DETALJISANJA KAKO ZA PROGRAME TAKO I ZA PODATKE KOJI PROGRAM OBRADJUJE. mada se slabo koristi.Pristup ovoj promenljivoj je moguć samo unutar procedure. Naravno. mehanizam izlaznih parametara poseduje i funkcija. slika 3. NA KRAJU DOBIJENI PROGRAM NA PSEUDOJEZIKU PRENETI U PROGRAM NA NEKOM OD KONKRETNIH JEZIKA 14.C++.Sekvenca(1.univerzalne 2.JAVA Stepen bliskosti programskog jezika odredjuje se po tome kakva je njegova veza sa hardverom racunara. iIi izrazi kao vrednosti parametara pošto oni nemaju memorijsku adresu.datoteke . Nestandardni skaiarni tipovi su najjednostavniji Paskalski mehanizam za gradnju složenijih tipova. trigonometrijske funkcije i druge operacije).DELFI 2. Ovakav način upravljanja je nasleđen iz nestrukturiranih programskih jezika Fortran. na primer spregnuta realizacija steka ili dinamička tabela. čime se obezbeđuje jedinstvo podataka i instrukcija. Mehanizam funkcije je identičan mehanizmu procedure s tim da postoji mogućnost vraćanja izlazne vrednosti funkcije i preko identifikatora funkcije. Slogovi dopunjuju višedimenzionalne nizove mogućnošću zatvaranja različitih tipova u jedan tip. zapis zauzima četiri bajta memorije uz skoro isti opseg kao tip real ali sa manjom preciznošću. Originatni Paskal je raspolagao mogućnošću definisanja pakovanog niza karaktera kako bi tadašnji računarski sistemi što manje rasipali svoju operativnu memoriju smeštajući više ASCII bajta u memorijske reči koje su bile dugačke i do 60 bita.cjelobrojni – integer.BASIC. nabrojani I podoblasni). znakovni tip.Procedura može imati i interne konstante. kvadratni koren. gde se za svaku ponavlja ova forma zapisa. unutar celobrojnog. Deklaracija funkcije je identićna deklaraciji procedure. Zatim je ostavljena mogućnost ugnježdavanja direktno subordiniranih procedura i funkcija. za označene brojeve.Nabrojanitip.specijalizovane 13. za neoznačene brojeve.Standardni skalarni tipovi CELI BROJEVI uzimaju vrednosti iz skupa celih brojeva: -Osnovni tipovi: integer. -Skraćeni osnovni celobrojni tipovi: shortint. skoro trostruki prostor i najveća preciznost. subordinirani modui postavlja na stek vrednosti (uiazno)izlaznih parametara i izvršavanje se vrati na superordinirani modu! koji dalje raspoiaže vrednostima sa steka.pitanje) 20. Funkcija Mehanizam funkcija nasleden je iz matematike. nego adresa memorijske lokacije gde se ta vrednost nafazi.Podoblasni tip. istina {true) ili neistina (false).ASSEMBLER -jezici visokog nivoa:PASCAL. Nabrojani tip se definiše u slučajevima kadaje potreban mali skup vrednosti koje se ne mogu na razumljiv način (bez kodiranja) predstaviti standardnim skaiarnim tipovima Podoblasni tip omogućava definisanje opsega (intervala) vrednosti koje novonastali tip pokriva.znakovni . IF. sekcija 2. Formu definicije ove procedure redom čine sledeći elementi: 1.Metode za razvoj strukturiranih programa METODA ASHCROFT-MANNA ZA STRUKTUIRANE PROGRAME: OVA METODA BAZIRA SE DIREKTNO NA STRUKTURNOJ TEOREMI. 3. važi i za procedure (funkcije). originalni Basic. zatim sledi identifikator procedure i na kraju lista formalnih parametara unutar malih zagrada i separator naredbi. Ako se ispred identifikatora formainog parametra navede službena reč var.Prema stepenu bliskosti programskih jezika arhitekturi jezika delimo ih na: -jezici niskog nivoa:MASINSKI JEZIK. 2. i 3.. A SA CILJEM DA SE OBEZBEDI DA PRIMARNI OBLIK PROGRAMA BUDE VEC STRUKTUIRAN. ekvivalentno algoritmu. i byte. 3.1.Prenos parametara Generalno. BEGIN. vrednosti nekog ordinalnog tipa (svi celobrojni tipovi. odnosno celi tekst i tek ih onda izvrsava) 2. znakovnog ili nabrojanog tipa Skup je intuitivan mehanizam za definisanje više. 7) SISTEMSKI PONAVLJATI PRETHODNI KORAK DOK JE MOGUCE.slogovi – record. koji su međusobno razdvojeni dvotackom. CVOROVI-PREDIKATI I OKOLINA OZNACE BROJEVIMA I UVEDE USMERIVACKA PROMENLJIVA A ZATIM SE ODG. POSTUPAK SE SASTOJI OD SLEDECIH KORAKA: 1)FORMULISATI PROBLEM POGODAN ZA RACUNARSKO PODESAVANJE. samo 7-8 cifara. THEN.Prenos referencom podrazumeva da se ne prenose vrednosti parametara.Iteracija (1.Sekcija podataka procedure. 2.