Vsebina. Od načrta do programa 3. del. Zgled urejevalnik. urejevalnik. urejevalnik

Size: px
Start display at page:

Download "Vsebina. Od načrta do programa 3. del. Zgled urejevalnik. urejevalnik. urejevalnik"

Transcription

1 Vsebina Od načrta do programa 3. del uni mb.si Orodja za izdelavo programov Prevajalne enote v programskem jeziku C Napotki za pisanje programov Iskanje napak v programu Domen Verber domen.verber@uni mb.si Govorilne ure: Torek 9:30 11:30 Matej Šprogar matej.sprogar@uni mb.si urejevalnik Izvorno kodo programa lahko načeloma pišemo v katerem koli urejevalniku navadnih (tekstovnih) besedil, vendar nam namenski urejevalniki lahko nudijo večjo preglednost in boljšo produktivnost Razen pisanja izvorne kode lahko omogočajo še: sintaksno barvanje, avtomatsko označevanje programskih blokov, integracijo s prevajalnikom, urejevalnik Sintaksno barvanje: posamezni tipi "besed" programskega jezika (rezervirane besede, spremenljivke, konstante, ), so v besedilu označene na različne načine, da jih lahko vizualno ločimo oz. ugotovimo morebitne napake ob vnosu s tem se bistveno poveča preglednost zapisanega programa urejevalnik Avtomatsko označevanje programskih blokov: urejevalnik nam avtomatsko označi posamezne programske bloke, omogoča prikaz inskrivanje posameznihblokov blokov, ipd. Podobno nam lahko pomaka pri določanju začetkov in koncev posameznih izrazov ko smo postavljeni na enega izmed ločilnikov (začetni ali končni oklepaj, ), nam avtomatsko označi še drugega 1

2 urejevalnik Integracija s prevajalnikom: omogoča sprotno prikazovanje potencialnih napak v kodi (npr. nedefinirane spremenljivke), nudi namige gledeuporabe posameznihspremenljivkinspremenljivk in funkcij drugih modulov, Omogoča tudi klic postopka prevajanja iz okolja urejevalnika in neposredno postavitev na mesto napake v kodi prevajalnik Prevajalnik Prevede in (po potrebi) poveže program v izvedljivo datoteko, generira poročilo o prevajanju, seznam uporabljenih spremenljivk, Preverja in poroča č o sintaksnih ih(l (slovničnih) ih) napakah khv izvorni programski kodi oz. nudi namige ("hinte") za učinkovitejšo kodo prevajalnik Posebna vrsta prevajalnikov, t.i. navzkrižni (cross) prevajalniki, omogočajo da izvorno kodo programa razvijamo in testiramo na enem (gostujočem) sistemu, nato pa jo prenesemo na ciljni sistem, ki ima lahkopovsem drugačne lastnosti (procesno enoto, operacijski sistem, ) Na ta način lahko razvijamo programe za enostavne mikroračunalniške sisteme, ki nimajo kapacitet in zmogljivosti, da bi lahko razvoj izvajali neposredno na njih Tudi gcc prevajalnik lahko deluje kot navzkrižni prevajalnik za široko paleto ciljnih sistemov 2

3 gostujoči sistem program navzkrižni prevajalnik strojna koda programator ciljni sistem strojna koda program CPE razhroščevalnik Razhroščevalnik (debugger) omogoča odkrivanje logičnih napak v programski kodi Osnovne funkcije, ki jih nudi razhroščevalnik so: Omogoča izvajanje programa korak po korak Omogoča vpogled v podatke (spremenljivke) programa in njihovo spreminjanje Omogoča zagon programa in ustavitev na t.i. prekinitvenih točkah označimo določena mesta v kodi in zaženemo program; na prvem označenem mestu se bo izvajanje programa prekinilo Prekinitvena točka Možnost izvajanja programa korak po korak, vstop v klican podprogram, Vpogled v spremenljivke odkrivanje ozkih grl v kodi S temi diagnostična orodji (profilers) lahko poiščemo tista mesta v prevedeni programski kodi kjer se program zadržuje (pre)dolgo časa Profiler na strateška mesta v izvorno kodi (npr. na začetku in koncu podprogramov) vključi merilne točke s pomočjo katerih lahko izmeri število klicev in čas zadrževanja v določenem delu kode Če nimamo profilerja, si ustrezne funkcije lahko napišemo sami (če imamo v sistemu na razpolago dovolj natančno uro) Odkrivanje ozkih grl v kodi Pri profiliranju je potrebno paziti na nekatera dejstva: Meritvene točke, izpisi rezultatov, ipd. lahko pokvarijodejansko sliko časovnih razmer njihove vplive je potrebno minimizirati Rutine, ki so vezane na uporabniški vnos ali neke manj pogoste zunanje dogodke moramo izločiti iz analize 3

4 Odkrivanje ozkih grl v kodi Pri profiliranju je potrebno paziti na nekatera dejstva: Na hitrost izvajanja lahko vplivajo tudi različni parametri prevajalnika, ki smo jih nastavili ob prevajanju Potrebno je upoštevati tudi frekvenco klicev neke funkcije. Počasna funkcija, ki se kliče samo enkrat, lahko (skupaj) porabi manj časa kot hitra funkcija, ki se kliče velikokrat. Odkrivanje ozkih grl v kodi Kaj lahko storimo, ko najdemo ozko grlo? Uporabimo boljši algoritem Poenostavimo rešitev (na račun natančnosti rezultata) Uporabimo različne tehnike optimizacije kode Uporabimo hitrejšo strojno opremo Spremljanje verzij Pri skupinskem delu na malo večjem projektu je potrebno spreminjati več delov izvorne kode hkrati. Da ne pride do zmede (dvojnega dela, hkratnega popravljanja istih datotek, ipd.) je potrebno uporabiti eno izmed tehnik (orodij) za spremljanje verzij Spremljanje verzij kako deluje? Na centralnem strežniku se nahaja skupni repozitorij (baza) izvorne kode. Vsak razvijalec uporablja svojo lokalno kopijo teh datotek Kot privzeto, razvijalci kode ne morejo spreminjati (datoteke so označene samo za branje) Spremljanje verzij kako deluje? Razvijalec lahko rezervira tiste izvorne datoteke, ki jih želi spreminjati ("check out") njegova lokalna kopija datotek postane spremenljiva V tem času drugi uporabniki teh datotek ne morejo rezervirati (oz. spreminjati) Razvijalec po končanem delu vrne spremenjeno kodo v repozitorij ("check in") 4

5 Spremljanje verzij kako deluje? Spremenjene datoteke v repozitoriju ne povozijo (prekrijejo) starih, ampak se ustvari nova verzija => v vsakem trenutku lahko vzpostavimo neko prejšnjo j verzijo aplikacije oz. spremljamo spremembe, ki so se izvedle na kodi. Orodja za spremljanje verzij: Visual Source Safe CVS RCS Druga orodja za izdelavo programov Druga pomožna orodja za: Dostop do baze podatkov Generiranje poročil Izdelavo sistema pomoči Orodja za upravljanje j sprememb (change management) Vsa ta različna orodja se danes združujejo v RAD programska okolja: Visual Studio, Delphi, Splošni napotki za izdelavo aplikacij Kompleksnejše aplikacije razbijte na več prevajalnih enot (modulov) V posamezne prevajalne enote dajte podprograme p in spremenljivke, ki so med seboj logično povezane (npr. glede na funkcionalnost rutine za delo z zaslonom; fazo v rešitvi problema, ) Razmislite o možnosti ponovne uporabe posameznih prevajalnih enot v drugih projektih Prevajalne enote v programskem jeziku C Programski jezik C ne uporablja modulov v pravem pomenu besede, kljub temu pa lahko kompleksnejše programske rešitve razdelimo na več izvornih datotek (.c) Če se v neki izvorni datoteki sklicujemo na elemente druge, moramo v osnovno datoteko vključiti tudi prototipe funkcij in specifikacije tujih spremenljivk (pri "pravih" modulih bi navedli samo ime drugega modula) Prevajalne enote v programskem jeziku C Da prihranimo na času, je smotrno za vsako prevajalno enoto napisati ločeno (definicijsko) datoteko (.h) v kateri so zbrani prototipi funkcij in spremenljivk, ki bi jih lahko potencialno uporabile druge prevajalne enote V definicijsko datoteko ne vključimo tistih funkcij in spremenljivk, ki so lokalnega značaja 5

6 Prevajalne enote v programskem jeziku C Definicijsko datoteko lahko potem vključijo vse druge prevajalne enote, ki potrebujejo funkcionalnosti iz izvornega modula Vključimojihjih z predprocesorsko direktivo #include <ime_datoteke> pred izvajanjem se vsebina datoteke vključi (prepiše) v izvorno kodo Kaj navedemo v definicijski datoteki? Prototipe vseh funkcij, ki naj bodo dostopne iz drugih prevajalnih enot Vse globalne spremenljivke, ki naj bodo dostopne iz drugih prevajalnih enot. Uporabimo atribut extern. V definicijski datoteki naj nebi rezervirali nobenega pomnilnika! Simbolne konstante (#define), ki bi jih lahko uporabili drugi moduli Podatkovne strukture in definicije tipov (typedef), ki jih uporabljajo globalne spremenljivke in funkcije primer.c #define MAX_ST_ELEMENTOV 100 typedef enum barva rdeca, zelena barva_t; int podatki[max_st_elementov]; // Funkcija privatnega značaja int vsota(void) // Funkcija javnega značaja int izracun(barva_t b) return vsota(); primer.c #define MAX_ST_ELEMENTOV 100 typedef enum barva rdeca, zelena barva_t; int podatki[max_st_elementov]; // Funkcija privatnega značaja int vsota(void) // Funkcija javnega značaja int izracun(barva_t b) return vsota(); primer.h #define MAX_ST_ELEMENTOV 100 typedef enum barva rdeca, zelena barva_t; extern int podatki[]; // Funkcija javnega značaja int izracun(barva_t b); primer.c primer.h primer.c primer.h #define MAX_ST_ELEMENTOV 100 #define MAX_ST_ELEMENTOV 100 #include "primer.h" #define MAX_ST_ELEMENTOV 100 typedef enum barva rdeca, zelena barva_t; int podatki[max_st_elementov]; // Funkcija privatnega značaja int vsota(void) // Funkcija javnega značaja int izracun(barva_t b) return vsota(); typedef enum barva rdeca, zelena barva_t; extern int podatki[]; // Funkcija javnega značaja int izracun(barva_t b); glavni.c #include "primer.h" int main(void) podatki[max_st_elementov 1] = 1; printf("%d\n",izracun(rdeca)); int podatki[max_st_elementov]; // Funkcija privatnega značaja int vsota(void) // Funkcija javnega značaja int izracun(barva_t b) return vsota(); typedef enum barva rdeca, zelena barva_t; extern int podatki[]; // Funkcija javnega značaja int izracun(barva_t b); #include "primer.h" glavni.c void main(void) podatki[max_st_elementov 1] = 1; printf("%d\n",izracun(rdeca)); 6

7 Napotki za poimenovanje spremenljivk Najpomembnejša lastnost imena spremenljivke je, da popolno in natančno opisuje entiteto, ki jo predstavlja Ime mora biti specifično in povezano s problemom (npr. namesto Rezultat je veliko bolje uporabiti spremenljivko z imenom VsotaStevil) Predolge spremenljivke so nečitljive, prekratke pa otežujejo razumevanje njihovega pomena int u; //? int zak; // zaključek, žakelj, zakaj? int spremenljivka_prej_znana_kot_prince; // int stevec_zanke; //? kaj dejansko predstavlja? int stevec_vrstic; ti // boljše int stevilka_vrstice; // še boljše Napotki za poimenovanje spremenljivk Uporabite poimenovanja v istem jeziku (npr. samo v angleščini ali slovenščini) Vsaka programerska skupina ima običajno določen dogovor o obliki zapisa imen (npr. z veliko začetnico, ) V programskem jeziku C je običajno, da se spremenljivke pišejo z malimi črkami in z vezaji med besedami temperatura_prostora Napotki za poimenovanje spremenljivk Enostavne zančne spremenljivke: uporabite ime, ki opisuje spremenljivko (npr. vrstica, stolpec, ) sicer uporabite dogovorjena imena (i,j,k) Druge začasne spremenljivke: odražajo naj vsebino podatka (izogibajte se imenom temp ipd.) ne uporabljajte iste začasne spremenljivke za dva ali več različnih stvari for(i=1;i<=25;i++) for(j=1;j<=80;j++) printf("*"); printf("\n"); for(vrstica=1;vrstica<=visina_zaslona;vrstica++) for(stolpec=1;stolpec<=sirina_zaslona;stolpec++) printf("*"); printf("\n"); Napotki za poimenovanje spremenljivk Za poimenovanje parametrov enostavnih funkcij, uporabite dogovorjene oznake, ki odražajo tip oz. vsebino podatka (npr. c znak, s niz znakov, p kazalec, n celo število, x realno število, ) double sin(double x); Poimenovanje logičnih spremenljivk: spremenljivke naj bodo povezane s stanjem opravila (npr. Koncano, Napaka, ) uporabite pozitivno obliko (ne npr. NiNapake if(!ninapake)) 7

8 Uporaba predpon pri poimenovanju spremenljivk Predpone lahko določajo: tip podatka ("madžarska" notacija istevec, p_vrednost oznaka za kazalec, ) pomen podatka (indeks polja, ix_vrstica) globalna lokalna spremenljivka (npr. g_num, ) spremenljivke, ki so elementi strukture (npr. mleto kot pri C++) Napotki za poimenovanje konstant, uporabniških podatkovnih tipov, Predprocesorske konstante običajno pišemo z velikimi tiskanimi črkami (npr. MAX_I) Uporabniške podatkovne tipe pišemo z velikimi črkami ali s pripono _t (npr. UINT8, uint8_t) t) Pri naštevnih podatkovnih tipih je dobro pri imenu konstant podati še tip (kratico) iz katerega izhajajo enum color_t color_red, color_blue, Napotki za deklaracije spremenljivk Preprečite uporabo neiniciliziranih spremenljivk lokalne spremenljivke inicializirajte ob deklaraciji ali tik za njo Deklarirajte (oz. inicializirajte) spremenljivko čim bližje mestu kjer je prvič uporabljena Združite inicializacijo globalnih spremenljivk v skupno proceduro, ki jo poženete na začetku izvajanja aplikacije Napotki za deklaracije spremenljivk Povezane podatke je smiselno združiti v strukture Poenostavi deklaracije parametrov funkcij Poenostavi prireditve int fun(int a,int b,int c) int zac_a; int zac_b; int zac_c; zac_a = a; zac_b = b; zac_c = c; typedef str_t struct int a;int b;int c; int fun(str_t str) str_t zac_str; zac_str = str; Napotki pri izdelavi podprogramov Podprograme uporabite za: Reduciranje kompleksnosti. Program razdelimo na manjše, lažje obvladljive dele in jih obravnavamo ločeno. Preprečitevpodvajanjapodvajanja kode. Zaporedje (podobnih) stavkov, ki se v kodi pojavljajo večkrat, združimo v podprogram. Povečanje prenosljivosti. Dele kode, ki so odvisni od ciljne platforme damo v ločene podprograme (in v posebno prevajalno enoto). Pri prenosu na nov ciljni sistem je potrebno zamenjati samo te. Napotki pri izdelavi funkcij Podprograme uporabite za (nadaljevanje): Za poenostavitev kompleksnejših logičnih izrazov. Kompleksnejše logične izraze je ugodneje razrešiti v funkciji. Pri testiranju pogojev (zanke, odločitve) pa uporabimo klic funkcije. Implementacijo zahtevnejših algoritmov (tudi, če se v programu kličejo samo enkrat). Kasneje se lahko lažje osredotočimo na optimizacijo kritičnih delov kode, če so zajete v ločene funkcije. 8

9 Napotki pri izdelavi podprogramov Podprogram poimenujte tako, da bo enolično odražala kaj dela (npr. izracun_vsote). Pri funkcijah lahko uporabimo opis rezultata, ki ga funkcija vrača, pri procedurah pa glavno delo, ki ga opravlja. Pri imenih se izogibajte splošnih računalniških izrazov (npr. obdelava_podatkov). Napotki pri izdelavi podprogramov Podprogrami naj izvajajo samo eno nalogo. Izogibajte se podprogramom, ki jim preko dodatnega parametra določimo kaj naj podprogram dela. Kontrola za to je lahko poimenovanje podprograma. Ali ji lahko podamo enolično ime? Podprogrami naj ne bi bili daljši od nekaj zaslonov kompleksnejše podprograme razbijte na manjše dele Vsak podprogram dobro dokumentirajte. int fun(int vrsta_operacije) if(vrsta_operacije==1) int n; scanf("%d",&n); return n; printf("%d\n",vrsta_operacije); return 0; Parametri podprogramov Parametre poimenujte v skladu z njihovim pomenom (podobno kot spremenljivke). Tudi pri deklaraciji (prototipu) funkcije zmeraj uporabite imena parametrov. Parametre, ki jih funkcija ne spreminja, označite z atributom const prevajalnik nam bo javil napako, če bomo parameter pomotoma spremenili Uporabite tip void, za označevanje procedur oz. za označevanje podprograma brez parametrov Parametri podprogramov Najprej navedite vhodne parametre, nato parametre, ki jih funkcija spreminja oz. vrača Pri funkcijah, ki spadajo skupaj in imajo podobne parametre, uporabite isti vrstni red parametrov Ne navajajte (dodatnih) parametrov, ki jih funkcija ne uporablja Pri komentarju za funkcijo navedite tudi uporabo in predpostavke povezane s posameznimi parametri Omejite število parametrov na največ 7 Rezultat funkcije Funkcija ali procedura? Funkcija naj vrača konkretni rezultat brez stranskih učinkov (brez izpisa, brez spreminjanja globalnih spremenljivk, ) Procedura lahko spreminja (vrača) več podatkov (pri prenosu parametrov po referenci) in ima lahko stranske učinke Včasih lahko proceduro spremenimo v funkcijo in vračamo status o uspešnosti izvedbe njene naloge 9

10 Rezultat funkcije Pri funkciji preverite vse možne načine vračanja iz nje (da ne dobimo, kot rezultat, nedefinirane vrednosti). Preverite, da kot rezultat ne vračate reference (kazalcev) na lokalne podatke ko se funkcija zaključi, ti podatki izginejo Priporočila pri pisanju izrazov Številčne konstante zamenjajte s simbolnimi imeni (direktivami predprocesorja ali naštevnimi podatkovnimi tipi); izjema so enostavne konstante npr. 0 in 1 Po potrebi dodajte eksplicitno konverzijo tipov (da pri branju kode ne spregledamo konverzij, ki jih naredi prevajalnik implicitno) int a; a = 42; //? a = 7/3; int a; a = 42; //? a = 7/3; #define ODGOVOR_NA_SMISEL_ZIVLJENJA_IN_VSEGA_DRUGEGA 42 int a; a = ODGOVOR_NA_SMISEL_ZIVLJENJA_IN_VSEGA_DRUGEGA ; a = (int) 7/3; Priporočila pri pisanju izrazov Upoštevanje omejitev v natančnosti realnih števil (npr. pri primerjavi enakosti, seštevanje zelo velikih in zelo malih vrednosti ) Dodajte kontrole za morebitnearitmetične napake (deljenje z 0, ), prekoračitve obsega celih števil, ipd. float x,y; char n; x = ; y = x ; printf("%g (%g%g\n",x,y);,,y); if(x==y) printf("podatka sta enaka\n",x); printf("podatka sta različna\n",y); n = 27*10; printf("%d\n",n); x = 12/(n 27*10); printf("%g\n",x); 10

11 float x,y; char n; x = ; y = x ; printf("%g (%g%g\n",x,y);,,y); if(abs(x y)<0.001) printf("podatka sta enaka\n",x); printf("podatka sta različna\n",y); n = 27*10; printf("%d\n",n); x = 12/(n 27*10); printf("%g\n",x); Priporočila pri pisanju izrazov Pri znakovnih nizih je potrebno upoštevati, da se na konec doda '\0' (npr. pri deklaraciji dolžine polja) Upoštevanje maksimalne dolžine polj rezerviranih za znakovne nize sodobne programske knjižnice vključujejo "safe" verzije funkcij za delo z nizi Upoštevanje maksimalne dolžine ostalih polj char niz1[]="abc"; char niz2[3]; int a[10],i; for(i=0;i<=2;i++) niz2[i] = niz1[i]; printf("%s\n",niz2); a[10] = 2; char niz1[]="abc"; char niz2[3]; int a[10],i; for(i=0;i<sizeof niz1;i++) niz2[i] = niz1[i]; printf("%s\n",niz2); a[10] = 2; Napotki za pisanje kode Uporabljajte zamike, da poudarite zgradbo programa Za vsakim povezanim sklopom ukazov izpustite eno prazno vrstico void main () int i; for(i=1;i<=10;i++) printf("%d\n",i); return; void main () int i; for(i=1;i<=10;i++) printf("%d\n",i); return; void main () int i; for(i=1;i<=10;i++) printf("%d\n",i); return; if(a==2) if(b!=3) printf(); 11

12 Napotki za odločitvene stavke if(a==2) if(b!=3) printf(); if(a==2) if(b!=3) printf(); Pogoje v if stavkih poskušajte postaviti tako, da se bo v prvem delu izvedla najbolj pogosta varianta, v drugem () delu pa manj pogosta Če bi bil prvi del stavka prazen, je bolje obrniti pogoj Razmislite, ali je koristno dodati del tudi v primeru, ko le ta ne naredi nič (npr. ko smo naleteli na napačen vhodni podatek, ki pa ga lahko ignoriramo) if(a==0) // Uporabnik je zahteval prekinitev vnosa if(a!=0) // Uporabnik je zahteval prekinitev vnosa if(a>0) vsota = vsota+a; vseh++; if(a>0) vsota = vsota+a; vseh++; /* Vrednost ni pozitivna zato je ne prištejemo */ Napotki za odločitvene stavke Pri stavku switch poskušajte alternative napisati od najpogostejše do najredkejše Uporabite default alternativo za prestrezanje morebitnih napak Preverite, ali ste pravilno navedli break ukaze izogibajte se alternativam, ki se nadaljujejo v naslednjo alternativo Napotki za zančne strukture Kdaj uporabiti določeno vrsto zanke? Zanko for, ko je število ponovitev zanke znano naprej Zanko while, ko števila ponovitve ne poznamo vnaprej Zanko do while, ko število ponovitve zanke ni znano vnaprej, a se mora zanka izvesti vsaj enkrat Neskončno zanko, ko se določena rutina pod normalnimi pogoji nikoli ne zaključi 12

13 Napotki za zančne strukture Napotki za zančne strukture Včasih je potrebno pogoj ponovitve prenesti v sredino telesa zanke uporabimo lahko neskončno zanko z break izhodom Postavite inicializacijski del kode tik pred začetek zanke Uporabite zavite oklepaje tudi, ko telo zanke sestavlja samo en stavek Izogibajte se zankam, ki imajo prazno telo ne uporabljajte trikov in ne stlačite vsega v pogoj Vsaka zanka naj opravlja samo eno nalogo bolje narediti dve zanki, ki se kličeta izmenično glede na nek vhodni pogoj, kot pa eno zanko, ki vključuje j dve alternativni telesi Preverite, ali se zanka v vsakem primeru zaključi Indeksne spremenljivke zank skušajte uporabljati samo v telesu zanke Skušajte omejiti gnezdenje zank na največ tri nivoje Napotki za zančne strukture Kompleksnejše izraze, ki se znotraj telesa zanke ne spreminjajo, izračunajte pred začetkom zanke in jih prenesite v telo zanke preko pomožne spremenljivke Razmislite, ali lahko zanko zamenjate s klicem ustrezne sistemske funkcije (npr. kopiranje elementov polja z memcpy, ) Uporaba rekurzije Rekurzijo uporabite samo, če je rekurzivna rešitev boljša (preglednejša) od iterativne Prepričajte se, da se bo rekurzija vedno zaključila Zreducirajte število lokalnih spremenljivk in parametrov v rekurzivni funkciji, da zmanjšate porabo potrebnega pomnilnika Uporaba goto stavkov Načeloma uporaba goto stavkov ni priporočena V določenih primerih se lahko z ustrezno uporabo goto stavkov izognemo podvajanju kode Namesto stavka goto, uporabitebreakalireturnbreak ali return Pogosto moramo v nekem podprogramu na začetki alocirati pomnilnik in ga na koncu sprostiti. Če se na sredini rutine zgodi napaka, lahko z goto stavkom izvedemo direktni skok na del za dealokacijo. Komentarji Ko pišete komentarje, si predstavljajte, da jih bo bral nekdo, ki ne pozna vašega programa Izkoristite besedila iz specifikacije zahtev, analize in načrta rešitve problema Postavite komentarje vedno na ista mesta v kodi (npr. pred definicijo podprograma, vrstične komentarje vedno določeno število znakov od roba, ) Uporabite poimenovanja spremenljivk in podprogramov, zamike v kodi, kot dodatni način komentiranja programa 13

14 Komentarji Iskanje napak v programu Ne pišite komentarjev, ki opisujejo kaj dela posamezni ukaz programske kode opišite čemu je ukaz ali skupina ukazov namenjena vrstica++; // spremenljivko vrstica povečamo za 1 stevec=0; // števec postavimo na 0 vrstica++; // premaknemo se na naslednjo vrstico izpisa Za napake v vašem programu ste krivi vi in ne računalnik (razen če ) Odprava napake sestavlja iskanje vzroka napake (90% časa) in iskanje rešitve za njeno odpravo (10% časa) Odprava napake lahko povzroči (vpelje) nove napake stevec=0; // števec prebranih podatkov postavimo na 0 Iskanje napak v programu Veliko napak lahko preprečimo s tehnikami kakovostnega programiranja Veliko napak lahko odkrijemo z dobro zastavljenim testiranjem (testiranje robnih pogojev, testiranje z napačnimi vrednostmi, testiranje pokritosti kode, ) Veliko napak lahko odkrijemo s skupinskim pregledom kode. Lastne napake sami najtežje odkrijemo. Tehnike za odkrivanje napak Uporaba očiščevalnika (debuggerja). To je program, ki omogoča: Izvajanje programa korak po korak Nastavitev prekinitvenih točk Opazovanje (in nastavljanje) vrednosti spremenljivk Opazovanje zaporedja klicev funkcij (sklada) Tehnike za odkrivanje napak Uporaba razhroščevalnik (debuggerja) Običajno moramo za delo z razhroščevalnikom prevedeno kodo posebej pripraviti: Po možnosti izklopimo optimizacijo kode V prevedeno kodo vključimo dodatne informacije o spremenljivkah in naslovih posameznih vrstic izvorne kode Zaradi različnih nastavitev so včasih pogoji izvajanja programa pod razhroščevalnikom drugačni od izvajanja nespremenjene kode Tehnike za odkrivanje napak Kaj narediti, če nimamo očiščevalnika? Če obstaja možnost komunikacije s ciljnim sistemom, uporabimo tehniko diagnostičnih izpisov oz. signalov (izpis na zaslon, ) "Poor man debugger" Uporabimo simulatorje in emulatorje Uporabimo električne merilnike (logični analizator, osciloskop, ) 14

15 Tehnike za odkrivanje napak Podprogram assert assert(<logični pogoj>,<sporocilo o napaki>) Podprogram assert testira logični pogoj. Če je izpolnjen, se ne zgodi nič, če ni, se izvajanje programa prekine in izpiše se opozorilo o napaki S posebno kretnico ob prevajanju lahko klice podprograma assert izločimo iz prevedene kode int a[10]; assert(i>=0 && i<10); // v C ju nimamo posebnega sporočila a[i] = ; 15

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

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

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

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

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

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

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

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

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

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente Laboratorij za načrtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani Hierarhično načrtovanje Andrej Trost Načrtovanje digitalnih el. sistemov Načrtovanje vezij v jeziku VHDL Komponente,

More information

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente Laboratorij za načrtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani Hierarhično načrtovanje Andrej Trost Načrtovanje digitalnih el. sistemov Načrtovanje vezij v jeziku VHDL Komponente,

More information

Skriptni jezik lupine Bash

Skriptni jezik lupine Bash Robert Meolic meolic@uni mb.si Skriptni jezik lupine Bash interno gradivo za predmet VSO, 2006/07 1. LITERATURA Pri sestavljanju gradiva o skriptnem jeziku lupine Bash sem uporabljal internet in naslednji

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

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

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

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

» 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

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

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

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

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

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

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

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

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

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

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

Osnove programskega jezika C++

Osnove programskega jezika C++ Osnove programskega jezika C++ 1 O S N O V E P R O G R A M I R A N J A V C + + U P O R A B A P R O G R A M A CODE::B L O C K S programski stavek Nekaj osnovnih pojmov (1.) definicija, deklaracija, ukaz

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

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

Uvod v programiranje v zbirnem jeziku

Uvod v programiranje v zbirnem jeziku Uvod v programiranje v zbirnem jeziku Programerjev pogled na zgradbo računalnika Primer: procesorji družine Intel x86 Programer vidi naslednje stanje : EIP Programski števec (naslov naslednjega ukaza)

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

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

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

Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32

Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32 ŠC Novo mesto Višja strokovna šola - elektronika Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32 mag., univ. dipl. inž. ŠOLSKI CENTER NOVO MESTO, november 2004 KAZALO stran 1 UVOD...

More information

Prometno načrtovanje xdsl

Prometno načrtovanje xdsl Prometno načrtovanje xdsl 1 Kazalo Prometno načrtovanje naročniške zanke Prometno načrtovanje MSAN Izbira agregacijskega modela Izbira opreme 2 Potrebe po pasovni širini Zahtevana pasovna širina na uporabnika

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

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

Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo

Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo Učinkovita rešitev za izdelavo zaščitnih kopij z deduplikacijo in replikacijo Študija primera uvedbe sistema EMC DataDomain v podjetju Si.mobil Janez Narobe Janez.narobe@simobil.si Rok Krisper rok.krisper@snt.si

More information

Osnove programskega jezika C

Osnove programskega jezika C Rok Vrabič, Lovro Kuščer Osnove programskega jezika C Gradivo za vaje pri predmetih Mehatronski sistemi in Diskretni krmilni sistemi Ljubljana, 2014 Kazalo 0 Uvod... 1 1 Prvi C program... 2 1.1 Zgodovina

More information

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010 Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa

More information

Podatkovno procesiranje v relacijskih sistemih

Podatkovno procesiranje v relacijskih sistemih Podatkovno procesiranje v relacijskih sistemih Iztok Savnik, FAMNIT. Vsebina Vgnezden SQL Dinamični SQL Shranjene procedure in funkcije Prožilci Vgnezden SQL Pristop: Vgnezdi SQL stavke v gostiteljski

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

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

TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL

TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL Tip dokumenta IT-TN Oznaka dokumenta BS-IT-RA-TN-ITS-dod Verzija dokumenta 1.1 Status dokumenta Datum zadnje spremembe dokumenta 30.01.2014 Zgodovina

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

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

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

Prevajalnik za programski jezik C za računalnik SIC/XE

Prevajalnik za programski jezik C za računalnik SIC/XE Univerza v Ljubljani Fakulteta za računalništvo in informatiko Klemen Košir Prevajalnik za programski jezik C za računalnik SIC/XE DIPLOMSKO DELO UNIVERZITETNI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE

More information

Okostje za testiranje PHP aplikacij z oblačnimi storitvami

Okostje za testiranje PHP aplikacij z oblačnimi storitvami Univerza v Ljubljani Fakulteta za računalništvo in informatiko Aleksandra Bersan Okostje za testiranje PHP aplikacij z oblačnimi storitvami DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJ RAČUNALNIŠTVA IN INFORMATIKE

More information

PREDMET. Osnove Java Programiranja. Čas JAVADOC

PREDMET. Osnove Java Programiranja. Čas JAVADOC PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,

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 SPLETNIH STRANI SIMON HORVAT ANITA URAN

IZDELAVA SPLETNIH STRANI SIMON HORVAT ANITA URAN IZDELAVA SPLETNIH STRANI SIMON HORVAT ANITA URAN Višješolski strokovni program: Informatika Učbenik: Izdelava spletnih strani Gradivo za 2. letnik Avtorja: Simon Horvat, univ. dipl. inţ. ŠOLSKI CENTER

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

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

Spletni urejevalnik JSON datotek s podano vsebinsko shemo

Spletni urejevalnik JSON datotek s podano vsebinsko shemo Univerza v Ljubljani Fakulteta za računalništvo in informatiko Marko Struna Spletni urejevalnik JSON datotek s podano vsebinsko shemo DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

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

OPTIMIRANJE IZPISOV V PROGRAMU CLICKTRANS

OPTIMIRANJE IZPISOV V PROGRAMU CLICKTRANS UNIVERZA V MARIBORU FAKULTETA ZA ORGANIZACIJSKE VEDE Organizacija in management informacijskih sistemov OPTIMIRANJE IZPISOV V PROGRAMU CLICKTRANS Mentor: doc. dr. Igor Bernik Kandidat: Roman Kavčič Kranj,

More information

New Media & Language Technologies Jozef Stefan International Postgraduate School January Speech apps. Jerneja Žganec Gros

New Media & Language Technologies Jozef Stefan International Postgraduate School January Speech apps. Jerneja Žganec Gros New Media & Language Technologies Jozef Stefan International Postgraduate School January 2005 Speech apps Jerneja Žganec Gros jerneja@alpineon.com THE VOICE WEB The voice web offers access to information

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

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

Reševanje časovno zahtevnih opravil z orodjem ORACLE

Reševanje časovno zahtevnih opravil z orodjem ORACLE Ervin Črešnjovnjak Reševanje časovno zahtevnih opravil z orodjem ORACLE Diplomsko delo Maribor, junij 2011 I Diplomsko delo univerzitetnega študijskega programa REŠEVANJE ČASOVNO ZAHTEVNIH OPRAVIL Z ORODJEM

More information

C in Java. Šolski center Celje Splošna in strokovna gimnazija Lava. Raziskovalna naloga. Mentor: Mojmir KLOVAR, univ. dipl. inž.

C in Java. Šolski center Celje Splošna in strokovna gimnazija Lava. Raziskovalna naloga. Mentor: Mojmir KLOVAR, univ. dipl. inž. Šolski center Celje Splošna in strokovna gimnazija Lava C in Java Raziskovalna naloga Mentor: Mojmir KLOVAR, univ. dipl. inž. Avtorja: Staš ŽNIDAR 4.F Jurij REPAR 4.F Celje, marec 2006 Kazalo Kazalo...

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

Potek načrtovanja sistemov. Načrtovanje digitalnih el. sistemov. Hierarhična zgradba sistema. Določanje zgradbe sistema.

Potek načrtovanja sistemov. Načrtovanje digitalnih el. sistemov. Hierarhična zgradba sistema. Določanje zgradbe sistema. Laboratorij za načrtovanje integriranih vezij Fakulteta za elektrotehniko Univerza v Ljubljani Potek načrtovanja sistemov Andrej Trost Načrtovanje digitalnih el. sistemov Implementacija in verifikacija

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

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

Vgradnja objektno usmerjenih gradnikov v programski jezik PINS

Vgradnja objektno usmerjenih gradnikov v programski jezik PINS Univerza v Ljubljani Fakulteta za računalništvo in informatiko Toni Kocjan Turk Vgradnja objektno usmerjenih gradnikov v programski jezik PINS DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE

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

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

INFORMATIKA V GOZDARSTVU. J.Krč

INFORMATIKA V GOZDARSTVU. J.Krč INFORMATIKA V GOZDARSTVU J.Krč Zakaj INFORMATIKA? Delo = razlika med teorijo in prakso http://youtu.be/nkiu9yen5nc Vsebina (p 30ur +sv 15 ur) - / Opredelitev informatike, Splošna teorija sistemov ; - /

More information

Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo

Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo Tehnike programiranja PREDAVANJE 9 Uvod v binarni svet in računalništvo Predavanje 9 Uvod v binarni svet Birnarna aritmetika Polprevodniške tehnologije Računalnik Mikroprocesor ldos.fe.uni-lj.si >študij

More information

"BASH" LUPINA VAJE. while true do ps > bla grep $1 bla cut c 1 7 > bla2 for i in `cat bla2` do kill $i done rm bla2 rm bla sleep 300 done

BASH LUPINA VAJE. while true do ps > bla grep $1 bla cut c 1 7 > bla2 for i in `cat bla2` do kill $i done rm bla2 rm bla sleep 300 done VAJE "BASH" LUPINA 1. Napišite program v lupini, ki pregleda datoteko /etc/passwd in izpiše vse lupine, ki jih uporabniki sistema uporabljajo, ter koliko uporabnikov uporablja posamezno lupino. cut f 7

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

LATEX. Ponovimo: Kaj je to logično urejanje? Peter PEER. Ima sintakso, torej je sila podobno programiranju!!!

LATEX. Ponovimo: Kaj je to logično urejanje? Peter PEER. Ima sintakso, torej je sila podobno programiranju!!! LATEX Peter PEER http://www.lrv.fri.uni-lj.si/~peterp/temp/latex.pdf Fakulteta za računalništvo in informatiko Ponovimo: Kaj je to logično urejanje? Ima sintakso, torej je sila podobno programiranju!!!

More information

C prevajalnik za procesor HIP

C prevajalnik za procesor HIP Univerza v Ljubljani Fakulteta za računalništvo in informatiko Peter Žužek C prevajalnik za procesor HIP DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN MATEMATIKA Mentor:

More information

Dejan Lukan. Negativno Testiranje

Dejan Lukan. Negativno Testiranje UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Dejan Lukan Negativno Testiranje Postopki in orodja za negativno testiranje DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Mentorica: doc. dr. Mojca

More information

PSPP - statistična analiza podatkov

PSPP - statistična analiza podatkov Poglavje 17 PSPP - statistična analiza podatkov Vnos podatkov zbranih z anketnimi vprašalniki Izvajanje opisne statistike, testov ipd. Primer: statistična analiza zadovoljstva prevzema pnevmatik 408 PSPP

More information

RA^UNALNI[TVO NAVODILA ZA OCENJEVANJE

RA^UNALNI[TVO NAVODILA ZA OCENJEVANJE r`avni izpitni center *M04178113* SPOMLNSKI ROK R^UNLNI[TVO NVOIL Z ONJVNJ Sreda, 9. junij 2004 SPLOŠN MTUR RI 2004 2 M041-781-1-3 IZPITN POL 1 Obkrožite pravilno trditev. 1. Po vodilu lahko potekata dva

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

Funkcije, neskončna zaporedja in java

Funkcije, neskončna zaporedja in java Funkcije, neskončna zaporedja in java LALGinar, 4. oktober 2013 Luka Fürst Funkcijsko programiranje Funkcije kot osnovni gradniki funkcije kot argumenti funkcij funkcije, ki vračajo funkcije Funkcijsko

More information

Programske paradigme Funkcionalna paradigma

Programske paradigme Funkcionalna paradigma Programske paradigme Funkcionalna paradigma 1. čas: Uvod u funkcionalno programiranje. Programski jezik Haskel. Upoznavanje sa razvojnim okruženjem. Tipovi podataka. Funkcionalno programiranje Stil u programiranju

More information

ORODJE ZA TESTNO VODEN

ORODJE ZA TESTNO VODEN UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO GREGOR STAMAĆ ORODJE ZA TESTNO VODEN RAZVOJ JAVASCRIPT APLIKACIJ DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU MENTOR: PROF. DR. SAŠA DIVJAK LJUBLJANA,

More information

Naloge za 1. skupino

Naloge za 1. skupino 21. DRŽAVNO TEKMOVANJE V ZNANJU RAČUNALNIŠTVA ZA SREDNJEŠOLCE Naloge za 1. skupino 1. Člani komisije računalniškega tekmovanja srednješolcev so pripravili program sort za urejanje doseženih rezultatov

More information

1. Opišite naloge jedra pri sistemu UNIX. Kaj so naloge jedra in kaj naloge lupine ob izvršitvi ukaza rm moja_datoteka?

1. Opišite naloge jedra pri sistemu UNIX. Kaj so naloge jedra in kaj naloge lupine ob izvršitvi ukaza rm moja_datoteka? 1. Opišite naloge jedra pri sistemu UNIX. Kaj so naloge jedra in kaj naloge lupine ob izvršitvi ukaza rm moja_datoteka? Naloge jedra so: - nadzor nad procesi, rojevanje in pobijanje procesov, upravljanje

More information

PROGRAMIRANJE II: KONCEPTI PROGRAMSKIH JEZIKOV

PROGRAMIRANJE II: KONCEPTI PROGRAMSKIH JEZIKOV 1 U N I V E R Z A N A P R I M O R S K E M Fakulteta za matematiko, naravoslovje in informacijske tehnologije Iztok Savnik SKRIPTA ZA PREDMET PROGRAMIRANJE II: KONCEPTI PROGRAMSKIH JEZIKOV ŠTUDIJSKI PROGRAM

More information

Metode logičnega snovanja Programabilne logične naprave in VHDL. Miha Moškon

Metode logičnega snovanja Programabilne logične naprave in VHDL. Miha Moškon Metode logičnega snovanja Programabilne logične naprave in VHDL Miha Moškon Programabilne logične naprave Metode logičnega snovanja, 1. laboratorijska vaja 2 Programabilna logična vezja V času proizvodnje

More information

Razvoj spletne aplikacije za urejanje datotek JSON z ogrodjem Django

Razvoj spletne aplikacije za urejanje datotek JSON z ogrodjem Django UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Damjan Vidonja Razvoj spletne aplikacije za urejanje datotek JSON z ogrodjem Django DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJ RAČUNALNIŠTVO IN IINFORMATIKA

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

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

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

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Dean Črnigoj. Izdelava odjemalca NFS za Windows DIPLOMSKO DELO

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Dean Črnigoj. Izdelava odjemalca NFS za Windows DIPLOMSKO DELO UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Dean Črnigoj Izdelava odjemalca NFS za Windows DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

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

Andrej Jamšek. Namestitev programske opreme s poudarkom na tehnologiji MSI

Andrej Jamšek. Namestitev programske opreme s poudarkom na tehnologiji MSI UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andrej Jamšek Namestitev programske opreme s poudarkom na tehnologiji MSI DIPLOMSKO DELO NA VISOKOŠOLSKEM STROKOVNEM ŠTUDIJU Mentor: izr.

More information

Uvod v programiranje v BASH - HOW-TO

Uvod v programiranje v BASH - HOW-TO Uvod v programiranje v BASH - HOW-TO Mike G mikkey@dynamo.com.ar Čet Jul 27 09:36:18 ART 2000 Ta spis vam bo v pomoč, ko se boste lotili pisanja osnovnih in nekoliko zahtevnejših lupinskih skriptov. Ni

More information

Unsupervised learning of scene and object planar parts

Unsupervised learning of scene and object planar parts Elektrotehniški vestnik 74(5): 297 302, 2007 Electrotechnical Review, Ljubljana, Slovenija Unsupervised learning of scene and object planar parts Katarina Mele, Jasna Maver Univerza v Ljubljani, Fakulteta

More information

TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL

TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL TEHNIČNA POJASNILA GLEDE IZPOLNJEVANJA ITS POROČIL Tip dokumenta IT-TN Oznaka dokumenta BS-IT-RA-TN-ITS-dod Verzija dokumenta 1.4 Status dokumenta Datum zadnje spremembe dokumenta 23.11.2017 Zgodovina

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

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

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