PROGRAMIRANJE I ALGORITMI

Size: px
Start display at page:

Download "PROGRAMIRANJE I ALGORITMI"

Transcription

1 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.

2 Sadržaj Potprogrami i funkcije (elementi modularizacije programa)...3 Razmjena podataka između potprograma...4 Vrste potprograma...4 Vrste procedura u Visual Basic-u...5 Deklariranje procedura...5 Deklariranje funkcija...5 Rekurzija...6 STRUKTURE PODATAKA... 7 Polje...8 Slog...8 Povezana lista...9 Stog...11 Red...12 Struktura stabla...13 Binarno stablo pretraživanja (eng. binary search tree)...15 Gomila (eng. heap)...15 Graf...15 Matrični prikaz grafova...16 ALGORITMI Iteracija...17 Primjer uporabe strukture stoga u algoritmu evaluacije aritmetičkog izraza...19 Algoritmi sortiranja...20 "Bubble" sort...21 Sortiranje umetanjem...22 Selection sort...22 "Heap" sortiranje...22 "Shell" sort...22 "Mergesort" (uparivanje i sortiranje)...23 "Quicksort"...23 Indirektno sortiranje...23 Algoritmi pretraživanja...23 Slijepo pretraživanje...24 Pretraživanje liste (niza)...24 Pretraživanje stabla...24 Usmjereno pretraživanje...25 Primjeri usmjerenog pretraživanja u inženjerskoj praksi...25 PROGRAMSKI JEZICI Podjela programskih jezika...27 Metodologije (paradigme) programiranja...27 Imperativno (proceduralno) programiranje...27 Programi pokretani događajima...28 Funkcijsko programiranje...29 Deklarativno (logičko) programiranje...30 Objektno orijentirana paradigma programiranja...30 Usporedba proceduralnog i objektnog programiranja...31 OBJEKTNO ORIJENTIRANO PROGRAMIRANJE Koncept objekta...33 Koncept klase...34 Osnovni elementi objektnog modela...36 Učahurenje (enkapsulacija)...36 Nasljeđivanje...37 Primjer nasljeđivanja metoda...39 Višeobličje (polimorfizam)...39 Osnove rada s objektima u.net Visual Basic-u...41 Složeni objektno orijentirani programski sustavi...42 Koncipiranje složenih objektnih sustava...42 Razvoj metoda modeliranja objektno orijentiranih programskih sustava...42 Unified Modeling Language (UML)...43

3 Potprogrami i funkcije (elementi modularizacije programa) Složeni programski problemi mogu se pojednostavniti dekompozicijom programa u manje cjeline. Takve manje cjeline obično nazivamo modulima. Moduli mogu sadržavati jednu ili više komponenti programskih procedura. Vrste procedura razlikuju se u programskim jezicima, a obično se dijele na potprograme i funkcije. Mogućnost razbijanja problema na manje cjeline važno je svojstvo svakog programskog jezika na taj način olakšava se razvoj, testiranje, održavanje i praćenje programa. Manje logičke cjeline lakše je testirati zasebno, odnosno nezavisno od ostalih dijelova programa. Nakon otklanjanja svih grešaka u svakoj manjoj cjelini, one se "sklapaju" u cjelovito programsko rješenje. Na slijedećoj slici prikazan je primjer dekompozicije složenijeg problema shematski je prikazana hijerarhija poziva modula iz glavnog programa. GLAVNI PROGRAM ZA PRORACUN ROTORA ELEKTROMOTORA UCITAVANJE ULAZNIH PODATAKA I PRIPREMA PRORACUNA IZRACUN TEŽINE ROTORA STATICKI PROGIB ITERACIJA PROGIB MAGN. SILA ODREÐIVANJE IZLAZNIH PODATAKA ODREÐIVANJE POJEDINIH FAKTORA PODJELA VRATILA NA SEGMENTE I «POLJA» POCETNA KRUTOST I EKSCENTRICITET METODA «PRIJENOSNIH» MATRICA KRUTOST LEŽAJEVA DINAMICKI PROGIB IZRACUN MAKS. NAPREZANJA, PROGIBA I NAGIBA PROVJERA VIJEKA TRAJANJA LEŽAJA METODA «PRIJENOSNIH» MATRICA METODA «PRIJENOSNIH» MATRICA Slika 1: Primjer dekompozicije složenog programskog sustava na manje module i potprograme Postoje brojni razlozi i prednosti korištenja potprograma: Smanjiti ponavljanja (redundancije) istih ili sličnih sekvenci programskog koda. Omogućiti ponovnu uporabu dijelova programskog koda u različitim programima. Dekompozicija složenih problema u manje i jednostavnije cjeline. Poboljšanje "čitljivosti" i preglednosti programa. Repliciranje rješenja za matematičke funkcije. Sakrivanje informacija i nevažnih detalja unutar pojedinih dijelova programa. Smanjenje rizika od grešaka, lakše održavanje i nadogradnja velikih sustava. Osnovna je funkcija potprograma "sakrivanje" nevažnih detalja programskog rješenja. Korištenje potprograma omogućuje bolji uvid u tok programa, tako da je pažnju lakše posvetiti problemu "Što radi" za razliku od "kako to radi". Općenito, da bi se ostvarila uporaba potprograma, koristi se određene forma naredbe poziva (eng. call). U trenutku izvođenja naredbe poziva potprograma, slijed (kontrola) izvođenja naredbi predaje se pozvanoj cjelini, odnosno prelazi se na izvršavanje naredbi potprograma. Nakon što se izvedu sve naredbe pozvanog potprograma, kontrola se vraća "pozivaču" i izvršavaju se dalje njegove naredbe. Potprogrami mogu biti pozvani iz glavnog programa, ali i sami potprogrami mogu pozivati druge potprograme. U principima implementacije potprograma među programskim jezicima male su razlike u: načinu prevođenja (mogućnost nezavisnog prevođenje i testiranja potprograma kao što to omogućuje Fortran, za razliku od npr. Pascala gdje se potprogrami deklariraju unutar glavnog programa); načinu prijenosa argumenata (po vrijednosti, ili po adresi);

4 po vrsti: o procedure-potprogrami čiji poziv je zasebna naredba unutar neke programske cjeline o funkcije - koje su dio nekog izraza i njihovo referenciranje vraća vrijednost Osnovne karakteristike potprograma koje razmatramo: imaju jednu ulaznu točku pozivajuća procedura (program) se zaustavlja u toku izvršavanja pozvanog potprograma, samo jedan potprogram se izvršava u danom vremenu kontrola se uvijek vraća pozivajućoj proceduri po završetku izvršavanja potprograma Postupak pozivanja u nekim situacijama drugačiji je u programiranju pokretanom događajima, jer je korisnik programa taj koji u većini slučajeva zapravo bira i poziva procedure, tj. elementi sučelja (odnosno korisnik) direktno sudjeluju u usmjeravanju tijeka izvođenja programa. Međutim dijelovi programa koji se pokreću događajima mogu biti sastavljeni od više potprograma i funkcija, a osim mogućnosti poziva procedure preko sučelja, postoje i procedure koje se pozivaju naredbama unutar programskog koda. Razmjena podataka između potprograma Potprogrami su zasebne programske jedinice koje stoga alociraju i različite (nepovezane) dijelove memorije za svoje varijable. Jedan potprogram "ne zna" za varijable drugoga, odnosno nema direktnog pristupa do adresa memorijskih lokacija na kojima su varijable drugih potprograma. Drugim riječima, potprogrami i "ne znaju" za postojanje drugih potprograma. Stoga pri pozivu potprograma ili funkcije pozvanoj cjelini treba "prenijeti" ulazne podatke, a pri završetku pozvana cjelina treba "vratiti" rezultate programu koji ga je pozvao. Postoji nekoliko načina prijenosa (razmjene) podataka između potprograma: Globalne varijable: o U ovom načinu varijable kojima treba pristupati više programskih cjelina deklariraju se "izvan" svake od njih, u posebnom "zajedničkom" dijelu memorije kojem imaju pristup sve programske cjeline. Uobičajeno je reći da su globalne varijable "vidljive" u svim potprogramima. Prenose se vrijednosti varijabli (call by value): o Kopira se vrijednost lokalne varijable iz pozivajuće procedure u lokalnu varijablu pozvane procedure. Ako pozvana procedura promijeni vrijednost varijable, to utječe samo na lokalnu kopiju u pozvanoj proceduri. Prenose se adrese varijabli (call by reference): o Pozvana procedura dobiva pristup lokalnim varijablama iz pozivajuće procedure. Pozvana procedura može trajno promijeniti vrijednost varijablama čije su adrese prenesene. Ako nije drukčije navedeno, u Visual Basic-u se podrazumijeva call by reference. Pojmovi dosega i trajanja varijabli važni su za razumijevanje prijenosa podataka (vrijednosti varijabli) između potprograma. Ova tematika detaljno je objašnjena u poglavlju o varijablama. Trajanje varijable je važno ako želimo zadržati vrijednost lokalne varijable pri ponovnom pozivu potprograma u tom slučaju lokalnu varijablu treba deklarirati kao "statičku", ali tu mogućnost nemaju svi programski jezici. Vrste potprograma Uobičajena je podjela potprograma na dvije osnovne vrste: Funkcije, (function) koje imaju od nula do više ulaznih argumenata i vraćaju jedan rezultat. Funkcije se pozivaju kao dio izraza, npr. A = fun(b). Pojam "vraćanja" vrijednosti zapravo je izračunavanje vrijednosti funkcije koja se dalje tretira kao i ostale varijable u izrazu. 4

5 Općenite potprograme (subroutine) koji imaju od nula do više ulaznih argumenata i više izlaznih rezultata koje predaju argumentima. Pozivaju se najčešće posebnom naredbom iza koje slijedi ime potprograma i lista ulaznih i izlaznih argumenata. Navođenje pojedinačnih podvrsta i načina implementacija potprograma u pojedinim jezicima zahtijevalo bi previše vremena i prostora. Također postoje i razlike u terminologiji neki jezici koriste termin "subroutine" kojeg prevodimo kao "potprogram" dok drugi jezici zapravo za isti pojam koriste termin "procedure" koji prevodimo kao "procedura". Za funkcije se također koriste i termini "funkcijski potprogram" ili "funkcijska procedura". Bez obzira na razlike u terminologiji, osnovna razlika između dvije vrste programskih jedinica je u načinu poziva i broju izlaznih argumenata. U daljnjem tekstu obraditi će se vrste potprograma samo za programski jezik Visual Basic. Vrste procedura u Visual Basic-u Zajednički naziv svih vrsta potprograma u Visual Basic-u je "procedura" (eng. procedure). Postoje tri vrste procedura: procedure vezane uz događaje (event procedures) pozivaju se aktiviranjem nekog događaja (npr. "klik" mišem na neki objekt na formi) opće procedure (general procedures) pozivaju se naredbom Call funkcijske procedure (function procedures) pozivaju se kao dio izraza Deklariranje procedura Opće procedure kao i procedure vezane uz događaje deklariraju se sa rezerviranom riječi "Sub" iza koje slijedi naziv procedure i lista argumenata. [Public Private] Sub name [(arglist)] [statements] [Exit Sub] [statements] End Sub arglist: [ByVal ByRef] varname[( )] Dvije su vrste procedura vezanih uz događaje: Događaj vezan uz kontrolu na formi: Private Sub controlname_eventname (arguments ) statements End Sub Događaj vezan uz formu: Private Sub Form_eventname (arguments) statements End Sub Deklariranje funkcija Funkcijske procedure deklariraju se sa rezerviranom riječi "Function" iza koje slijedi naziv procedure i lista argumenata. Barem jedanput prije naredbe "Exit Function" ili "End Function" mora se pojaviti naredba oblika ime funkcije = izraz, jer se tom naredbom dodjeljuje vrijednost koju funkcija "vraća" u pozivajuću proceduru. 5

6 [Public Private] Function name [(arglist)] [statements] [name = expression] [Exit Function] [statements] [name = expression] End Function arglist: [ByVal ByRef] varname[( )] Rekurzija Rekurzija je važan koncept u računalnoj znanosti jer se mnogi algoritmi mogu pomoću nje najbolje prikazati. Rekurzija je zapravo i jedan način implementacije potprograma u nekim jezicima potprogram može pozvati samog sebe uzrokujući zaustavljanje svojeg procesa izvršavanja za vrijeme dok traje drugi "ugnježđeni" proces izvršavanja istog potprograma. Kao primjer za bolje razumijevanje rekurzije razmotrimo definiciju predaka određene osobe: roditelji neke osobe su njeni preci (osnovni slučaj) roditelji bilo kojeg pretka su također preci osobe koju razmatramo (korak rekurzije) Rekurzivna procedura dakle poziva samu sebe ili sadrži poziv neke druge procedure koja bi mogla rezultirati pozivom originalne procedure. Da bi se izbjeglo beskonačno izvođenje programa: mora postojati određeni kriterij (temeljni kriterij) za koji procedura ne poziva samu sebe svaki put kad procedura pozove samu sebe (direktno ili indirektno) mora biti bliže temeljnom kriteriju Neki jezici (npr. FORTRAN) ne podržavaju rekurziju. Rekurzivni programi su kraći, ali izvođenje programa je dulje. Za pohranjivanje rezultata i povratak iz rekurzije koristi se struktura podataka stog. Primjer rekurzivno definirane funkcije je slijedeća definicija funkcije faktorijela: f(0) = 1 f(n) = n * f(n 1) za svaki cijeli broj n > 0 Prema danoj definiciji f(3) računa se kako slijedi: f(3) = 3 * f(3 1) = 3 * f(2) = 3 * 2 * f(2 1) = 3 * 2 * f(1) = 3 * 2 * 1 * f(1 1) = 3 * 2 * 1 * f(0) = 3 * 2 * 1 * 1 = 6 Slijedeći primjer rekurzivne funkcije u programskom jeziku C također izračunava faktorijel cijelog broja n: int fakt(int n){ if (n <= 1) { return 1; } else { return n * fakt(n-1); } } 6

7 STRUKTURE PODATAKA U računalnoj znanosti pojam "struktura podataka" označava način pohrane podataka u računalu koji omogućava efikasnu uporabu tih podataka. Vrlo često dobar odabir strukture podataka omogućuje i uporabu efikasnijeg algoritma obrade. Različite vrste struktura podataka odgovaraju različitim vrstama programskih problema, dapače neke strukture su visokospecijalizirane samo za određene zadatke. U razvoju složenih programskih sustava, izbor struktura podataka koje će se primjeniti jedan je od najvažnijih koraka. Iskustva razvoja velikih programskih sustava pokazala su da kvaliteta i performanse konačnih rješenja u mnogome ovise o izboru najpogodnijih struktura podataka. Nakon što su odabrane strukture podataka, često je odmah s time određen i algoritam kojeg treba upotrijebiti. Ukratko, možemo reći da je struktura podataka logički ili matematički model određene organizacije podataka. Slijedeće strukture podataka i operacije na njima temelji su računalne znanosti jer su osnovni elementi brojnih algoritama: Polje (eng. array) sekvencijalni niz podataka istog tipa koje imaju zajedničko ime Slog (eng. record) - skup podataka koji mogu biti različitog tipa, niz slogova obično je dio datoteke ili tablice Lista, povezana lista (eng. linked list) niz elemenata koji sadrže podatke i pokazivače na slijedeći element Stog (eng. stack) niz elemenata u kojem se dodavanje i brisanje mogu obavljati samo na jednom kraju niza Red (eng. queue) niz elemenata u kojem je dodavanje moguće samo na jednom kraju a brisanje samo na drugom kraju Stablo, binarno stablo (eng. binary tree) hijerarhijska struktura u kojoj svaki element može imati samo jednog prethodnika Graf (eng. graph) općenita struktura u kojoj svaki element može biti povezan sa više drugih elemenata Navedimo četiri osnovne operacije na strukturama podataka koje se primjenjuju na svim vrstama struktura: pristup i obrada preko svih podataka (eng. traversing): o pristup svakom elementu strukture točno jedanput, da bi se određeni podatak obradio (procesirao) primjer učitavanje polja ili matrice pretraživanje (eng. searching): o pronalaženje lokacije elementa strukture koji sadrži željenu vrijednost, ili pronalaženje svih elemenata strukture koji ispunjavaju jedan ili više uvjeta dodavanje novog elementa u strukturu brisanje određenog elementa iz strukture Strukture podataka dijele se na linearne i nelinearne. Struktura je linearna ako njeni elementi tvore niz, odnosno slijed linearnu listu. Dva su osnovna načina prikaza linearnih struktura u memoriji računala: linearna veza između elemenata ostvarena slijedom memorijskih lokacija to je karakteristično za polja linearna veza između elemenata ostvarena pokazivačima karakteristično za povezane liste Nelinearne strukture su stabla i grafovi. Pored već navedenih operacija pristupa i obrade, pretraživanja, dodavanja i brisanja, na linearne strukture se primjenjuju i operacije sortiranja (eng. sorting) po određenom redoslijedu i spajanja (eng. merging) kombiniranja dvije liste u jednu. Izbor određene vrste linearne strukture za danu situaciju ovisi o relativnoj učestalosti primjene pojedine od navedenih operacija. 7

8 Polje Struktura polja (eng. array) vrlo se često upotrebljava. Na poljima se jednostavno primjenjuju operacije prolaza, pretraživanja i sortiranja, stoga se polja koriste za pohranu relativno permanentnih (statičnih) skupova podataka. S druge strane, u situacijama gdje se veličina strukture ili sami podaci konstantno mijenjaju, povezane liste su pogodnije strukture od polja. Osnovni prikaz i objašnjenje strukture polja već je dan ranije, stoga ga ovdje nećemo ponavljati. Polje zauzima sekvencijalni niz memorijskih lokacija, a elementima polja pristupa se preko indeksa, dakle fizički redoslijed memorijskih lokacija određuje povezanost elemenata polja. Osnovni nedostaci polja su slijedeći: teško je dodavati i brisati elemente nakon što se elementima pridruže vrijednosti u većini jezika problematično je povećati alokaciju memorije za elemente polja Zbog navedenih nedostataka polja se smatraju statičkim strukturama podataka. Algoritam "pristupa i obrade" (eng. traversing) svih elemenata polja vrlo često se koristi npr. kod učitavanja ili ispisa elemenata polja ili kao dio drugih algoritama: 1. postavi brojač na početnu vrijednost jednaku indeksu početnog elementa polja 2. ponavljaj korake 3 i 4 tako dugo dok je brojač manji od indeksa krajnjeg elementa polja 3. pristupi elementu polja i primjeni željenu obradu na njemu 4. povećaj vrijednost brojača za 1 Slog Slog (eng. record) je skup međusobno povezanih (ali heterogenih) podataka koje obično nazivamo polja ili atributi. Zapisi nekih vrsta datoteka su zapravo skupovi slogova, odnosno takve datoteke su linearne liste slogova. Važno je naglasiti osnovne razlike između sloga i polja: elementi sloga mogu biti nehomogeni podaci (različitih tipova) ne mora postojati "prirodni" redoslijed elemenata sloga, elementi se označavaju imenima atributa Skup slogova možemo promatrati i kao tablicu u kojoj svaki stupac ima svoje ime i odgovara pojedinom polju (atributu) sloga. Takva struktura čini osnovu tzv. relacijskih baza podataka. Pojedini atribut sloga mora imati isti tip u svim slogovima. Jedan od mogućih načina pohrane i manipulacije sa slogovima je korištenje više paralelnih polja pri čemu svakom atributu sloga odgovara jedno polje, odnosno elementi različitih polja sa istom vrijednošću indeksa pripadaju jednom slogu. Drugi način manipulacije sa slogovima je korištenje različitih sintaktičkih elemenata specifičnih za određeni jezik neki jezici imaju ugrađenu strukturu sloga. Primjer sloga sa podacima o studentima - prvi redak tablice sadrži nazive atributa u slogu, a prikazan je niz od šest slogova: IME PREZIME MATIČNI BROJ DATUM ROĐENJA UPISANA GODINA Ime 1 Prezime Ime 4 Prezime Ime 8 Prezime Ime 2 Prezime Ime 3 Prezime Ime 5 Prezime

9 Povezana lista Povezana lista (eng. linked list) je linearna struktura elemenata u kojoj je redoslijed određen pokazivačima. Za razliku od polja, svaki element liste sadrži pokazivač (eng. pointer) na slijedeći element. Pošto pokazivač sadrži adresu slijedećeg elementa u listi, sukcesivni elementi liste ne moraju biti spremljeni u sukcesivnom nizu memorijskih lokacija. Na taj način fizički redoslijed memorijskih lokacija nema nikakav utjecaj na redoslijed elemenata u listi. Za razliku od polja, vrlo jednostavno je dodavanje i brisanje elemenata iz liste. Svaki element (čvor) povezane liste sastoji se od dva dijela: 1. Podatak 2. Pokazivač koji sadrži adresu slijedećeg čvora u listi Zadnji čvor sadrži tzv. null pokazivač koji označava kraj liste. Lista sadrži posebni pokazivač koji sadrži adresu prvog čvora u listi. POCETAK CVOR (ELEMENT LISTE) x POKAZIVAC NA SLIJEDECI ELEMENT PODACI Slika 2: primjer povezane liste sa 6 čvorova KRAJ LISTE Algoritam operacije pristupa i obrade svih elemenata povezane liste (eng. traversing a linked list): 1. Postavi pokazivač (PTR) na početak 2. Ponavljaj korake 3 i 4 dok je PTR različit od null 3. Pristupi elementu liste i izvrši željenu obradu 4. Postavi pokazivač (PTR) na slijedeći element PTR Slika 3: postupak pristupa i obrade elemenata povezane liste Najčešći način prikaza povezane liste u memoriji je korištenjem dva paralelna polja i varijablom (pokazivačem) koja sadrži adresu prvog člana liste. Na slici 4 prikazan je primjer sa poljima "DATA" i " "POINT". Svakom čvoru liste odgovara po jedan element iz svakog polja, s time da ti elementi imaju istu vrijednost indeksa. Polje "DATA" sadrži podatke svakog čvora, a polje "POINT" sadrži lokaciju slijedećeg čvora, odnosno podatka u listi. Varijabla "START" sadrži lokaciju početnog čvora u listi. Ako složimo po redoslijedu elemente liste, dobiti ćemo tekst "PRIMJER". 9

10 DATA POINT START R R I J P E M Slika 4: Prikaz povezane liste u memoriji pomoću dva paralelna polja Na slici 5 shematski je prikazano dodavanje elementa u povezanu listu. Prije dodavanja novog elementa čvor A pokazuje na slijedeći čvor B. Nakon umetanja novog čvora između čvorova A i B, čvor A pokazuje na novi čvor N, a čvor N pokazuje na čvor B. START Cvor A Cvor B x START a) Prije umetanja Cvor A Cvor B x Cvor N b) Nakon umetanja Slika 5: dodavanje elementa u povezanu listu Na sličan način, mijenjanjem lokacije na koju pokazuje pokazivač realizira se i brisanje elementa iz povezane liste. Dvostruko povezane liste (slika 6) mogu se procesirati (obilaziti) u dva smjera od početka do kraja i obrnuto. Svaki čvor (element) dvostruko povezane liste osim podatka, sadrži i dva pokazivača na prethodni i na slijedeći čvor u listi. pocetak podatak pokazivac na prethodni cvor pokazivac na slijedeci cvor kraj x x cvor N Slika 6: dvostruko povezana lista 10

11 Stog Polja i povezane liste dozvoljavaju dodavanje i oduzimanje (brisanje) elemenata na bilo kojem mjestu početku, kraju ili između. Postoje određene situacije u programiranju kada želimo ograničiti dodavanja i brisanja elemenata samo na kraj ili početak liste. Linearna struktura u kojoj se elementi mogu dodavati ili oduzimati samo na jednom kraju zove se stog (eng. stack). Slika 7 je shematski prikaz takve strukture nije moguće izvaditi ili umetnuti bilo koji element iz sredine prije nego se "skinu" svi elementi iznad njega. Iz toga slijedi da je zadnji dodani element ujedno i onaj koji će se prvi izvaditi. Stoga je drugi uobičajeni naziv za strukturu stoga : LIFO lista (eng. last in first out). Drugim riječima stog je struktura podataka kod koje se posljednji pohranjeni podatak prvi uzima u obradu. dodavanje oduzimanje Osnovne operacije na stogu su: dodavanje (umetanje) elementa na stog (eng. push) brisanje (oduzimanje) elementa iz stoga (eng. pop) Slika 7: shematski prikaz strukture stoga Premda se čini da je stog vrlo restriktivna struktura podataka, on ima brojne vrlo važne primjene u računalnoj znanosti. Prikaz i manipulacija sa stogom može se realizirati statičkom strukturom podataka. U jednodimenzionalno polje zadane strukture dodaju se ili brišu pojedine stavke po principu "LastInFirstOut" (LIFO). Pojedina operacija dodaj ili briši zahtijeva jednako vremena bez obzira na broj pohranjenih podataka. Situacija da je stog pun može zahtijevati alociranje dodatne memorije i ponovno izvođenje programa. Prazan stog ne mora značiti pogrešku. A B E N STOG VRH 4 10 MAX Slika 8: prikaz stoga pomoću jednodimenzionalnog polja Na slici 8 prikazan je primjer implementacije strukture stoga pomoću jednodimenzionalnog polja "STOG", te varijable "VRH" koja sadrži trenutnu poziciju najvišeg (gornjeg) elementa i varijable "MAX" koja sadrži maksimalni broj elemenata u stogu. Struktura stoga često se upotrebljava u situacijama kada određene korake obrade treba odgoditi do trenutka ispunjenja drugih uvjeta. Primjeri uporabe strukture stoga detaljnije su objašnjeni u poglavlju "Algoritmi". 11

12 Red Red (eng. queue) je linearna struktura u kojoj se elementi dodaju isključivo na jednom kraju, a oduzimaju isključivo na drugom kraju. Strukturu reda lako je predočiti analogijom sa istim pojmom u svakodnevnom životu npr. redom ispred blagajne u dućanu. Svaka nova osoba koja dođe zauzima mjesto na kraju reda, a osoba sa početka reda plaća svoju robu i odlazi. Drugi uobičajeni naziv za ovu strukturu je FIFO lista (eng. first in first out). Slika 9: red osoba Struktura reda može se u računalu implementirati na različite načine, a najčešće se koristi jedno jednodimenzionalno polje i dvije varijable (pokazivača) koje sadrže lokacije početka i kraja reda, odnosno lokacije početnog i krajnjeg elementa u redu. Takav način implementacije reda prikazan je na slici 10. QUEUE a) pocetak: 1 kraj: 4 AAA BBB CCC DDD N QUEUE b) pocetak: 2 kraj: 4 BBB CCC DDD N QUEUE c) pocetak: 2 kraj: 6 BBB CCC DDD EEE FFF N QUEUE d) pocetak: 3 kraj: 6 CCC DDD EEE FFF N Slika 10: Implementacija strukture reda pomoću polja Varijabla "početak" sadrži lokaciju prvog elementa na početku reda, a varijabla "kraj" lokaciju zadnjeg elementa na kraju reda. Inicijalno red sadrži 4 elementa, u drugom koraku briše se prvi element sa početka reda, u trećem koraku dodaju se dva nova elementa na kraj reda, a u četvrtom koraku briše se element sa početka reda. Uočite da se uz ovakav način brisanja i dodavanja elemenata stalno "pomičemo u desno", tj. za zapis elemenata reda koristi se zapravo samo jedan segment polja, a nakon svakog brisanja povećava se početni dio polja koje ostaje neiskorišteno. Ovaj problem može se riješiti tako da u određenom trenutku premjestimo krajnji član reda na početak polja, tj. da napravimo tzv. cirkularno polje. 12

13 a) inicijano prazan red: POCETAK: 0 KRAJ: 0 RED (QUEUE) Na slici 11 prikazan je primjer korištenja cirkularnog polja za red koji može sadržavati maksimalno pet članova. b) A, B i C ukljuceni: c) A iskljucen: d) D a zatim i E ukljuceni: e) B i C iskljuceni: f) F ukljucen: POCETAK: 1 KRAJ: 3 POCETAK: 2 KRAJ: 3 POCETAK: 2 KRAJ: 5 POCETAK: 4 KRAJ: 5 POCETAK: 4 KRAJ: 1 A B C B C B C D E D E F D E Ako cirkularno polje sadrži općenito n članova, tada polje(1) slijedi iza polje(n) i na taj način ponovno se iskorištava početni dio polja nakon što su elementi reda iz njega obrisani. U oba načina implementacije strukture reda pomoću polja može doći do tzv. preljeva (eng. overflow), tj. situacije da u polju nema više dovoljno mjesta za dodavanje novog člana u red. g) D iskljucen: POCETAK: 5 KRAJ: 1 F E h) G a zatim i H ukljucen: POCETAK: 5 KRAJ: 3 F G H E i) E iskljucen: POCETAK: 1 KRAJ: 3 F G H j) F iskljucen: POCETAK: 2 KRAJ: 3 G H k) K ukljucen: POCETAK: 2 KRAJ: 4 G H K l) G i H iskljuceni: POCETAK: 4 KRAJ: 4 K m) K iskljucen, RED prazan: POCETAK: 0 KRAJ: 0 Slika 11: Implementacija strukture reda pomoću tzv. cirkularnog polja Struktura stabla Za razliku od prethodno razmatranih linearnih struktura, stablo (eng. tree) je nelinearna struktura koja se koristi za prikaz hijerarhijskih odnosa između elemenata. Primjer strukture stabla koju koristimo u svakodnevnom radu je struktura direktorija, odnosno organizacija datotečnog sustava na računalu. Strukture stabla koje ćemo ovdje razmatrati sastoje se od čvorova (eng. nodes) i veza između njih koje uobičajeno nazivamo grane. Takva stabla imaju jedan početni čvor na vrhu hijerarhije, npr. u strukturi direktorija to je tzv. korijenski (osnovni) direktorij (eng. root directory.) Jedna od najvažnijih vrsta strukture stabla u računalstvu je tzv. binarno stablo. U binarnom stablu (eng. binary tree) svaki čvor ima ili najviše dva sljedbenika ili samo jednog ili nijednog sljedbenika. Na slici 12 prikazan je primjer binarnog stabla sa 11 čvorova. Čvorovi A, B i C imaju dva sljedbenika, čvorovi E i J po jednog sljedbenika, a čvorovi D, F, G, L i K nemaju sljedbenika. Čvorovi bez sljedbenika nazivaju se terminalni čvorovi. 13

14 A B C D E G H F J K Slika 12: Primjer binarnog stabla Jedna od primjena strukture binarnog stabla je prikaz aritmetičkog izraza koji se koristi u procesu prevođenja programa u strojni jezik. Korištenje tri paralelna polja jedan je od načina prikaza binarnog stabla u memoriji (slika 13). Polje INFO sadrži podatak o nazivu pojedinog čvora, polje LIJEVO sadrži lokaciju lijevog sljedbenika, a polje DESNO lokaciju desnog sljedbenika pojedinog čvora. Varijabla KORIJEN pokazuje na lokaciju početnog (korijenskog) čvora, a varijabla AVAIL pokazuje na lokaciju prvog slobodnog indeksa sva tri paralelna polja za upis podataka slijedećeg čvora koji bi se dodao u stablo. L KORIJEN 1 INFO K LIJEVO DESNO 0 0 A KORIJEN C G B C 4 14 x D x E x x G x H AVAIL A H x F x J x x K x 7 L x L x B F E J D Slika 13: Prikaz binarnog stabla u memoriji pomoću tri paralelna polja 14

15 Binarno stablo pretraživanja (eng. binary search tree) Binarno stablo pretraživanja jedna je od najvažnijih struktura podataka u računalnoj znanosti Za svaki čvor ove strukture vrijedi: vrijednost u čvoru je veća od svih vrijednosti u lijevom podstablu i manja od svih vrijednosti u desnom podstablu Slika 14: Primjer binarnog stabla pretraživanja Gomila (eng. heap) Gomila je vrsta strukture stabla koja se koristi u jednom od algoritama sortiranja. Struktura gomile je binarno stablo u kojem za svaki čvor vrijedi slijedeće: vrijednost u čvoru je veća ili jednaka od vrijednosti svih čvorova ispod njega (svih sljedbenika). Slika 15: Primjer strukture gomile Graf Struktura grafa (eng. graph) također je nelinearna. Definicija grafa: Graf G sadrži dva konačna skupa: skup točaka V, koje nazivamo čvorovima, i skup linija povezivanja E, koje nazivamo bridovima. Pri tome svaki brid povezuje dva čvora. G = (V, E) Definicija usmjerenog grafa: Usmjereni graf G = (V, E) je graf u kojem svaki brid e = (i,j) ima smjer od "inicijalne točke" (čvora) do "terminalne točke" (čvora). Pod uvjetom da su suprotnih smjerova, u usmjerenom grafu mogu postojati dva brida koja povezuju iste čvorove. Graf G je povezan ako i samo ako postoji jednostavna putanja između bilo koja dva čvora u G. Ako svakom bridu grafa pripada neki podatak, takav graf se naziva označenim. Ako su bridovima grafa pridružene pozitivne numeričke vrijednosti, onda se takav graf naziva težinski ili graf sa težinskim faktorima. 15

16 B D F 2 B 1 E A C E A 8 C D F a) graf b) graf sa težinskim faktorima Slika 16: Primjer prikaza strukture grafa Matrični prikaz grafova Čvorovi grafa obično se označavaju s v 1, v 2,. ili jednostavno brojevima, a bridovi s e 1, e 2,. ili s njihove dvije krajnje točke (čvora) npr.: e 1 = (1,4), e 2 =(1,2) Brid (v i, v j ) je svojstven (upadan, zavisan, eng. "incident") čvoru v i (vrhu); isto vrijedi za v j. Broj bridova svojstvenih čvoru v naziva se stupanj čvora v. Dva čvora nazivamo susjednim (eng. "adjacent") čvorovima grafa ako su povezani bridom, odnosno ako čine dvije krajnje točke brida. Za računalni prikaz grafova najpogodnije je koristiti matrice, pa slijedi prikaz nekoliko oblika matričnih prikaza grafova. Definicija matrice susjedstva (eng. adjacency matrix) grafa G: A = a ij [ a ] ij ( i, ) 1 ako G ima brid j = 0 ako nema brida Matrica susjedstva općeg grafa je simetrična. Element matrice susjedstva usmjerenog grafa, a ij = 1, onda kad postoji usmjereni brid (od čvora i prema čvoru j). Matrica susjedstva usmjerenog grafa nije simetrična. Definicija matrice incidencije grafa G: A = a jk [ a ] jk + 1 ako grana k izlazi iz čvora j = 1ako grana k ulazi u čvor j 0 ako grana k ne dira čvor j ALGORITMI Poznavanje algoritama temelj je uspješnog programiranja, pogotovu u razvoju složenih programskih sustava. Predviđena satnica predavanja i vježbi dopušta izlaganje samo najjednostavnijih osnovnih algoritama. Granicu između "osnovnih" i "složenih" algoritama teško je postaviti. Zadaci na vježbama prezentiraju neke od temeljnih algoritama obrade numeričkih podataka koji se javljaju u inženjerskoj praksi. Najjednostavniji algoritmi pogodni su za početak učenja programiranja, pri čemu je vrlo bitno izgraditi i usvojiti način razmišljanja i postupke rješavanja problema pri programiranju. Na vježbama se prvo obrađuju algoritmi operacija s nizovima učitavanje niza, sumiranje članova niza, pronalaženje minimalnog i/ili maksimalnog elementa niza, sortiranje, traženje i ispis članova niza koji zadovoljavaju određene uvjete. Nakon usvajanja navedenih algoritama na nizovima isti i slični algoritmi se obrađuju i na matricama. Pri tome se za nizove koristi struktura 16

17 jednodimenzionalnog polja, a za matrice dvodimenzionalna polja. Navedeni algoritmi detaljno su obrazloženi u podlogama za vježbe, stoga se ovdje neće izlagati. U ovom poglavlju posebna je pažnja posvećena postupku iteracije, jer se ona vrlo često javlja kao dio složenijih problema u inženjerskoj praksi. Nakon toga dan je jedan primjer uporabe strukture stoga u algoritmu za određivanje vrijednosti numeričkog izraza., te primjer najjednostavnijeg algoritma sortiranja niza brojeva. Poglavlje završava informativnim pregledom algoritama sortiranja i pretraživanja. Potrebno je napomenuti da su ovdje izložene samo neke odabrane klase (vrste) algoritama, a za svako ozbiljnije studiranje algoritama potrebno je proučiti specijaliziranu literaturu. Algoritmi se mogu klasificirati na mnogo različitih načina, a kriteriji pojedinih klasifikacija predmet su kontinuiranih rasprava u okružju računalne znanosti. Jedan način klasifikacije algoritama je prema metodologiji primjenjenoj u kreiranju algoritma. Moguće je razlučiti određen broj različitih metodologija (paradigmi): "Podijeli i vladaj" ponavlja se postupak reduciranja složenog problema na više jednostavnijih (manjih) cjelina, dok cjeline ne postanu dovoljno male da bi bile lako rješive. Reduciranje se obično ponavlja na rekurzivan način. "Dinamičko programiranje" pogodno je za probleme u kojima se cjelokupno rješenje može kreirati na način da se rješenja istih podproblema upotrijebe za rješavanje brojnih različitih instanci problema. Ovaj pristup nastoji izbjeći "rješavanje već riješenog". "Greedy" metoda slična je dinamičkom programiranju, osim što u svim koracima nemamo rješenje podproblema, pa se u takvim slučajevima radi "greedy" izbor onoga što se čini najpogodnijim u tom trenutku. Linearno programiranje Ovaj način rješavanja problema svodi se na kreiranje sustava linearnih nejednadžbi, nakon čega se nastoji maksimizirati ili minimalizirati ulazne veličine. Pretraživanje i enumeracija mnogi problemi (npr. igranje šaha) mogu se modelirati pomoću grafova. Algoritmi specifikacije pravila za kretanje (pretraživanje) po strukturi grafa korisni su za ovakve probleme. Probabilistički i heuristički postupci ne odgovaraju u potpunosti definiciji algoritma, jer generiraju rješenja na temelju slučajnih odabira. Genetički algoritmi nastoje pronaći rješenje oponašanjem bioloških evolucijskih procesa - ciklusima slučajnih mutacija generiraju se sukcesivne "generacije rješenja". Drugi način klasifikacije algoritama je prema načinu implementacije. Rekurzivni algoritam poziva (referencira) samog sebe do trenutka ispunjenja određenog uvjeta, a takva metoda uobičajena je u tzv. funkcijskom programiranju. Algoritmi se uobičajeno razmatraju sa pretpostavkom da računalo izvodi jednu po jednu instrukciju, odnosno podrazumijeva se jednoprocesorska arhitektura. Takve algoritme zovemo serijski algoritmi za razliku od paralelnih algoritama koji koriste prednosti višeprocesorskih arhitektura računala. Iteracija Postupak iteracije nastoji riješiti problem nalaženjem sukcesivnih aproksimacija točnom rješenju, polazeći od inicijalne pretpostavke. Najčešće se radi o rješavanju jednadžbe ili sustava jednadžbi, kada ima više nepoznanica nego jednadžbi. Za linearne sustave jednadžbi postoje dvije osnovne vrste iterativnih metoda: stacionarne i općenitije Krylove metode podprostora. Stacionarne iterativne metode rješavaju sustav linearnih jednadžbi sa operatorom koji je aproksimacija originala i na temelju mjerenja greške formiraju korekcijsku jednadžbu za koju se navedeni proces ponavlja. Stacionarne metode jednostavne su za implementaciju i analizu, ali konvergencija k točnom rješenju garantirana je samo za određene klase matrica. Iteracija je jedan od najvažnijih i vrlo čestih postupaka u rješavanju inženjerskih problema. Kod složenijih jednadžbi, "ručno" računanje brojnih koraka postaje mukotrpno i vrlo podložno greškama, pogotovo ako se zahtijeva velika točnost rješenja. Stoga je daleko lakše, brže, točnije i 17

18 efikasnije takve probleme rješavati računalnim programima. U počecima razvoja računala i programskih jezika upravo su numerički problemi bili prevladavajuće područje primjene računala. Sve iterativne metode karakterizira postupak rješavanja zadataka usmjerenim pokušajima. Ovisno o pojedinom problemu razlikovati će se načini približavanja (konvergiranja) k rješenju, odnosno korigiranja početnih pretpostavki. Da bi mogli osigurati približavanje rješenju, nužno je poznavati karakter funkcija u odabranom području. Moramo naglasiti da bilo koji iterativni postupak daje uvijek samo približno rješenje! Iteracija se primjenjuje se kad jednostavnim matematičkim postupcima nije moguće naći egzaktno rješenje. Postupak iteracije može se sažeti na tri osnovna koraka: 1. Pretpostaviti rješenje 2. Provjeriti da li pretpostavljeno rješenje zadovoljava uvjete 3. Ako rješenje zadovoljava uvjete, postupak se prekida i ispisuje se rješenje Ako rješenje ne zadovoljava uvjete, treba korigirati pretpostavke i vratiti se na prethodni korak. Drugi i treći korak ponavljaju se tako dugo dok se ne pronađe zadovoljavajuće rješenje. Ako na adekvatan način ne korigiramo pretpostavljeno rješenje, može se dogoditi da nema konvergencije prema rješenju i da se iteracija protegne na beskonačno ponavljanje drugog i trećeg koraka. Stoga obično treba uključiti i kontrolu realiziranog broja koraka, te ako je taj broj prevelik treba prekinuti postupak. Takve situacije događaju se obično ako ne poznajemo dovoljno dobro ponašanje funkcija u okolini rješenja, ali može biti i drugih uzroka izostanka konvergencije. Treba napomenuti da je programiranje složenijih iterativnih postupaka vrlo "osjetljiv" posao za kojeg je potrebno određeno iskustvo i poznavanje problema numeričke analize. Treba uvijek imati na umu na računalo radi sa konačnim brojem decimala i da kod određenih problema može doći do multiplikacije greške na taj način da nije moguće doći niti do približnog rješenja. Na slici 17 prikazani su grafovi dviju funkcija. Presjecište grafova je rješenje kojeg tražimo. Na ovom primjeru biti će izložena metoda binarnog pretraživanja, tj. rješenje tražimo tako da kontinuirano smanjujemo interval u kojem bi se trebalo naći rješenje tako dugo dok sam interval ne postane manji od zadane točnosti. Funkcija f1 kontinuirano pada na cijelom promatranom području (prije i nakon sjecišta), a funkcija f2 kontinuirano raste na cijelom promatranom području. Tražimo približno rješenje sa točnošću ε, tj. tražimo onu vrijednost x za koju će se y1 i y2 razlikovati za manje od ε. Za početnu pretpostavku uzimamo vrijednost x0. Izračuna se vrijednost y1 = f1(x0) i vrijednost y2 = f2(x0) i nakon toga provjeriti da li pretpostavljeno rješenje zadovoljava uvjete. Dakle treba provjeriti da li je apsolutna vrijednost razlike y1 i y2 manja od zahtijevane točnosti ε: Abs(y1-y2) < ε. Daljnji postupak približavanja rješenju prikazan je na slici 18. y1 = f (X) x, y1=y2 (Y-ε, Y+ε) y2 = f (X) Xo X1 Slika 17: početni korak iteracije 18

19 (X-ε, X+ε) y1 = f (X) x, y1=y2 (Y- ε, Y+ ε ) y2 = f (X) Xo X1 X1 X1 X1 X2 X2 X2 X1 Slika 18: približavanje rješenju u postupku iteracije Da bi osigurali konvergenciju postupka, moramo u svakom trenutku, odnosno u svakom koraku znati s koje strane rješenja se nalazi naša pretpostavka. To znači i da moramo biti sigurni s koje strane rješenja smo krenuli i u kojem smjeru. Npr. da smo pretpostavili x0 > x i nastavili dalje dodavati korekciju, dalje bi se samo neprestano udaljavali od rješenja. Stoga dakle na prikazanom primjeru pretpostavljamo da je x0 sigurno manji od x. Ukoliko je Abs(y1-y2) > ε, treba korigirati početnu pretpostavku. Ako smo sigurni da se nalazimo lijevo od rješenja, treba dakle dodati određeni iznos ( x1) i ponovno izračunati y1 i y2. Nakon svake korekcije treba ustanoviti da li smo još uvijek s iste strane rješenja ili smo prešli na drugu stranu. Ako poznajemo karakter funkcija u promatranom području onda možemo zaključiti gdje se nalazimo u odnosu na rješenje na temelju odnosa y1 i y2. Na prikazanom primjeru u području od x0 do x y1 je uvijek veće od y2, a desno od x y2 je veće od y1. Dakle da bi pravilno korigirali pretpostavku, moramo prvo ustanoviti da li se nalazimo s lijeve ili s desne strane rješenja. Ako je pretpostavka s lijeve strane, za korekciju treba dodati određeni iznos, a ako je pretpostavka s desne strane rješenja, pri korekciji potrebno je oduzeti određeni iznos! Ako bi korekcije radili tako da dodajemo i oduzimamo uvijek iste iznose, postupak bi "plesao" po istim točkama oko rješenja, bez konvergencije. Dakle, nakon što "pređemo" s druge strane rješenja treba oduzeti ili dodati različit iznos od korekcije u prethodnom koraku. U ovom primjeru nakon "promjene strane" iznos nove korekcije jednak je polovini iznosa korekcije u prethodnom koraku. Uočite na ne možemo uvijek točno znati u kojem koraku će se preći s jedne strane na drugu stranu od rješenja, stoga algoritam određivanja korekcije mora uvijek pripremiti iznos korekcije za suprotni smjer, tj. za jedan korak unaprijed. Primjer uporabe strukture stoga u algoritmu evaluacije aritmetičkog izraza Ovdje će biti izložen pojednostavljeni algoritam evaluacije numeričkog izraza kao primjer jednog od brojnih algoritama u kojima se koristi struktura stoga. Algoritam učitava aritmetički izraz kao niz znakova (string), a zadaća mu je izračunati vrijednost tako učitanog aritmetičkog izraza. 19

20 Radi pojednostavljenja algoritma u ovom primjeru uvedena su slijedeća ograničenja: izraz sadrži samo jednoznamenkaste cijele brojeve i operatore zbrajanja, oduzimanja, množenja i dijeljenja, izraz je već transformiran u "reverznu poljsku notaciju" Reverzna poljska notacija zapis je izraza u kome su operatori zapisani iza operanada: a + b a b + Algoritam evaluacije izraza: 1. Dodaj ) na kraj izraza da bi se označio kraj izraza 2. skeniraj ( parsiraj ) izraz s lijeva na desno i ponavljaj korake 3 i 4 dok se ne dostigne ) (oznaka kraja izraza) 3. Ako je pronađen operand, stavi ga na stog, tj. na vrh stoga 4. Ako je pronađen operator o : a. Uzmi dva elementa sa vrha stoga (A je na vrhu, a B ispod njega) b. Izračunaj B o A c. Stavi rezultat na vrh stoga 5. Kada se obradi cijeli izraz do oznake kraja, vrijednost izraza jednaka je elementu na vrhu stoga "Parsiranje" izraza je postupak kojim se redom obrađuje znak po znak iz učitanog niza, tj. izdvaja se pojedini znak i ustanovljava se da li je to znamenka ili operand. U slučaju višeznamenkastih brojeva, postupak parsiranja je složeniji jer treba ustanoviti za svaki broj početak i kraj niza znamenki. U slijedećoj tablici prikazani su svi koraci parsiranja izraza: 5 * ( ) 12 / 4 koji zapisan u reverznoj poljskoj notaciji glasi: * 12 4 / - U drugom stupcu tablice zapisan je simbol koji se trenutno obrađuje, a u trećem stupcu vide se svi podaci u stogu, odnosno trenutno stanje stoga. Pri tome je vrh stoga s lijeve strane, a kraj s desne strane. korak simbol stog , ,6, ,8 5 * , ,12,4 8 / 40, ) Algoritmi sortiranja Algoritam sortiranja postavlja elemente neke liste u određeni redoslijed. Najčešće se sortira po numeričkom redoslijedu ili po abecedi (leksikografski redoslijed). Efikasni algoritmi sortiranja preduvjet su uspješnosti nekih drugih algoritama npr. onih algoritama pretraživanja koji zahtijevaju sortiranu listu da bi u njoj mogli pronaći određeni član. Većina algoritama sortiranja 20

21 zasniva se na metodologiji "podijeli i vladaj" tj. ponavlja se postupak reduciranja složenog problema na više jednostavnijih (manjih) cjelina, odnosno veliki niz se dijeli na više manjih nizova koji se zasebno sortiraju. Takvi zasebno sortirani segmenti zatim se spajaju u konačno sortirani niz. Reduciranje niza se obično ponavlja na rekurzivan način. Algoritmi sortiranja najviše se razlikuju u operacijama odnosno načinima dijeljenja na podnizove i spajanja u konačno sortirani niz. "Bubble" sort Ovo je jedna od najjednostavnijih metoda sortiranja koja efikasno funkcionira samo za relativno maleni broj elemenata koji se sortiraju. Za veći broj elemenata ova metoda je prespora. Stoga se ova metoda vrlo rijetko upotrebljava osim za edukacijske svrhe. Najveći član u polju postavlja se na kraj polja, a u ostatku polja se na jednak način traži najveći član. Niz kojeg treba sortirati ima n članova. Osnovna je ideja premještanje najvećeg člana niza na posljednje mjesto, a zatim se postupak ponavlja za prvih n-1 članova niza, jer je na n-toj poziciji već najveći član. Postupak premještanja određenog člana niza na njegovo mjesto sastoji se od sukcesivnih usporedbi susjednih članova niza. Ukoliko je određeni član niza manji od onog koji slijedi iza njega, izvršava se zamjena njihovog redoslijeda. Niz je nužno sortiran kada se postupak uspoređivanja (počevši od prvog člana niza do zadnjeg nesortiranog) ponovi n-1 puta. Prvi puta nužno je izvršiti n-1 usporedbu, da bi najveći član došao na posljednje mjesto u nizu. U svakom će sljedećem prolazu kroz niz broj usporedbi biti manji za jedan. PRIMJER: broj članova niza: n = 4 članovi niza: 7, 2, 6, 1 7 > 2! 2, 7, 6, 1 j = 1 7 > 6! 2, 6, 7, 1 } 3 usporedbe 7 > 1! 2, 6, 1, 7 i = 1, n j 3 prolaza kroz podatke 2 < 6! 2, 6, 1, 7 j = 2 6 > 1! 2, 1, 6, 7 } 2 usporedbe n 1 prolaz i = 1, n j prolaz j = 1, n - 1 j = 3 2 > 1! 1, 2, 6, 7 } 1 usporedba i = 1, n j Algoritam "bubble" sort metode u pseudokodu: 1. Učitati broj članova niza N 2. Učitati niz u jednodimenzionalno polje X 3. Petlja J = 1, N 1 petlja I = 1, N J ako je X ( I ) > X ( I + 1) onda izvrši zamjenu sadržaja dva susjedna člana polja: Y = X ( I ) X ( I ) = X ( I + 1 ) X ( I + 1 ) = Y 4. Ispisati sortirani niz X. 21

22 Sortiranje umetanjem Ova metoda slična je prethodnoj, ali je ipak nešto efikasnija. Element niza uspoređuje se sa svim prethodnim elementima dok se ne pronađe slijedeći manji element. Na taj način element niza "umeće" se na svoju poziciju u sortiranom dijelu niza. Sortiranje umetanjem daje dobre rezultate za male liste (do 30 elemenata) (-)? (----)? ( )? ( )? ( )? Selection sort Ova metoda traži najmanji element u nesortiranom dijelu polja i stavlja ga na svoje mjesto ( ) ( ) ( ) ( ) ( ) "Heap" sortiranje "Heap" sortiranje pripada u familiju "selekcijskih" algoritama sortiranja. Takvi algoritmi sortiranja određuju prvo najveći (ili najmanji) element u listi te ga postavljaju na kraj (ili početak) liste, te na isti način nastavljaju sa ostatkom liste. "Heapsort" izvršava ovaj zadatak korištenjem strukture podataka koja se zove gomila (eng. heap). Podsjetimo se da je struktura gomile binarno stablo u kojem za svaki čvor vrijedi da je vrijednost u čvoru veća ili jednaka od vrijednosti svih njegovih sljedbenika. Lista se pretvara u gomilu, a korijenski čvor je sigurno najveći element liste. Korijenski čvor gomile se izuzima i stavlja se na kraj sortirane liste, tj. gomila se skraćuje za 1 element i ponovno podešava. "Shell" sort Donald Shell objavio je ovu metodu To je zapravo unaprijeđena "bubble" metoda i metoda "umetanja" na način da se elementi pomiču u redoslijedu za više pozicija istovremeno. Implementacija ove metode može se opisati kao "preslagivanje" liste (niza) u dvodimenzionalno polje i zatim sortiranje stupaca takvog polja metodom umetanja. I ova metoda nije efikasna za velike liste, ali je jedna od najbržih za liste reda veličine oko 1000 elemenata. Prednost je ove metode što ima male zahtjeve za memorijom. 22

23 "Mergesort" (uparivanje i sortiranje) Ovaj algoritam koristi strategiju "podijeli pa vladaj". Niz se rekurzivno dijeli u segmente koji se zasebno sortiraju, a zatim se sortirani segmenti spajaju u konačno sortirani niz. U primjeru na slici 19 niz je podijeljen na dva segmenta koji su nakon sortiranja ponovo spojeni u jedan niz. Slika 19: Primjer "mergesort" metode "Quicksort" "Quicksort" je do sada najbrži poznati algoritam za sortiranje. I ovo je rekurzivni algoritam zasnovan na strategiji "podijeli pa vladaj". Algoritam se sastoji od slijedećih koraka: 1. Odabir jednog člana niza, tzv. "pivot-a". 2. Raspodijeliti članove niza na taj način da sve elemente manje od pivot-a stavimo ispred njega (podniz 1), a sve članove veće od pivot-a stavimo iza njega (podniz 2). Nakon te raspodjele "pivot" se nalazi na svojoj konačnoj poziciji. 3. Rekurzivno sortirati svaki podniz na isti način. Slika 20: raspodjela niza na dva podniza oko odabranog "pivot-a" x Rekurzija se prekida na nizovima od jednog ili niti jednog elementa, koji su sami po sebi sortirani. "Quicksort" algoritam u svakoj iteraciji stavlja barem jedan element niza na njegovu konačnu poziciju. Izbor "pivot-a" nije jednoznačno određen, a nije niti jednoznačno određeno što učiniti s članovima polja jednakim "pivot-u", pa to postaje pitanje realizacije algoritma. Indirektno sortiranje Ako treba sortirati velike strukture, npr. slogove koji sadrže više polja: matični broj studenta, prezime, ime, adresa, upisani predmeti i ocjene itd., tada nema smisla obavljati mnogo zamjena velikog broja podataka. Ako se slogovi sortiraju npr. po matičnom broju, tada se izdvoje u posebno polje matični brojevi s pripadnim pokazivačima na ostale podatke. Sortira se (bilo kojim od postupaka) samo takvo izdvojeno polje. Algoritmi pretraživanja U računalnoj znanosti algoritam pretraživanja u širem kontekstu je algoritam koji daje rješenje nekog problema nakon evaluacije skupa mogućih rješenja. Skup svih mogućih rješenja problema naziva se uobičajeno "prostor pretraživanja". Osnovna podjela algoritama pretraživanja je na tzv. "slijepe" (eng. blind, uninformed search) i "usmjerene" (engl. directed, informed search). 23

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

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

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

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

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

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

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

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

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

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

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

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

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

int[] brojilo; // polje cjelih brojeva double[] vrijednosti; // polje realnih brojeva

int[] brojilo; // polje cjelih brojeva double[] vrijednosti; // polje realnih brojeva Polja Polje (eng. array) Polje je imenovani uređeni skup indeksiranih vrijednosti istog tipa (niz, lista, matrica, tablica) Kod deklaracije, iza naziva tipa dolaze uglate zagrade: int[] brojilo; // polje

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

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

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

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

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

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

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

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

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

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko komunikacijske znanosti TOMISLAV ĐURANOVIĆ USPOREDBA ALGORITAMA SORTIRANJA.

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko komunikacijske znanosti TOMISLAV ĐURANOVIĆ USPOREDBA ALGORITAMA SORTIRANJA. Sveučilište Jurja Dobrile u Puli Odjel za informacijsko komunikacijske znanosti TOMISLAV ĐURANOVIĆ USPOREDBA ALGORITAMA SORTIRANJA Završni rad Pula, rujan, 2017. godine Sveučilište Jurja Dobrile u Puli

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

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

3. Obavljanje ulazno-izlaznih operacija, prekidni rad

3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3. Obavljanje ulazno-izlaznih operacija, prekidni rad 3.1. Spajanje naprava u ra unalo Slika 3.1. Spajanje UI naprava na sabirnicu 3.2. Kori²tenje UI naprava radnim ekanjem Slika 3.2. Pristupni sklop UI

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

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

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

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

Pregled algoritama sortiranja

Pregled algoritama sortiranja Sveučilište J.J. Strossmayera u Osijeku Filozofski fakultet Preddiplomski studij informacijskih znanosti Zrna Kojčić Pregled algoritama sortiranja Završni rad Mentor : doc.dr.sc. Gordana Dukić Komentor:

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

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

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

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

MS Excel VBA za studente kemije

MS Excel VBA za studente kemije MS Excel VBA za studente kemije - podsjetnik - Ovaj podsjetnik sadrži kratka objašnjenja i pravilni način pisanja (sintaksu) za sve naredbe koje su obrađene tijekom održavanja Računalnog praktikuma 2.

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

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

PASCAL - Skripta sa zadacima i rješenjima -

PASCAL - Skripta sa zadacima i rješenjima - Elena Krelja-Kurelović, prof. PASCAL - Skripta sa zadacima i rješenjima - SADRŽAJ: I. UVOD U PASCAL...1 1. Tipovi podataka...2 2. Deklariranje varijabli...2 3. Definiranje konstanti...3 II. PISANJE PROGRAMA

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

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

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

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

OTVARANJE BAZE PODATAKA I IZRADA TABLICE U MICROSOFT ACCESS-u

OTVARANJE BAZE PODATAKA I IZRADA TABLICE U MICROSOFT ACCESS-u OTVARANJE BAZE PODATAKA I IZRADA TABLICE U MICROSOFT ACCESS-u MS Access je programski alat za upravljanje bazama podataka. Pomoću Accessa se mogu obavljati dvije grupe aktivnosti: 1. izrada (projektiranje)

More information

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports. IZVJEŠTAJI U MICROSOFT ACCESS-u (eng. reports) su dijelovi baze podataka koji omogućavaju definiranje i opisivanje načina ispisa podataka iz baze podataka na papir (ili PDF dokument). Način izrade identičan

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

Strukture podataka. Strukture podataka su složeni tipovi podataka

Strukture podataka. Strukture podataka su složeni tipovi podataka Strukture podataka Strukture podataka su složeni tipovi podataka Nastaju primenom apstrakcije agregacije, tj. objedinjavanjem više jednostavnijih tipova podataka Svaka konkretna vrednost strukture podataka

More information

PODSUSTAV ZA UPRAVLJANJE SPREMNIKOM UGRADBENOG RAČUNALA

PODSUSTAV ZA UPRAVLJANJE SPREMNIKOM UGRADBENOG RAČUNALA SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br.1412 PODSUSTAV ZA UPRAVLJANJE SPREMNIKOM UGRADBENOG RAČUNALA Kornelija Vodanović Zagreb, lipanj 2010. SADRŽAJ 1. Uvod 3 2. Opis

More information

RAČUNALSTVO ZBIRKA ZADATAKA

RAČUNALSTVO ZBIRKA ZADATAKA RAČUNALSTVO ZBIRKA ZATAKA 1 1. Navedite tri supstancije čijom se pretvorbom ostvaruje tehnološki razvoj. Materija, energija i informacija 2. Sastavite dijagram toka za izračunavanje korijena kvadratne

More information

STRUKTURNO KABLIRANJE

STRUKTURNO KABLIRANJE STRUKTURNO KABLIRANJE Sistematski pristup kabliranju Kreiranje hijerarhijski organizirane kabelske infrastrukture Za strukturno kabliranje potrebno je ispuniti: Generalnost ožičenja Zasidenost radnog područja

More information

Služi za brisanje prethodno upisanih sadržaja u čitavom worksheetu. Opcija nije nužna, ali je korisna.

Služi za brisanje prethodno upisanih sadržaja u čitavom worksheetu. Opcija nije nužna, ali je korisna. MS Excel VBA za studente kemije - podsjetnik - Ovaj podsjetnik sadrži kratka objašnjenja i pravilni način pisanja (sintaksu) za sve naredbe koje su obrađene tijekom održavanja Računalnog praktikuma. Dodatak

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

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

Mindomo online aplikacija za izradu umnih mapa

Mindomo online aplikacija za izradu umnih mapa Mindomo online aplikacija za izradu umnih mapa Mindomo je online aplikacija za izradu umnih mapa (vrsta dijagrama specifične forme koji prikazuje ideje ili razmišljanja na svojevrstan način) koja omogućuje

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

UPITI (Queries) U MICROSOFT ACCESSU XP

UPITI (Queries) U MICROSOFT ACCESSU XP UPITI (Queries) U MICROSOFT ACCESSU XP Odabirom opcije [Queries] na izborniku [Objects] koji se nalazi s lijeve strane glavnog prozora baze na većem dijelu ekrana pojavljuju se dva osnovna načina izrade

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

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE

MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE MINISTRY OF THE SEA, TRANSPORT AND INFRASTRUCTURE 3309 Pursuant to Article 1021 paragraph 3 subparagraph 5 of the Maritime Code ("Official Gazette" No. 181/04 and 76/07) the Minister of the Sea, Transport

More information

Statistička analiza algoritama za dinamičko upravljanje spremnikom

Statistička analiza algoritama za dinamičko upravljanje spremnikom SVEUČILIŠTE U ZAGREBU FAKULTET ELETROTEHNIKE I RAČUNARSTVA ZAVRŠNI ZADATAK br. 1716 Statistička analiza algoritama za dinamičko upravljanje spremnikom Nikola Sekulić Zagreb, lipanj 2011. Sadržaj: 1. Uvod...

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

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4188 SUFIKSNO STABLO Tomislav Šebrek Zagreb, lipanj 2015. Sadržaj 1. Uvod... 1 2. Sufiksno stablo... 2 3. Naivni Ukkonenov algoritam...

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

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

Office 365, upute za korištenje elektroničke pošte

Office 365, upute za korištenje elektroničke pošte Office 365, upute za korištenje elektroničke pošte Naša ustanova koristi uslugu elektroničke pošte u oblaku, u sklopu usluge Office 365. To znači da elektronička pošta više nije pohranjena na našem serveru

More information

Primjer 3 Prikaz i interpretacija rezultata

Primjer 3 Prikaz i interpretacija rezultata Primjer 3 Prikaz i interpretacija rezultata - uđite u task Postprocessing - odaberite naredbu Results - odaberite prikaz Von Misesovih naprezanja: - odaberite iz popisa stavku 2 - B.C. 1.STRESS_2 i pomoću

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

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze

Trening: Obzor financijsko izvještavanje i osnovne ugovorne obveze Trening: Obzor 2020. - financijsko izvještavanje i osnovne ugovorne obveze Ana Ključarić, Obzor 2020. nacionalna osoba za kontakt za financijska pitanja PROGRAM DOGAĐANJA (9:30-15:00) 9:30 10:00 Registracija

More information

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) -

Primjeri pitanja iz 1. ili 2. skupine (za 2 ili 4 boda po pitanju) - Razvoj poslovnih aplikacija, EFO 1. Kolokvij pitanja Kolokvij će se sastojati od 12 pitanja, od toga će biti 3 skupine pitanja: 1. Skupina: 5 pitanja s zatvorenog tipa s ponuđenim odgovorima (svako pitanje

More information

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu

Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Slobodni softver za digitalne arhive: EPrints u Knjižnici Filozofskog fakulteta u Zagrebu Marijana Glavica Dobrica Pavlinušić http://bit.ly/ffzg-eprints Definicija

More information

4. Stabla odlučivanja

4. Stabla odlučivanja 4. Stabla odlučivanja MARIJANA ZEKIĆ-SUŠAC SVEUČILIŠTE J.J. STROSSMAYERA U OSIJEKU, EKONOMSKI FAKULTET U OSIJEKU 1 Što ćete naučiti u ovom poglavlju? Što su i koje su vrste stabala odlučivanja? Kako funkcioniraju

More information

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ANTONIO VUK DATOTEKE U PROGRAMSKOM JEZIKU C++ Završni rad

Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ANTONIO VUK DATOTEKE U PROGRAMSKOM JEZIKU C++ Završni rad Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije ANTONIO VUK DATOTEKE U PROGRAMSKOM JEZIKU C++ Završni rad Pula, rujan 2017. godine Sveučilište Jurja Dobrile u Puli Odjel

More information

Objektno orjentirano programiranje

Objektno orjentirano programiranje Objektno orjentirano programiranje Predavanje 2 Uvod u objektno orijentirani koncept Uvod Objektno orijentirani razvoj softvera je prisutan od 1960ih Danas se koristi u industriji razvoja softvera Razvoj

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

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

UPUTE ZA RAD S MODULOM "ČLANOVI" U SUSTAVU "VATRONET"

UPUTE ZA RAD S MODULOM ČLANOVI U SUSTAVU VATRONET HRVATSKA VATROGASNA ZAJEDNICA UPUTE ZA RAD S MODULOM "ČLANOVI" U SUSTAVU "VATRONET" RADNI DOKUMENT Siječanj 2016. Sadržaj 1. Pristup aplikaciji VATROnet... 2 2. Izgled aplikacije... 3 2.1 Zaglavlje aplikacije...

More information

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik) JEDINSTVENI PORTAL POREZNE UPRAVE Priručnik za instalaciju Google Chrome dodatka (Opera preglednik) V1 OPERA PREGLEDNIK Opera preglednik s verzijom 32 na dalje ima tehnološke promjene zbog kojih nije moguće

More information

Fakultet strojarstva i brodogradnje ZAVRŠNI RAD

Fakultet strojarstva i brodogradnje ZAVRŠNI RAD Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje ZAVRŠNI RAD Zagreb, 2010. Darko Dokladal Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje ZAVRŠNI RAD Voditelj rada: Prof. dr. sc. Mario

More information

WWF. Jahorina

WWF. Jahorina WWF For an introduction Jahorina 23.2.2009 What WWF is World Wide Fund for Nature (formerly World Wildlife Fund) In the US still World Wildlife Fund The World s leading independent conservation organisation

More information

MASKE U MICROSOFT ACCESS-u

MASKE U MICROSOFT ACCESS-u MASKE U MICROSOFT ACCESS-u Maske (Forms) ili obrasci su objekti baze podataka u Accessu koji služe za unošenje, brisanje i mijenjanje podataka u tablicama ili upitima koji imaju ljepše korisničko sučelje

More information

Natjecateljsko programiranje Autor i predavač ovog predavanja: Bruno Rahle Kontakt Kontakt mob: 099/BRAHLE0

Natjecateljsko programiranje Autor i predavač ovog predavanja: Bruno Rahle Kontakt   Kontakt mob: 099/BRAHLE0 Natjecateljsko programiranje Autor i predavač ovog predavanja: Bruno Rahle Kontakt e-mail: brahle@gmail.com; Kontakt mob: 099/BRAHLE0 Teorija (~10 min) Gladijatori(~40 min) BFS (~20 min) DFS (~15 min)

More information

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP

ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP ECONOMIC EVALUATION OF TOBACCO VARIETIES OF TOBACCO TYPE PRILEP EKONOMSKO OCJENIVANJE SORTE DUHANA TIPA PRILEP M. Mitreski, A. Korubin-Aleksoska, J. Trajkoski, R. Mavroski ABSTRACT In general every agricultural

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

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

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA

EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU OGLASA SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU FAKULTET ELEKTROTEHNIKE, RAČUNARSTVA I INFORMACIJSKIH TEHNOLOGIJA Sveučilišni diplomski studij računarstva EKSPLORATIVNA ANALIZA PODATAKA IZ SUSTAVA ZA ISPORUKU

More information

Sudoku. Ivo Doko, Saša Buzov. PMF Matematički odsjek, Sveučilište u Zagrebu

Sudoku. Ivo Doko, Saša Buzov. PMF Matematički odsjek, Sveučilište u Zagrebu Sudoku Ivo Doko, Saša Buzov PMF Matematički odsjek, Sveučilište u Zagrebu ivo.doko@gmail.com, sasa.buzov@gmail.com Sažetak: U ovom članku opisujemo kako smo riješili problem generiranja novih sudoku slagalica

More information

Iskustva video konferencija u školskim projektima

Iskustva video konferencija u školskim projektima Medicinska škola Ante Kuzmanića Zadar www.medskolazd.hr Iskustva video konferencija u školskim projektima Edin Kadić, profesor mentor Ante-Kuzmanic@medskolazd.hr Kreiranje ideje 2003. Administracija Učionice

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

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

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o.

UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. UPUTE ZA INSTALACIJU PROGRAMA FINBOLT 2007 tvrtke BOLTANO d.o.o. Šta je potrebno za ispravan rad programa? Da bi program FINBOLT 2007 ispravno i kvalitetno izvršavao zadaću koja je postavljena pred njega

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

11 Analiza i dizajn informacionih sistema

11 Analiza i dizajn informacionih sistema 11 Analiza i dizajn informacionih sistema Informatika V.Prof.dr Kemal Hajdarević dipl.ing.el 25.4.2014 11:58:28 1 1. Kompjuter, Internet, i mrežne osnove 2. Kompjuterska industrija Informatika u stomatologiji

More information

Izrada kalkulatora u C#

Izrada kalkulatora u C# Završni rad br. 404/EL/2017 Izrada kalkulatora u C# Saša Ružić, 5559/601 Varaždin, rujan 2017. godine Odjel za elektrotehniku Završni rad br. 404/EL/2017 Izrada kalkulatora u C# Student Saša Ružić, 5559/601

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

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

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

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak. Fizički dizajn baze podataka.

Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak. Fizički dizajn baze podataka. Sveučilište Jurja Dobrile u Puli Fakultet ekonomije i turizma «Dr. Mijo Mirković» Josip Bošnjak Fizički dizajn baze podataka Završni rad Pula, 2015. Sveučilište Jurja Dobrile u Puli Fakultet ekonomije

More information

Bear management in Croatia

Bear management in Croatia Bear management in Croatia Djuro Huber Josip Kusak Aleksandra Majić-Skrbinšek Improving coexistence of large carnivores and agriculture in S. Europe Gorski kotar Slavonija Lika Dalmatia Land & islands

More information

OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP

OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP OTVARANJE BAZE PODATAKA U MICROSOFT ACCESSU XP Microsoft Access je programski alat za rad s bazama podataka. Baza podataka u Accessu se sastoji od skupa tablica (Tables), upita (Queries), maski (Forms),

More information

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Voditelj rada: Prof.dr.sc. Dorian Marjanović Ante Čamber Zagreb, FSB Sveuč

SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Voditelj rada: Prof.dr.sc. Dorian Marjanović Ante Čamber Zagreb, FSB Sveuč SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Ante Čamber Zagreb, 2008. SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Voditelj rada: Prof.dr.sc. Dorian Marjanović

More information