Verifikacija softvera 7.čas Marjana Šolajić, Ana Vulović Matematički fakultet, Univerzitet u Beogradu 11. decembar 2018 Sadržaj 1 KLEE Upotreba
|
|
- Јасмина Матић
- пре 5 година
- Прикази:
Транскрипт
1 Verifikacija softvera 7.čas Marjana Šolajić, Ana Vulović Matematički fakultet, Univerzitet u Beogradu 11. decembar 2018 Sadržaj 1 KLEE Upotreba Klee alata Otkrivanje grešaka Primer semantičke greške Primer greške u radu sa pokazivačima Pronalaženje inverza zadate funkcije Korišćenje C bibliotečkih funkcija i simboličkog okruženja Primer sa simboličkim argumentom komandne linije Maze KLEE Klee je javno dostupan alat koji se distribuira pod licencom NCSA otvorenog kôda Univerziteta Ilinois. Služi za simboličko izvršavanje programa i za automatsko generisanje test primera. Klee vrši analizu nad llvm kôdom i koristi SMT rešavač STP za proveravanje uslova ispravnosti koje generiše. Klee koristi nekoliko optimizacija i heuristika za poboljšavanje pokrivenosti kôda prilikom simboličkog izvršavanja. Ovaj alat koristi se i kao sastavni deo raznih platformi za razvijanje novih alata za analizu programa. Klee ima dva cilja: 1. da pokrije svaku liniju izvornog kôda u programu 2. da detektuje svaku opasnu operaciju ako postoji ijedna ulazna vrednost koja može da prouzrokuje grešku 1.1 Upotreba Klee alata Naredni primer će nas sprovesti kroz osnovne korake pripreme izvornog kôda za korišćenje alata. Razmotrimo kratak program u kome se testira funkcija koja proverava da li je učitan ceo broj paran: #include <stdio.h> int even(int x) { if(x%2==0) return 1; if(x%2) return 1; // nedostizna naredba int main(int argc, char* argv[]) { int x; scanf("%d", &x); printf("%d", even(x)); marjana@matf.bg.ac.rs ana vulovic@matf.bg.ac.rs 1
2 Možemo primetiti da je poslednja naredba u definiciji funkcije even nedostižna, odnosno da će se uvek izvršiti prvi ili drugi return u funkciji. Priprema programa za simboličko izvršavanje: 1. uključiti zaglavlje klee/klee.h 2. umesto učitavanja vrednosti promenljive koja nas zanima, označiti je simboličkom pomoću funkcije klee make symbolic 3. umesto korišćenja eksterne funkcije za ispis koju naš alat ne može da proveri, povratnu vrednost funkcije even ćemo vratiti preko povratne vrednosti funkcije main Argumenti funkcije klee make symbolic, redom: 1. adresa promenljive 2. veličina promenljive 3. naziv promenljive (proizvoljna niska karaktera) Opciono: primetili smo da je poslednja linija funkcije even nedostižna, ali to možemo i potvrditi pozivom funkcije klee assert(0), što će signalizitati grešku alatu ukoliko bude postojala putanja kojom se dolazi do poziva ove funkcije. U slučaju da takva putanja ne postoji, neće biti signalizirana greška i potvrdiće se pretpostavka da ne postoji ulaz za koji je ta naredba dostižna. Napomena: korišćenje funkcije klee assert zahteva uključivanje zaglavlja assert.h. Program even.c, nakon izmena: #include <stdio.h> #include <assert.h> #include <klee/klee.h> int even(int x) { if(x%2==0) return 1; if(x%2) klee_assert(0); return 1; // nedostizna naredba int main(int argc, char* argv[]) { int x; klee_make_symbolic(&x, sizeof(x), "x"); return even(x); Pomoću alata clang za koji je uveden alias myclang se generiše llvm kôd pod nazivom even.bc sa kojim radi Klee alat: myclang -I /build/klee/include/ -emit-llvm -c -g even.c Nakon ovoga pokrećemo Klee preko aliasa myklee: myklee even.bc Nakon izvršenja prethodne naredbe dobijamo sledeći izlaz: 2
3 KLEE: output directory is "/home/student/build/klee/examples/even/klee-out-0" Using STP solver backend KLEE: done: total instructions = 42 KLEE: done: completed paths = 2 KLEE: done: generated tests = 2 Na osnovu dobijenog izlaza, postoje dve putanje u našem programu, kao što smo i očekivali, u zavisnosti od toga da li je argument paran ili neparan po vrednosti. Klee je generisao direktorijum pod nazivom klee-out-0 sa test primerom za svaku eksploatisanu putanju. Pri sledećem pokretanju generisao bi se direktorijum klee-out-1, tj. u opštem slučaju direktorijum pod nazivom klee-out-n za prvo slobodno N. Takode, napravljen je i simbolički link klee-last koji uvek ukazuje na poslednji klee-out direktorijum. Ukoliko izlistamo direktorijum klee-out-0, izmedu ostalog, primetićemo datoteke sa ekstenzijom.ktest. To su binarne datoteke koje sadrže test primere za svaku putanju zasebno i koje se mogu pročitati korišćenjem alata ktest-tool koji je kod nas pod aliasom myktest-tool. Čitanje test primera: $myktest-tool --write-ints test ktest ktest file : test ktest args : [ even.bc ] num objects: 2 object 0: name: model_version object 0: size: 4 object 0: data: 1 object 1: name: x object 1: size: 4 object 1: data: 0 $ myktest-tool --write-ints test ktest ktest file : test ktest args : [ even.bc ] num objects: 2 object 0: name: model_version object 0: size: 4 object 0: data: 1 object 1: name: x object 1: size: 4 object 1: data: 1 Primećujemo da je Klee generisao ulaz 0 i 1 za pokrivanje dve otkrivene putanje, tj. jednu parnu i jednu neparnu ulaznu vrednost. Da bismo proverili da li naš program daje očekivane izlaze za generisane test primere, možemo testirati polazni program korišćenjem vrednosti data iz pročitanih testova ili koristiti simbolički program zahvaljujući posebnoj biblioteci libkleeruntest i koja pozive funkcije klee make symbolic zamenjuje pozivom funkcije koja promenljivoj dodeljuje vrednost zapisanu u odgovarajućoj test datoteci. Testiranje pomoću libkleeruntest biblioteke: $ export LD LIBRARY PATH=/home/student/build/klee/Release+Asserts/lib $ gcc -I /home/student/build/klee/include/ -L /home/student/build/klee/release+asserts/lib even.c -lkleeruntest $ KTEST FILE=klee-last/test ktest./a.out $ echo $? 1 $ KTEST FILE=klee-last/test ktest./a.out $ echo $? 0 Očekivano, nismo dobili poruku od klee assert što potvrduje pretpostavku da je označen deo kôda nedostižan za bilo koji ulaz. 3
4 Statističke informacije u vezi sa izvršavanjem Klee alata nad nekim bitkôdom, kao što su broj izvršenih instrukcija, pokrivenost instukcija bitkôda, pokrivenost grana bitkôda i slično, možemo dobiti pomoću Python skripta klee-stats (alias koji koristimo je myklee-stats). Informacije se prikazuju u tabelarnoj formi. Ovaj alat se poziva nad direktorijumom koji je generisao Klee. Da bismo bili sigurni da je to najnovija verzija direktorijuma, najjednostavnije je alat pozvati sa argumentom klee-last. $ myklee-stats klee-last Path Instrs Time(s) ICov(%) BCov(%) ICount TSolver(%) klee-last Legendu za tabelu možemo dobiti pomoću opcije --help. LEGEND Instrs number of executed instructions Time total wall time (s) ICov instruction coverage in the LLVM bitcode (%) BCov branch coverage in the LLVM bitcode (%) ICount total static instructions in the LLVM bitcode TSolver time spent in the constraint solver Vizuelni prikaz statistike o simboličkom izvršavanju možemo dobiti korišćenjem alata KCachegrind kcachegrind klee-last/run.istats Izborom CoveredInstructions ili UncoveredInstructions i izborom kartice Source Code možemo tačno videti koje linije jesu, odnosno nisu pokrivene test primerima. Primetimo da brojevi koje sada vidimo su daleko veći od brojevi koje je prikazao klee-stats. Razlog je to što gcov razmatra samo linije u jednoj datoteci, a ne u celoj aplikaciji. Dok sa KCachegrind-om možemo čitati izlaz gcov-a o pokrivenosti kôda i da ispratimo koje su linije pokrivene, a koje ne. 1.2 Otkrivanje grešaka Ukoliko prilikom generisanja test primera za neku od putanja, pronade test primer koji izaziva grešku, Klee će pored tog test primera generisati još dve datoteke: test<n>.pc - uslovi ograničenja koji važe za tu putanju i koji su prosledeni solveru u KQuery sintaksi [2]. test<n>.<type>.err - dodatne informacije o grešci <TYPE> označava tip detektovane greške. Neke od grešaka koje Klee može da detektuje su: ptr: Čitanje ili pisanje u nevalidnu memorijsku lokaciju; free: Dupli ili nekorektan poziv funkcije free(); 4
5 abort: Program je pozvao funkciju abort(); assert: Uslov proveravan funkcijom assert nije tačan; div: Deljenje nulom ili računanje po modulu 0; user: Problem je u vezi sa ulazom (neispravan poziv klee intrinsic) ili pogrešan način upotrebe Klee-a. exec: Dogodio se problem koji je Klee sprečio u izvršavanju programa, npr. nepoznata instrukcija, poziv preko neispravnog pokazivača na funkciju ili inline funkcije. model: Klee nije mogao da ispuni kompletnu preciznost i ispituje samo deo svih stanja programa. Na primer, simboličke veličine prosledene malloc funkciji nisu trenutno podržane i u takvim situacijama Klee konkretizuje taj argument Primer semantičke greške Pogledajmo primer neispravne funkcije za proveru parnosti celog broja: int bad_even(int x) { if(x%2==0) return 1; if(x%2==1) return 1; // dostizna za negativne ulaze Ovaj primer, za razliku od prethodnog ima grešku prilikom provere neparnih negativnih brojeva jer je za njih ostatak pri deljenju jednak 1 pa nisu obuhvaćeni drugom if naredbom. Pokušaćemo da korišćenjem Klee alata otkrijemo ovu grešku i dobijemo test primer za koji je dostižna poslednja return naredba. Kao i malopre, u glavnom programu označavamo simboličku promenljivu i dodajemo poziv funkcije klee assert(0) koja će signalizirati grešku pri eksploatisanju putanje u kojoj je malopredašnja nedostižna naredba. Nakon dobijanja llvm kôda bad even.bc i pokretanja Klee alata: KLEE: output directory is "/home/student/build/klee/examples/bad_even/klee-out-0" Using STP solver backend KLEE: ERROR: /home/student/build/klee/examples/bad\_even/bad_even.c:12: ASSERTION FAIL: 0 KLEE: NOTE: now ignoring this error at this location KLEE: done: total instructions = 39 KLEE: done: completed paths = 3 KLEE: done: generated tests = 3 Primetimo da su sada pronadene tri putanje i generisani odgovarajući test primeri, ali je i prijavljena greška koju je signalizirala funkcija klee assert. Ukoliko pogledamo sadržaj direktorijuma sa test primerima, primetićemo da je napravljena datoteka test assert.err koja nam ukazuje da je gore pomenuta greška signalizirana pri drugom test primeru. Pogledajmo kakav je ulaz u pitanju: $ myktest-tool --write-ints test ktest ktest file : test ktest args : [ bad_even.bc ] object 0: name: x object 0: size: 4 object 0: data: Klee je pronašao da je sporna vrednost ulaza Upotrebom debagera i korišćenjem sporne ulazne vrednosti može se uočiti mesto problema, odnosno da je zaboravljeno da je ostatak pri deljenju sa 2 u slučaju negativnih brojeva 1, a ne 1. Očekivano, vreme izvršavanja koje je potrošeno na solver je veće nego u slučaju ispravnog programa. $ myklee-stats klee-last Path Instrs Time(s) ICov(%) BCov(%) ICount TSolver(%) 5
6 klee-last Generalno, prikazanom upotrebom funkcije klee assert možemo označiti putanju za koju smo zainteresovani, bilo da bismo proverili da li je ta putanja izvodljiva ili da bismo imali na izlazu označen ulaz kojim se ta putanja dostiže. Primer 1.1 deljivi.c i deljiv sym.c Program poziva funkciju koja računa ostatak pri deljenju sa 5. Prepraviti main funkciju da se ne učitava broj sa ulaza već da se prilikom simboličkog izvršavanja koristi simbolička promenljiva i da se vraća rezultat funkcije. Koje test primere je Klee generisao da bi pokrio putanje? Primer greške u radu sa pokazivačima U slučaju da postoji putanja programa na kojoj može doći do nepravilnog pristupa memorijskim lokacijama, što je čest slučaj pri radu sa pokazivačima, Klee će sam prijaviti grešku i generisati ulaz na osnovu koga možemo popraviti svoj program. Primer ovakvog programa se može videti u datoteci pointer error.c. #include <stdio.h> int main(int argc, char **argv) { char s[]="pozdravstudenti!"; int p1, p2, p3; char *p; scanf("%d %d %d", &p1, &p2, &p3); p = s; if (p1) { p += 1; else { p += 2; if (p2) { p += 6; else { p += 7; if (p3) { p += 8; else { p += 9; printf("%c ", *p); Označićemo simbolički ulaz i uključiti potrebno zaglavlje i zatim sačuvati kôd u datoteku pointer error sym.c. Na osnovu nje ćemo napraviti odgovarajući bitkôd i pokrenuti alat Klee. Klee je pronašao 8 putanja i generisao 5 test primera, a pritom je i javio memory error: out of bound pointer. Test primer koji dovodi do prijavljene greške će biti označen posebnom datotekom sa ekstenzijom.ptr.err. Primetimo da je broj test primera manji od broja istraženih putanja. BITNO: Klee neće generisati sve moguće ulaze koji dovode do iste greške. Ukoliko je tako nešto potrebno, prilikom pokretanja dodati opciju -emit-all-errors. Ako uvedemo pomenutu opciju prilikom pokretanja alata Klee, myklee --emit-all-errors pointer error sym.bc 6
7 biće generisano 8 test primera, od čega 4 označena greškom za memoriju. Čitanjem dobijenih test primera, možemo ispraviti sve putanje koje su dovele do problema sa pokazivačem. Pokrenuti klee-stats nad direktorijumom koji je generisan u prvom slučaju i sa dodavanjem opcije za emitovanje svih grešaka. Primetiti da se jedino razlikuje vreme potrošeno na solver dok je pokrivenost kôda i grana identična. Primer 1.2 pozdrav.c Popraviti kôd shodno greškama koje je Klee pronašao. 1.3 Pronalaženje inverza zadate funkcije Zanimljivo je pogledati kako se može Klee alat iskoristiti za pronalaženje inverza neke funkcije. Tačnije, da li Klee može pronaći ulaz za koji dobijamo željeni izlaz. Na primer, data je funkcija koja argument transformiše na sledeći način: int magic_computation(int input) { for (int i = 0; i < 32; ++i) input ^= 1 << i; return input; Zanima nas kako da pogodimo za koju je vrednost argumenta, vrednost transformacije 253. Glavni program kojim bismo testirali funkciju bi mogao da ima sledeću formu: int main() { int input; scanf("%d", &input); int output = magic_computation(input); if (output == 253) printf("you win!\n"); else printf("you lose\n"); Ručno testiranje bi svakako bio dug i naporan posao. Medutim, možemo iskoristiti Klee da nam pronade putanju za koju smo zainteresovani. Iako Klee eksploatiše sve putanje, nas zanima samo ona na kojoj se izvršava ispis poruke You win!, pa ćemo upravo tu dodati poziv funkcije klee assert. Uvodenjem simboličke promenljive, glavni program postaje: int main() { int input, output; klee_make_symbolic(&input, sizeof(input), "input"); output = magic_computation(input); if (output == 253) klee_assert(0); Ceo program se može videti u datoteci inverse.c. Nakon dobijanja direktorijuma sa generisanim test primerima primetićemo da je napravljen test assert.err, što ukazuje na to da je prvi test primer ulaz koji smo tražili, tačnije vrednost 254. $ myktest-tool --write-ints test ktest ktest file : test ktest args : [ inverse.bc ] object 0: name: input object 0: size: 4 object 0: data: -254 Ukoliko se pokrene polazni program sa ulazom 254 dobijamo na izlazu željenu poruku You win!. 7
8 Primer 1.3 konverzija.c i konverzija sym.c Program na osnovu ulaznog parametra računa vrednost na osnovu koje je moguće pobediti u igri ili izgubiti. Prepraviti program tako da nam Klee pronade ulaz koji će nam omogućiti da pobedimo. Primer 1.4 solution.c i solution sym.c Funkcija solve računa vrednost x 3 + x 1 6. Prepraviti main funkciju tako da se pronade rešenje jednačine Primer 1.5 prime.c i prime sym.c x 3 + x 1 6 = 0 Program poziva funkciju prime koja proverava da li je broj prost. Modifikovati main funkciju tako da Klee pronade neki prost broj koji je veći od 2, a manji ili jednak Korišćenje C bibliotečkih funkcija i simboličkog okruženja U slučaju da se koristi Klee za program koji radi sa C bibliotečkim funkcijama, potrebno je navesti opcije --libc=uclibc --posix-runtime koje omogućavaju ispravno linkovanje i dodatne opcije za rad sa simboličkim okruženjem. Sa opcijom --allow-external-sym-calls se omogućava pozivanje spoljnih funkcija sa simboličkim vrednostima u programu. [4] Dodatne opcije za rad sa simboličkim okruženjem: 1. --sym-arg <N> - simbolički argument dužine najviše N 2. --sym-args <MIN> <MAX> <N> - najmanje MIN, a najviše MAX simboličkih argumenata komandne linije, svi maksimalne dužine N 3. --sym-files <NUM> <N> - NUM simboličkih datoteka veličine N (ne uključujući stdin) 4. --sym-files <NUM> <N> - NUM simboličkih datoteka veličine N (ne uključujući stdin) 5. --sym-stdin <N> - simbolički standardni ulaz veličine N 6. --sym-stdout - simbolički standardni izlaz Nevezano za simboličko okruženje, korisno je koristiti i opciju --optimize koja eliminiše mrtav kôd prilikom eksploatisanja putanji čime se dobija na efikasnosti, tj. bržem izvršavanju. Ono što treba imati u vidu, svaki poziv eksterne funkcije prilično usložnjava pronalaženje putanja i generisanje test primera Primer sa simboličkim argumentom komandne linije Datoteka password.c sadrži program za validaciju lozinke jednog sistema koja se zadaje kao argument komandne linije i za koju jedino znamo da je maksimalne dužine 100. Pretpostaviti da postoji samo jedna valjana kombinacija za lozinku. Zadatak je pronaći lozinku bez rešavanja zadatih jednačina koje su postavljenje u programu. Zadatak ćemo rešiti označavanjem putanje koja nas zanima pozivom funkcije klee assert(0), a to je upravo nakon ispisa poruke o uspešno pronadenoj lozinki (datoteka password sym.c). Nakon što se generiše bitkôd password sym.bc, dodajemo potrebne opcije prilikom poziva Klee alata: $ myklee --optimize --libc=uclibc --posix-runtime password sym.bc -sym-arg 100 Nakon što je prošlo par sekundi, može se primetiti da je generisana samo jedna poruka o grešci i čak 102 putanje. Da bismo dobili onu koja nas zanima, izvući ćemo naziv datoteke sa.err ekstenzijom i pročitati odgovarajuću.ktest datoteku: $ ls klee-last/*err klee-last/test assert.err $ myktest-tool test ktest ktest file : test ktest args : [ password_sym.bc, -sym-arg, 100 ] num objects: 2 object 0: name: arg0 object 0: size: 101 8
9 object 0: data: Pandi_panda\x00\xff\xff\xff\xff \xff\xff\xff\xff\xff\xff\xff object 1: name: model_version object 1: size: 4 object 1: data: 1 Dobili smo da je ulaz Pandi panda koji prati terminirajuća nula ispravna lozinka. Klee-ova opcija --optimize služi da se zada da se izvrši optimizacija kôda pre izvršavanja. 1.5 Maze U datoteci maze.c dat je primer jednostavne igrice kodirane u C-u. Pri pokretanju igrice, prikazuje se lavirint sa pozicijom nagrade označene karakterom #. Da bi se pokrenula igrica, potrebno je prevesti izvorni C kôd i pokrenuti generisan izvršni kôd, nakon čega se dobija sledeći izlaz: Maze dimensions: 11x7 Player pos: 1x1 Iteration no. 0 Program the player moves with a sequence of u, d, r and l Try to reach the price(#)! X # Startna pozicija igrača je gornji levi ugao lavirinta, a zadatak je pronaći put kroz lavirint koji vodi do nagrade. Igrač zadaje instrukcije kretanja u vidu liste karaktera, i to a za kretanje u levo, d u desno, w na gore i v na dole. U slučaju da se kretanjem udari u zid ili dode u poziciju iz koje se dalje ne može kretati, igrica se prekida sa porukom da smo izgubili. Ukoliko se pogodi putanja (rešenje je ddddrrrruulluurrrrddddrruuuu), nakon celog prolaska kroz lavirint, prikazaće se: Player pos: 9x2 Iteration no. 26. Action: w X XXXXX # X X--+X X X XXX X X X+--X X X XXXXX XXX You win! Your solution <ddddrrrruulluurrrrddddrruuuu> Ideja je da iskoristimo Klee za pronalaženje rešenja, pri čemu ćemo otkriti i jednu ne baš tako očekivanu stvar. Za početak, potrebno je da ulaznu putanju označimo simboličkom tako što ćemo poziv funkcije read zameniti odgovarajućim pozivom funkcije klee make symbolic i na počeku uključiti potrebno zaglavlje. Izmenjen kôd se može pronaći u datoteci maze sym.c. Nakon pokretanja Klee alata, videćemo da će broj pronadenih putanji i generisanih test primera biti 321. Sa druge strane, nije prijavljena nijedna od tipičnih grešaka na koje bi nas alat upozorio da postoje, poput pristupanja nepostojećoj memorijskoj lokaciji i slično. Da bismo izdvojili test primere koji predstavljaju rešenje za lavirint, kao i ranije dodaćemo poziv funkcije klee assert(0) kod dela koji nas zanima, u našem slučaju nakon ispisa poruke da smo pobedili, tj. došli do nagrade. 9
10 myklee --allow-external-sym-calls --emit-all-errors maze_sym.bc Nakon ponovnog pokretanja, broj pronadenih putanji ostaje isti, ali se broj generisanih test primera smanjio na 318, medu kojima ćemo primetiti i test assert.err koji ukazuje da je 135. test primer izazvao grešku. Ukoliko pročitamo odgovarajući ktest, dobićemo rešenje za naš lavirint: ktest file : test ktest args : [ maze_sym.bc ] object 0: name: program object 0: size: 29 object 0: data: drrurrrrdrru\xff\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff\xff\xff\xff\xff\xff Medutim, ovde se nazire problem. Dobijeno rešenje izgleda poprilično kratko da bi moglo da dostigne nagradu u lavirintu. Testirajmo igricu sa dobijenim rešenjem X XXXXX # XXX--+XXX You win! Your solution <drrurrrrdrru > Klee je uspeo da otkrije lažne zidove u lavirintu i dobije kraće rešenje, tačnije ukazao nam je na postojanje semantičke greške u kôdu. Primetimo da je pronadeno rešenje različito od našeg trivijalnog. Uključivanjem opcije za dobijanje svih ulaza koji dovode do greške, za razliku od malopre, broj generisanih test primera biće 321, medu kojima će četiri imati oznaku za emitovanje greške, a to su upravo četiri moguća rešenja za ovaj lavirint sa lažnim zidovima gde se pojavljuje i ono trivijalno rešenje sa početka. myktest-tool --write-ints test ktest ktest file : test ktest args : [ maze_sym.bc ] object 0: name: program object 0: size: 29 object 0: data: drrurrrrdrru\xff\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff\xff\xff\xff\xff\xff\xff myktest-tool --write-ints test ktest ktest file : test ktest args : [ maze_sym.bc ] object 0: name: program object 0: size: 29 object 0: data: ddddrrrruulluurrrrdrru\xff\xff\xff\xff\xff \xff\xff myktest-tool --write-ints test ktest ktest file : test ktest args : [ maze_sym.bc ] object 0: name: program object 0: size: 29 object 0: data: drrurrrrddddrruuuu\xff\xff\xff\xff\xff\xff \xff\xff\xff\xff\xff myktest-tool --write-ints test ktest 10
11 ktest file : test ktest args : [ maze_sym.bc ] object 0: name: program object 0: size: 29 object 0: data: ddddrrrruulluurrrrddddrruuuu\xff Iskoristiti dobijena rešenja koja detektuju lažne zidove u lavirintu za ispravljanje izvornog kôda igrice. Literatura [1] [2] [3] [4] [5] dsl11/klee-doxygen/overview.html [6] Milena Vujošević Janičić, Automated generation and checking of verification conditions, Doctoral Dissertation [7] Cristian Cadar, Daniel Dunbar, Dawson Engler. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, In OSDI,
Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]
Programski jezik C organizacija izvornog programa Prevođenje Pisanje programa izvorni program Prevođenje programa izvršni program Izvršavanje programa rezultat Faze prevođenja Pretprocesiranje Kompilacija
ВишеFunkcije predavač: Nadežda Jakšić
Funkcije predavač: Nadežda Jakšić funkcije delovi programa koji izvršavaju neki zadatak, celinu; dele na ugrađene, korisničke i main funkciju ugrađene funkcije printf,scanf... da bi se one izvršile potrebno
ВишеMicrosoft PowerPoint - Datoteke [Compatibility Mode]
Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније
ВишеFunkcije predavač: Nadežda Jakšić
Funkcije predavač: Nadežda Jakšić do sada su korišćene "gotove" funkcije iz standardnih biblioteka (cin, cout...) one su pozivane iz main funkcije koja je glavna funkcija u programu jer izvršavanje programa
ВишеПисање и превођење модула
Писање и превођење модула ЦИЉ Научити како се пишу и преводе модули. ИСХОД Након ове вежбе ћете моћи да: Напишете кернел модул са неколико могућности, укључујући параметре Приступите кернелу из вашег модула
ВишеUvod u računarstvo 2+2
Datoteke nastavak Funkcija fgets Funkcija koja učitava podatke iz datoteke, liniju po liniju, je char *fgets(char *str, int n, FILE *fp); gdje su str pokazivač na dio memorije (string) u koji će ulazna
ВишеKORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA
KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA SADRŽAJ 1. UVOD... 3 1.1. Cilj i svrha... 3 1.2. Područje primjene... 3 2. POJMOVI I SKRAĆENICE... 4 3. PREDUVJETI KORIŠTENJA... 5 4. PREGLED APLIKACIJE...
ВишеUvod u računarstvo 2+2
Ulaz i izlaz podataka Ulaz i izlaz podataka Nakon odslušanog bit ćete u stanju: navesti sintaksu naredbi za unos/ispis znakova znakovnih nizova cijelih brojeva realnih brojeva jednostruke i dvostruke preciznosti
ВишеMicrosoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]
Организација извршног програма (Марић, Јаничић: Програмирање 1, 9.3.3) Извршавање програма После успешног превођења (претпроцесирања, компилације, повезивања) програм може да се изврши Извршавање се захтева
ВишеUniverzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br
Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Brkić SI 29/15 Zrenjanin 2018. Softversko inženjerstvo
ВишеProgramski jezik C
SPR, 2016 Rad sa datotekama Komunikacija sa OS Rad sa datotekama Vrste datoteka Otvaranje / zatvaranje datoteka Pristup datotekama za upis / čitanje Funkcije za rad sa datotekama Ulazno / izlazni tokovi
ВишеRazvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić
Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić projektni zadatak projektovanje programa (algoritmi) pisanje programskog koda, izvorni kod,
ВишеProgramiranje za UNIX Okruženje unix procesa
Programiranje za UNIX Okruženje unix procesa Sadržaj Memorijska slika UNIX procesa Argumenti naredbenog retka i varijable okruženja Životni ciklus procesa Izlazni status procesa 2 Memorijska slika UNIX
ВишеMicrosoft PowerPoint - Bitovi [Compatibility Mode]
Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)
ВишеUvod u računarstvo 2+2
Pokazivači Pointeri Definicija pokazivača Pokazivač na tip je varijabla koja sadrži adresu varijable tipa tip. Definicija pokazivača: mem_klasa tip * p_var; Primjer: static int * pi; double *px; char*
ВишеMicrosoft Word - 11 Pokazivaci
Pokazivači U dosadašnjem radu smo imali prilike da koristimo promenljive koje smo deklarisali na početku nekog bloka. Prilikom deklaracije promenljiva dobija jedinstveni naziv i odgovarajući prostor u
ВишеTutoring System for Distance Learning of Java Programming Language
Obeležene petlje Obeležene petlje Obeležavanje petlje nekim identifikatorom omogućava da se programski tok usmeri na mesto u programu specificirano tim identifikatorom. Ako se iza naredbi break ili continue
ВишеI grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.
I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz 3 2 1 4 5 14 Analiza: 1. Odredimo zbir svih 5 unesenih brojeva (i sačuvamo u
ВишеПрограмирај!
Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком
ВишеPRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste
PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, 5.06.019. godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekstenzija se najčešće koristi za tekstualne datoteke? a)
ВишеОрт колоквијум
II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу
ВишеKombinatorno testiranje
Kombinatorno testiranje Uvod Na ponašanje aplikacije utiče puno faktora, npr. ulazne vrednosti, konfiguracije okruženja. Tehnike kao što je podela na klase ekvivalencije ili analiza graničnih vrednosti
ВишеGrananje u programu predavač: Nadežda Jakšić
Grananje u programu predavač: Nadežda Jakšić u okviru linijske strukture izvršavaju se sve naredbe u okviru razgranate strukture uvek se ispituje neki uslov; u zavisnosti od toga da li je uslov ispunjen
ВишеRecuva CERT.hr-PUBDOC
Recuva CERT.hr-PUBDOC-2019-5-379 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA RECUVA... 4 3 KORIŠTENJE ALATA RECUVA... 7 4 ZAKLJUČAK... 13 Ovaj dokument izradio je Laboratorij za sustave i signale Zavoda za
ВишеProgramiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4
Programiranje 2 0. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/48 Sadržaj predavanja Ponavljanje onog dijela C-a koji
ВишеTutoring System for Distance Learning of Java Programming Language
Deklaracija promenljivih Inicijalizacija promenljivih Deklaracija promenljive obuhvata: dodelu simboličkog imena promenljivoj i određivanje tipa promenljive (tip određuje koja će vrsta memorijskog registra
ВишеRačunarski praktikum I - Vježbe 09 - this, static
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 09 - this, static v2018/2019. Sastavio: Zvonimir Bujanović Pokazivač this Kako funkcija članica
ВишеMicrosoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]
Programski jezik C - ulaz i izlaz programa Ulaz i izlaz programa Argumenti komandne linije Standardni tokovi Preusmerenje Funkcije za rad sa ulazom i izlazom Formatiran ulaz/izlaz Datoteke 2 Aргументи
ВишеMIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU
MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU http://www.mi.sanu.ac.rs/ tanjad (tanjad@mi.sanu.ac.rs) 21. januar 2013. Tatjana
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
ВишеRačunarski praktikum I - Vježbe 03 - Implementacija strukture string
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 03 - Implementacija strukture string v2018/2019. Sastavio: Zvonimir Bujanović Stringovi u C-u String
ВишеMicrosoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama
Merenja u telekomunikacionim mrežama Merenja telefonskog saobraćaja Primer 1 - TCBH Na osnovu najviših vrednosti intenziteta saobraćaja datih za 20 mernih dana (tabela), pomoću metode TCBH, pronaći čas
ВишеProgramiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan
Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan realan broj od 0 i 1. Na standardni izlaz ispisati
ВишеRačunarski praktikum I - Vježbe 01 - Uvod
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 01 - Uvod v2018/2019. Sastavio: Zvonimir Bujanović Gradivo i način polaganja Gradivo: osnove jezika
ВишеRačunarski praktikum I - Vježbe 07 - Podstrukture, const, reference
Prirodoslovno-matematički fakultet Matematički odsjek Sveučilište u Zagrebu RAČUNARSKI PRAKTIKUM I Vježbe 07 - Podstrukture, const, reference v2018/2019. Sastavio: Zvonimir Bujanović Podstrukture Član
ВишеR u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s
UPUTSTVO ZA BRZO UMREŽAVANJE PROGRAMA MPP2 Da bi program MPP2 radio u mrežnom okruženju po sistemu klijent-server, potrebno je da se na računarima koji su mrežno povezani instalira: serverska verzija programa
ВишеMicrosoft PowerPoint - C-4-1
Pregled iskaza u C-u Izraz; Iskaz dodele, serijski komponovani iskaz; blok Uslovni iskazi i izrazi; složeno grananje Iterativni iskazi Iskaz dodele Promena vrednosti a = Ψ; Izračunava vrednost izraza Ψ,
ВишеKako postupiti u slučaju prekida internet veze i nemogućnosti fiskaliziranja računa? U slučaju da dođe do prekida internet veze fiskalizacija računa n
Kako postupiti u slučaju prekida internet veze i nemogućnosti fiskaliziranja računa? U slučaju da dođe do prekida internet veze fiskalizacija računa neće biti moguća sve do ponovnog uspostavljanja internet
ВишеProgramiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
ВишеProgramski jezik C
Pojam funkcije Deklaracija i definicija funcije Poziv funkcije Memorijske klase promjenljivih Primjeri. Za kompajliranje koda koristen DEV-C++ 4.9.9.2 Compiler!!!! Moze is koristiti I bilo koji drugi standardni
ВишеТехничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји
Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аутори: Велибор
ВишеPowerPoint Presentation
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Tok izvršavanja programa Tok izvršavanja programa Dosadašnji kod se izvršavao praktično linearno. Nije postojala nikakva uslovna ili brojačka
ВишеMicrosoft PowerPoint - 07-DinamickeStrukturePodataka
Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и
ВишеMicrosoft PowerPoint - Lab_step_nc2017.ppt [Compatibility Mode]
Машински факултет Београд Катедра за производно машинство Објектно програмирање нумерички управљаних машина алатки http://cent.mas.bg.ac.rs/nastava/ma_bsc/index_m.htm Лаб 4: Објектно програмирање нумерички
ВишеMicrosoft Word - AIDA2kolokvijumRsmerResenja.doc
Konstrukcija i analiza algoritama 2 (prvi kolokvijum, smer R) 1. a) Konstruisati AVL stablo od brojeva 100, 132, 134, 170, 180, 112, 188, 184, 181, 165 (2 poena) b) Konkatenacija je operacija nad dva skupa
ВишеTutoring System for Distance Learning of Java Programming Language
Niz (array) Nizovi Niz je lista elemenata istog tipa sa zajedničkim imenom. Redosled elemenata u nizovnoj strukturi je bitan. Konkretnom elementu niza pristupa se preko zajedničkog imena niza i konkretne
ВишеSlide 1
predmet Inženjerska informatika Operativni sistem dr Anica Milošević Koji operativni sistemi postoje? Microsoft Windows Linux Suse Red Hat Ubuntu Unix 26.1.2018. 2 Šta je Windows operativni sistem? Operativni
ВишеUvod u računarstvo 2+2
Programiranje 2 doc.dr.sc. Goranka Nogo PMF Matematički odsjek, Zagreb Kontakt ured: 228, drugi kat e-mail: nogo@math.hr konzultacije: četvrtak, 12:00-14:00 petak, 11:00-12:00 neki drugi termin, uz prethodni
ВишеMy_P_Trigo_Zbir_Free
Штa треба знати пре почетка решавања задатака? ТРИГОНОМЕТРИЈА Ниво - Основне формуле које произилазе из дефиниција тригонометријских функција Тригонометријске функције се дефинишу у правоуглом троуглу
ВишеNIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.
Projekt e-građani KORISNIČKA UPUTA za aplikaciju Verzija 1.1 Zagreb, srpanj 2014. Naslov: Opis: Korisnička uputa za aplikaciju Dokument sadrži upute korisnicima aplikacije u sustavu e-građani Ključne riječi:
ВишеP9.1 Dodela resursa, Bojenje grafa
Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв.
Више6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe
6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju
Више070-ALIP2-udzbenik.indb
0. U uvodnom ćemo poglavlju ponoviti osnove programskog jezika C s kojima smo se susreli u. razredu. U kratkom pregledu navedeni su operatori (aritmetički, relacijski i logički), neke od funkcija iz biblioteka
ВишеMicrosoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]
Osnove programiranja Funkcije - Metode Prenos parametara Po vrednosti Po referenci Po izlazu Sadržaj Opseg važenja promenljive u drugim strukturama Rekurzije Prenos parametara Metoda može vratiti isključivo
ВишеТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.
ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља aleksandar@masstheory.org www.masstheory.org Август 2007 О ауторским правима: Дело
ВишеMicrosoft PowerPoint - Topic02 - Serbian.ppt
Tema 2 Kriterijumi kvaliteta za softverske proizvode DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University
ВишеELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera
ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera CILJ VEŽBE Cilj ove vežbe je da se studenti kreiranjem
ВишеMicrosoft PowerPoint - OOPpredavanja05 [Compatibility Mode]
OBJEKTNO ORIJENTISANO PROGRAMIRANJE PREDAVANJE 5 OBJEKTI U INTERAKCIJI Miloš Kovačević Đorđe Nedeljković 1 /25 OSNOVNI KONCEPTI - Abstrakcija - Modularizacija - Objektne reference - Klasni dijagram - Objektni
ВишеMicrosoft PowerPoint - Topic02 - Serbian.ppt
Tema 2 Kriterijumi kvaliteta za softverske proizvode DAAD Project Joint Course on Software Engineering Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University
ВишеOblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr
Oblikovanje i analiza algoritama 5. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. predavanje p. 1/68 Sadržaj predavanja Nehomogene rekurzije
ВишеKonstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun
Konstrukcija i analiza algoritama Nina Radojičić februar 2018. 1 Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne funkcije od argumenta n iz skupa N prirodnih brojeva.
ВишеP1.2 Projektovanje asemblera
ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)
ВишеProgramski jezici i strukture podataka
Programski jezici i strukture podataka 7 ULAZ, IZLAZ I DATOTEKE Ulazno izlazne operacije Programi moraju imati mogućnost da upisuju podatke u datoteke ili da ih ispisuju na izlazni uređaj poput ekrana
ВишеMatematika 1 - izborna
3.3. NELINEARNE DIOFANTSKE JEDNADŽBE Navest ćemo sada neke metode rješavanja diofantskih jednadžbi koje su drugog i viših stupnjeva. Sve su te metode zapravo posebni oblici jedne opće metode, koja se naziva
ВишеУпутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п
Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у посебном дијалог-прозору до кога се долази линком есервис
ВишеУПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након
УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: http://www.srpskiarhiv.rs/ Након тога се на екрану појављује форма за пријаву на часопис
ВишеPROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije
PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo
ВишеPROMENLJIVE, TIPOVI PROMENLJIVIH
PROMENLJIVE, TIPOVI PROMENLJIVIH Šta je promenljiva? To je objekat jezika koji ima ime i kome se mogu dodeljivati vrednosti. Svakoj promenljivoj se dodeljuje registar (memorijska lokacija) operativne memorije
ВишеRačunarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1
Računarske mreže Čas 2 Ivana Tanasijević e-mail: ivana@matf.bg.ac.rs Matematički fakultet, Beograd 1 Utvrđivanje gradiva sa prethodnog časa: popunjavanje adresne strukture, kreiranje soketa, privezivanje
ВишеO Nanokinetik NeeS TOC Builder-u NeeS TOC Builder je aplikacija koja se koristi za kreiranje Tabele sadržaja (TOC) za elektronske podneske u NeeS form
O Nanokinetik NeeS TOC Builder-u NeeS TOC Builder je aplikacija koja se koristi za kreiranje Tabele sadržaja (TOC) za elektronske podneske u NeeS formatu. Ključne pojedinosti Nanokinetik NeeS TOC Builder-a:
ВишеMy_P_Red_Bin_Zbir_Free
БИНОМНА ФОРМУЛА Шт треба знати пре почетка решавања задатака? I Треба знати биному формулу која даје одговор на питање чему је једнак развој једног бинома када га степенујемо са бројем 0 ( ) или ( ) 0!,
ВишеMicrosoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt
Projektovanje integrisanih kola Delimično projektovanje po narudžbini Sadržaj: Sadržaj: I. I. Uvod Uvod - sistem projektovanja II. II. CMOS Analiza Proces kola primenom računara III. III. Potpuno Optimizacija
ВишеУНИВЕРЗИТЕТ У БЕОГРАДУ МАШИНСКИ ФАКУЛТЕТ Предмет: КОМПЈУТЕРСКА СИМУЛАЦИЈА И ВЕШТАЧКА ИНТЕЛИГЕНЦИЈА Задатак број: Лист/листова: 1/1 Задатак 5.1 Pостоје
Лист/листова: 1/1 Задатак 5.1 Pостоје софтвери за препознавање бар кодова који знатно олакшавају велики број операција које захтевају препознавање објеката. Слика 1: Приказ свих слова за које је ART-1
ВишеMicrosoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 03 Zvonimir Bujanović Slaven Kožić Vinko Petričević Mrežno programiranje: SocketAPI Programiramo u aplikacijskom sloju, za ostale se brinu
ВишеMicrosoft PowerPoint - 03-Slozenost [Compatibility Mode]
Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба
ВишеClassroom Expectations
АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних
ВишеОрт колоквијум
Испит из Основа рачунарске технике - / (6.6.. Р е ш е њ е Задатак Комбинациона мрежа има пет улаза, по два за број освојених сетова тенисера и један сигнал који одлучује ко је бољи уколико је резултат
ВишеCelobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica
Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da
ВишеPowerPoint Presentation
V Unos i prikaz podataka Programi čitaju i ispisuju podatke sa spoljašnjih uređaja Postoji prolazni U/I (tastatura i monitor) i trajni U/I podataka (fajlovi) printf i scanf pišu/čitaju na monitor ili sa
ВишеUG802 Dual Core
Declaration: U2A Dual Core Andriod4.1 Mini PC Korisničko uputstvo U ovom uputstvu su uključene sve informacije za bezbedno I pravilno korišćenje uređaja.da bi se izbegle nesreće I oštećenje proizvoda molimo
ВишеPHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji
PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji podrška za IBM DB2, Oracle, Ingres, MySQL, PostgreSQL,
ВишеELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U
ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, 02.07.2019. Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite Uputstvo pre popunjavanja Obrasca za odgovore. b) Vrednost
ВишеUputstvo za korišćenje Mastercard Identity Check usluge Uputstvo za korišćenje Mastercard Identity Check usluga sigurnijeg plaćanja na internetu
Uputstvo za korišćenje Mastercard Identity Check usluge Uputstvo za korišćenje Mastercard Identity Check usluga sigurnijeg plaćanja na internetu Uputstvo za korišćenje Mastercard Identity Check usluge
Више1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.
1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K. Elementi a k K su koeficijenti polinoma P (x). Ako
ВишеČesto postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako
Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako instalirati (novi) finin certifikat? 4. Kako ispisati
ВишеGrafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr
Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odrediti njene krajeve. b) Odrediti sledeće skupove: -
ВишеPowerPoint Presentation
Python tutorijal - praktični primeri - Sadržaj: 1. Upoznavanje sa razvojnim okruženjem - Python proširenje (PTVS) za Visual Studio 2015 - Druga razvojna okruženja 2. Osnovi Python jezika - Sintaksa i konvencije
ВишеProgramiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj
Programiranje 1 5. predavanje dodatak Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanje dodatak p. 1/60 Sadržaj predavanja dodatka Primjeri
ВишеOsnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B.
Osnove inženjerske informatike II. Uvod u programiranje Vaš prvi program K. F. & V. B. The only way to learn a new programming language is by writing programs in it. Kernighan & Ritchie... and it is well
ВишеLogicko projektovanje racunarskih sistema I
PRIMERI SA PREDAVANJA 17 Beta asembler Zadatak 1. Posmatrajmo sledeću funkciju napisanu u programskom jeziku C, za računanje najvećeg zajedničkog delioca dva pozitivna cela broja: int gcd(int a, int b)
ВишеPuTTY CERT.hr-PUBDOC
PuTTY CERT.hr-PUBDOC-2018-12-371 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA PUTTY... 4 3 KORIŠTENJE ALATA PUTTY... 7 3.1 POVEZIVANJE S UDALJENIM RAČUNALOM... 7 3.2 POHRANA PROFILA KORISNIČKIH SJEDNICA...
ВишеBiz web hosting
BIZ WEB HOSTING KORISNIČKO UPUTSTVO WWW.OBLACI.RS SADRŽAJ PRISTUP KORISNIČKOM PORTALU... 2 KUPOVINA BIZ WEB HOSTING SERVISA... 4 PRISTUP PLESK WEB KONTROLNOM PANELU... 14 PORTALI I DOMENI... 14 FAJL MENADŽER...
ВишеPaper Title (use style: paper title)
Статистичка анализа коришћења електричне енергије која за последицу има примену повољнијег тарифног става Аутор: Марко Пантовић Факултет техничких наука, Чачак ИАС Техника и информатика, 08/09 e-mal адреса:
ВишеAster
ASTER V7 Multi-user Extension za Microsoft Windows 7 Vodič za brzi početak Instalirajte ASTER V7 softver koristeći instalaciju dobavljača. Od ostalih instalacionih opcija preporučujemo da svako posebno
ВишеSlide 1
Kako jednostavnije preći na višu verziju Formsa Ivan Lovrić, Vedran Latin 14.10.2009. Sadržaj prezentacije Predmet migracije Razlozi za migraciju Infrastruktura potrebna za migraciju Pilot migracija Migracija
ВишеP11.2 Izbor instrukcija, IBURG
Избор инструкција (1/2) Машинска инструкција се може приказати као део стабла међукода, који се назива шаблон стабла (енгл. tree pattern). Избор инструкција је проблем поплочавања стабла међукода минималним
Више1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn
1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivnosti na njihovom računu. Prilikom svake transakcije
ВишеOSNOVNA ŠKOLA, VI RAZRED MATEMATIKA
OSNOVNA ŠKOLA, VI RAZRED MATEMATIKA UPUTSTVO ZA RAD Drage učenice i učenici, Čestitamo! Uspjeli ste da dođete na državno takmičenje iz matematike i samim tim ste već napravili veliki uspjeh Zato zadatke
ВишеInfokup - Školsko Osnovne škole Algoritmi BaPaCpp
21.. siječnja 2013.. od 1:30 do 16:30 Školsko natjecanje / Algoritmi (Basic/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Napolitanke... 2 Zadatak: Peking... 3 Zadatak: Joker... Zadaci U tablici možete pogledati
ВишеMicrosoft Word - GRAFICI TRIGONOMETRIJSKIH FUNKCIJA-II deo.doc
GRAFICI TRIGONOMETRIJSKIH FUNKCIJA (II deo U prethodnom fajlu ( grafici trigonometrijskih funkcija I deo smo proučili kako se crtaju grafici u zavisnosti od brojeva a,b i c. Sada možemo sklopiti i ceo
Више