Programiranje dreves

Size: px
Start display at page:

Download "Programiranje dreves"

Transcription

1 Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje dreves Maturitetna seminarska naloga iz informatike Kandidat: Tomc Matej Mentor: Medvešek Helena Ljubljana Šentvid, šolsko leto 2014/2015

2 Ključne besede Drevesa, podatkovne strukture, Python Povzetek Ta projektna naloga se osredotoča na podatkovne strukture s poudarkom na hierarhičnih podatkovnih strukturah drevesih. V uvodu je vsebovana obširnejša poljudna razlaga in klasifikacija podatkovnih struktur ter njihova uporaba in pomen. Temu sledi poglobljena obravnava drevesnih struktur na teoretični ravni, nazadnje pa še ročna implementacija binarnega iskalnega drevesa v programskem jeziku Python. Implementaciji sta dve in se razlikujeta po principu urejanja podatkov; ena jih povezuje med seboj, medtem ko jih druga urejeno shranjuje v seznam. Abstract The focus of this project is on data structures concentrating especially on hierarchical data structures trees. The first part talks about data structures in general their classification and the usage of each and is followed by a thorough explanation of tree data structures, spending most of its time on binary search trees. The initially theoretical solution is later manually implemented in Python programming language. There are two implementations of the solutions which diverge in the principles of implementation. While the first is implemented in a more common way by connecting elements that point to one another, the other one is array-based. Stran 2

3 Kazalo Povzetek... 2 Abstract... 2 Ključne besede Uvod Predstavitev problema Razlaga Okvirna metodologija Cilji naloge Uporabljena tehnologija Strojna oprema Programska oprema Zbiranje podatkov Teoretična rešitev Splošno o podatkovnih strukturah Pomen uporabe primerne podatkovne strukture za učinkovito rešitev Vrste in osnovne lastnosti podatkovnih struktur Hierarhične podatkovne strukture drevesa Besednjak Definicija splošnega drevesa Klasifikacija dreves Praktična rešitev Prva implementacija binarnega iskalnega drevesa Splošno binarno drevo Stran 3

4 3.1.2 Binarno iskalno drevo Druga implementacija binarnega iskalnega drevesa Prvi in drugi pristop Razlike pri implementaciji Prednosti in slabosti druge implementacije Praktična uporaba mojih dveh implementacij Kratka navodila za uporabo Sklep Ocena uspešnosti naloge Moţnosti izboljšav Izboljšava naloge Izboljšava programa Stvarno kazalo Viri in literatura Kazalo slik Slika 1: Različna binarna drevesa. (Lambert, str. 742, 2009) Slika 2: Levelorder obhod Slika 3: Preorder obhod Slika 4: Postorder obhod Slika 5: Inorder obhod Priloge Izvorna koda v programskem jeziku Python Stran 4

5 1 Uvod 1.1 Predstavitev problema Razlaga V zadnjem času veliko svojega časa namenjam programiranju s poudarkom na tekmovalnem programiranju. Poleg dobro domišljenega algoritma pa naloga od mene zahteva za učinkovito rešitev tudi uporabo primerne podatkovne strukture. Ko se spoprijemam z vedno teţjimi in teţjimi nalogami, pa mi moje znanje, ki je bolj kot ne omejeno na linearne in neurejene podatkovne strukture, pogosto ne zadostuje več. Prav zato sem si za cilj projektne naloge zadal, da podrobneje spoznam hierarhične podatkovne strukture drevesa Okvirna metodologija Nalogo sem reševal v treh večjih sklopih. Najprej sem s študijem izbrane literature skušal pridobiti čim več potrebnega teoretičnega znanja, ki sem ga nato popisal v nadaljevanju naloge. Ţe sama ta naloga mi bo kasneje lahko sluţila kot zbirka znanja za ponovitev in razlago drugim. Nato sem svoja teoretična dognanja skušal še praktično uporabiti. Kodo sem spisal v programskem jeziku Python. Na koncu sem vse svoje implementacije podatkovnih struktur še testiral in jih primerjal z drugimi implementacijami Cilji naloge Moja naloga si ne zadaja za cilj široke druţbene uporabnosti, ampak so cilji predvsem osebne narave. Glavni cilj naloge je poglobitev mojega znanja na področju dreves. Posledično to prinaša tudi razširitev mojega programerskega znanja na področje objektnega programiranja in nenazadnje poglobitev znanja programskega jezika Python, ki ga bom uporabljal. Uporabno vrednost nalogi pa prinaša tudi dejstvo, da bom lahko nalogo uporabil kot pripomoček pri poučevanju programiranja, saj delujem kot somentor programerskega kroţka na svoji šoli in bom lahko znanje prenašal tudi na nadaljnje rodove. Stran 5

6 1.2 Uporabljena tehnologija Strojna oprema Pri izdelovanju projektne naloge sem ves čas uporabljal svoj prenosni računalnik. Njegova podrobnejša sestava je prikazana v sledeči tabeli: Tabela 1: Tehnične podrobnosti za prenosnik Lenovo IdeaPad G710 Procesor Grafična kartica Zaslon Intel Core i7 NVIDIA GeForce 820M, DDR3, 2GB 17,3" HD+ ( ) Glare LED Display Programska oprema Celotno projektno nalogo sem izdeloval na 64-bitnem operacijskem sistemu Windows 7 Professional. Za urejanje besedila seminarske naloge sem uporabljal MS Word (2010). V besedilu uporabljene slike sem obdelal v programu MS Picture Manager. Za pisanje kode za spletno predstavitev izdelka sem uporabljal Notepad++, za testiranje pa sem nato uporabljal brskalnike Google Chrome, Mozila Firefox in Internet Explorer. Te brskalnike sem prav tako uporabljal pri iskanju virov za seminarsko nalogo. Pri praktičnem delu sem uporabljal Python verzije 3.3.5, za katerega kodo sem pisal in testiral v programu IDLE (Python GUI). 1.3 Zbiranje podatkov Teţko bi trdil, da sem vse podatke, ki sem jih potreboval za izdelavo svoje projektne naloge, zbral v spodaj navedenih virih in literaturi. Dejstvo je, da ţe tretje leto obiskujem programerski kroţek na svoji šoli in se tudi redno udeleţujem programerskih tekmovanj, tako da mi področje zagotovo ni tuje, a znanje, ki sem ga do zdaj pridobil, mi je dalo le meglene obrise teme, ki sem se je odločil za projektno nalogo bolje raziskati. Do sedaj pridobljeno znanje mi je torej sluţilo kot dobra osnova, na kateri sem lahko gradil. Nato sem se lotil branja knjig. Knjige so same po sebi sicer precej drage, a so mi na Stran 6

7 pomoč priskočili prijatelji, od katerih sem si jih lahko izposodil, tako sem prebral zajeten kos knjige Introduction to Algorithms, pa tudi vsa relevantna poglavja knjige Fundamentals of Python, From First Programs through Data Structures. Opremljen s tem znanjem sem začel z reševanjem problema. Kljub vsemu pridobljenemu znanju so se mi na poti do rešitve še vedno postavljale prepreke. V teţavah sem se pogosto obrnil na spletno stran kjer so ljudje s podobnimi teţavami ţe zastavili podobna vprašanja in tako sem tudi sam dobil zadosten odgovor na svojo teţavo. Stran 7

8 2 Teoretična rešitev 2.1 Splošno o podatkovnih strukturah Pomen uporabe primerne podatkovne strukture za učinkovito rešitev Naloga vsakega programerja je, da napiše program, ki bo uspešno deloval. Spisati tak program, ki nek problem rešuje navadno niti ni tako teţko, zelo zahtevno pa je poiskati tako rešitev, da program naš problem razreši kar se da učinkovito. Bistvena kriterija učinkovitosti sta predvsem čas, ki ga računalnik porabi za izračun rešitve, ter prostor, ki ga za delovanje potrebuje zase na pomnilniku. Pri programu je torej potrebno, da poleg najboljšega algoritma za rešitev določenega problema uporabimo tudi primerno podatkovno strukturo, saj do v računalniku različno predstavljenih podatkov lahko dostopamo različno hitro. Primer tega je primerjava seznama (list) in množice (set). Zaradi različne implementacije lahko iz seznama s konca jemljemo elemente v konstantnem času, medtem ko je jemanje iz mnoţice odvisno od števila elemetnov v njej in se zgodi v logaritemskem času. Po drugi strani pa je preverjanje ali je element v mnoţici prav tako traja log(n) časa, medtem ko je v seznamu tako preverjanje linearno odvisno od števila elementov v njej. Poleg tega tudi seznam shranjuje mesta na katerih se nahajajo podatki, medtem ko mnoţica tega ne omogoča podatek ali je element mnoţice ali pa ni. Iz zgornjega opisa lahko vidimo, da so nekatere podatkovne strukture primernejše za neko rešitev, za drugo pa so primernejše druge, saj je njihova umestnost odvisna od tega, kaj želimo s podatki početi. Če na primer ţelimo predvsem ugotavljati, ali smo nek podatek do sedaj ţe videli ali ne, potem je za nas vsekakor primernejša mnoţica, če pa ţelimo predvsem shranjevati podatke in jih nato vračati glede na to, kdaj smo podatek shranili, pa je mnoţica neustrezna podatkovna struktura in je bolj modro uporabiti seznam, sklad, dvojno vrsto,... Stran 8

9 2.1.2 Vrste in osnovne lastnosti podatkovnih struktur V osnovi podatkovne strukture po obliki delimo na: Tabela 2: Primerjava različnih podatkovnih struktur Vrsta Lastnosti Primeri Primeri iz vsakdanje rabe Vedno ima Linearne predhodnika (razen prvi) in naslednika Vrsta (queue), sklad (stack) Vrsta ljudi na banki, kupček kart (razen zadnji) Vsak element ima Sistem datotek in Hierarhične natanko enega starša (razen najvišjega), in Drevesa map na disku, organizacija poljubno število otrok funkcij v podjetju Element je povezan s Grafi poljubnim številom Grafi avtokarte drugih elementov Vrečka frnikul, Neurejene Elementi med seboj niso povezani ali kakorkoli razvrščeni. So le del iste mnoţice Vreča(bag), mnoţica (set), slovar (dictionary) enako kot mnoţice pri matematiki, slovar, štetje pogostosti dogodkov Stran 9

10 2.2 Hierarhične podatkovne strukture drevesa Besednjak Tabela 3: Pomembni izrazi s področja dreves Slovenski izraz Angleški izraz Razlaga Vozlišče Node Element v drevesu Povezava Link/Branch/Edge Črta, ki povezuje dve vozlišči Koren Root Najvišje vozlišče v drevesu, ki je edino brez očeta Sin Child Vozlišče pod izbranim vozliščem, ki je z njim neposredno povezano. Vsako vozlišče ima lahko več sinov. Oče Parent Vozlišče nad izbranim vozliščem, ki je z njim neposredno povezano. Vsako vozlišče ima natanko enega očeta (razen korena) Siblings Sinovi istega očeta. List Leaf Vozlišče brez sinov. Notranje vozlišče Interior node Vozlišče z vsaj enim sinom. Potomec Descendant Potomec izbranega vozlišča je vozlišče samo in vsi potomci njegovih sinov. Prednik Ancestor Prednik izbranega vozlišča je vozlišče samo in vsi predniki njegovega očeta. Pot Path Zaporedje povezav, ki povezuje vozlišči, ki sta v razmerju prednik potomec. Dolţina poti Path length Število povezav na poti. Stran 10

11 Nivo Depth/level Dolţina povezave od korena do izbranega vozlišča 1. Višina Height Dolţina najdaljše poti. Poddrevo Subtree Drevo, ki ga dobimo, če upoštevamo le izbrano vozlišče in vse njegove potomce, pri čemer postane izbrano vozlišče koren novonastalega drevesa. Stopnja Degree Število sinov izbranega vozlišča Definicija splošnega drevesa Najprej naj podam definicijo, ki ustreza vsakršnemu drevesu. Splošno drevo je ali prazno ali pa ga sestavlja končna mnoţica vozlišč T. Eno izmed vozlišč r se razlikuje od vseh ostalih in se imenuje koren (root). Poleg tega je mnoţica T {r} razdeljena na podmnoţice, izmed katerih je vsaka splošno drevo. (Lambert, str. 736, 2009) Definicija je rekurzivna, kar se pri drevesih pojavlja pogosto. Vendar to ni edina definicija, ki se pojavlja v literaturi. Drug način definicije je prehod na drevesa s področja grafov. V tem smislu bi lahko najbolj splošno drevo definirali takole: Prosto drevo (free tree) je povezan, neusmerjen graf brez ciklov.... Če je graf neusmerjen in nima ciklov, vendar je nepovezan, potem je to gozd (forest). (Introduction to Algorithms, str. 736, 2009) Iz tega je kasneje mogoče izpeljati še mnogo zelo uporabnih lastnosti, ki nam pomagajo pri prehodu s področja grafov na področje dreves. Vendar pa v svoji nalogi nisem veliko govoril o grafih in zato sem se odločil, da dreves ne razlagam s pomočjo grafov, ampak posebej. Tako bomo privzeli, da je vsako drevo, o katerem bom v nadaljevanju govoril, splošno oz. ukoreninjeno drevo (rooted/general tree). 1 V drugi literaturi tudi: število vozlišč na poti od korena do izbraninega vozlišča, vključno s korenom in zadnjim vozliščem, torej so vsi nivoji za 1 večji kot v prvotni definiciji. V svoji nalogi se vom držal prvotne definicije. Stran 11

12 2.2.3 Klasifikacija dreves Ordered trees: Gre za splošna drevesa, pri katerih pa je vrstni red sinov pomemben. Sinove štejemo od leve proti desni. Tako je pri k sinovih skrajno levi sin prvi, desno od njega drugi in skrajno desno k-ti. Positional trees so drevesa katerih sinovi so oštevilčeni od ena do i. k-ary trees (k-terna drevesa) so positional trees, pri katerih ima vsako vozlišče največ k sinov. Najpogostejše drevo te vrste, ki ga srečamo v programiranju je binarno drevo. Zanj je značilno, da ima vsako vozlišče največ dva sinova. K-ary drevo lahko definiramo tudi takole: Bodisi je drevo prazno, bodisi ga sestavlja koren in k sinov, izmed katerih je vsak k-ary drevo. Pogosto ta drevesa še natančneje opišemo kot: Unbalanced: neuravnovešena Perfectly balanced: popolnoma uravnovešena - povsem zapolnjena na vseh nivojih, razen na zadnjem Complete: popolnoma uravnovešena z dodatnim pogojem, da so na najniţjem nivoju vsi sinovi umeščeni kar se da levo. Full: do nekega nivoja povsem zapolnjena drevesa, oz. vsi list drevesa so na istem nivoju. Slika 1: Različna binarna drevesa. (Lambert, str. 742, 2009) Stran 12

13 Poleg do sedaj naštetih dreves pa srečamo še raznorazna druga drevesa, ki so večinoma implementacije binarnega drevesa, dodelane, da sluţijo svojemu namenu. To so med drugim: Binarna iskalna drevesa, ki jih uporabljamo za urejanje vrednosti. Kopica, ki jo uporabljamo sortiranje s kopico (heapsort), pa tudi za implementacijo prioritetne vrste AVL in rdeče črna drevesa, ki so na tak način implementirana binarna drevesa, da ves čas ostajajo uravnovešena B drevesa Stran 13

14 3 Praktična rešitev 3.1 Prva implementacija binarnega iskalnega drevesa Implementacijo binarnega drevesa lahko opravimo na več načinov. Nekatere so seveda hitrejše od drugih, a od vsega najpomembneje je, da sledimo definiciji binarnega drevesa, tako da naše binarno drevo res deluje tako kot mora in da naša implementacija ponuja tudi primerne metode za delo z na ta način shranjenimi podatki. Podatkovna struktura je uporabna namreč le, če lahko poleg shranjevanja podatkov vanjo potem tudi do teh podatkov spet dostopamo, jih (pri določenih podatkovnih strukturah) spreminjamo, Splošno binarno drevo Osnovna zgradba Po definiciji je binarno drevo bodisi prazno, bodisi ga sestavlja koren in dva sinova (levi in desni), ki sta oba binarni drevesi. Da mi bo pri delu laţje, bom definiral dva razreda: prazno drevo in binarno drevo, ki je gotovo polno. Prazno drevo je pravzaprav le pomoţna podatkovna struktura, ki mi bo sluţila, da bo ves čas zadoščeno definiciji. To bo interna struktura, do katere ostali uporabniki moje kode ne bodo mogli dostopati. Prazno drevo bom torej vedno obešal na mesta, kjer nimam podatkov, a po definiciji tam morata biti in levi in desni sin, in ker prazno drevo po definiciji spada med binarna drevesa, bo tako ves čas zadoščeno definiciji. Nato bom tako za prazno kot za splošno binarno drevo definiral potrebne metode. Vedeti je sicer treba, da prazno drevo ne more podpirati vseh metod, a jih moram vseeno definirati, ker jih uporabnik lahko kliče na kateremkoli binarnem drevesu, torej tudi na praznem. Stran 14

15 Standardne metode, pomembne za nek objekt Skoraj vsak objekt je mora imeti definiran konstruktor. V programskemu jeziku Python je to def init (*args):. Ta funkcija se pokliče vedno, kadar je ustvarjen nov primerek tega razreda. Sprejme lahko nekaj argumentov, ki jih porabi za tvorjenje novega primerka, ali pa tudi ne. Druga standardna metoda, ki jo skoraj vsaka podatkovna struktura mora imeti, je izpis podatkov. V Pythonu funkcija print na nekem objektu vedno pokliče metodo str (self):, ta pa naš objekt spremeni v niz znakov, ki jih je mogoče izpisati na zaslon. Naslednja zelo uporabna metoda, ki jo moram definirati, če ţelim, da je moje binrano drevo kolikortoliko uporabno, je metoda iter (self):. To je metoda, ki se pokliče, ko čez nek objekt pošljem for zanko. Za svoje drevo ţelim, da v čim bolj logičnem vrstnem redu vrača vrednosti, za to bo for zanka uporabljala obhod inorder, ki ga bom razloţil v nadaljevanju. Najosnovnejše specifične metode Metode, ki jih moje binarno drevo ima, nam omogočajo: Preverjanje praznosti drevesa, Dostop do korena, levega in desnega sina, Nastavitev korena, levega in desnega sina na poljubno vrednost, Odstranitev levega oz. desnega sina iz drevesa (ko govorim o odstranitvi so to vselej neprazna poddrevesa, saj so prazna drevesa le oznake za luknje in jih uporabljamo prav za to, da namesto dosedanjega poddrevesa na ta mesta postavljamo luknje) Stran 15

16 Obhodi binarnega drevesa Bolj prefinjene metode so obhodi binarnega drevesa. V tem primeru ne dostopamo le do enega vozlišča, temveč je v igri dostop do vozlišč drevesa v določenem vrstnem redu. Vrednosti teh vozlišč nato za potrebe nadaljnjega dostopa zapišem v seznam. Poznamo štiri osnovne obhode dreves: 1. Levelorder Ta razvrstitev nam pove, kako si sledijo vozlišča po stopnjah od korena navzdol, pri čemer ob obisku vsakega nivoja najprej obiščemo skrajno levo vozlišče, nato pa se pomikamo proti desni. Slika 2: Levelorder obhod 2. Preorder Tokrat najprej obiščemo vrh, se nato pomikamo v levo poddrevo in nazadnje še v desno. Ko se premaknemo v levo oz. desno poddrevo pa bomo tam spet izvedli preorder obhod. 3. Postorder Obhod postorder deluje tako, da najprej obiščemo skrajno levo vozlišče nekega drevesa, se nato sprehodi do skrajno desnega vozlišča tega poddrevesa in šele ko po prvih dveh kriterijih ne more priti nikamor več, se doda vrednost vozlišča kjer trenutno smo in vse skupaj se rekurzivno razreši. Slika 3: Preorder obhod Slika 4: Postorder obhod Stran 16

17 4. Inorder To je v resnici najpogostejši obhod binarnega drevesa. V primeru, da gre za posebno obliko binarnega drevesa (binarno iskalno drevo), ki jo bom pojasnil v nadaljevanju, pa tudi vrne zaporedje elementov, ki je urejeno naraščajoče. Obhod inorder poteka takole: najprej obhodim z obhodom inorder celotno levo poddrevo, če Slika 5: Inorder obhod seveda le to obstaja, nato obiščem koren, nazadnje pa obhodim še desno poddrevo. V praksi to pomeni, da se v začetku pomaknem kolikor levo je le mogoče, nato se dvignem za en nivo do svojega trenutnega očeta, se spustim v desno poddrevo in ponavljam postopek, dokler niso bila obiskana ţe vsa vozlišča. Stran 17

18 Uporabne lastnosti binarnega drevesa Uporabnost navadnega binarnega drevesa je zelo omejena. Splošno binarno drevo nam omogoča dostop do poljubnega vozlišča v logaritemskem času. To je bolj ali manj res, saj je lahko drevo povsem neuravnoteţeno in zato izgleda povsem linearno. V tem primeru se moramo sprehoditi preko vseh vozlišč, če ţelimo dostopati do ţelenega, in tako je čas dostopa v resnici linearno odvisen od števila elementov v drevesu. Ta lastnost pa nima trenutno za nas še nobenega pomena, saj moramo tako ali tako na pamet vedeti celotno pot do vozlišča, če ga ţelimo obiskati. Tako drevo torej še ni najbolj primerno za uporabo. Zato bomo naše binarno drevo nadgradili. S pomočjo nekaterih dodatnih pravil bom splošno binarno drevo spremenil v binarno iskalno drevo Binarno iskalno drevo V osnovi je binarno iskalno drevo le neko posebno binarno drevo, torej mora še vedno slediti definiciji splošnega binarnega drevesa. V praksi to pomeni,da bom za okostje implementacije binarnega iskalnega drevesa uporabil svoje ţe spisano binarno iskalno drevo. Dodatni kriteriji Dodatni kriterij, ki razloči med čisto splošnim binarnim drevesom in binarnim iskalnim drevesom, je ta, da v binarnem iskalnem drevesu velja pravilo, da mora vsak element, ki je manjši od korena leţati levo od korena, vsak večji element pa desno od korena. Kadar je element enak korenu, pa je odločitev o razporeditvi tega elementa v drevo odvisna od programerja. V svoji implementaciji sem izbral, da se vsi enaki elementi razporejajo levo. Seveda to isto pravilo velja tudi za vsa poddrevesa nekega binarnega iskalnega drevesa. Omejitev, ki jo s seboj prinaša ta pogoj, je, da v isto binarno iskalno drevo ni mogoče uvrstiti takih podatkov, ki jih med seboj ni mogoče primerjati oz. urediti po velikosti. Osnovne metode Vse osnovne metode razen inicializacije svojega drevesa bom prevzel od splošnega binarnega drevesa. Le metoda def init (self,vred=none): je tokrat malce drugačna. Ima spremenljivko self._drevo. Do sedaj sem namreč katerokoli svojih binarnih dreves obešal drugega na drugo, binarnih dreves pa ne morem poljubno obešati drugega na drugo zaradi posebnih pravil ureditve vozlišč. Enaki so tudi obhodi drevesa. Lepa lastnost, ki Stran 18

19 pa se sedaj zaradi dodatnega kriterija pojavi, pa je, da pri obhodu inorder do elementov dostopamo v naraščajočem vrstnem redu. Dodatne funkcije binarnega iskalnega drevesa Binarno iskalno drevo kot izboljšava splošnega binarnega drevesa v svoji implementaciji ponuja tudi metode, ki so pri splošnem binarnem drevesu morda manjkale. To so: Iskanje elementa, s tem pa tudi preverjanje, ali nek element je v našem binarnem iskalnem drevesu ali ne. Iskanje je v tem primeru zelo hitro, saj mora računalnik preveriti precej manj kot vse moţnosti. Na vsakem nivoju se namreč primerja s korenom in vedno pri pregledovanju zavije v pravo smer in pregleduje le še bodisi levo bodisi desno poddrevo. Z vsako tako vejitvijo pa se število kandidatov seveda prepolovi. Tako iskanje seveda vrne le, ali nek element je v drevesu ali ne, saj ne preiskuje celega drevesa še naprej, da bi našlo podvojitve. Dodajanje elementa. Poteka podobno hitro kot iskanje. Poiščem namreč prvi prazen prostor, kjer bi se lahko nahajal novi element in tja pripnem binarno drevo s tem elementom za koren. Odstranitev elementa. Ta metoda je bila za implementacijo najzahtevnejša. Pri odstranjevanju lahko namreč nastanejo teţave, sploh če odstranjujemo nek element, ki je nekje sredi drevesa. V tem primeru moramo seveda preiskati poddrevo in najti ustrezno zamenjavo za naš odstranjeni element, ki pa mora biti taka, da poddrevo, katerega koren je bil odstranjeni element, še vedno zadosti definiciji binarnega iskalnega drevesa. Uporabne lastnosti binarnega iskalnega drevesa Največja uporabna vrednost, ki jo omogoča binarno iskalno drevo glede na splošno binarno drevo, je gotovo urejenost elementov v njem. Ta s seboj prinese tudi veliko uporabno vrednost binrnega iskalnega drevesa. V kombinaciji z logaritemskim časom dostopa in dodajanja elementov, je torej binarno iskalno drevo zelo uporabno tudi za sortiranje. Stran 19

20 3.2 Druga implementacija binarnega iskalnega drevesa Po prvi implementaciji sem jo ţelel primerjati z ţe vdelano implementacijo binarnega iskalnega drevesa. Toda pojavila se je teţava, da nikjer nisem našel popolnoma primerljive implementacije. Vse ţe spisane oz. ţe vgrajene različice binarnih dreves so še korak naprednejše od moje implementacije. Za bolj učinkovito delo s podatki se namreč v praksi ne uporablja binarnega iskanega drevesa v tej obliki, temveč bolj dodelana AVL ter rdeče-črna drevesa. Ker torej nisem našel nobene primerljive implementacije, sem se odločil da bom sam opravil še eno implementacijo, tokrat s povsem drugačnim pristopom in bom nato primerjal ta dva pristopa Prvi in drugi pristop Ko sem k problemu pristopal prvič sem drevo računalniku predstavil nekako takole. Imamo neko vozlišče, ki pa ima tudi dve povezavi. Ti dve povezavi kaţeta navzdol na sinova tega vozlišča, ki sta prav tako drevesi. Edina drevesa brez sinov pa so bila prazna drevesa, ki so sluţila kot prazni listi. Binarno iskalno drevo sem tudi vpeljeval posredno, pri čemer je uporabna tudi vsaka vmesna stopnja implementacije, saj lahko od tam dalje nadaljujem še naprej v drugo smer. Pri drugi implementaciji pa sem se lotil problema povsem drugače. Binarno iskalno drevo sem predstavil z enim samim seznamom, v katerem so po določenih pravilih razporejene vrednosti in sicer na način, da lahko za vsako vozlišče povem, kdo je so predniki oziroma nasledniki tega vozlišča. Drevesasto obliko sem torej zravnal v linearno, kar pa seveda za hierarhično strukturo ni najbolj primerno in je za sabo potegnilo tudi veliko teţav pri implementaciji. Ta omejenost je tudi botrovala moji odločitvi, da sem implementiral direktno binarno iskalno drevo brez kakšnih posebnih predstopenj implementacije Razlike pri implementaciji V povsem tehnične podrobnosti se ne bom zapletal. Najpomembnejša razlika je najbrţ ta, da morajo biti vsi nivoji do ko na popolnjeni, v kolikor ţelimo drevo predstaviti računalniku na pravilen in enoličen način. Vsa manjkajoča vozlišča v drevesu zato nadomeščam z None, to je takim tipom podatka, ki prav nakazuje manjkanje resničnega podatka v tistem polju. To pa za seboj potegne veliko lastnosti, o katerih več v nadaljevanju. Stran 20

21 Druga razlika je implementacija metode str (self):. Drugačen zapis podatkov v računalniku mi prinaša tudi moţnost drugačnega izpisa. Razlika je tudi v odstranjevanju elementov iz drevesa. Zlasti so se tu pojavljale teţave vkolikor je bilo potrebno izbrisati vozlišče z enim samim sinom. Takrat v prvi impementaciji preprosto popravim kazalec na neko drugo vozlišče, tu pa bi moral celotno poddrevo prepisati na druga mesta v seznamu. Ker je to zamudno sem se odločil za rahlo drugačen pristop. Na mesto prepišem vrednost edinega sina in poskušam raje odstraniti sina, kar mogoče ne bo zahtevalo predstavitve v vrednosti drevesa. Kar je najpomembneje pa je, da drevo kljub odstranitvam še vedno sledi definiciji, kar pa se zgodi tako v prvi kot v drugi implementaciji Prednosti in slabosti druge implementacije Prednosti druge implementacije so bolj borne. Ta implementacija je smiselna namreč bolj ali manj le za complete binarna drevesa. Preprost je recimo izpis obhoda levelorder, saj so podatke ţe tako ali tako predstavljeni v tabeli in sicer v točno takem vrstnem redu, kot poteka levelorder, le da se vmes pojavljajo nepotrebni None, ki označujejo manjkanje nekega vozlišča do popolnjenosti tega drevesa na danem nivoju. Vendar pa vsiljivce hitro odstranimo in obhod levelorder je hitro opravljen. Napolnjenost drevesa, četudi z None, pa prinaša še eno estetsko prednost. Drugačna implementacija mi omogoča za majhna drevesa precej preglednejše izpise dreves. Kot prednost se pokaţe tudi hiter dostop do vseh prednikov oz. naslednikov nekega vozlišča, v kolikor je to res naš namen (ne prav pogosto pri binarnih iskalnih drevesih). Ima pa polnjenje drevesa z None tudi svoje velike slabosti. Neko drevo, ki je zelo nerazvejano a globoko, lahko zasede ogromno prostora povsem brez pomena. Druga slabost, ki sem jo občutil bolj jaz kot programer, kot pa to občuti zunanji uporabnik moje kode, pa je, da je zaradi hierarhične narave dreves njihove lastnosti dokaj teţko prenesti na en sam seznam. Tudi lepota izpisa se pri ne prav popolnjenih drevesih izgubi in izpis postane dokaj slabo berljiv. To sicer ni splošna slabost take implementacije, le moja odločitev izpisa drevesa ki je v pravih primerih zelo uporabna. Stran 21

22 3.3 Praktična uporaba mojih dveh implementacij Vedno si v objektnem programiranju prizadevamo, da je ne glede na naše odločitve o implementaciji uporabniku vedno omogočena preprosta uporaba naših objektov. Navzven naj se ne bi videlo razlik v implementaciji, razen morda v tem, da so nekatere implementacije na izbranih primerih hitrejše od drugih. K temu sem stremel tudi sam. Prav zato sem tudi spisal navzven povsem identične funkcije, vsaj tiste, s katerimi se v praksi srečuje uporabnik. Edina razlika se pokaţe, ko uporabnik poskuša izpisati drevo na zaslon. V tem primeru sem se pri vsaki implementaciji odločil za drugačen pristop Kratka navodila za uporabo Binarna iskalna drevesa so načeloma zelo preprosta za uporabo. Najprej mora uporabnik uvoziti mojo kodo v svoj program, nato pa so vse kar potrebuje uporabnik le še klici naslednjih metod: Da ustvari nov primerek razreda: o nekodrevo = bst(), če v začetku ţeli prazno binarno iskalno drevo o nekodrevo = bst(podatek), če ţeli, da se ustvari binarno iskalno drevo, katerega koren nosi vrednost podatek nekodrevo.isci(podatek), če ţeli ugotoviti, ali se nek podatek nahaja v drevesu nekodrevo.dodaj(podatek), če ţeli v drevo dodati nov podatek. Ta se nato samodejno uvrsti v drevo nekodrevo.odstrani(podatek), če ţeli nek podatek odstraniti iz drevesa nekodrevo.jeprazno(), če ţeli ugotovit, ali je v drevesu kak podatek nekodrev.nekobhod(), pri čemer nekobhod zamenja s katerimkoli izmed štirih prehodov. len(nekodrevo), ki vrne število elementov v drevesu. Poleg teh metod je mogoče tudi iterirati po drevesu z zanko for, pri čemer de uporablja inorder obhod drevesa. Stran 22

23 Stran 23

24 4 Sklep 4.1 Ocena uspešnosti naloge S svojim izdelkom sem zadovoljen, saj sem v veliki meri dosegel vse zastavljene cilje. Kot sem ţe pokazal v uvodu si splošne uporabe svoje kode ne obetam, sem pa sam ob delu pridobil ogromno znanja. Tudi sicer se mi zdi moja implementacija letom in predhodnemu znanju primerna, pa tudi sicer zadovoljiva. 4.2 Možnosti izboljšav Izboljšava naloge Največ bi se dalo izboljšati mojo analizo časovne zahtevnosti in posledično uporabnosti zlasti druge implementacije. Slišal sem sicer ţe, da je v Pythonu mogoče z uporabo nekaterih dodatnih modulov zelo dobro analizirati časovno zahtevnost algoritmov. Tako bi bila moja opazovanja še bolj trdno podkrepljena z empiričnimi dokazi Izboljšava programa Binarno iskalno drevo je kljub nekaj odličnim lastnostim še vedno v nekaterih mejnih primerih dokaj neučinkovito. Tak primer je, da v binarno iskalno drevo eno za drugim dodajamo vedno večja števila. V tem primeru dobimo povsem nerazvejano drevo in vse lepe logaritemske lastnosti se podrejo. Da se to ne bi pripetilo, so bile ţe razvite mnoge nadgradnje binarnih iskalnih dreves. Svojo kodo bi tako lahko preoblikoval in dopolnil tako, da bi se drevo ob spremembi samo uravnoteţilo. To bi potem resnično zagotovilo logaritemsko časovno zahtevne operacije. Stran 24

25 4.3 Ocena dela Med delom semsledil zastavljeni metodologiji. Najprej sem se teoretično poglobil v področje, nato sem se lotil praktičnega dela. Seveda pa sem pri izdelavi prakttičnega dela naletel na nekatere ovire in sem se moral zato vedno znova vračati k teoriji. Različni deli naloge so mi vzeli različno veliko časa. Ocenjene vrednosti sem za boljši pregled zato predstavil s spodnjim grafom: Število porabljenih ur za posamezno aktivnost programiranje branje strokovne literature izdelava spletne predstavitve in druge dokumentacije testiranje programov 40 Graf 1: Število porabljenih ur za posamezno aktivnost Z zadostnim znanjem bi mojo nalogo lahko opravili mnogo hitreje. Pri svojem delu torej nisem bil najbolj učinkovit. Toda prav s poglabljanjem znanja sem dosegel poglavitni cilj svoje naloge, zato ocenjujem svoje delo kot uspešno. Stran 25

26 Stvarno kazalo algoritem, 5 definicija binarnega drevesa, 13 mnoţica, 7 obhodi (traversals), 14 podatkovne strukture, 5 primerek (instance), 13 rekurzija, 10 seznam, 7 teorija grafov, 10 učinkovitost programa, 7 Viri in literatura Tree traversal (online). [uporabljeno ] Dostopno na Lambert, A. Kenneth.: Fundamentals of Python, From First Programs through Data Structures, Boston, Course Technology, 2009 Algorithms and Data Structures with implementations in Java and C++: Binary search tree. Removing a node [uporabljeno ] Dostopno na Introduction to Algorithms. 3 rd edition. Cambridge, The MIT Press, 2009 Islovar [uporabljeno ] Dostopno na Miller, Brad N.; Ranum, David L.: problem solving with algorithms and data structures using python. (online) [uporabljeno ] Dostopno na Stran 26

Vodnik skozi Google Analytics Beta verzija 1. del. prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js)

Vodnik skozi Google Analytics Beta verzija 1. del. prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js) Vodnik skozi Google Analytics Beta verzija 1. del prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js) Ta vodnik je povzetek Googe vodiča ' Tracking Code Migration Guide Switching from urchin.js

More information

RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA

RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA POPRBAZA je namenjen večji reorganizaciji podatkov v računalnikovem spominu. Reorganizacijo narekujejo bodisi zakonske spremembe, bodisi novosti v programu. Zato je

More information

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Četrtek, 2. junij 2016 SPLOŠNA MATURA

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Četrtek, 2. junij 2016 SPLOŠNA MATURA Državni izpitni center *M16178113* SPOMLADANSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Četrtek, 2. junij 2016 SPLOŠNA MATURA RIC 2016 M161-781-1-3 2 IZPITNA POLA 1 1 1 2 1 3 3 4 1 5 3 6 2 7 1 8 1 9 1 10 3

More information

Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54

Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54 Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54 Boštjan Lemut Prva povezava na L-54 s povezovalnim kablom povežemo mrežna vmesnika na računalniku in L-54 v brskalniku vpišemo

More information

» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije

» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije Obrazec P-5 Specifikacije 30K250316» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije KAZALO VSEBINE 1. Predmet javnega naročila...3 1.1. SKLOP-1: STORITEV VZDRŽEVANJA ORACLE LICENČNE

More information

How we calculate volume with the use of NTF method. Kako izračunamo volumen z uporabo metode NTF

How we calculate volume with the use of NTF method. Kako izračunamo volumen z uporabo metode NTF RMZ Materials and Geoenvironment, Vol. 55, No. 1, pp. 127-134, 2008 127 How we calculate volume with the use of NTF method Kako izračunamo volumen z uporabo metode NTF An e s Du r g u t o v i ć 1, Mi l

More information

Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje. doc.dr. Mira Trebar

Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje. doc.dr. Mira Trebar Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje doc.dr. Mira Trebar 2 Vaja 1 (11.10.2010) Vaje so obvezne (delo v laboratoriju + doma) S1: Logisim MIPS procesor eno-cikelna izvedba ( logisim ) MIPS

More information

formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike

formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike Strojni vid pri tehnoloških meritvah formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike formati slike in branje slike slika je običajno

More information

Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig

Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig Boštjan Lemut Prva povezava na L-54 s povezovalnim kablom povežemo mrežna vmesnika na računalniku in L-54

More information

IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK

IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK UDK621.3:(53+54+621 +66), ISSN0352-9045 Informacije MIDEM 39(2009)2, Ljubljana IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK Sasa Klampfer, Joze Mohorko, Zarko Cucej University

More information

Navodila za interaktivne naloge Bober

Navodila za interaktivne naloge Bober Avtorji dokumenta: Dean Gostiša , Lovro Podgoršek Verzija dokumentacije: 1.1 Datum in kraj: 24. 7. 2013, Ljubljana Navodila za interaktivne naloge Bober Uvod 1.

More information

Q: Do You made a backup before upgrade? A: Only cowards make backups!

Q: Do You made a backup before upgrade? A: Only cowards make backups! Q: Do You made a backup before upgrade? You z malo - you A: Only cowards make backups! Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies.

More information

Algoritmi in podatkovne strukture 2. Urejanje (sorting)

Algoritmi in podatkovne strukture 2. Urejanje (sorting) Algoritmi in podatkovne strukture 2 Urejanje (sorting) osnove, metode deli in vladaj, kopica Andrej Brodnik: Algoritmi in podatkovne strukture 2 / Urejanje (sorting) osnove, metode deli in vladaj, kopica

More information

Sistemske zahteve za SAOP

Sistemske zahteve za SAOP Sistemske zahteve za SAOP Samostojna delovna postaja višji). icenter je ERP sistem, ki zagotavlja popolno kontrolo nad vsemi poslovnimi procesi v podjetju. V tej postavitvi je SAOP icenter nameščen na

More information

Prirejanje in preverjanje tipov

Prirejanje in preverjanje tipov Uvod v C# Drugi del Dedovanje Sintaksa Prirejanje in preverjanje tipov Kaste preverjenih tipov Prekrivanje metod Dinamično povezovanje (poenostavljeno) Skrivanje Dinamično povezovanje (s skrivanjem) Fragile

More information

Calculation of volume with the use of NTF method. Izračun volumnov z uporabo NTF metode

Calculation of volume with the use of NTF method. Izračun volumnov z uporabo NTF metode RMZ - Materials and Geoenvironment, Vol. 53, No. 2, pp. 221-227, 2006 221 Calculation of volume with the use of NTF method Izračun volumnov z uporabo NTF metode Milivoj Vulić 1, Anes Durgutović 2 1 Faculty

More information

UDF for volume calculation with the use of NTF method. Lastne Excel funkcije za izračun prostornin po NTF metodi

UDF for volume calculation with the use of NTF method. Lastne Excel funkcije za izračun prostornin po NTF metodi RMZ Materials and Geoenvironment, Vol. 54, No. 3, pp.419-425, 2007 419 UDF for volume calculation with the use of NTF method Lastne Excel funkcije za izračun prostornin po NTF metodi Mi l i v o j Vu l

More information

Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x

Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x 1 Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x 2 družina standardov, ki opisujejo delovanje lokalnih (LAN) in mestnih (MAN) omrežij delo opravljano v delovnih skupinah več na

More information

Ljubljana,

Ljubljana, Ljubljana, 9. 4. 2018 Katalog znanj in vzorci nalog za izbirni izpit za vpis na magistrski študij Računalništvo in informatika 2018/2019 0 KATALOG ZNANJ ZA IZBIRNI IZPIT ZA VPIS NA MAGISTRSKI ŠTUDIJ RAČUNALNIŠTVO

More information

Transakcije v MariaDB/MySQL (transakcija A)

Transakcije v MariaDB/MySQL (transakcija A) Transakcije v MariaDB/MySQL (transakcija A) Pomožni elementi In [1]: # pyodbc import pyodbc try: cn1.close() except: pass # MariaDB/MySQL conn = "DRIVER={MySQL ODBC 5.3 Unicode Driver};SERVER=localhost;DATABASE=sandbox;UID=tu

More information

Poglavje 7. Indeksi z uporabo drevesnih struktur Povzeto po [1]

Poglavje 7. Indeksi z uporabo drevesnih struktur Povzeto po [1] Poglavje 7 Indeksi z uporabo drevesnih struktur Povzeto po [1] - 1 - Indeksi uvod.. Včasih hočemo najti vse zapise, ki imajo določeno vrednost v določenem polju INDEKS je zunanja podatkovna struktura,

More information

Session:E07 GALIO - DB2 index advisor, how we implemented it and what we get from self-made expert tool

Session:E07 GALIO - DB2 index advisor, how we implemented it and what we get from self-made expert tool Session:E07 GALIO - DB2 index advisor, how we implemented it and Viktor Kovačević, MSc Hermes Softlab 6th October 2009 14:15 (60') Platform: UDB / LUW OUTLINE Application & Database tuning Self made index

More information

Šolski center Novo mesto Srednja elektro šola in tehniška gimnazija Šegova ulica 112, 8000 Novo mesto. Maturitetna seminarska naloga

Šolski center Novo mesto Srednja elektro šola in tehniška gimnazija Šegova ulica 112, 8000 Novo mesto. Maturitetna seminarska naloga Šolski center Novo mesto Srednja elektro šola in tehniška gimnazija Šegova ulica 112, 8000 Novo mesto Maturitetna seminarska naloga Šolsko leto 2007/08 Avtor: Mentor: prof. Albert Zorko Novo mesto, 10.7.

More information

Obravnava izjem (exception handling)

Obravnava izjem (exception handling) Obravnava izjem (exception handling) Ko umre programer Uvod Ne glede na to, kako dobro smo načrtovali nek program, je še vedno možnost, da lahko med izvajanjem pride do kakšnih napak. Dobro načrtovan program

More information

Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja

Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja Navodila za vaje pri predmetu Internetne tehnologije VAJA 2 Dušan

More information

Hitra rast hranjenih podatkov

Hitra rast hranjenih podatkov Tomaž Borštnar - član uredništva računalniške revije Monitor od začetka (oktober 1991; ne-pc okolja (Unix, etc) - sodelavec YUNAC in ARNES od začetka - postavil in upravljal večino strežnikov na SiOL -

More information

Razred File vsebuje osnovne metode za delo z datotekami, kot sta branje in zapisovanje.

Razred File vsebuje osnovne metode za delo z datotekami, kot sta branje in zapisovanje. Delo z datotekami Razred File Razred File vsebuje osnovne metode za delo z datotekami, kot sta branje in zapisovanje. Deklaracija objekta File poteka tako: File ime = new File(pot_do_datoteke_in_ime);

More information

Razvoj jezika za iskanje, povezovanje in predstavitev podatkov

Razvoj jezika za iskanje, povezovanje in predstavitev podatkov UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Ernest Štukelj Razvoj jezika za iskanje, povezovanje in predstavitev podatkov DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU SMER PROGRAMSKA OPREMA

More information

IZDELAVA PROGRAMSKEGA PAKETA ZA GRAFIČNI PRIKAZ POMENSKIH SLOVARJEV IN ONTOLOGIJ

IZDELAVA PROGRAMSKEGA PAKETA ZA GRAFIČNI PRIKAZ POMENSKIH SLOVARJEV IN ONTOLOGIJ Gregor Hren IZDELAVA PROGRAMSKEGA PAKETA ZA GRAFIČNI PRIKAZ POMENSKIH SLOVARJEV IN ONTOLOGIJ Diplomsko delo Maribor, september 2011 I Diplomsko delo univerzitetnega študijskega programa IZDELAVA PROGRAMSKEGA

More information

Knjižnjice krmiljenje zaslona Uvod v sistemsko programiranje

Knjižnjice krmiljenje zaslona Uvod v sistemsko programiranje Knjižnjice krmiljenje zaslona Uvod v sistemsko programiranje Standardna knjižnjica C Funkcije z nizi int strlen( s) Vrne število znakov v nizu s (brez nultega znaka). char *strchr(s, c) Vrne kazalec na

More information

Python za programerje

Python za programerje Janez Demšar Python za programerje Delovna različica, 8. september 2008 1 2 Kazalo O jeziku in knjigi 5 Prvi koraki v Python 8 Tolmač in razvojna okolja 8 Prvi program 9 Osnovne poteze jezika 12 Besednjak

More information

Twitter Bootstrap in razvoj spletnega repozitorija za Cacti

Twitter Bootstrap in razvoj spletnega repozitorija za Cacti Univerza v Ljubljani Fakulteta za računalništvo in informatiko Fakulteta za matematiko in fiziko Nejc Župec Twitter Bootstrap in razvoj spletnega repozitorija za Cacti DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI

More information

DB2 podatkovna baza v praksi

DB2 podatkovna baza v praksi DB2 podatkovna baza v praksi Aljoša Trivan, Mikropis holding d.o.o. aljosa.trivan@mikropis.si 2007 IBM Corporation Agenda Mikropis Splošno Fleksibilnost Vzdrževanje Backup SQL objekti in SQL stavki Novosti

More information

Lotus Quickr Najhitrejši način izmenjave poslovne vsebine

Lotus Quickr Najhitrejši način izmenjave poslovne vsebine Lotus Quickr Najhitrejši način izmenjave poslovne vsebine Zoran Povh, IT specialist zoran.povh@si.ibm.com 2007 IBM Corporation Vsebina Kaj je Lotus Quickr? Integracija z namiznimi programi Skupinski prostori

More information

Iskanje podobnih primerov v večrazsežnih prostorih

Iskanje podobnih primerov v večrazsežnih prostorih Univerza v Ljubljani Fakulteta za računalništvo in informatiko Primož Kariž Iskanje podobnih primerov v večrazsežnih prostorih MAGISTRSKO DELO ŠTUDIJSKI PROGRAM DRUGE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

More information

Naslavljanje v IP. Miran Meža

Naslavljanje v IP. Miran Meža Naslavljanje v IP Miran Meža Omrežje vseh omrežij Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Avtonomni sistem Omrežje vseh omrežij Usmerjanje prometa: poznati

More information

Optimization methods for solving. transportation problems on networks

Optimization methods for solving. transportation problems on networks UNIVERSITY OF MARIBOR FACULTY OF NATURAL SCIENCES AND MATHEMATICS DOCTORAL DISSERTATION Optimization methods for solving transportation problems on networks May, 011 Katja Prnaver UNIVERSITY OF MARIBOR

More information

Objective Caml version

Objective Caml version Poglavje 1 Ocaml Koncepte, ki se pojavljajo v programskih jezikih, je najlažje razumeti z njihovo uporabo. Zato bomo v prvi lekciji spoznali moderno zasnovan programski jezik, ki je opremljen z bogatim

More information

Matjaž Verbole. Algoritem D*

Matjaž Verbole. Algoritem D* UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Matjaž Verbole Algoritem D* DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: prof. dr. Borut Robič Ljubljana, 2012 Rezultati diplomskega dela

More information

Vzpostavitev spletnega vmesnika za prikaz tenziomiografskih meritev

Vzpostavitev spletnega vmesnika za prikaz tenziomiografskih meritev UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Nejc Poljanšek Vzpostavitev spletnega vmesnika za prikaz tenziomiografskih meritev DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM

More information

Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5

Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5 Univerza v Ljubljani Fakulteta za računalništvo in informatiko Roman Gorišek Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5 DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM

More information

TEORIJA ODLOČANJA GRAFIČNE TABLICE

TEORIJA ODLOČANJA GRAFIČNE TABLICE TEORIJA ODLOČANJA GRAFIČNE TABLICE Mentor: Gašper Strniša, mag. org. informatik Kranj, September 2015 ZAHVALA Zahvaljujem se mentorju... Hvala g. Temu in temu iz podjetja Tega in tega za pomoč in nasvete

More information

Oddaljen dostop do namiznega računalnika

Oddaljen dostop do namiznega računalnika UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Siniša Grubor Oddaljen dostop do namiznega računalnika DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

More information

21. državno tekmovanje v znanju računalništva (1997) NALOGE ZA PRVO SKUPINO

21. državno tekmovanje v znanju računalništva (1997) NALOGE ZA PRVO SKUPINO 1997.1.1 2] Leto 1997, naloge za prvo skupino 1 21. državno tekmovanje v znanju računalništva (1997) Naloge Rešitve 1997.1.1 NALOGE ZA PRVO SKUPINO Člani komisije računalniškega tekmovanja srednješolcev

More information

Navodila za uporabo izdelkov programske opreme Microsoft

Navodila za uporabo izdelkov programske opreme Microsoft Navodila za uporabo izdelkov programske opreme Microsoft Kazalo Navodila za konfiguracijo odjemalca za e-pošto Outlook Splošno 3 Nastavitev poštnega predala s protokolom MAPI v odjemalcu Outlook 2007 s

More information

E R S Š G L J U B L J A N A Š O L S K O L E T O

E R S Š G L J U B L J A N A Š O L S K O L E T O Datotečni sistem E R S Š G L J U B L J A N A Š O L S K O L E T O 2 0 1 0 / 1 1 Vsebina Programska oprema Sistemska programska oprema Operacijski sistem Lupina (shell) Datotečni sistem Programska oprema

More information

Algoritmi za zunanje urejanje

Algoritmi za zunanje urejanje Univerza v Ljubljani Fakulteta za računalništvo in informatiko Anej Budihna Algoritmi za zunanje urejanje DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor:

More information

NALOGE ZA PRVO SKUPINO

NALOGE ZA PRVO SKUPINO 1997.1.1] 1 21. državno tekmovanje v znanju računalništva (1997) 1997.1.1 NALOGE ZA PRVO SKUPINO Člani komisije računalniškega tekmovanja srednješolcev so R: 12 pripravili podprogram Uredi za urejanje

More information

METODA OSTREGA POGLEDA V PROGRAMI- RANJU

METODA OSTREGA POGLEDA V PROGRAMI- RANJU List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 15 (1987/1988) Številka 4 Strani 198 201 Tomi Dolenc: METODA OSTREGA POGLEDA V PROGRAMI- RANJU Ključne besede: računalništvo,

More information

BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5

BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Alen Rojko BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Diplomsko delo Maribor, april 2013 BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5 Diplomsko delo Študent(ka): Študijski program: Alen Rojko Visokošolski

More information

PRISOTNOST PRI POUKU S POMOČJO RFID

PRISOTNOST PRI POUKU S POMOČJO RFID UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Dejan Lebar PRISOTNOST PRI POUKU S POMOČJO RFID Diplomsko delo Maribor, september 2014 Fakulteta za elektrotehniko, računalništvo

More information

Uvod v svetovni splet

Uvod v svetovni splet Univerza v Ljubljani Fakulteta za gradbeništvo in geodezijo Uvod v svetovni splet Računalništvo in informatika, GR-UNI, GR-VSŠ Tehnična dokumentacija in informatika, VKI-UNI št. leto 2007/08, 1. semester

More information

Trees. Tree Structure Binary Tree Tree Traversals

Trees. Tree Structure Binary Tree Tree Traversals Trees Tree Structure Binary Tree Tree Traversals The Tree Structure Consists of nodes and edges that organize data in a hierarchical fashion. nodes store the data elements. edges connect the nodes. The

More information

Specification and Implementation of a Light-Weight Internet Content Delivery Platform

Specification and Implementation of a Light-Weight Internet Content Delivery Platform University of Ljubljana Faculty of Computer and Information Science Marko Čeferin Specification and Implementation of a Light-Weight Internet Content Delivery Platform DIPLOMA THESIS First cycle professional

More information

Delo z grafi v relacijskih in sodobnih nerelacijskih podatkovnih bazah

Delo z grafi v relacijskih in sodobnih nerelacijskih podatkovnih bazah Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Malej Delo z grafi v relacijskih in sodobnih nerelacijskih podatkovnih bazah DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM

More information

PODATKOVNE BAZE NOSQL

PODATKOVNE BAZE NOSQL PODATKOVNE BAZE NOSQL Aljaž Zrnec, Dejan Lavbič, Lovro Šubelj, Slavko Žitnik, Aleš Kumer, Marko Bajec Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Laboratorij za podatkovne tehnologije,

More information

Osnove algoritmov in podatkovnih struktur I (OAPS I)

Osnove algoritmov in podatkovnih struktur I (OAPS I) Univerza v Ljubljani Fakulteta za računalništvo in informatiko Igor Rožanc Osnove algoritmov in podatkovnih struktur I (OAPS I) 2. letnik, VSP Računalništvo in informatika, vse smeri PROSOJNICE ZA 1. PREDAVANJA

More information

Statistika 2 z računalniško analizo podatkov

Statistika 2 z računalniško analizo podatkov Statistika 2 z računalniško analizo podatkov Risanje grafov 1 V Statistične analize v SPSS-ju V.5 Risanje grafov V.5.1 Oblikovanje grafov V.5.2 Grafična predstavitev frekvenčne porazdelitve: histogram,

More information

APLIKACIJE ZA SOCIALNA

APLIKACIJE ZA SOCIALNA UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Boštjan Lotrič APLIKACIJE ZA SOCIALNA OMREŽJA DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr. Zoran Bosnić Ljubljana, 2011 Rezultati

More information

sodobne poslovnoinformacijske rešitve Birokrat Kratka navodila za namestitev demo verzije programa Birokrat

sodobne poslovnoinformacijske rešitve   Birokrat Kratka navodila za namestitev demo verzije programa Birokrat sodobne poslovnoinformacijske rešitve www.andersen.si Birokrat Kratka navodila za namestitev demo verzije programa Birokrat Kratka navodila za namestitev demo verzije programa Birokrat Pošiljamo vam demo

More information

Trees. Q: Why study trees? A: Many advance ADTs are implemented using tree-based data structures.

Trees. Q: Why study trees? A: Many advance ADTs are implemented using tree-based data structures. Trees Q: Why study trees? : Many advance DTs are implemented using tree-based data structures. Recursive Definition of (Rooted) Tree: Let T be a set with n 0 elements. (i) If n = 0, T is an empty tree,

More information

OSNOVE UMETNE INTELIGENCE. neinformirani preiskovalni algoritmi informirani preiskovalni algoritmi

OSNOVE UMETNE INTELIGENCE. neinformirani preiskovalni algoritmi informirani preiskovalni algoritmi OSNOVE UMETNE INTELIGENCE neinformirani preiskovalni algoritmi informirani preiskovalni algoritmi Preiskovalni algoritmi neinformirani: razpolagajo samo z definicijo problema iskanje v širino (angl. breadth-first

More information

Strukturirani poizvedovalni jezik SQL

Strukturirani poizvedovalni jezik SQL Računalništvo Strukturirani poizvedovalni jezik SQL Danijel Skočaj, Evelin Vatovec Krmac Univerza v Ljubljani Fakulteta za pomorstvo in promet Literatura: Evelin Vatovec Krmac, Računalništvo in informatika,

More information

Minimalne/optimalne zahteve za delovanje informacijskega sistema v povezavi z IMAGINE aplikacijami

Minimalne/optimalne zahteve za delovanje informacijskega sistema v povezavi z IMAGINE aplikacijami IMAGINE d.o.o. Podjetje za računalniški inženiring Gosposvetska cesta 84, 2000 Maribor Tel.: 02 320 60 60 Fax: 02 320 60 70 www.imagine.si, prodaja@imagine.si Minimalne/optimalne zahteve za delovanje informacijskega

More information

Preverjanje pravilnosti programov z odvisnimi tipi v programskem jeziku Idris

Preverjanje pravilnosti programov z odvisnimi tipi v programskem jeziku Idris Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Repas Preverjanje pravilnosti programov z odvisnimi tipi v programskem jeziku Idris DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE

More information

Predstavitev teksta v računalniku

Predstavitev teksta v računalniku Predstavitev teksta v računalniku Za tekst, ki ga vidimo na zaslonu računalnika, sta potrebna dva koraka 1. Najprej je potrebno določiti, kako so črke in še nekateri drugi ne-numerični znaki predstavljeni

More information

Mobilna aplikacija za pregledovanje slik visokih ločljivosti

Mobilna aplikacija za pregledovanje slik visokih ločljivosti Univerza v Ljubljani Fakulteta za računalništvo in informatiko Anže Sršen Mobilna aplikacija za pregledovanje slik visokih ločljivosti DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

Razširljiv nadzor velikih oblačnih sistemov

Razširljiv nadzor velikih oblačnih sistemov Univerza v Ljubljani Fakulteta za računalništvo in informatiko Nejc Saje Razširljiv nadzor velikih oblačnih sistemov MAGISTRSKO DELO ŠTUDIJSKI PROGRAM DRUGE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor:

More information

Sistem za upravljanje zgradb

Sistem za upravljanje zgradb UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andrej Kavrečič Sistem za upravljanje zgradb UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: prof. dr. Saša

More information

Navodila za namestitev CREO 3.0 in Audax nastavitev

Navodila za namestitev CREO 3.0 in Audax nastavitev Navodila za namestitev CREO 3.0 in Audax nastavitev Potrebujete: Iz PTC spletne strani ali z DVD-ja prenesite namestitvene datoteke za program Creo 3.0 in jih razširite na lokalni disk. Audax Nastavitve

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS

UČNI NAČRT PREDMETA / COURSE SYLLABUS UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Podatkovne strukture in algoritmi 1 Course title: Data structures and algorithms 1 Študijski program in stopnja Study programme and

More information

Kosovnica. Marko Obid. Kosovnica. Marko Obid

Kosovnica. Marko Obid. Kosovnica. Marko Obid PROGRAM ZA IZDELAVO TEHNIČNE DOKUMENTACIJE V CATIA-ji Zagon programa: Program je bil izdelan z namenom, da nam olajša: Izdelavo kosovnice, Izris risb (delavniške, sestavne) Vpis podatkov v glavo risbe

More information

Imenski prostori, poti in kazalci v XML

Imenski prostori, poti in kazalci v XML Imenski prostori, poti in kazalci v XML Iztok Savnik 1 Imenski prostori v XML XML dokument lahko uporablja atribute, elemente in definicije, ki se nahajajo v drugih datotekah Modularna zasnova Ne sme priti

More information

Program za avtomatsko preverjanje algoritmov napisanih v programskem jeziku C++

Program za avtomatsko preverjanje algoritmov napisanih v programskem jeziku C++ Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tadej Golobič Program za avtomatsko preverjanje algoritmov napisanih v programskem jeziku C++ DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI

More information

TI C2000: Družina za vgrajene (embedded) aplikacije

TI C2000: Družina za vgrajene (embedded) aplikacije CPU MIPS RAM (words) ROM (words) Flash (words) BootROM (words) Event Manager CAP/QEP TIMER PM(CMP) ADC TIMER Resolution 12 # ofchan 16 Conv time McBSP EXMIF atch Dog SPI SCI (UART) CAN Volts (V) # I/O

More information

Razširitve CMS z lastnimi moduli

Razširitve CMS z lastnimi moduli Univerza v Ljubljani Fakulteta za računalništvo in informatiko Matjaž Čepar Razširitve CMS z lastnimi moduli DIPLOMSKA NALOGA NA UNIVERZITETNEM ŠTUDIJU Mentor: doc. dr. Andrej Brodnik Ljubljana 2014 Rezultati

More information

Navodila za nastavitev varne povezave po protokolu SSH

Navodila za nastavitev varne povezave po protokolu SSH Datum: 28. 9. 2010 Navodila za nastavitev varne povezave po protokolu SSH 1. Pogoji za zagotovitev varne povezave po protokolu SSH Za uspešno zagotovitev in nastavitev varne povezave po protokolu SSH je

More information

RAZVOJ ENOSTAVNE SPLETNE APLIKACIJE Z UPORABO FLEKSIBILNEGA OGRODJA NA ODPRTOKODNIH KNJIŢNICAH

RAZVOJ ENOSTAVNE SPLETNE APLIKACIJE Z UPORABO FLEKSIBILNEGA OGRODJA NA ODPRTOKODNIH KNJIŢNICAH UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO David Sedlar RAZVOJ ENOSTAVNE SPLETNE APLIKACIJE Z UPORABO FLEKSIBILNEGA OGRODJA NA ODPRTOKODNIH KNJIŢNICAH DIPLOMSKO DELO NA UNIVERZITETNEM

More information

Metodologija migracije iz Exchange v Office 365

Metodologija migracije iz Exchange v Office 365 UNIVERZA V LJUBLJANI F Grega Lausegger Metodologija migracije iz Exchange v Office 365 DIPLOMSKO DELO PRVE Ljubljana, 2018 UNIVERZA V LJUBLJANI F Grega Lausegger Metodologija migracije iz Exchange v Office

More information

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne strukture in algoritmi 1 Course title: Data structures and algorithms 1

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne strukture in algoritmi 1 Course title: Data structures and algorithms 1 UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne strukture in algoritmi 1 Course title: Data structures and algorithms 1 Študijski program in stopnja Study programme and level Univerzitetni študijski

More information

OSNOVNI PRINCIPI 3D MODELIRANJA

OSNOVNI PRINCIPI 3D MODELIRANJA OSNOVNI PRINCIPI 3D MODELIRANJA LARISA CARLI Fakulteta za matematiko in fiziko Univerza v Ljubljani 3D modeliranje je del računalniške grafike in je tesno povezano z matematiko, predvsem z linearno algebro.

More information

Spletno luščenje podatkov z uporabo Pythona in knjižnice BeautifulSoup

Spletno luščenje podatkov z uporabo Pythona in knjižnice BeautifulSoup UNIVERZA V LJUBLJANI NARAVOSLOVNOTEHNIŠKA FAKULTETA ODDELEK ZA TEKSTILSTVO, GRAFIKO IN OBLIKOVANJE Spletno luščenje podatkov z uporabo Pythona in knjižnice BeautifulSoup Seminarska naloga Ime in priimek:

More information

PRISTOPI IN VZORCI ZA UPORABO PRI RAZVOJU APLIKACIJ

PRISTOPI IN VZORCI ZA UPORABO PRI RAZVOJU APLIKACIJ UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Simon Štamcar PRISTOPI IN VZORCI ZA UPORABO PRI RAZVOJU APLIKACIJ DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU Mentor: doc. dr. Rok

More information

Programski jezik C. Strukture, njihova dinamična tvorba in uporaba WEB

Programski jezik C. Strukture, njihova dinamična tvorba in uporaba WEB Programski jezik C Strukture, njihova dinamična tvorba in uporaba WEB Uvod v strukture Strukture omogočajo skupinjenje podatkov,ki so lahko različnega tipa, v enoto. Splošna oblika: struct etiketa { tip

More information

SPLETNA APLIKACIJA ZA SPREMLJANJE PODATKOV O FILMIH

SPLETNA APLIKACIJA ZA SPREMLJANJE PODATKOV O FILMIH Simon Cedula SPLETNA APLIKACIJA ZA SPREMLJANJE PODATKOV O FILMIH Diplomsko delo Maribor, december 2012 I Diplomsko delo univerzitetnega študijskega programa SPLETNA APLIKACIJA ZA SPREMLJANJE PODATKOV

More information

1. uporabnik pošlje zahtevo prek spletnega brskalnika do strežnika, na katerem se v določenem času izvede zahtevana prostorska operacija, nato pa se r

1. uporabnik pošlje zahtevo prek spletnega brskalnika do strežnika, na katerem se v določenem času izvede zahtevana prostorska operacija, nato pa se r SVG KOT NAČIN ZA PRIKAZOVANJE VISOKO LOČLJIVIH INTERAKTIVNIH SPLETNIH KART Uroš Preložnik* Povzetek Članek obravnava novo tehnologijo posredovanja prostorskih podatkov na svetovnem spletu z uporabo spletnega

More information

Sistem za dinamično upravljanje izgleda klienta IPTV

Sistem za dinamično upravljanje izgleda klienta IPTV Univerza v Ljubljani Fakulteta za računalništvo in informatiko Matjaž Jurečič Sistem za dinamično upravljanje izgleda klienta IPTV DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

More information

Trees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology

Trees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path

More information

Povezava regulatorja DEQ v omrežje

Povezava regulatorja DEQ v omrežje KAZALO 1. OBJEKT NIMA INTERNETNE POVEZAVE... 2 1.1. Direktna povezava med računalnikom ter DEQ... 2 1.2. Povezava DEQ na dostopno točko... 4 1.3. Povezava preko GSM omrežja... 7 2. OBJEKT IMA INTERNETNO

More information

13. srednješolsko tekmovanje ACM v znanju računalništva

13. srednješolsko tekmovanje ACM v znanju računalništva 13. srednješolsko tekmovanje ACM v znanju računalništva Šolsko tekmovanje 19. januarja 2018 NASVETI ZA TEKMOVALCE Naloge na tem šolskem tekmovanju pokrivajo širok razpon težavnosti, tako da ni nič hudega,

More information

On Cost Function Properties In Analog Circuit Optimization. Vpogled v značilnosti kriterijskih funkcij optimizacijskih algoritmov

On Cost Function Properties In Analog Circuit Optimization. Vpogled v značilnosti kriterijskih funkcij optimizacijskih algoritmov On Cost Function Properties In Analog Circuit Optimization Andrej Nussdorfer, Árpad Bűrmen, Janez Puhan and Tadej Tuma University of Ljubljana, Faculty of electrical engineering, Ljubljana, Slovenija Key

More information

ABBYY rešitve za prepoznavo in klasifikacijo dokumentov

ABBYY rešitve za prepoznavo in klasifikacijo dokumentov ABBYY rešitve za prepoznavo in klasifikacijo dokumentov preabbyy FlexiCapture 9.0. Overview. 1 doc: 10977 Lokalna prisotnost ABBYY: Moscow, Russia; Munich, Germany; Bracknell, UK; Kiev, Ukraine; Milpitas,

More information

Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript

Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript Tehnike programiranja PREDAVANJE 2 Uvod v JavaScript Predavanje 2 Ponovitev Predavanje 1 Naloge Uvod v JavaScript Pravila Primeri Priprava na laboratorijske vaje Pregled orodij ldos.fe.uni-lj.si >študij

More information

Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR

Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR Računalnik INFORMATIKA 1. LETNIK ŽILBERT TIVADAR Kaj je računalnik? osrednji in najpomembnejši del informacijske tehnologije; pripomoček, ki olajša naše delo; računalnik nenehno ponavlja štiri opravila:

More information

Izdelava sistema za upravljanje sredstev

Izdelava sistema za upravljanje sredstev Univerza v Ljubljani Fakulteta za računalništvo in informatiko Kerry Mahne Izdelava sistema za upravljanje sredstev DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN

More information

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA VISOKOŠOLSKI STROKOVNI ŠTUDIJ Računalništvo in Informacijske Tehnologije POROČILO PRAKTIČNEGA IZOBRAŽEVANJA V Cloudkick, Inc. - San Francisco, Kalifornija, Združene Države Amerike Čas opravljanja od 26.09.2010

More information

Programski jezik Java

Programski jezik Java Programski jezik Java Interno gradivo za predmet Algoritmi in programski jeziki (4. letnik) ArrayList (neprečiščeno besedilo) ArrayList Java class ArrayList(java.util.ArrayList) je hiter in za uporabo

More information

OGRODJE ZA OPTIMIZACIJO INDEKSOV V MYSQL BAZAH PODATKOV

OGRODJE ZA OPTIMIZACIJO INDEKSOV V MYSQL BAZAH PODATKOV UNIVERZA V LJUBLJANI FAKULTETA ZA ELEKTROTEHNIKO MATJAŽ MRGOLE OGRODJE ZA OPTIMIZACIJO INDEKSOV V MYSQL BAZAH PODATKOV DIPLOMSKO DELO UNIVERZITETNEGA ŠTUDIJA Mentor: doc. dr. Boštjan Murovec Ljubljana,

More information

Primož Gabrijelčič

Primož Gabrijelčič v 1.1 Primož Gabrijelčič http://primoz.gabrijelcic.org Dokument izdan pod licenco»creative Commons Attribution-ShareAlike 3.0«, http://creativecommons.org/licenses/by-sa/3.0. Slika na naslovnici condesign

More information

ERCOlight LUM je energetsko visoko učinkovita svetilka za visoke prostore z možnostjo številnih različnih modifikacij.

ERCOlight LUM je energetsko visoko učinkovita svetilka za visoke prostore z možnostjo številnih različnih modifikacij. Object Installation Project number Date 1 Luminaire data 1.5 Somar International Ltd, Eluma ME-OP4/4L/50 P5 (ME-OP4/4L/50) 1.5.1 Data sheet Ena svetilka, pet različnih možnosti : Eluma Lighting : Comparison

More information