UNIVERZITET FAKULTET INFORMACIONIH TEHNOLOGIJA

Size: px
Start display at page:

Download "UNIVERZITET FAKULTET INFORMACIONIH TEHNOLOGIJA"

Transcription

1 UNIVERZITET FAKULTET INFORMACIONIH TEHNOLOGIJA #include <stdio.h> #include <stdlib.h> void procarrays(const int* a,const in int j; double s; for(j=0;j<n;j++) c[j]= a[j]+b[j]; for(s=0,j=0;j<n;j++) s*= c[j]*a[2*j+ NOVI SAD - SREMSKA KAMENICA 2015.

2 Dr Dušan T. Malbaški ALGORITMI I STRUKTURE PODATAKA Recenzenti Dr Miroslav Hajduković, red. prof., Fakultet tehničkih nauka, Novi Sad Dr Aleksandar Kupusinac, docent, Fakultet tehničkih nauka, Novi Sad Izdavač Univerzitet Educons Fakultet informacionih tehnologija Vojvode Putnika 87, Sremska Kamenica Za izdavača Prof. dr Aleksandar Andrejević CIP - Каталогизација у публикацији Библиотека Матице српске, Нови Сад (075.8) (075.8) МАЛБАШКИ, Душан Algoritmi i strukture podataka [Elektronski izvor] / Dušan T. Malbaški. - Sremska Kamenica : Univerzitet Educons, Fakultet informacionih tehnologija, elektronski optički disk (CD-ROM) : tekst, slika ; 12 cm Bibliografija. ISBN a) Алгоритми b) Структуре података COBISS.SR-ID

3 PREDGOVOR Računar, kao sistem, funkcioniše tako što izvršava programe, odnosno radi šta mu se kaže. Program, pak, kao što piše u naslovu čuvene knjige Niklausa Virta ima samo dve komponente: algoritam i strukturu podataka. U zavisnosti od programske paradigme, algoritam i struktura podataka mogu biti jasno razgraničeni, ali se mogu i prožimati. Svejedno, uvek su tu. Kao što se ne može zamisliti fizičar koji ne zna Njutnove zakone, tako se podrazumeva da svako ko želi da bude informatičar mora da raspolaže iscrpnim poznavanjem fundamenta - algoritama i struktura podataka. Ovaj udžbenik namenjen je prvenstveno studentima Fakulteta informacionih tehnologija Univerziteta EDUCONS, kao literatura za istoimeni predmet. Namenjen je i svakom drugom ko želi da stekne, odnosno, proširi znanje iz ovih oblasti. Knjiga se sastoji iz dva dela. U prvom se razmatraju osnovi teorije i analize algoritama, dok se drugi bavi osnovnim strukturama podataka. Deo o algoritmima oslanja se na literaturnu jedinicu 17 (deo koji je pisao autor) uz dopune i izmene. Kompletan materijal zasnovan je na korišćenju programskog jezika C, čije poznavanje predstavlja preduslov za razumevanje izloženog. U Novom Sadu, januara Autor

4 SADRŽAJ Predgovor... 3 Sadržaj... 4 DEO I: OSNOVI TEORIJE I ANALIZE ALGORITAMA 1. Uvod Empirijska definicija algoritma Sintetička definicija algoritma Algoritamski sistemi Tjuringove mašine Normalni algoritmi Markova Analiza algoritamskih struktura Graf toka programa Strukturna teorema Strukturna teorema i algoritamski sistemi Metoda sukcesivne dekompozicije Složenost (kompleksnost) algoritama...41 DEO II: STRUKTURE PODATAKA 1 Osnovni pojmovi Definicija strukture podataka Operacije nad strukturama podataka Klasifikacija struktura podataka Niz Fizička realizacija niza Fizička realizacija statičkog niza Metoda linearizacije Fizička realizacija dinamičkog niza Sortiranje niza Metoda izbora (Selection Sort) Metoda izmene (Standard Exchange Sort, Bubble Sort) Metoda umetanja (Insertion Sort) Quicksort...77

5 2.3. Redosledna obrada niza Slog i tabela Slog Tabela Linearno traženje Binarno traženje Redosledna obrada tabele Rasuta ili heš tabela Fizička realizacija heš tabele Kolizija ključeva i rukovanje sinonimima Analiza otvorenog adresiranja Analiza lančanja Poludinamičke strukture Stek Fizička realizacija steka Prevođenje izraza Programski stek Rekurzija Red Sekvencijalna realizacija reda Spregnuta realizacija reda Red sa prioritetima Ukratko o primenama reda Dek Sekvenca Fizička realizacija sekvence Sortiranje datoteke Liste Jednostruko spregnuta lista Jednostavna lista Jednostruko spregnuta lista sa ključevima Sortiranje jednostruko spregnute liste Dvostruko spregnuta lista Dvostruko spregnuta lista sa navigacijom...163

6 Obrada dvostruko spregnute liste Demonstracioni program Multilista Stablo Orijentisano stablo Stablo kao struktura podataka N-arno stablo Fizička realizacija n-arnog stabla Binarno stablo Binarno stablo pristupa Balansiranje binarnog stabla AVL stablo Stohastičko stablo Uopšteno (generalisano) stablo Fizička realizacija uopštenog stabla Literatura...238

7 Dušan Malbaški - Algoritmi i strukture podataka 7

8 1. UVOD Definisati pojmove nikad nije lako. Što je pojam bliži fundamentalnom, definisati ga sve je teže i teže. Šta je skup? A broj? Tačka? Lepota? Pravda? O definiciji vremena, sv. Avgustin, hrišćanski teolog i filozof, piše: "Si nemo ex me quaerat, scio; si quaerenti explicare velim, nescio". (Ako me niko ne pita, znam; ako hoću da objasnim nekom ko pita - ne znam). Jedan od najosnovnijih pojmova u računarstvu jeste pojam algoritma, do te mere fundamentalan da bi, možda, najbolji odgovor na pitanje "šta je to?" bio "zna se!". Zato ne treba da čudi to što neki veoma istaknuti teoretičari, kao što je Uspenski, smatraju da algoritme ni ne treba definisati dovođenjem u vezu sa drugim jezičkim simbolima, nego ih valja smatrati polaznim 1, i da je svaki takav pokušaj definisanja, u stvari, samo opisivanje. Drugi pak stoje na stanovištu da algoritam ipak treba definisati, ali samo u logičkom, a ne u formalno-matematičkom smislu. U svakom slučaju, sam pojam algoritma je toliko bazičan da stoji tvrdnja da je "najveće otkriće u oblasti nauke o algoritmima otkriće samog algoritma". 1.1 EMPIRIJSKA DEFINICIJA ALGORITMA Bez pretenzija na arbitriranje, navodimo detaljnije drugi prilaz - prosto zato što prvi (po Uspenskom) i ne zahteva nikakva dodatna objašnjenja. Osnovni problem sa kojim se susrećemo prilikom pokušaja da se formuliše definicija algoritma je opredeljivanje za neki od filozofskih pristupa definiciji uopšte. Imajući u vidu pomenutu "opštepoznatost", od prilaza ponuđenih u 14 biramo, za početak, tzv. empirijski (naziva se i leksičkim), koji podrazumeva prikupljanje činjenica i stavova o definiendumu (pojmu koji se definiše), njihovo klasifikovanje, formulisanje funkcionalnih osobina i konačno, uopštavanje sa ciljem da se definicijom obuhvate sve osobine uočenih grupa (klasa). Interesantno, već sam termin "algoritam" dugo je predstavljao enigmu. Knut (D.Knuth, 15 ) navodi da se u Webster-ovom rečniku ova reč po prvi put pojavila tek godine. Do tada važio je stari izraz "algorisam (algorism)" koji se odnosio na izvođenje aritmetičkih operacija nad arapskim brojevima, što potiče iz srednjeg veka kada su se razlikovali abacisti koji su za dotične operacije koristili abakus i 1 u opštoj logici takvi pojmovi nose naziv kategorije 8

9 algoritmisti koji nisu koristili posebna pomagala. Posle dosta lutanja (detalji se mogu naći u 15 i drugde) istoričari matematike su konačno otkrili da je reč o imenu arapskog matematičara iz IX veka - jednog od najvećih matematičara svih vremena! - Abu Ja'far Mohammed ibn Musa al-khowarizmi - ja (u prevodu Džafarov otac, Mohamed, sin Musin, iz Horezma 2 ). Transkripcija dela imena al-khowarizmi (čita se "Alhorezmi"), u "algoritam" nameće se sama. Navedimo nekoliko primera algoritama: A1. Razvući šestar na dužinu zadate duži. Iz jedne krajnje tačke duži opisati luk. Ponoviti isto za drugu krajnju tačku, tako da se lukovi seku. Spojiti lenjirom krajnje tačke duži sa presečnom tačkom lukova. A2. Sabrati x i y. Zbir podeliti sa z. A3. (Određivanje S = a a n ) 1. Postaviti vrednost S na nulu i preći na sledeći korak. 2. Postaviti vrednost i na 1 i preći na sledeći korak. 3. Dodati a i na tekuću vrednost S i preći na sledeći korak. 4. Povećati i za 1 i preći na sledeći korak. 5. Ako je i manje ili jednako n vratiti se na korak 3; u suprotnom završiti. Algoritam je, međutim, i ovo: A4. 1. Ubaciti monetu od 1 eur u odgovarajući prorez 2. Sačekati da se upali zeleno svetlo 3. Ako se želi crna kafa pritisnuti dugme A; ako se želi bela kafa pritisnuti dugme B. Kako se vidi, primeri su dosta različiti, ali ipak imaju određene zajedničke osobine. Prvo, svugde se susreću neke akcije (dejstva, operacije) i to u strogo zadatom redosledu. Dalje, ta sekvenca dejstava je svrsishodna, tj. vodi ka nekakvom cilju. Dejstva, složena u algoritamske korake, diskretna su i izvode se konačan broj puta, sve do dobijanja rezultata. I još, svi algoritmi imaju neke ulazne podatke: da bi se konstruisao jednakostranični trougao /A1/ mora se poznavati dužina stranice; da bi se odredila vrednost (x+y)/z /A2/ neophodno je poznavati vrednosti x, y i z; u cilju izvršavanja algoritma A3 mora se poći od zadavanja vrednosti n i a 1,..., a n. Čak i algoritam A4 polazi od nekih podataka, ali se oni ne zadaju spolja nego su ugrađeni u 2 Horezm je bila veoma napredna država u donjem toku Amu-Darje. Uništile su je, kao i mnogo toga, primitivne horde Džingis-kana. 9

10 njegov opis. Sve u svemu, može se kao prvo određenje pojma algoritma prihvatiti da je to pravilo koje objašnjava proces transformacije ulaznih podataka u traženi rezultat. Pojam algoritma, očigledno, sasvim je blizak pojmovima recept, postupak ili procedura. Dakle, svaki algoritam je pravilo, ali obrnuto ne mora da važi: saobraćajna pravila nisu algoritmi, kao ni pravilo "čast svakom-veresija nikom!". Činjenica da se algoritam sastoji od dejstava i da vodi ka rezultatu neposredno ukazuje na potrebu postojanja izvršioca, i to takvog koji može mehanički, samo na osnovu opisa algoritma, a bez uplitanja korisnika (onog kome je rezultat potreban), bez ikakve kreativnosti, da produkuje traženi rezultat. To, pak, zahteva da postoji način komunikacije, tj. jezik, na kojem se algoritam zadaje, a čija je glavna karakteristika ta da ga izvršilac razume i to u potpunosti. Taj jezik, nazvan jezikom algoritma, nema neku unapred zadatu, kanoničku formu: algoritam se može zadati u vidu uređenog skupa rečenica (svi navedeni primeri su takvi), ali i kao poznati blok dijagram, kao sekvenca iskaza na formalnom jeziku, programskom ili kvaziprogramskom, kao kolekcija crteža (kod geometrijskih konstrukcija na primer), kao i na druge načine; jedino na čemu se insistira je to da izvršilac bude u stanju da, na osnovu opisa i samo na osnovu njega, proizvede rezultat. Vratimo se, za trenutak, na ulazne podatke. Jasno je da ne može svaki podatak da igra ulogu ulaznog podatka u ma koji algoritam: zato govorimo o dozvoljenim i nedozvoljenim ulaznim podacima. Dozvoljeni ulazni podaci su oni koje algoritam može uopšte da interpretira kao takve: dozvoljeni ulazni podaci za A2 mogu biti bilo koje trojke realnih brojeva (uključujući čak i z=0, kada se kaže da je na dotičnu trojku algoritam neprimenljiv, iako je ona dozvoljena). Nedozvoljeni ulazni podaci obuhvataju vrednosti koje algoritam u principu ne može da prihvati kao ulaz; za isti algoritam to bi mogla da bude, recimo, trojka (zeleno, crveno, plavo). Imajući sve ovo u vidu u mogućnosti smo da empirijsku definiciju algoritma (često korišćen naziv je intuitivna definicija) preciziramo na sledeći način: Algoritam je pravilo, formulisano na nekom jeziku, koje jednoznačno definiše redosled operacija neophodan za transformaciju dozvoljenih ulaznih podataka u traženi rezultat. Napominjemo da metod kojim je dobijena gornja definicija nosi naziv "analitički". Odlikuje se time što se termin ("jezički simbol") što se definiše dovodi u vezu sa grupom drugih jezičkih simbola koji se smatraju poznatim i koji izražavaju njegove bitne odlike. Tako se dolazi do strukture definicije: novi termin (algoritam) - šira 10

11 klasa u koju spada (pravilo) - osobine po kojima se razlikuje od ostalih predstavnika iste klase 3. Empirijska definicija algoritma sasvim je prihvatljiva za opšte razumevanje pojma i dovoljna je kao podloga za svakodnevnu praksu. S druge strane, glavno područje primene algoritma per se - programiranje - u velikoj meri je egzaktna delatnost, te stoga ne treba da čudi to što se stručnjaci za ovu oblast nisu zadržali isključivo na tako širokom određenju i što je znatan napor uložen u dobijanje preciznije formulacije. Pri tom, postavljaju se kako pitanje samog koncepta algoritma tako i egzistencije algoritma za rešavanje svakog, unapred zadatog problema. Ni jedno od navedenih pitanja nije do danas potpuno rešeno, ali saznanja nadilaze empirijsku definiciju u datom obliku. 1.2 SINTETIČKA DEFINICIJA ALGORITMA Znatno određenija, mada i dalje ne sasvim egzaktna, definicija dobija se - što je i za očekivanje - uz pomoć tzv. normativnog pristupa definisanju i to prevashodno na bazi Raslovog (Russel) shvatanja tzv. sintetičke metode prema njegovim "Principima matematike" (videti 14 ). Normativni pristup, za razliku od empirijskog, podrazumeva propisivanje, ergo nametanje, značenja pojma i po prirodi je deduktivan 4. Po Raslovom shvatanju "Matematička definicija se sastoji u ukazivanju na takvu utvrđenu relaciju prema jednom utvrđenom terminu u kojoj može da stoji samo jedan termin; ovaj termin onda definišu utvrđena relacija i utvrđeni termin". Glavni nedostatak empirijske definicije jeste oslanjanje na pojmove koji su visoko intuitivni i za koje možemo reći samo zna se šta je to. Najuočljiviji su pojmovi ulazni podatak i traženi rezultat. Sintetička definicija algoritma jeste način da se (bar) ova dva pojma formalizuju. Osnova za sintetičku definiciju algoritma je apstraktni alfabet, onaj isti koji se susreće i kod formalnih teorija. Apstraktni alfabet, u algoritamskoj terminologiji, predstavlja konačan skup leksičkih simbola 5 koji nemaju nikakvu semantiku što će, 3 Kvadrat je-pravougaonik-čije su sve četiri stranice jednake dužine. Klika je-regularan graf-sa n čvorova stepena n-1 4 Empirijski (leksički) način je u suštini induktivan 5 razlika između običnog simbola i leksičkog simbola (tzv. tokena) je u tome što token može da se sastoji od iše pojedinačnih simbola, npr pqr, pri čemu se smatra da je token nerazloživ, tj. atomaran 11

12 dakle, reći da mogu odgovarati ma kakvim jedinicama posmatranja: simbolima u užem smislu, subjektima, stvarima (objektima), događajima ili misaonim kategorijama. Očigledno, jedina suštastvena razlika u odnosu na formalne teorije je zahtev za konačnošću alfabeta. Alfabeti (kratkoće radi, izostavljamo reč "apstraktni") su npr. X =,,, ili Y = Bečki, klasici, Hajdn, Mocart, Betoven, i, su, (prazan simbol, blenk ili blanko). Reč dužine n je niz od n simbola iz datog alfabeta. Dužina reči može da bude i 0, kada govorimo o praznoj reči. Primeri reči iz alfabeta A su,, (prazna reč) i ; njihove dužine su respektivno 5, 2, 0 i 3. Reč dužine 15 u alfabetu Y je: Bečki klasici su Hajdn i Mocart i Betoven 6. Skup reči nekog alfabeta W označavaćemo sa W*. Uobičajeno je da ako W eksplicitno ne sadrži praznu reč za oznaku stavljamo W +. Neka su X i Y dva, ne obavezno različita, alfabeta. Tada je alfabetski ili alfabetski operator svaka relacija (dakle jednoznačno ili višeznačno preslikavanje) reči iz alfabeta X u reč(i) alfabeta Y, odnosno G X* x Y*. Ako je G alfabetski operator tada se alfabet X naziva ulaznim, a alfabet Y izlaznim alfabetom, dok su sa X* i Y*, podsetimo, označeni skupovi reči iz pomenutih alfabeta. U slučaju da se ulazni i izlazni alfabet poklapaju, kaže se da je alfabetski operator definisan nad tim alfabetom. Domen (oblast definisanosti) alfabetskog operatora je skup reči nad kojima je on definisan, dok je skup reči koje se nalaze u drugonavedenim komponentama uređenih parova njegov kodomen. Uz pomoć ovih nekoliko pojmova formuliše se sintetička definicija algoritma: Algoritam je uređena četvorka (X, Y, G, Z), gde su X i Y respektivno ulazni i izlazni alfabet, G X* x Y* alfabetski operator, a Z konačni skup zakona 7 kojima se G zadaje. Skup Z nazvaćemo kodeks. Iako ova definicija deluje određenije, "matematičkije", od prethodne, sa takvim zaključkom ne treba žuriti. Naime, prve tri komponente uređene četvorke jesu formalizovane, ali četvrta to ni u kojem slučaju nije 8. Lako se zapaža da manjkavost leži u komponenti "konačni skup zakona" koja je tipično intuitivna. Nažalost, ova 6 Ali i "Hajdn i Bečki klasici su Mocart". Ne gubimo iz vida da se radi o čisto sintaksnim pojmovima 7 Umesto izraza "zakon" koristi se i "pravilo" koji smo izbegli da ne bi došlo do konfuzije jer se poslednji sreće u empirijskoj definiciji algoritma i nema identično značenje 8 Takav pristup, slaganje intuitivnih pojmova u uređene n-torke, dosta je uobičajen u računarskim naukama i služi svrsi - razumljivosti - ali samo kada se ne zloupotrebljava 12

13 četvrta, komponenta je i najvažnija, jer odgovara na pitanje kako (a ne samo šta ), što i jeste suština pojma algoritma. Dva algoritma su ekvivalentna po izvršenju ako se slažu odgovarajući alfabetski operatori i kodeks po kojima se oni izvršavaju. Drugim rečima, algoritmi A 1 = (X 1, Y 1, G 1, Z 1 ) i A 2 = (X 2, Y 2, G 2, Z 2 ) su ekvivalentni po izvršenju ako je, u matematičkom smislu, A 1 = A 2 (zbog ovog neki autori, umesto termina "ekvivalentni po izvršenju", kažu prosto "jednaki"). Očigledno, ovakvi algoritmi mogu se razlikovati, eventualno, po načinu na koji su zadati zakoni izvršavanja, odn. po jeziku na kojem su formulisani, što znači da se, de facto, radi o istom algoritmu. Dva algoritma su funkcionalno ekvivalentna ako se razlikuju samo po kodeksu, tj. ako za iste ulazne podatke daju isti izlaz, pri čemu se do vrednosti izlaza dolazi na drugi način. Za gornji primer to bi značilo da se u uređenim četvorkama mogu razlikovati samo Z 1 i Z 2. Takođe, smatra se da su algoritmi koji su ekvivalentni po izvršenju istovremeno i funkcionalno ekvivalentni. Primera za funkcionalno ekvivalentne algoritme ima bezbroj jer je jedna od osnovnih osobina algoritma ta da za gotovo svaki problem postoji više algoritama rešavanja. Setimo se samo mnoštva algoritama za sortiranje koji su svi funkcionalno ekvivalentni. Čak i za tako jednostavan algoritam kakav je npr. /A3/ lako se konstruiše funkcionalno ekvivalentan koji, umesto da sabira od a 1 do a n, operaciju izvodi u suprotnom redosledu: od a n ka a 1. Na pitanje ekvivalencije algoritama vratićemo se u poglavlju o analizi algoritamskih struktura. Kako je već pomenuto, algoritmi mogu biti deterministički kada se za isti ulaz uvek dobija isti izlaz (tj. alfabetski operator je funkcija), ali i stohastički za koje to ne važi. Konačno, algoritmi mogu biti samoizmenljivi. Njihova karakteristika je to što redosled izvođenja operacija može da zavisi od istorijata izvršenja, odn. od prethodno izvršenih koraka. U daljem tekstu, bavićemo se uglavnom determinističkim algoritmima. Algoritam (X, Y, G, Z) je deterministički ako je G funkcija, tj. ako važi G: X* Y*. Vratimo se na pitanje sintetičke definicije algoritma. Kao što je rečeno, ni ona nije strogo egzaktna jer se postavlja pitanje univerzalnog načina za formulisanje zakona iz kodeksa. Pitanje se može preformulisati u "postoje li sredstva kojima bi se zadao bilo koji algoritam ili bar algoritam koji mu je funkcionalno ekvivalentan?". Odgovor na ovo pitanje još nije dat, osim na nivou (doduše krajnje verovatnih) 13

14 hipoteza. Formalizmi (sredstva) kojima se zadaju algoritmi nose naziv algoritamski sistemi i ima ih više. U daljem ćemo nešto detaljnije razmotriti dva od tri najpoznatija sistema: Tjuringovu mašinu i Markovljeve (normalne) algoritme 9. Treba odmah podvući da su, bez obzira na to što deluju veoma različito, sva tri sistema ekvivalentna, odn. postoje formalni postupci kojima se prikaz algoritma u jednom algoritamskom sistemu može prevesti na prikaz u drugom. Primena algoritamskih sistema na precizan prikaz algoritama zasnovana je na tzv. osnovnoj hipotezi teorije algoritama koja glasi svaki algoritam može se predstaviti algoritamskim sistemom. Radi se o hipotezi (a ne npr. o teoremi) jer je ovaj stav nedokaziv. Inače, navedena tvrdnja sme se proglasiti za hipotezu, jer se može zamisliti primer kojim bi ona mogla biti opovrgnuta: dovoljno bi bilo pronaći nešto što zadovoljava našu predstavu o algoritmu (a i njegove intuitivne definicije), a što se ne može predstaviti algoritamskim sistemom. Iako je takva situacija krajnje neverovatna, ona nam ipak ne dozvoljava da idemo dalje od hipoteze. 9 treći algoritamski sistem su rekurzivne funkcije kojima se nećemo baviti 14

15 2. ALGORITAMSKI SISTEMI Sintetičkom definicijom algoritma uspevaju se formalizovati pojmovi ulaznih podataka i traženog rezultata korišćeni u empririjskoj definiciji. Takođe, formalizuje se i veza između njih, koja treba da bude ostvarena izvršavanjem algoritma. Ova veza govori o tome kakav izlaz (tj. koju reč ili skup reči iz izlaznog alfabeta) produkuje izvršenje algoritma nad zadatom rečju ulaznog alfabeta. Nažalost, sintetička definicija nema formalizovan odgovor na pitanje kako se implementira alfabetski operator, tj. kako izgleda postupak transformacije ulazne reči u izlaznu. Traženi odgovor pružaju algoritamski sistemi. Obradićemo dva od njih: Tjuringovu mašinu i Markovljeve normalne algoritme TJURINGOVE MAŠINE Ovaj algoritamski sistem postavio je engleski matematičar Alen Tjuring (Turing) godine polazeći od ideje izvršioca algoritma. Ranije smo podvukli da je izvršilac dužan da, pridržavajući se kodeksa, a na osnovu ulaznog i izlaznog alfabeta realizuje alfabetski operator, tj. da dobije traženi izlaz, i to postupajući mehanički. Postavlja se pitanje šta je to što je u stanju da izvede traženu transformaciju na čisto mehanički način? Naravno, to je mašina, ali ne realna koja raspolaže ograničenim resursima, nego apstraktna mašina, dakle mašina čiji su resursi neograničeni jer tako zahteva definicija algoritma (kada bismo govorili o računaru to bi bio računar sa beskonačnim kapacitetom memorije). Zadatak takve mašine bio bi da prerađuje nekakav ulaz (u najširem smislu reči) u izlaz, što se u sintetičkoj definiciji algoritma svodi na transformaciju reči iz ulaznog alfabeta u reč(i) iz izlaznog alfabeta, sve u skladu sa kodeksom. Pri tom, Tjuringova mašina ne pravi razliku između ulaznog i izlaznog alfabeta što ne utiče na opštost jer smo uvek u mogućnosti da ova dva alfabeta zamenimo njihovom unijom. Na taj način, osnovni zadatak Tjuringove mašine je transformacija reči nekog alfabeta u drugu reč iz istog alfabeta, prema svrsi alfabetskog operatora G, a saobrazno kodeksu Z. Alfabet nad kojom se vrše transformacije nosi naziv spoljašnji alfabet. Postoji čitav niz varijeteta Tjuringove mašine (zato je u naslovu i napisana množina) i gotovo svaki od njih može da se matematički opiše na više načina, no važno je napomenuti da su svi oni ekvivalentni, tako da ćemo u ovom tekstu obraditi 15

16 samo dva osnovna tipa: tzv. specijalnu Tjuringovu mašinu (sa jednom trakom) i univerzalnu Tjuringovu mašinu (ali bez ulaženja u detalje, u drugom slučaju). Specijalna Tjuringova mašina (u daljem tekstu Tjuringova mašina) sastoji se od tri funkcionalne celine: beskonačne trake, upisno-čitajuće glave i upravljačkog bloka, slika 2.1. upisno-čitajuća glava upravljački blok beskonačna traka... B a 1 a 2 a 3... a n-1 a n B B... Slika 2.1. Beskonačna traka je podeljena na segmente (ćelije) u kojima se nalaze pojedinačna slova spoljašnjeg alfabeta što čine reč i koja igra ulogu radne memorije. Zadatak upisno-čitajuće glave je, kako i samo ime sugeriše, upisivanje slova na traku odnosno čitanje slova sa nje. Upisno-čitajuća glava ima mogućnost pomeranja u oba smera, levo i desno. Upravljački blok inicira upis-čitanje i pomeranje upisno-čitajuće glave. Odlikuje se time što može (bolje rečeno mora) biti u nekom od apstraktnih stanja. Skup stanja upravljačkog bloka čini tzv. unutrašnji alfabet. Među stanjima postoji tačno jedno koje nosi naziv početno stanje; Tjuringova mašina se nalazi u tom stanju na početku izvršavanja zadatka. Mašina, uopšte, funkcioniše na sledeći način: traka na početku rada sadrži reč iz spoljašnjeg alfabeta čija je dužina konačna (reč a 1, a 2,..., a n sa slike 1.1), a koja je sa obe strane ograničena beskonačnim nizovima praznih ćelija, u oznaci B. Upisnočitajuća glava nalazi se iznad prvog slova s leva a 1, a upravljački blok je u početnom stanju. Mašina radi u vremenski diskretnim pokretima (engl. move) gde se svaki pokret sastoji od 3 razdela: 1. Menja se stanje upravljačkog bloka (u opštem slučaju, stanje može ostati isto, no to se smatra ipak trivijalnom promenom stanja) 2. Upisuje se slovo koje nije B u ćeliju nad kojom se nalazi upisno-čitajuća glava (nazovimo je aktuelnom ćelijom) i 16

17 3. Glava se pomera za jedno mesto ulevo ili udesno 10. Odluka o načinu promene stanja donosi se na osnovu trenutnog stanja upravljačkog bloka i slova koje se nalazi u aktuelnoj ćeliji. U skupu stanja nalazi se najmanje jedno koje je završno (finalno). Kada se mašina nađe u finalnom stanju (tačnije, ako se nađe jer to nije obavezno, a tada je u pitanju postupak koji se ne završava) ona se zaustavlja. Reč omeđena praznim ćelijama (tj. ćelijama čiji je sadržaj B) predstavlja rezultat obrade. Odmah treba skrenuti pažnju na dve pojedinosti. Naime, zapaža se da upis simbola B nije dozvoljen, tj. ćelija se ne može "isprazniti", što bi moglo da navede na pogrešan zaključak da izlazna reč ne može biti kraća od ulazne. Situacija, međutim, nije takva zato što postoji suptilna, ali veoma važna, razlika između prazne ćelije (ćelije sa sadržajem B) i praznog slova koje se ni po čemu ne razlikuje od ostalih slova, kao što se 0 pri sabiranju ne razlikuje od ostalih brojeva ili, recimo, neutralni element grupe od ostalih. Prazno slovo se, dakle, legalno upisuje u ćeliju što efektivno znači skraćivanje izlazne reči za jedno slovo. Drugo što treba notirati je činjenica da se ne garantuje zaustavljanje Tjuringove mašine (odn. dostizanje nekog od završnih stanja), što se, u suštini, svodi na problem konačnosti algoritma. Formalno, Tjuringova mašina definiše se kao uređena šestorka (K,,,, q 0, F) čije su komponente: K je konačan skup stanja upravljačkog bloka (unutrašnji alfabet) je spoljašnji alfabet koji sadrži i B (praznu ćeliju), a po potrebi i prazno slovo ( \ B ) je podskup skupa koji ne sadrži B i koji nosi naziv skup ulaznih slova : ((K x ) K x ( \ B ) x L, R je funkcija prelaza koja ne mora biti definisana na celom domenu. L i R su specijalni simboli koji označavaju kretanje upisno-čitajuće glave (L = ulevo, R = udesno) q 0 K je početno stanje F K je skup završnih stanja. Pod konfiguracijom Tjuringove mašine podrazumevamo uređenu trojku (q,, i) gde je q tekuće stanje, aktuelna reč na traci, a i udaljenost upisno-čitajuće glave od 10 postoje varijeteti kod kojih upisno-čitajuća glava može i da se ne pomeri 17

18 početka (krajnjeg levog slova) reči. Očigledno, konfiguracija u celosti opisuje stanje čitave Tjuringove mašine. Neka se u nekom trenutku na traci nalazi niz slova (reč) a 1 a 2... a n. Neka je, dalje, upravljački blok u stanju q, a upisno-čitajuća glava iznad slova a i, što znači da je tekuća konfiguracija (q, a 1, a 2,..., a n, i). Tada (q, a i ) = (p, x, R) znači "promeniti stanje u p, umesto a i upisati na traku x i pomeriti upisno-čitajuću glavu za jedno mesto udesno". Po izvršenju, nova konfiguracija je (p, a 1,... a i-1 xa i+1... a n, i+1). Rad Tjuringove mašine prikazaćemo na kvazi-programskom jeziku zasnovanom na sintaksi programskog jezika C. Beskonačnu traku ćemo predstaviti beskonačnim nizom cell čiji su indeksi celi brojevi. Na početku rada upisno-čitajuća glava nalazi se iznad pozicije sa indeksom 0, gde je i prvi simbol ulazne reči. Neka je ceo broj i tekuća pozicija upisno-čitajuće glave, tako da je na početku rada i=0. Označimo sa cell[i] simbol koji se nalazi na poziciji i. Neka važi L,R. Rad Tjuringove mašine može se predstaviti sledećim ciklusom: q = q 0 ; i = 0; while(q F) { (q,a, ) = (q, cell[i]); cell[i] = a; i = ( ==R)? i+1 : i-1; Očigledno, centralno mesto u Tjuringovoj mašini zaizima funkcija prelaza. Funkcija prelaza zadaje se tzv. funkcionalnom shemom - tablicom čije vrste odgovaraju stanjima iz skupa K, kolone slovima spoljašnjeg alfabeta, a elementi uređenim trojkama koje odgovaraju vrednostima funkcije prelaza (ako su definisane). Jedan od najinteresantnijih problema vezanih za Tjuringovu mašinu (i programiranje uopšte) jeste tzv. halting problem (problem zaustavljanja). Radi se o pitanju da li se može unapred zaključiti hoće li proizvoljna Tjuringova mašina za zadatu ulaznu reč završiti rad, tj. hoće li upravljački blok doći u neko od stanja iz 18

19 skupa F 11? Odgovor na pitanje je negativan! Dakle, halting problem kod Tjuringove mašine spada u klasu neodlučivih problema. Na kraju, jedna napomena vezana za skup ulaznih slova. Svrha njegovog izdvajanja iz je nominacija dozvoljenih ulaznih simbola. Ako je, na primer, = 0, 1 tada na početku rada traka može da sadrži samo reči iz skupa *, odnosno nizove nula i jedinica. Primer. Neka je data Tjuringova mašina T = (K,,,, q 0, F) gde je K = s 1, s 2, s 3 = 0, 1,, B ( je prazno slovo!) = 0, 1 q 0 = s 1 F = s 3 i gde je prelazna funkcija zadata sledećom funkcionalnom shemom: 0 1 B s 1 s 2 0R s 2 1R - - s 2 s 2 1R s 2 0R - s 3 R s Zadatak ove mašine je da prihvati ulazne nizove koji se sastoje od slova 0 i 1 i da zameni sve nule jedinicama i obrnuto, osim za prvi simbol koji ostaje nepromenjen. Neka se na ulazu nalazi niz što znači da je početna konfiguracija (s 1, 11100, 0). Kako je s 1 početno stanje i 1 aktuelno slovo, prvo što se izvršava je prelaz s 1 1 s 2 1R posle kojeg će stanje biti promenjeno u s 2, na traku biti upisano slovo 1 i biti izvršen pomeraj udesno, tako da konfiguracija postaje (tekuća pozicija je, preglednosti radi, podvučena) (s 2, 11100, 1). Sledeći prelaz je prelaz s 2 1 s 2 0R 11 te, tako, produkovati rezultat 19

20 koja menja konfiguraciju u (s 2, 10100, 2). Postupak se nastavlja prema sledećem rasporedu: (s 2, 10100, 2) s 2 1 s 2 0R (s 2, 10000, 3) (s 2, 10000, 3) s 2 0 s 2 1R (s 2, 10010, 4) (s 2, 10010, 4) s 2 0 s 2 1R (s 2, 10011, 5). U ovom trenutku upisno-čitajuća glava nalazi se iznad prazne ćelije (B) tako da je sledeći prelaz s 2 B s 3 R i, s obzirom na to da je s 3 završno stanje, rad se zaustavlja. Rezultat je što je efektivno isto što i jer je prazno slovo (koje se tokom rada mora tretirati eksplicitno, kao simbol, da bi mašina mogla uopšte da funkcioniše). Veza između specijalne Tjuringove mašine i intuitivnog pojma algoritma prilično je vidljiva no, nažalost, identičnost je nedokaziva. Neka je A = (X, Y, G, Z) sintetički definisan algoritam, a T = (K,,,, q 0, F) Tjuringova mašina. Tada se ulazni alfabet A može interpretirati kao, dok je = X Y. Ovo poslednje može da zbuni; međutim ako se A zameni sa A' = (X, X Y, G, Z) dobija se funkcionalno ekvivalentan algoritam jer višak slova u novoj izlaznom alfabetu nema nikakvog uticaja ni na alfabetski operator G niti na kodeks Z, jer je skup vrednosti operator G ostao isti. Kodeks Z ostvaruje se putem (K,, q 0, F) dok cela Tjuringova mašina realizuje operator G. Sve ovo ne znači da je pred nama egzaktan dokaz ekvivalencije algoritma i Tjuringove mašine i to zato što ostaje otvoreno pitanje da li se svaki kodeks Z može ostvariti putem (K,, q 0, F). Sve što se može iskazati je modifikovani oblik osnovne hipoteze teorije algoritama: Svaki algoritam može se zadati u obliku funkcionalne sheme specijalne Tjuringove mašine. Inače, pored ove verzije specijalne Tjuringove mašine postoji još niz varijanata koje su, uočimo to, međusobno ravnopravne (ekvivalentne), tako da je sa stanovišta algoritamskih sistema teorijski svejedno koja se razmatra. Najčešće razlike 20

21 koje se pojavljuju su mogućnost da se upisno-čitajuća glava po upisu ne pomeri (dakle, pored pomeraja L i R postoji još jedan, npr. N, koji znači da glava ostaje na istom mestu); druga uočljiva razlika je vezana za zaustavljanje mašine: naime, umesto skupa završnih stanja, zaustavljanje se može izvesti i tako što do njega dolazi ako se konfiguracija ponovi dva puta uzastopce. Najzad, postoje i Tjuringove mašine sa dve ili više traka. Drugi osnovni oblik Tjuringove mašine je univerzalna Tjuringova mašina. Nastala je kao odgovor na pitanje da li može da se definiše Tjuringova mašina koja ne bi, poput specijalne, izvršavala samo jedan algoritam, nego bi mogla da se primeni na sve algoritme. Pitanje nikako nije stvar običnog uopštenja jer se radi o direktnom putu ka računaru, tako da je univerzalna mašina sa stanovišta računarstva najvažnija vrsta Tjuringovih mašina. Odgovor leži u uvođenju mogućnosti da se, pored ulaznih slova, menja, odn. zadaje i funkcionalna shema. Prema tome, osnovna karakteristika univerzalne Tjuringove mašine je izmenljivost kako spoljašnjeg alfabeta, tako i unutrašnjeg alfabeta i funkcije prelaza. Njena konstrukcija zasniva se na ideji oponašanja (simulacije) različitih specijalnih Tjuringovih mašina, a tehnika kojom se to postiže je kodiranje kako spoljašnjeg alfabeta, tako i kompletne funkcionalne sheme pri čemu su sami kodni simboli univerzalne mašine fiksirani, ali se pridruživanje vrši na različite načine u zavisnosti od specijalne mašine koja se oponaša. Ono što je možda najvažnije kod ovog tipa mašine je činjenica da se različite funkcionalne sheme takođe memorišu na traci, tako da svaka takva shema nije ništa drugo do program, a sama univerzalna Tjuringova mašina ponaša se, u stvari, kao računar 12! Time je teorijski potkrepljena čuvena fon Nojmanova (von Neumann) koncepcija da između podataka u užem smislu reči i instrukcija za manipulisanje tim podacima nema razlike. Skupovi kodnih simbola mogu se razlikovati i može ih biti dva ili više. Ne ulazeći u detalje, dajemo ilustraciju jednog od mogućih načina kodiranja. Pretpostavićemo da skup kodnih simbola univerzalne Tjuringove mašine sadrži samo dva simbola, 0 i 1 (dakle, baš kao i računar) i prikazati jedan od mogućih postupaka za kodiranje spoljašnjeg alfabeta, unutrašnjeg alfabeta odn. skupa stanja K i funkcionalne sheme odn. funkcije. Neka se spoljašnji alfabet sastoji od slova a 1,..., 12 Bolje reći računar se ponaša kao univerzalna Tjuringova mašina jer je ovo drugo i hronološki i pojmovno stariji koncept 21

22 a k i B i neka je skup stanja K = q 1,..., q m. Neka su L i R oznake za pomeraj. Kodne grupe se definišu kao nizovi različitog broja nula omeđeni dvema jedinicama prema sledećem rasporedu: R 101 L 1001 B a 1 a 2... a k q 1 q 2... q m nule nula (k+1) nula nula nula (m+1)+1 nula Očigledno, kodne reči se biunivoko preslikavaju na simbole bilo koje specijalne Tjuringove mašine jer su i spoljašnji alfabet i skup stanja dati sasvim uopšteno. Primenom gornjeg načina kodiranja prerada reči bcadc u reč bcdcc specijalne Tjuringove mašine sa = a, b,..., z odvijala bi se na bazi ulazne reči univerzalne Tjuringove mašine oblika (b) (c) (a) (d) (c) dok bi odgovarajući program imao sledeći vid: (q 1 b q 1 br) (q 1 c q 1 cr) (q 1 a q 2 ar) 22

23 (q 2 d q 3 cl) (q 3 a q 4 dl) gde je q 1 = početno, a q 4 = završno stanje ili jedno od završnih stanja, ako ih ima više NORMALNI ALGORITMI MARKOVA Normalni algoritmi Markova (prema sovjetskom naučniku A.A. Markovu, 1954.) po osnovnoj ideji srodni su Tjuringovim mašinama zbog toga što je prilaz direktan, odnosno baziran na odvijanju algoritma. Glavna razlika je u uglu posmatranja: dok Tjuringove mašine tretiraju algoritme sa stanovišta izvršioca, normalni algoritmi ih tretiraju sa stanovišta izvršavanja. Iz aspekta programera ovo je sigurno najprirodniji algoritamski sistem stoga što normalni algoritam nije ništa drugo do opšti, kanonički oblik bilo kojeg algoritma. Štaviše, upadljiva je sličnost između normalnih algoritama i Strukturne teoreme (videti dalje) koja se bavi ne samo algoritmima nego i njihovom implementacijom na računaru. Prvi korak na putu ka kanoničkom obliku algoritma je standardizacija alfabetskog operatora G. U tom smislu Markov je uočio da se transformacija ulazne reči iz skupa X* u reč iz Y*, a posredstvom G, može realizovati u etapama uz primenu samo dve vrste elementarnih operatora: 1. operatora obrade čiji je zadatak da tekući oblik reči preradi u sledeći koji vodi (ili ne vodi) konačnom rešenju i 2. upravljačkih operatora što, na osnovu osobina tekuće reči, odlučuju o tome koji će operator obrade biti odabran za narednu transformaciju. Za prikaz redosleda izvršavanja operatora obrade diktiranog upravljačkim operatorima najpogodniji je grafički metod jer, kao što kaže stara mudrost, "jedna slika vredi hiljadu reči". Od nekoliko varijanata opredeljujemo se za onu koja je najbliža programerima: blok dijagrame algoritama (organigrame) i to u najjednostavnijem obliku, dovoljnom za teorijsko razmatranje, a to je onaj koji obuhvata samo pomenuta dva konkretna operatora, koji se prikazuju simbolima sa slike 2.2 gde su prikazani respektivno. Slika

24 Operatori obrade (procesiranja) transformišu međureči jednu u drugu; operatori odluke sa obavezno dva izlaza daju informaciju o sledećem koraku. Operator obrade se, u opštem slučaju, predstavlja kao smena (zamena). Izvršava se nad rečju. Ako je tekuća reč iz nekog alfabeta A označena sa X tada smena znači "prvu podreč (čitano sleva) reči X zameniti sa ; ako to nije moguće ignorisati operaciju". Na primer, ako se na reč primeni smena dobija se reč Svrha operatora odluke je da obezbedi informaciju o tome da li je smena izvodljiva ili nije, odn. da li je podreč tekuće reči. Niz reči X 1, X 2,..., X n koji se dobija primenom tačno određenog redosleda smena nosi naziv deduktivni lanac, što već po semantici nagoveštava postojanje odgovarajuće formalne teorije. Tako, na primer, dvostruka primena smene bc x na reč abcabca produkuje deduktivni lanac abcabca - axabca - axaxa. Pod normalnim algoritmom Markova podrazumeva se strogo uređeni niz operatora smene i odluka o njihovoj primeni. Suština definicije je u sintagmi "strogo uređeni niz" jer različiti nizovi smena mogu da vode ka različitim rezultatima. Ako se na reč xyzyx primene redom smene x a, x b dobija se reč ayzyb; ako se redosled smena promeni u x b, x a rezultat je byzya 13. Kao što kod Tjuringovih mašina postoje završna stanja, tako i kod normalnih algoritama postoje završne smene po čijem se izvođenju smatra da je procedura završena. Označavaju se, obično, tako što se iza simbola dopisuje tačka, to jest smena. označava kraj obrade. Posebno, smena, koja može biti i završna, ima značenje "zameniti prvu sleva praznu podreč sa ", to jest "postaviti na početak reči. Za praznu reč upotrebljavaćemo oznaku. Blok dijagram normalnog algoritma Markova prikazan je na slici 2.3. Jasnoće radi, primenjene su tri metaformule. Neka je i, i=1,...,n smena. Tada predikat P( i,x) ima vrednost ako je i primenljiva na reč X, a u suprotnom. Dalje, X = i (X) ima 13 Inače, postoji i uopšteni normalni algoritam Markova koji ne podrazumeva nikakav poseban redosled smena, te zato dozvoljava definisanje nedetermističkih algoritama koji nadilaze nivo ovog teksta. 24

25 značenje "transformisati reč X primenom smene i ". Konačno, predikat K( i ) ima vrednost ako je i završna smena i u suprotnom. Reč na koju se primenjuje algoritam označena je sa X. X P( 1,X) X = T 1(X) K( 1) 1 T P( 2,X) X = T 2(X) K( 2) 1 T P( n,x) X = T n(x) K( n) 1 1 T Slika 2.3. Sa dijagrama se vidi da se, pre svega, smene vrše u strogo određenom redosledu, a zatim i da postupak može da se završi na dva načina: ili se nailazi na neku od završnih smena, ili se pak prolazi kroz svih n pokušaja, a da se ne izvrši ni jedna smena. Osim navedenog postoji i jednostavniji prikaz normalnog algoritma: smene se urede u sekvencu i primenjuju cirkularno od prve do poslednje; zatim se opet prelazi na prvu i tako dalje sve dok se ne naiđe na završnu smenu ili se prođe cela sekvenca bez primene ijedne od njih (videti primer). Značaj normalnih algoritama je njihova univerzalnost koja proističe iz tzv. principa normalizacije koji glasi Za svaki algoritam može se konstruisati funkcionalno ekvivalentan normalni algoritam koji je nedokaziv zbog neodređenosti pojma "svaki algoritam". Neka je zadat alfabet A i normalni algoritam N. Tada se za N kaže da je normalni algoritam u alfabetu A ako prihvata ulaz iz skupa slova A*, daje izlaz iz istog skupa i u svim smenama sadrži samo slova iz tog alfabeta. Postoji, međutim, niz slučajeva u kojima nije moguće 25

26 definisati normalni algoritam funkcionalno ekvivalentan nekom algoritmu u alfabetu A. Zato se definiše proširenje alfabeta A, odn. skup B A tako što se dodaju još neka slova. U tom slučaju normalni algoritam N konstruiše se u skupu B, ali tako da za sve ulaze iz A* generiše iste izlaze kao i algoritam koji se normalizuje. Za takav normalni algoritam kaže se da je definisan nad alfabetom A. Princip normalizacije, naravno, odnosi se upravo na ovakve postupke. Primer (prema 16 ). Jedna od osnovnih rekurzivnih funkcija nosi naziv funkcijanaslednik. To je funkcija jednog celobrojnog argumenta koja za rezultat daje sledeći po veličini ceo broj. Ako je x ceo broj tada je funkcija-naslednik, u oznaci z efektivno jednaka z+1. Funkcija-naslednik može se izračunati sledećim normalnim algoritmom Markova (zadat je u pojednostavljenom obliku, kao sekvenca smena): 0y. 1 8y. 9 x5 5x 3x 3y 1y. 2 9y y0 x6 6x 4x 4y 2y. 3 y. 1 x7 7x 5x 5y 3y. 4 x0 0x x8 8x 6x 6y 4y. 5 x1 1x x9 9x 7x 7y 5y. 6 x2 2x 0x 0y 8x 8y 6y. 7 x3 3x 1x 1y 9x 9y 7y. 8 x4 4x 2x 2y x pri čemu su smene, kratkoće radi, smeštene po kolonama. Da bi realizovao funkcijunaslednik algoritam na ulazu može da primi samo nizove cifara i prazno slovo na početku, što znači da je osnovni alfabet A = 0, 1,..., 9. S druge strane, u smenama se pojavljuju još i slova x i y, što znači da je algoritam definisan nad alfabetom A. Sa praznim slovom na ulazu algoritam se neće završiti jer se dobija beskonačni niz x, xx, xxx,... Neka je na ulazu reč 199. Primena algoritma na ovu reč počinje poslednjom smenom x i daje x199. Zatim se primenjuje smena x1 1x što daje 1x99 itd. Kompletan deduktivni lanac primenjen na ulaz 199 je 199, x199, 1x99, 19x9, 199x, 199y, 19y0, 1y00,

27 Imajući u vidu princip normalizacije i ranije navedene oblike osnovne hipoteze teorije algoritama, poslednja se očigledno može formulisati i ovako Svaki algoritam može se predstaviti kao normalni algoritam Markova iz čega neposredno sledi tvrđenje da su Tjuringove mašine i normalni algoritmi Markova međusobno ekvivalentni načini za zadavanje istog pojma - algoritma. Vredno je napomenuti da za ovo tvrđenje postoji i formalni dokaz. 27

28 3. ANALIZA ALGORITAMSKIH STRUKTURA Pored teorije algoritama koja se prevashodno bavi egzistencijom algoritamskih rešenja postoji još jedan, ne manje važan, aspekt nauke o algoritmima: analiza algoritama u okviru koje se tretiraju problemi njihove strukture i realizacije. Ta problematika obuhvata izučavanje specifičnih algoritamskih struktura, zatim pitanja korektnosti i efikasnosti i konačno postupke za konstrukciju algoritama pod zadatim uslovima. U ovom poglavlju osvrnućemo se na algoritamske strukture i to kroz tzv. strukturirano programiranje koje je prva zaokružena metodologija za analizu i izgradnju algoritama. Odmah se skreće pažnja da se, umesto izraza "algoritam" koristi termin "program" što, strogo gledano, nije sasvim korektno s obzirom na to da se ne razmatraju tipovi podataka. Treba, međutim, prihvatiti činjenicu da je u kontekstu strukturiranog programiranja naziv "program" odavno usvojen kao takav i svi ga, bez razlike, upotrebljavaju, tako da bi pokušaj promene termina izazvao nepotrebnu konfuziju. Strukturirano programiranje predstavlja istorijski najstariji (uspešan) pokušaj da se u postupak razvoja programa unese neki red, odnosno da se programiranje fundira kao inženjerska delatnost. Nastalo je kao glavna, iako ne i jedina, posledica rešavanja tzv. softverske krize kraja šezdesetih godina prošlog veka, koja se ogledala u pojavi potpunog nesklada između hardverskih mogućnosti računara i povećanih potreba korisnika s jedne i primitivne tehnologije izrade softvera s druge strane. Naime, osnovna odlika tehnologije izrade softvera pre pojave strukturiranog programiranja sastojala se u tome da nekakve posebne tehnologije nije ni bilo, pa stoga za tadašnji pristup razvoju softvera neki autori čak upotrebljavaju izraz "haotično programiranje" 14. Počeci strukturiranog programiranja sežu negde u drugu polovinu šezdesetih godina kada je formulisana Strukturna teorema Boehm-a i Jacopinija godine i kada je Dajkstra (E.W. Dijkstra) objavio čuvenu raspravu "Goto Statement Considered Harmful" u Communications of the ACM, godine Pritom, od posebnog interesa je upravo ovo poslednje jer je Dajkstra ukazao na glavni razlog neupravljivosti složenih softverskih paketa - programske skokove kojima su obilovali programi pisani na u to doba glavnim jezicima, fortranu i kobolu. 14 u naučnim krugovima koristi se manje pežorativan naziv kompozitno programiranje 28

29 Analizirajući uticaj naredbi skoka (goto nije jedina) on je pokazao da je čitljivost i razumljivost programa obrnuto proporcionalna broju skokova i sledstveno, da je verovatnoća postojanja greške u direktnoj korelaciji sa tim brojem. Takvo tvrđenje u potpunom je skladu sa činjenicom da prilikom rešavanja bilo kojeg problema čovek rezonuje sistematski, odnosno da ga rešava sekvencijalno, korak po korak, a ne haotično, preskačući sa jednog potproblema na drugi i vraćajući se na već urađeno. Programi sa velikim brojem skokova razvijani su upravo na ovaj drugi način te su stoga obilovali greškama, teško su se pisali, još teže testirali, a skoro nikako modifikovali i dopunjavali po zahtevu naručioca. 15 Osnovne postavke i sredstva strukturiranog pristupa programiranju bili su relativno brzo definisani, naročito radovima Dajkstre, Hoara (C.A.R. Hoare) i Dala (O.J. Dahl) (knjiga "Structured Programming" iz po kojoj je čitava metodologija dobila ime) i pojavom programskog jezika paskal (Niklaus Virt, 1969.). Metode i tehnike koje čine strukturirano programiranje intenzivno su se razvijale i u narednih desetak do petnaest godina predstavljale su jedinu tehnologiju za sistematsku proizvodnju softvera. U poslednjih desetak godina strukturirano programiranje nije više dominirajuća generalna paradigma prepustivši primat novijem pristupu: objektno orijentisanom programiranju. Iz toga se, međutim, ne bi smeo izvesti zaključak da je strukturirano programiranje zastarelo (programerski svet je inače sklon takvim preterivanjima) jer deduktivni način razmišljanja prilikom izrade programa nije se promenio niti je u izgledu da se to desi u skoroj budućnosti. Takođe, upravljačke strukture koje se koriste u objektnom programiranju (sekvence, selekcije i ciklusi) su iste one koje su definisane u strukturiranom pristupu. Strukturirano programiranje bilo je čvrsto vezano za tehniku razvoja programa tzv. sukcesivnom dekompozicijom (top-down program development), koja se izvodi postepenom detaljizacijom programa od grube šeme do nivoa spremnog za kompilaciju. Ova veza bila je toliko čvrsta da se tehnika sukcesivne dekompozicije izjednačavala sa metodologijom u celini, što je pogrešno, naročito u novije vreme kada sama tehnika više ne predstavlja fundament za izgradnju softverskih sistema, dok je strukturirani način razmišljanja i dalje u potpunosti aktuelan. Da bi se napravila razlika između strukturiranog programiranja i tehnike sukcesivne dekompozicije dajemo definiciju strukturiranog programiranja 18 : 15 takve programe pežorativno zovu "špageti kod". 29

30 Pod strukturiranim programiranjem podrazumeva se skup tehnika za razvoj programskih modula koje koriste strogo definisane grupe upravljačkih struktura i struktura podataka GRAF TOKA PROGRAMA Graf toka programa je kvazi-digraf čiji čvorovi odgovaraju naredbama, njihovim delovima ili pak grupama. To je struktura slična blok dijagramu algoritma (organigramu) koja pokazuje redosled izvršavanja njegovih naredbi. Takođe, ulazne i izlazne grane 16 grafa toka programa obično se vezuju za samo jedan čvor, tj. ulazna grana ne izlazi ni iz jednog čvora niti izlazna grana ulazi u neki čvor. Kaže se da one ulaze iz okoline odnosno izlaze u nju. Dakle, za razliku od blok dijagrama algoritma, graf toka programa nema čvorova tipa START i STOP, a takođe se ne pravi razlika između operacija obrade i raznih operacija ulaza-izlaza. Graf toka programa, u stvari, ima samo tri vrste čvorova: 1. Proces ili funkcionalni čvor koji predstavlja operaciju transformacije (obrade) podataka. Zamenjuje operacije obrade, ulaza-izlaza i poziva podalgoritma u blok dijagramu. Funkcionalni čvor u grafu toka programa može da zameni i neku podstrukturu ako je to od interesa za analizu. Ima i ulazni i izlazni stepen jednak 1. Prikazuje se pravougaonikom u koji se upisuje neka identifikacija operacije (slika 3.1). f Slika Predikat je čvor koji odgovara algoritamskom koraku logičkog testa, tj. realizuje grananje diktirano rezultatom izračunavanja vrednosti odgovarajuće logičke funkcije. Ima ulazni stepen 1, a izlazni stepen 2 (slika 3.2). U simbol se unosi oznaka logičke funkcije. 16 grane su prikazane strelicama 30

31 T p Slika Kolektor je pomoćni čvor koji ne izvodi nikakvu obradu nego služi samo za povezivanje dve grane koje se stiču na istom mestu. Ima ulazni stepen 2, a izlazni stepen 1 (slika 3.3). Slika 3.3. Primer. Funkcija maxel služi za određivanje vrednosti maksimalnog elementa realnog niza v sa n elemenata: double maxel(double v[], int n) { double vmax; int i; for(maxv=v[0],i=0;i<n;i++) if(v[i]>vmax) vmax=v[i]; return vmax; Ovom programu odgovara graf toka prikazan na slici 3.4. vmax=v[0] i=0 i<n i++ T v[i]>vmax T vmax=v[i] Slika

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan. 1) Kod pravilnih glagola, prosto prošlo vreme se gradi tako

More information

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Struktura indeksa: B-stablo.   ls/swd/btree/btree.html Struktura indeksa: B-stablo http://cis.stvincent.edu/html/tutoria ls/swd/btree/btree.html Uvod ISAM (Index-Sequential Access Method, IBM sredina 60-tih godina 20. veka) Nedostaci: sekvencijalno pretraživanje

More information

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri. Potprogrami su delovi programa. Često se delovi koda ponavljaju u okviru nekog programa. Logično je da se ta grupa komandi izdvoji u potprogram, i da se po želji poziva u okviru programa tamo gde je potrebno.

More information

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije Biznis scenario: U školi postoje četiri sekcije sportska, dramska, likovna i novinarska. Svaka sekcija ima nekoliko aktuelnih projekata. Likovna ima četiri projekta. Za projekte Pikaso, Rubens i Rembrant

More information

Podešavanje za eduroam ios

Podešavanje za eduroam ios Copyright by AMRES Ovo uputstvo se odnosi na Apple mobilne uređaje: ipad, iphone, ipod Touch. Konfiguracija podrazumeva podešavanja koja se vrše na računaru i podešavanja na mobilnom uređaju. Podešavanja

More information

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević GUI Layout Manager-i Bojan Tomić Branislav Vidojević Layout Manager-i ContentPane Centralni deo prozora Na njega se dodaju ostale komponente (dugmići, polja za unos...) To je objekat klase javax.swing.jpanel

More information

Uvod u relacione baze podataka

Uvod u relacione baze podataka Uvod u relacione baze podataka 25. novembar 2011. godine 7. čas SQL skalarne funkcije, operatori ANY (SOME) i ALL 1. Za svakog studenta izdvojiti ime i prezime i broj različitih ispita koje je pao (ako

More information

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI Za pomoć oko izdavanja sertifikata na Windows 10 operativnom sistemu možete se obratiti na e-mejl adresu esupport@eurobank.rs ili pozivom na telefonski broj

More information

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB. 9.72 8.24 6.75 6.55 6.13 po 9.30 7.89 5.86 10.48 8.89 7.30 7.06 6.61 11.51 9.75 8.00 7.75 7.25 po 0.38 10.21 8.66 7.11 6.89 6.44 11.40 9.66 9.73 7.69 7.19 12.43 1 8.38 7.83 po 0.55 0.48 0.37 11.76 9.98

More information

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd, AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje Marko Eremija Sastanak administratora, Beograd, 12.12.2013. Sadržaj eduroam - uvod AMRES eduroam statistika Novine u okviru eduroam

More information

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings Eduroam O Eduroam servisu Eduroam - educational roaming je besplatan servis za pristup Internetu. Svojim korisnicima omogućava bezbedan, brz i jednostavan pristup Internetu širom sveta, bez potrebe za

More information

Advertising on the Web

Advertising on the Web Advertising on the Web On-line algoritmi Off-line algoritam: ulazni podaci su dostupni na početku, algoritam može pristupati podacima u bilo kom redosljedu, na kraju se saopštava rezultat obrade On-line

More information

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

1.7 Predstavljanje negativnih brojeva u binarnom sistemu .7 Predstavljanje negativnih brojeva u binarnom sistemu U decimalnom brojnom sistemu pozitivni brojevi se predstavljaju znakom + napisanim ispred cifara koje definišu apsolutnu vrednost broja, odnosno

More information

STRUČNA PRAKSA B-PRO TEMA 13

STRUČNA PRAKSA B-PRO TEMA 13 MAŠINSKI FAKULTET U BEOGRADU Katedra za proizvodno mašinstvo STRUČNA PRAKSA B-PRO TEMA 13 MONTAŽA I SISTEM KVALITETA MONTAŽA Kratak opis montže i ispitivanja gotovog proizvoda. Dati izgled i sadržaj tehnološkog

More information

Otpremanje video snimka na YouTube

Otpremanje video snimka na YouTube Otpremanje video snimka na YouTube Korak br. 1 priprema snimka za otpremanje Da biste mogli da otpremite video snimak na YouTube, potrebno je da imate kreiran nalog na gmailu i da video snimak bude u nekom

More information

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA Master akademske studije Modul za logistiku 1 (MLO1) POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA angažovani su: 1. Prof. dr Momčilo Miljuš, dipl.inž., kab 303, mmiljus@sf.bg.ac.rs,

More information

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum:

Programiranje. Nastava: prof.dr.sc. Dražena Gašpar. Datum: Programiranje Nastava: prof.dr.sc. Dražena Gašpar Datum: 21.03.2017. 1 Pripremiti za sljedeće predavanje Sljedeće predavanje: 21.03.2017. Napraviti program koji koristi sve tipove podataka, osnovne operatore

More information

Nejednakosti s faktorijelima

Nejednakosti s faktorijelima Osječki matematički list 7007, 8 87 8 Nejedakosti s faktorijelima Ilija Ilišević Sažetak Opisae su tehike kako se mogu dokazati ejedakosti koje sadrže faktorijele Spomeute tehike su ilustrirae a izu zaimljivih

More information

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

STABLA ODLUČIVANJA. Jelena Jovanovic.   Web: STABLA ODLUČIVANJA Jelena Jovanovic Email: jeljov@gmail.com Web: http://jelenajovanovic.net 2 Zahvalnica: Ovi slajdovi su bazirani na materijalima pripremljenim za kurs Applied Modern Statistical Learning

More information

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

OBJEKTNO ORIJENTISANO PROGRAMIRANJE OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 3 DEFINICIJA KLASE U JAVI Miloš Kovačević Đorđe Nedeljković 1 /18 OSNOVNI KONCEPTI - Polja - Konstruktori - Metode - Parametri - Povratne vrednosti - Dodela

More information

Port Community System

Port Community System Port Community System Konferencija o jedinstvenom pomorskom sučelju i digitalizaciji u pomorskom prometu 17. Siječanj 2018. godine, Zagreb Darko Plećaš Voditelj Odsjeka IS-a 1 Sadržaj Razvoj lokalnog PCS

More information

SAS On Demand. Video: Upute za registraciju:

SAS On Demand. Video:  Upute za registraciju: SAS On Demand Video: http://www.sas.com/apps/webnet/video-sharing.html?bcid=3794695462001 Upute za registraciju: 1. Registracija na stranici: https://odamid.oda.sas.com/sasodaregistration/index.html U

More information

Programiranje III razred

Programiranje III razred Tehnička škola 9. maj Bačka Palanka Programiranje III razred Istorijat programskih jezika Programski jezici Programski jezici su veštački jezici koji se mogu koristiti za kontrolu ponašanja mašine, naročito

More information

Priprema podataka. NIKOLA MILIKIĆ URL:

Priprema podataka. NIKOLA MILIKIĆ   URL: Priprema podataka NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Normalizacija Normalizacija je svođenje vrednosti na neki opseg (obično 0-1) FishersIrisDataset.arff

More information

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA KOŽA I TEKSTIL ALU FELGE CJENIK APLIKACIJE CERAMIC PRO PROIZVODA Radovi prije aplikacije: Prije nanošenja Ceramic Pro premaza površina vozila na koju se nanosi mora bi dovedena u korektno stanje. Proces

More information

IZRADA TEHNIČKE DOKUMENTACIJE

IZRADA TEHNIČKE DOKUMENTACIJE 1 Zaglavlje (JUS M.A0.040) Šta je zaglavlje? - Posebno uokvireni deo koji služi za upisivanje podataka potrebnih za označavanje, razvrstavanje i upotrebu crteža Mesto zaglavlja: donji desni ugao raspoložive

More information

Klasterizacija. NIKOLA MILIKIĆ URL:

Klasterizacija. NIKOLA MILIKIĆ   URL: Klasterizacija NIKOLA MILIKIĆ EMAIL: nikola.milikic@fon.bg.ac.rs URL: http://nikola.milikic.info Klasterizacija Klasterizacija (eng. Clustering) spada u grupu tehnika nenadgledanog učenja i omogućava grupisanje

More information

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU

POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU POSTUPAK IZRADE DIPLOMSKOG RADA NA OSNOVNIM AKADEMSKIM STUDIJAMA FAKULTETA ZA MENADŽMENT U ZAJEČARU (Usaglašeno sa procedurom S.3.04 sistema kvaliteta Megatrend univerziteta u Beogradu) Uvodne napomene

More information

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION VFR AIP Srbija / Crna Gora ENR 1.4 1 ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION 1. KLASIFIKACIJA VAZDUŠNOG PROSTORA

More information

BENCHMARKING HOSTELA

BENCHMARKING HOSTELA BENCHMARKING HOSTELA IZVJEŠTAJ ZA SVIBANJ. BENCHMARKING HOSTELA 1. DEFINIRANJE UZORKA Tablica 1. Struktura uzorka 1 BROJ HOSTELA BROJ KREVETA Ukupno 1016 643 1971 Regije Istra 2 227 Kvarner 4 5 245 991

More information

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA

PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA Dr Srđan Damjanović Dr Predrag Katanić PROGRAMSKI JEZIK VISUAL BASIC ZBIRKA ZADATAKA FAKULTET POSLOVNE EKONOMIJE BIJELJINA, 2014. Recenzenti: Prof. dr Rade Stankić Prof. dr Slobodan Obradović Izdaje: FAKULTET

More information

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti MRS LAB 03 MRSLab03 Metodologija Razvoja Softvera Vežba 03 Dijagrami aktivnosti 1. Dijagram aktivnosti Dijagram aktivnosti je UML dijagram koji modeluje dinamičke aspekte sistema. On predstavlja pojednostavljenje

More information

Rešavanje problema pomoću računara

Rešavanje problema pomoću računara Rešavanje problema pomoću računara Vladimir Filipović vladaf@matf.bg.ac.rs Softversko inženjerstvo Šta podrazumevamo pod softverskim inženjerstvom? vladaf@matf.bg.ac.rs 2/16 Konstrukcija prevodilaca Prevođenje

More information

PROJEKTNI PRORAČUN 1

PROJEKTNI PRORAČUN 1 PROJEKTNI PRORAČUN 1 Programski period 2014. 2020. Kategorije troškova Pojednostavlj ene opcije troškova (flat rate, lump sum) Radni paketi Pripremni troškovi, troškovi zatvaranja projekta Stope financiranja

More information

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT TRAJANJE AKCIJE 16.01.2019-28.02.2019 ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT Akcija sa poklonima Digitally signed by pki, pki, BOSCH, EMEA, BOSCH, EMEA, R, A, radivoje.stevanovic R, A, 2019.01.15 11:41:02

More information

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY Softverski sistem Survey za geodeziju, digitalnu topografiju i projektovanje u niskogradnji instalira se na sledeći način: 1. Instalirati grafičko okruženje pod

More information

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013

INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 Dr Srđan Damjanović Dr Predrag Katanić INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 FAKULTET POSLOVNE EKONOMIJE BIJELJINA, 2017. INTEGRISANO RAZVOJNO OKRUŽENJE VISUAL STUDIO 2013 Autori: Prof. dr

More information

Korak X1 X2 X3 F O U R T W START {0,1}

Korak X1 X2 X3 F O U R T W START {0,1} 1) (8) Formulisati Traveling Salesman Problem (TSP) kao problem traženja. 2) (23) Dato je prostor stanja sa slike, sa početnim stanjem A i završnim stanjem Q. Broj na grani označava cijenu operatora, a

More information

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine UNIVERZITETUBEOGRADU RUDARSKOGEOLOŠKIFAKULTET DEPARTMANZAHIDROGEOLOGIJU ZBORNIKRADOVA ZLATIBOR 1720.maj2012.godine XIVSRPSKISIMPOZIJUMOHIDROGEOLOGIJI ZBORNIKRADOVA IZDAVA: ZAIZDAVAA: TEHNIKIUREDNICI: TIRAŽ:

More information

DEFINISANJE TURISTIČKE TRAŽNJE

DEFINISANJE TURISTIČKE TRAŽNJE DEFINISANJE TURISTIČKE TRAŽNJE Tražnja se može definisati kao spremnost kupaca da pri različitom nivou cena kupuju različite količine jedne robe na određenom tržištu i u određenom vremenu (Veselinović

More information

Tema 11 Analiza algoritama, pretraživanje i sortiranjeu jeziku Python

Tema 11 Analiza algoritama, pretraživanje i sortiranjeu jeziku Python Tema 11 Analiza algoritama, pretraživanje i sortiranjeu jeziku Python dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za informatiku i računarstvo, Tehnički fakultet Osnove programiranja (Python)

More information

1. MODEL (Ulaz / Zadržavanje / Stanje)

1. MODEL (Ulaz / Zadržavanje / Stanje) 1. MODEL (Ulaz / Zadržavanje / Stanje) Potrebno je kreirati model koji će preslikavati sledeći realan sistem: Svaki dan dolazi određen broj paleta u skladište Broj paleta na nivou dana se može opisati

More information

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Uvod u GIT Šta je git? Sistem za verzionisanje softvera kao i CVS, SVN, Perforce ili ClearCase Orginalno

More information

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a NIS PETROL Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a Beograd, 2018. Copyright Belit Sadržaj Disable... 2 Komentar na PHP kod... 4 Prava pristupa... 6

More information

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice VBA moduli mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice Moduli (modules) ponašanje modula Ponašanje modula može se prilagoditi na 4 načina: Option Explicit Option Private Module

More information

Direktan link ka kursu:

Direktan link ka kursu: Alat Alice može da se preuzme sa sledeće adrese: www.alice.org Kratka video uputstva posvećena alatu Alice: https://youtu.be/eq120m-_4ua https://youtu.be/tkbucu71lfk Kurs (engleski) posvećen uvodu u Java

More information

Tutorijal za Štefice za upload slika na forum.

Tutorijal za Štefice za upload slika na forum. Tutorijal za Štefice za upload slika na forum. Postoje dvije jednostavne metode za upload slika na forum. Prva metoda: Otvoriti nova tema ili odgovori ili citiraj već prema želji. U donjem dijelu obrasca

More information

Sl.1.Razvojna ploča-interfejs

Sl.1.Razvojna ploča-interfejs Nastavna jedinica: Praktični primeri upravljanja pomoću računara Predmet: Tehničko i informatičko obrazovanje Razred: VIII Tip časa: Obrada,Vežba Obrazovni cilj/ishod: Upravljanje raznim uređajima pomoću

More information

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA: Past simple uporabljamo, ko želimo opisati dogodke, ki so se zgodili v preteklosti. Dogodki so se zaključili v preteklosti in nič več ne trajajo. Dogodki so se zgodili enkrat in se ne ponavljajo, čas dogodkov

More information

Mogudnosti za prilagođavanje

Mogudnosti za prilagođavanje Mogudnosti za prilagođavanje Shaun Martin World Wildlife Fund, Inc. 2012 All rights reserved. Mogudnosti za prilagođavanje Za koje ste primere aktivnosti prilagođavanja čuli, pročitali, ili iskusili? Mogudnosti

More information

TEHNIKA I INFORMATIKA U OBRAZOVANJU

TEHNIKA I INFORMATIKA U OBRAZOVANJU TEHNIKA I INFORMATIKA U OBRAZOVANJU Konferencija 32000 Čačak 9-11. Maja 2008. UDK: 004 : 371 Stručni rad VEZA ZAVISNOSTI INSTANCE Munir Šabanović 1, Momčilo Vujičić 2 Rezime: Objektno orijentisani jezici

More information

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU KONFIGURACIJA MODEMA ZyXEL Prestige 660RU Sadržaj Funkcionalnost lampica... 3 Priključci na stražnjoj strani modema... 4 Proces konfiguracije... 5 Vraćanje modema na tvorničke postavke... 5 Konfiguracija

More information

3. Strukturna sistemska analiza... 2 3.1. Uvod... 2 3.1.1. Sadržaj... 2 3.1.2. Ciljevi... 3 3.2. Analiza sistema... 3 3.2.1. Sistem... 3 3.2.2. Analiza sistema... 4 3.2.3. Modelovanje sistema... 6 3.2.3.1.

More information

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE) SISTEMI ZA PODRŠKU ODLUČIVANJU dr Vladislav Miškovic vmiskovic@singidunum.ac.rs Fakultet za računarstvo i informatiku 2013/2014 Tema 2: Uvod u sisteme

More information

Upute za korištenje makronaredbi gml2dwg i gml2dgn

Upute za korištenje makronaredbi gml2dwg i gml2dgn SVEUČILIŠTE U ZAGREBU - GEODETSKI FAKULTET UNIVERSITY OF ZAGREB - FACULTY OF GEODESY Zavod za primijenjenu geodeziju; Katedra za upravljanje prostornim informacijama Institute of Applied Geodesy; Chair

More information

Windows Easy Transfer

Windows Easy Transfer čet, 2014-04-17 12:21 - Goran Šljivić U članku o skorom isteku Windows XP podrške [1] koja prestaje 8. travnja 2014. spomenuli smo PCmover Express i PCmover Professional kao rješenja za preseljenje korisničkih

More information

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ DIZAJN TRENINGA Model trening procesa FAZA DIZAJNA CILJEVI TRENINGA Vrste ciljeva treninga 1. Ciljevi učesnika u treningu 2. Ciljevi učenja Opisuju željene

More information

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C

Implementacija sparsnih matrica upotrebom listi u programskom jeziku C INFOTEH-JAHORINA Vol. 10, Ref. E-I-15, p. 461-465, March 2011. Implementacija sparsnih matrica upotrebom listi u programskom jeziku C Đulaga Hadžić, Ministarstvo obrazovanja, nauke, kulture i sporta Tuzlanskog

More information

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011.

TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TEHNOLOGIJA, INFORMATIKA I OBRAZOVANJE ZA DRUŠTVO UČENJA I ZNANJA 6. Međunarodni Simpozijum, Tehnički fakultet Čačak, 3 5. jun 2011. TECHNOLOGY, INFORMATICS AND EDUCATION FOR LEARNING AND KNOWLEDGE SOCIETY

More information

Materijal za prijemni ispit na Doktorske studije iz informatike

Materijal za prijemni ispit na Doktorske studije iz informatike Materijal za prijemni ispit na Doktorske studije iz informatike Materijal je organizovan u dve celine koje pokrivaju dva dela prijemnog ispita. Prva celina ima tri oblasti kojima se proverava informatičko

More information

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll) pomodu razvojnog okruženja Microsoft Visual Studio 2010 Autor: dipl.ing. Nemanja Kojić, asistent Decembar 2013. Korak 1

More information

2. poglavlje - IDENTIFIKACIJA POTROŠAČA - od 62 do 80 strane (19 strana)

2. poglavlje - IDENTIFIKACIJA POTROŠAČA - od 62 do 80 strane (19 strana) Analizirana poglavlja Šapićeve disertacije Broj redova u radu Izvor preuzimanja Broj preuzetih redova 2. poglavlje - IDENTIFIKACIJA POTROŠAČA - od 62 do 80 strane (19 strana) 1. 62 strana 31 2. 63 strana

More information

Bušilice nove generacije. ImpactDrill

Bušilice nove generacije. ImpactDrill NOVITET Bušilice nove generacije ImpactDrill Nove udarne bušilice od Bosch-a EasyImpact 550 EasyImpact 570 UniversalImpact 700 UniversalImpact 800 AdvancedImpact 900 Dostupna od 01.05.2017 2 Logika iza

More information

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ 1 СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ 2 ПРИНЦИПИ МЕНАЏМЕНТА КВАЛИТЕТОМ 3 ПРИНЦИПИ МЕНАЏМЕНТА КВАЛИТЕТОМ 4 ПРИНЦИПИ МЕНАЏМЕНТА КВАЛИТЕТОМ Edwards Deming Не морате то чинити, преживљавање фирми

More information

Projektovanje softvera. Dijagrami slučajeva korišćenja

Projektovanje softvera. Dijagrami slučajeva korišćenja Projektovanje softvera Dijagrami slučajeva korišćenja Uvod 2 Dijagram slučajeva korišćenja (use-case) prikazuje skup slučajeva korišćenja i aktera Tipično se koristi da specificira neku funkcionalnost

More information

Struktura i organizacija baza podataka

Struktura i organizacija baza podataka Fakultet tehničkih nauka, DRA, Novi Sad Predmet: Struktura i organizacija baza podataka Dr Slavica Aleksić, Milanka Bjelica, Nikola Obrenović Primer radnik({mbr, Ime, Prz, Sef, Plt, God, Pre}, {Mbr}),

More information

Babylon - instalacija,aktivacija i rad sa njim

Babylon - instalacija,aktivacija i rad sa njim Babylon - instalacija,aktivacija i rad sa njim Babilon je vodeći svetski prevodilac brzog online i offline rečnika sa prevođenjem u preko 75 jezika jednim jednostavnim klikom misa i koriste ga miloni privatnih

More information

Sa druge strane neproto~no organizovan sistem ~ije je vreme ciklusa 25 ns ima}e propusnost od

Sa druge strane neproto~no organizovan sistem ~ije je vreme ciklusa 25 ns ima}e propusnost od 1. Zavisnosti izmedju instrukcija Kao {to smo uo~ili proto~nost pove}ava performanse procesora na taj na~in {to pove}ava instrukcionu propusnost. Imaju}i u vidu da se u jednom ciklusu preklapa izvr{enje

More information

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon

Automatske Maske za zavarivanje. Stella, black carbon. chain and skull. clown. blue carbon Automatske Maske za zavarivanje Stella Podešavanje DIN: 9-13 Brzina senzora: 1/30.000s Vidno polje : 98x55mm Četiri optička senzora Napajanje : Solarne ćelije + dve litijumske neizmenjive baterije. Vek

More information

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. Idejno rješenje: Dubrovnik 2020. Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020. vizualni identitet kandidature dubrovnika za europsku prijestolnicu kulture 2020. visual

More information

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET!

WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA YOUR SERENITY IS OUR PRIORITY. VAŠ MIR JE NAŠ PRIORITET! WELLNESS & SPA DNEVNA KARTA DAILY TICKET 35 BAM / 3h / person RADNO VRIJEME OPENING HOURS 08:00-21:00 Besplatno za djecu do 6 godina

More information

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći: Pogledi Ciljevi Poslije kompletiranja ove lekcije trebalo bi se moći: Opisati pogled Formirati novi pogled Vratiti podatke putem pogleda Izmijeniti postojeći pogled Insertovani, ažurirati i brisati podatke

More information

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6. KOREKTAN PREVOD? - Reupotrebljiv softver? ( ne postoji prefiks RE u srpskom jeziku ) - Ponovo upotrebljiv softver? ( totalno bezveze ) - Upotrebljiv više puta? - Itd. PLAN RADA 1. Počnimo sa primerom!

More information

1. Instalacija programske podrške

1. Instalacija programske podrške U ovom dokumentu opisana je instalacija PBZ USB PKI uređaja na računala korisnika PBZCOM@NET internetskog bankarstva. Uputa je podijeljena na sljedeće cjeline: 1. Instalacija programske podrške 2. Promjena

More information

H Marie Skłodowska-Curie Actions (MSCA)

H Marie Skłodowska-Curie Actions (MSCA) H2020 Key facts and figures (2014-2020) Number of RS researchers funded by MSCA: EU budget awarded to RS organisations (EUR million): Number of RS organisations in MSCA: 143 4.24 35 In detail, the number

More information

Osnovi računarstva II. Uvodne napomene Tipovi podataka i operacije Osnovni algoritamski koraci

Osnovi računarstva II. Uvodne napomene Tipovi podataka i operacije Osnovni algoritamski koraci Osnovi računarstva II Uvodne napomene Tipovi podataka i operacije Osnovni algoritamski koraci OSNOVI RAČUNARSTVA II Predmetni nastavnik: Prof. dr Vesna Popović-Bugarin kabinet 322 Konsultacije ponedjeljkom

More information

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA MODEL OBJEKTI - VEZE MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA MODELI PODATAKA Model objekti-veze Relacioni model Objektni model Objektno-relacioni model Aktivne baze podataka XML kao

More information

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

Mašinsko učenje Uvod. Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ Mašinsko učenje Uvod Bojan Furlan УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ Šta je to mašinsko učenje? Disciplina koja omogućava računarima da uče bez eksplicitnog programiranja (Arthur Samuel 1959).

More information

3.2. Prikazati podatke o svim proizvodima, koji se proizvode u Zrenjaninu.

3.2. Prikazati podatke o svim proizvodima, koji se proizvode u Zrenjaninu. Primer 3. Data je sledeća šema baze podataka S = (S, I ), pri čemu je skup šema relacija: S = { Dobavljač({ID_DOBAVLJAČA, NAZIV, STATUS, GRAD}, {ID_DOBAVLJAČA}), Deo({ID_DETALJA, NAZIV, BOJA, TEŽINA, GRAD},

More information

RANI BOOKING TURSKA LJETO 2017

RANI BOOKING TURSKA LJETO 2017 PUTNIČKA AGENCIJA FIBULA AIR TRAVEL AGENCY D.O.O. UL. FERHADIJA 24; 71000 SARAJEVO; BIH TEL:033/232523; 033/570700; E-MAIL: INFO@FIBULA.BA; FIBULA@BIH.NET.BA; WEB: WWW.FIBULA.BA SUDSKI REGISTAR: UF/I-1769/02,

More information

PROBLEM ODREĐIVANJE MAKSIMALNOG TOKA U GRAFU FORD FULKERSON ALGORITAM MAKSIMALNOG PROTOKA (FFF ALGORITAM)

PROBLEM ODREĐIVANJE MAKSIMALNOG TOKA U GRAFU FORD FULKERSON ALGORITAM MAKSIMALNOG PROTOKA (FFF ALGORITAM) PROBLEM ODREĐIVANJE MAKSIMALNOG TOKA U GRAFU Protoci u mrežama predstavljaju jedan od najinteresantnijih ekstremalnih problema u teoriji grafova. Naime, problem određivanja optimalnog protoka u informacionim,

More information

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja. LabVIEW-ZADACI 1. Napisati program u LabVIEW-u koji računa zbir dva broja. Startovati LabVIEW Birati New VI U okviru Controls Pallete birati numerički kontroler tipa Numerical Control, i postaviti ga na

More information

Dr Smiljan Vukanović, dis

Dr Smiljan Vukanović, dis NAPREDNI SISTEMI UPRAVLJANJA SAOBRAĆAJEM SVETLOSNIM SIGNALIMA SU DEO ITS-A. DA ILI NE? ADVANCED TRAFFIC SIGNAL CONTROL SYSTEMS ARE A PART OF ITS. YES OR NO? Dr Smiljan Vukanović, dis Rezultat rada na projektu

More information

SKINUTO SA SAJTA Besplatan download radova

SKINUTO SA SAJTA  Besplatan download radova SKINUTO SA SAJTA www.maturskiradovi.net Besplatan download radova Prirucnik za gramatiku engleskog jezika Uvod Sama suština i jedna od najbitnijih stavki u engleskoj gramatici su pomoćni glagoli! Bez njih

More information

RJEŠAVANJE BUGARSKOG SOLITERA

RJEŠAVANJE BUGARSKOG SOLITERA SVEUČILIŠTE U SPLITU PRIRODOSLOVNO MATEMATIČKI FAKULTET ZAVRŠNI RAD RJEŠAVANJE BUGARSKOG SOLITERA Bože Brečić Split, rujan 2015. Sadržaj 1. Uvod... 1 1.1. Povijest bugarskog solitera... 1 1.2. Slični

More information

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE CJENOVNIK KABLOVSKA TV Za zasnivanje pretplatničkog odnosa za korištenje usluga kablovske televizije potrebno je da je tehnički izvodljivo (mogude) priključenje na mrežu Kablovskih televizija HS i HKBnet

More information

FAKULTET TEHNIČKIH NAUKA

FAKULTET TEHNIČKIH NAUKA UNIVERZITET U NOVOM SADU FAKULTET TEHNIČKIH NAUKA Nastavni predmet: Vežba br 6: Automatizacija projektovanja tehnoloških procesa izrade alata za brizganje plastike primenom ekspertnih sistema Doc. dr Dejan

More information

Pravljenje Screenshota. 1. Korak

Pravljenje Screenshota. 1. Korak Prvo i osnovno, da biste uspesno odradili ovaj tutorijal, morate imati instaliran GOM Player. Instalacija je vrlo jednostavna, i ovaj player u sebi sadrzi sve neophodne kodeke za pustanje video zapisa,

More information

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES

TEHNO SISTEM d.o.o. PRODUCT CATALOGUE KATALOG PROIZVODA TOPLOSKUPLJAJUĆI KABLOVSKI PRIBOR HEAT-SHRINKABLE CABLE ACCESSORIES TOPOSKUPJAJUĆI KABOVSKI PRIBOR HEAT-SHRINKABE CABE ACCESSORIES KATAOG PROIZVODA PRODUCT CATAOGUE 8 TEHNO SISTEM d.o.o. NISKONAPONSKI TOPOSKUPJAJUĆI KABOVSKI PRIBOR TOPOSKUPJAJUĆE KABOVSKE SPOJNICE kv OW

More information

CRNA GORA

CRNA GORA HOTEL PARK 4* POLOŽAJ: uz more u Boki kotorskoj, 12 km od Herceg-Novog. SADRŽAJI: 252 sobe, recepcija, bar, restoran, besplatno parkiralište, unutarnji i vanjski bazen s terasom za sunčanje, fitnes i SPA

More information

KONKURSA ZA UPIS STUDENATA U ŠKOLSKU 2015/16 GODINU

KONKURSA ZA UPIS STUDENATA U ŠKOLSKU 2015/16 GODINU UNIVERZITET EDUCONS SREMSKA KAMENICA Vojvode Putnika 87. www.educons.edu.rs Naosnovučlanova 8, 54, 61 i 83 Zakona o visokom obrazovanju (u daljem tekstu: Zakon) i člana 48 i 109 Statuta Univerziteta Educons

More information

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09 MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09 LAB 09 Fizički model podatka 1. Fizički model podataka Fizički model podataka omogućava da se definiše struktura baze podataka sa stanovišta fizičke

More information

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08 MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08 LAB 08 Konceptualni model podataka Logički model podataka 1. Konceptualni model podataka Modeli podataka omogućavaju modelovanje semantičke i logičke

More information

Naredba je uputa računalu za obavljanje određene operacije.

Naredba je uputa računalu za obavljanje određene operacije. OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene operacije. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Postupak pisanja programa zovemo programiranje. Programski

More information

PROGRAMIRANJE I ALGORITMI

PROGRAMIRANJE I ALGORITMI Sveuč ilište u Zagrebu Fakultet strojarstva i brodogradnje Katedra za osnove konstruiranja N. Pavković, D. Marjanović, N. Bojčetić PROGRAMIRANJE I ALGORITMI Skripta, drugi dio Zagreb, 2005. Sadržaj Potprogrami

More information

Dr.Miroljub Banković, prof. Kragujevac, 2008.

Dr.Miroljub Banković, prof. Kragujevac, 2008. VISOKA TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA KRAGUJEVAC Skripta iz predmeta PROJEKTOVANJE INFORMACIONIH SISTEMA Dr.Miroljub Banković, prof. Kragujevac, 2008. SADRŽAJ OSNOVI TEORIJE SISTEMA... 3 DEFINICIJE

More information

FAKULTET POLITIČKIH NAUKA BEOGRAD. Doc. Dr Miloš Bešić METODOLOGIJA POLITIČKIH NAUKA SA STATISTIKOM

FAKULTET POLITIČKIH NAUKA BEOGRAD. Doc. Dr Miloš Bešić METODOLOGIJA POLITIČKIH NAUKA SA STATISTIKOM FAKULTET POLITIČKIH NAUKA BEOGRAD Doc. Dr Miloš Bešić METODOLOGIJA POLITIČKIH NAUKA SA STATISTIKOM Beograd, 2008 I OSNOVNA PITANJA NAUČNOG METODA U DRUŠTVENIM NAUKAMA Nauka, naučni metod, epistemološki

More information

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS - Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS 1. Pokrenite Adobe Photoshop CS i otvorite novi dokument sa komandom File / New 2. Otvoriće se dijalog

More information

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim

PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na prim PROJEKTOVANJE SOFTVERA PROJEKTOVANJE SOFTVERA Softver može biti sistemski i aplikativni. U sistemski softver spadaju operativni sistemi i razni uslužni programi. kao na primer: prevodioci za pojedine jezike,

More information

JavaScript podrska u radu sa greskama

JavaScript podrska u radu sa greskama JavaScript podrska u radu sa greskama Svaki od pregledaca ima svoj podrazumevani naci reagovanja na greske, Firefox i Chrome upisuju greske u log datoteku, dok recimo Internet Explorer i Opera generisu

More information