P8.1 Generatori skenera i parsera
|
|
- Simona Krašovec
- пре 5 година
- Прикази:
Транскрипт
1 Генератор лексичких и синтаксних анализатора Пример спецификације језика Flex генератор лексичких анализатора Bison генератор синтаксних анализатора 1
2 Граматика => Језик (Бесконачан) скуп реченица 2
3 Граматика <=> Језик (Бесконачан) скуп реченица 3
4 Различите граматике могу дефинисати исти језик S -> E E -> T T -> iks E -> E plus T S -> E E -> T T -> iks E -> T plus E S -> E E -> T T -> iks E -> E plus E S -> E S -> iks S -> S plus iks E -> iks E -> E plus E Jezik: iks iks plus iks iks plus iks plus iks iks plus iks plus iks plus iks... 4
5 Синтаксни анализатор јесте део језика Низ терминалних симбола A(J) G није део језика 5
6 Синтаксни анализатор јесте део језика Низ терминалних симбола A(G) J није део језика 6
7 Синтаксни анализатор јесте део језика Низ терминалних симбола A(G) Да ли ово имамо на улазу? J није део језика 7
8 Синтаксни анализатор јесте део језика Низ терминалних симбола A(G) Да ли ово имамо на улазу? Не, имамо низ знакова J није део језика 8
9 Синтаксни анализатор Два приступа: Написати граматику језика код које су знакови терминални симболи. Анализу обавити у два корака: Низ знакова L(G) јесте терминални симбол (који?) низ терминалних симбола Лексички анализатор није терминални симбол 9
10 Лексички анализатор Позови лексер Низ знакова L(G) Добави наредни терминални симбол A(G) 10
11 Лексички анализатор Слично као синтаксни анализатор Другачија граматика - једноставнија Терминални симболи су знаци Регуларна граматика (нижег нивоа од контекстно слободних граматика): G (N, T, Σ, P) Где је P скуп смена (продукција) које могу имати један од следећа три облика: B -> α, где B припада N, а αприпада T B -> αc (или B -> Cα), где C припада N B -> ε, где је ε празан знаковни низ 11
12 Лексички анализатор Алгоритам за одређивање да ли је неки улаз део језика дефинисаног регуларном граматиком (лексички исправан) заснива се на детерминистичком аутомату са коначним бројем стања (DFA Deterministic Finite Automata). То је јако повољан и ефикасан алгоритам. 12
13 Лексички анализатор 13
14 Прављење лексичког анализатора Можемо га правити ручно Коришћењем DFA Или неком другом, мање ефикасном техником (али опет довољно ефикасном) Можемо га генерисати помоћу алата Алат који на основу спецификације генерише лексички анализатора Један од таквих алата је Flex Flex генерише анализатор који се заснива на DFA Пример лексичког анализатора за језик Tiger 14
15 Прављење лексичког анализатора Како специфицирамо терминале језика? тј. регуларну граматику којом су дефинисани? Не пишемо продукције Много напорно и нејасно Користимо регуларне изразе Чест механизам за претраживање текста 15
16 Нотација регуларних израза a Обичан знак који стоји сам за себе ε Празан стринг Такође празан стринг M N Избор М или N M N Спајање М и N, иза М иде N MN Други начин да се напише спајање М и N M* Понављање М, нула или више пута M+ Понављање М, један или више пута M? Једно или ни једно појављивање М [a-za-z] Избор знака из скупа знакова. Тачка, означава један знак, било који, осим новог реда abc Низ знакова, било којих знакова 16
17 Коришћење регуларних израза Коришћењем овог језика можемо специфицирати лексичке симболе (токене) програмских језика Кључна реч if Идентификатор (почиње словом, а затим могу и слова и цифре) Цели бројеви Позитивни реални бројеви ( ) 17
18 Коришћење регуларних израза Коришћењем овог језика можемо специфицирати лексичке симболе (токене) програмских језика Кључна реч if if Идентификатор (почиње словом, а затим могу и слова и цифре) [a-z][a-z0-9]* Цели бројеви -?[0-9]+ Позитивни реални бројеви ( ) ([0-9]+. [0-9]*) ([0-9]*. [0-9]+) 18
19 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације %{ int brojdjura = 0; %} %% djura brojdjura += 1;. ; #include <stdio.h> int main() { yylex(); printf( %d, brojdjura); return 0; } 19
20 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације %{ %} %% djura return 1; pera return 2; mika return 3; #include <stdio.h> int main() { int toktype = yylex(); while (toktype!= 0) { print( %d, toktype); toktype = yylex(); } return 0; } 20
21 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације %{ %} %% djura return 1; pera return 2; mika return 3; #include <stdio.h> int main() { int toktype = yylex(); while (toktype!= 0) { print( %s, yytext); toktype = yylex(); } return 0; } 21
22 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације %{ %} %% djura return 1; pera return 2; mika return 3; #include <stdio.h> int main() { yyin = fopen( datoteka.txt, r ); int toktype = yylex(); while (toktype!= 0) { print( %s, yytext); toktype = yylex(); } return 0; } 22
23 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације %{ %} %% djura return 1; pera return 2; mika return 3; #include <stdio.h> int main() { yyin = fopen( datoteka.txt, r ); int toktype = yylex(); while (toktype!= 0) { print( %s, %d, yytext, yylen); toktype = yylex(); } return 0; } 23
24 Flex: генератор лексичких анализатора Генерише Це код на основу лексичке спецификације За сваки тип лексичког симбола наводи се Регуларни израз и акција у Це језику, нпр. %{ /* C declarations */ #include tokens.h /* definitions of IF, ID, NUM, */ #include errormsg.h union {int ival; string sval; double fval;} yylval; int charpos = 1; #define ADJ {EM_tokPos = charpos; charpos += yyleng;} %} digits [0-9]+ /* Lex definition of digits */ %% /* Regular expressions and actions */ if {ADJ; return IF;} [a-z][a-z0-9]* {ADJ; yylval.sval = String(yytext); return ID;} digits {ADJ; yylval.ival = atoi(yytext); return NUM;} (digits. [0-9]*) ([0-9]*. digits) {ADJ; yyval.fval = atof(yytext); return FLOAT} ( -- [a-z]* \n ) ( \n \t )+ { ADJ; /* do nothing */ } 24. {ADJ; error();}
25 Детаљи Flex спецификације и излаза Излаз Flex-а је Це програм lex.yy.c Који интерпретира DFA и извршава Це код акција Спецификација I део, између %{ и %}: Це #include и декларације Потребне за Це код до краја датотеке II део: скраћенице рег. израза и декларације стања Нпр. digits је скраћеница за [0-9]+ III део: регуларни изрази и акције Акције враћају целобројну вредност (int), која означава врсту пронађеног симбола Даље читање: Flex упутство на Интернету 25
26 Пример вишег програмског језика Tiger аутор A.W.Apple, Modern Compiler Impl. Tiger је мали језик са Угњежденим функцијама Вредностима слогова са имплицитним показивачима Низовима Целобројним и стринг променљивама Неколико конструкција за структуирану контролу тока Спецификација: Лексика: уобичајени идентификатори и Це коментари Декларације и променљиве и изрази 26
27 Декларације (1/3) decs је низ декларација типова, вредности и функција decs {dec}, где {x} може бити празан скуп ε dec tydec vardec fundec Типови података tydec type type-id = ty ty type-id {tyfields} овде су { и } терминални симболи array of type-id tyfields ε id: type-id{, id : type-id} 27
28 Декларације (2/3) Уграђени типови: int и string Свака декларација низа или слога ствара нов тип Чак иако су сва поља идентична са неким претходним Међусобно рекурзивни типови Сваки циклус рекурзије мора проћи кроз тип слога или низа Нпр. саморекурзија: type intlist = {head:int, tail:intlist} Међурекурзија: type tree = {key:int, children:treelist} type treelist = {head:tree, tail:treelist} Декларације променљивих: vardec var id := exp var id:type-id := exp 28
29 Декларације (3/3) Декларације функција: fundec function id (tyfields) = exp fundec function id (tyfields) : type-id = exp Међусобно рекурзивне процедуре и функције, нпр. function treeleaves(t : tree) : int = if t=nil then 1 else treelistleaves(t.children) function treelistleaves(l : treelist) : int = if L=nil then 0 else treeleaves(l.head) + treelistleaves(l.tail) 29
30 Променљиве и изрази (1/4) Л-вредност је локација која се чита или у коју се пише lvalue id променљиве Изрази lvalue lvalue. id поља слогова (структура) lvalue [ exp ] елементи низова Изрази без вредности Позив процедуре, додела, if-then, while, break, и понекад if-thenelse nil нула, припада сваком типу слога Низ израза (exp; exp;... exp) израчунава изразе с лева у десно коначна вредност је вредност последњег израза у низу Нема вредност: () и let израз без ичега између in и end 30
31 Променљиве и изрази (2/4) Целобројни литерал низ децималних цифара Стринг литерал низ знакова између наводника Специјални знаци се наводе након знака \ (\n, \t, итд.) Негација целобројном изразу може претходити знак - Позив функције: id() или id(exp{,exp}) Аритметички израз: exp op exp, gde op +, -, *, /, захтевају и производе целе бројеве Поређење: exp op exp, gde op =, <>, >, <, >=, <=, пореде операнде и производе 1 (тачно) или 0 (нетачно) Поређење стрингова: два стринга су иста ако им је садржај идентичан 31
32 Променљиве и изрази (3/4) Изрази са Буловим операторима: exp op exp, где је op & или Приоритет оператора: unarni -, *, /, +, -, =, <>, >, <, >=, <=, &, Асоцијативност оператера: *, /, +, -, су асоцијативни у лево; оператори поређења нису асоцијативни. Додела вредности: lvalue := exp If-then-else: if exp1 then exp2 else epx3, где exp2 и exp3 морају бити истог типа, тај тип је и тип резултата If-then: if exp1 then exp2, где exp2 не производи вредност While: while exp1 do exp2, где exp2 не производи вредност For: for id := exp1 to exp2 do exp3, exp3 нема вредност 32
33 Променљиве и изрази (4/4) Break: прекида извршење најближе петље (while или for) Let: израз let decs in expseq end евалуира декларације decs, а затим израчунава низ израза expseq, чији коначни резултат је резултат задњег израза у низу. Заграде: могу се користити за синтаксно груписање израза 33
34 Пример: програм queens (1/2) /* A program to solve the 8-queens problem */ let var N := 8 type intarray = array of int var row := intarray [ N ] of 0 var col := intarray [ N ] of 0 var diag1 := intarray [N+N-1] of 0 var diag2 := intarray [N+N-1] of 0 function printboard() = (for i := 0 to N-1 do (for j := 0 to N-1 do print(if col[i]=j then " O" else "."); print("\n")); print("\n")) 34
35 Пример: програм queens (2/2) function try(c:int) = if c=n then printboard() else for r := 0 to N-1 do if row[r] = 0 & diag1[r+c] = 0 & diag2[r+7-c] = 0 then (row[r] := 1; diag1[r+c] := 1; diag2[r+7-c] := 1; col[c] := r; try(c+1); row[r] := 0; diag1[r+c] := 0; diag2[r+7-c] := 0) in try(0) end 35
36 Лексички анализатор за Tiger (1/4) tokens.h typedef union { int pos; int ival; string sval; } YYSTYPE; extern YYSTYPE yylval; # define ID 257 # define STRING 258 # define INT 259 # define COMMA 260 # define COLON 261 # define SEMICOLON 262 # define LPAREN 263 # define RPAREN 264 # define LBRACK 265 # define RBRACK 266 # define LBRACE 267 # define RBRACE 268 # define DOT 269 # define PLUS 270 # define MINUS 271 # define TIMES # define IF 284 # define THEN 285 # define ELSE 286 # define WHILE 287 # define FOR 288 # define TO 289 # define DO 290 # define LET 291 # define IN 292 # define END 293 # define OF 294 # define BREAK 295 # define NIL 296 # define FUNCTION 297 # define VAR 298 # define TYPE
37 Лексички анализатор за Tiger (2/4) tiger.lex (1/2)... %% " " {adjust(); continue;} \n {adjust(); EM_newline(); continue;} \t {adjust(); EM_newline(); continue;} "," {adjust(); return COMMA;} ":" {adjust(); return COLON;} ";" {adjust(); return SEMICOLON;} "(" {adjust(); return LPAREN;} ")" {adjust(); return RPAREN;} "[" {adjust(); return LBRACK;} "]" {adjust(); return RBRACK;} "{" {adjust(); return LBRACE;} "}" {adjust(); return RBRACE;} "." {adjust(); return DOT;} "+" {adjust(); return PLUS;} "-" {adjust(); return MINUS;} "*" {adjust(); return TIMES;} "/" {adjust(); return DIVIDE;} "=" {adjust(); return EQ;}... 37
38 Лексички анализатор за Tiger (3/4) tiger.lex (2/2)... while {adjust(); return WHILE;} for {adjust(); return FOR;} to {adjust(); return TO;} break {adjust(); return BREAK;} let {adjust(); return LET;} in {adjust(); return IN;} end {adjust(); return END;} function {adjust(); return FUNCTION;} var {adjust(); return VAR;} type {adjust(); return TYPE;} array {adjust(); return ARRAY;} if {adjust(); return IF;} then {adjust(); return THEN;} else {adjust(); return ELSE;} do {adjust(); return DO;} of {adjust(); return OF;} nil {adjust(); return NIL;} [a-za-z][a-za-z0-9"_"]* {adjust(); yylval.sval=string((char*)yytext); return ID;}... 38
39 Лексички анализатор за Tiger (3/4) driver.c int main(int argc, char** argv) { char* fname = argv[1]; EM_reset(fname); yyin = fopen(fname, r ); while (1) { int tok = yylex(); if (tok == 0) break; switch(tok) { case ID: case STRING: printf("%10s %4d %s\n", tokname(tok), EM_tokPos, yylval.sval); break; case INT: printf("%10s %4d %d\n", tokname(tok), EM_tokPos, yylval.ival); break; default: printf("%10s %4d\n", tokname(tok), EM_tokPos); } } fclose(yyin); return 0; 39 }
40 Лексички анализатор за Tiger (4/4) Излаз: прог. queens трансформисан у низ симбола FUNCTION 210 ID 219 printboard LPAREN 229 RPAREN 230 EQ 232 LPAREN 241 FOR 242 ID 246 i ASSIGN 248 INT TO 253 ID 256 N MINUS 257 INT DO 262 LPAREN 265 FOR 266 ID 270 j... function printboard() = (for i := 0 to N-1 do (for j := 0 to N-1 do print(if col[i]=j then " O" else "."); print("\n")); print("\n"))... 40
41 Прављење синтаксног анализатора Можемо га правити ручно Разни могући алгоритми. Разликују се по граматикама са којима могу да се носе и по ефикасности (меморијском и процесорском заузећу) Типична ручна техника: Синтаксни анализатор са рекурзивним спуштањем Можемо га генерисати помоћу алата Алат који на основу граматике генерише синтаксни анализатор Један од таквих алата је Bison (део GNU-а) Bison генерише анализатор који се заснива на LALR алгоритму 41
42 Граматика независна од контекста (контекстно слободна) Спецификација језика у облику низа продукција Пример: језик праволинијских програма Нетерминални симболи: S, E и L; почетни симбол је S Терминални симболи: id print num, + ( ) := ; Пример реченице у овом језику id := num; id := id + (id := num + num, id) Може потицати од следећег улаза (изворног кода): a := 7; b := c + (d := 5 + 6, d) Имена a,b,c и бројеви 5,6,7 су семантичке вредности симбола S S ; S S id := E S print ( L ) E id E num E E + E E (S, E) L E L L, E 42
43 Изводи реченица и стабла анализе Постоји више извода исте реченица: pera := 15; djole := 13 + pera S S ; S S id := E S print ( L ) E id E num E E + E E (S, E) L E L L, E 43
44 Изводи реченица и стабла анализе Постоји више извода исте реченице, нпр. Крајњи леви: увек се смењује крајњи леви нетерминал Крајњи десни: увек се смењује крајњи десни нетерминал Стабло синтаксне анализе Сваки симбол у изводу се спаја са симболом из ког је изведен Два различита извода могу имати исто стабло синтаксне анализе S S ; S id := E ; S id := num ; S id := num ; id := E id := num ; id := E + E 44
45 Нејасне граматике Граматика је НЕЈАСНА ако може да произведе исту реченицу са два различита стабла Нпр. граматика SLP-а је нејасна јер за реченицу id:=id+id+id постоје два стабла синтаксне анализе 45
46 Проблем нејасне граматике: Различита значења! Пример 1: Граматика Калкулатор 1 Два стабла за реченицу Ако се стабло користи за интерпретирање значења Прво значење: (1-2)-3 = -4 Друго значење: 1-(2-3) = 2 E id E num E E * E E E / E E E + E E E E E (E ) 46
47 Други пример различитих значења! Пример 2: Граматика Калкулатор 1 Два стабла за реченицу 1+2*3 Ако се стабло користи за интерпретирање значења Прво значење: (1+2)*3 = 9 Друго значење: 1+(2*3) = 7 E id E num E E * E E E / E E E + E E E E E (E ) 47
48 Решење проблема: Јасна граматика Калкулатор 2 Задатак: Покушајмо да пронађемо јасну граматику Калкулатор 2, која дефинише (прихвата) исти језик Решење: Прво, оператор * треба да има првенство у односу на + Друго, сви оператори треба да буду асоцијативни у лево Ово се постиже увођењем нових нетерминалних симбола T и F Да би * била асоцијативна у десно, уместо ово продукције: T T * F писали би ову продукцију T F * T. E E + T E E T E T T T * F T T / F T F F id F num F ( E ) 48
49 Bison: генератор синт. анализатора Генерише Це код на основу улазне спецификације Bison је наследник алата Yacc Улазна спец. се састоји од три дела, раздвојених са %{, %} и %% (врло слично Flex-у) Програмски код: Це код који ће користи акције из доњих делова Декларације: списак терминала, нетерминала, итд. Граматичка правила (продукције): нетерминал : дефиниција, нпр. exp : exp PLUS exp {семантичка акција} где је exp нетерминал (израз) а PLUS терминал (оператор +) Излаз је Це код: y.tab.h и y.tab.c Приликом генерисања води рачуна о конфликтима 49
50 Пример спецификације (без акција) %{ int yylex(void); void error(char* s) {...} %} %token ID WHILE BEGIN END DO IF THEN ELSE SEMI ASSIGN %start prog %% prog: stmlist stm: ID ASSIGN ID WHILE ID DO stm BEGIN stmlist END IF ID THEN stm IF ID THEN stm ELSE stm stmlist: stm stmlist SEMI stm S id := id S while id do S S begin L end S if id then S S if id then S else S L S L L ; S 50
51 Синтаксни анализатор за Tiger (1/6) tiger.grm (1/3) %union { int pos; int ival; string sval; } %token <sval> ID STRING %token <ival> INT %token COMMA COLON SEMICOLON LPAREN RPAREN LBRACK RBRACK LBRACE RBRACE DOT PLUS MINUS TIMES DIVIDE EQ NEQ LT LE GT GE... %nonassoc EQ NEQ LT LE GT GE %left MINUS PLUS %left TIMES DIVIDE %left DOT %left NEG 51
52 Синтаксни анализатор за Tiger (2/6) tiger.grm (2/3) %start input %% input: stm ; stm: assignment ifthenelse ifthen while for break compoundstm let ; exp: lvalue NIL INT STRING NEG INT functioncall arithmetic comparison booleanexp recordcreation arraycreation ; 52
53 Синтаксни анализатор за Tiger (3/6) tiger.grm (3/3) arithmetic: exp PLUS exp exp MINUS exp exp TIMES exp exp DIVIDE exp MINUS exp %prec NEG ; comparison: exp EQ exp exp NEQ exp exp GT exp exp LT exp exp GE exp exp LE exp ; booleanexp: exp AND exp exp OR exp ; decs: /* empty */ decs dec ; dec: tydec vardec fundec ; tydec: TYPE ID EQ ty ; ty: ID LBRACE tyfields RBRACE ARRAY OF ID ; tyfields: /* empty */ typeidlist ; 53
54 Синтаксни анализатор за Tiger (4/6) Изгенерисани y.tab.h /* Tokens. */ #ifndef YYTOKENTYPE #define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { ID = 258, STRING = 259, INT = 260, COMMA = 261, COLON = 262, SEMICOLON = 263, LPAREN = 264, RPAREN = 265, LBRACK = 266, RBRACK = 267, LBRACE = 268,... 54
55 Синтаксни анализатор за Tiger (5/6) parsetest.c програм за тестирање #include <stdio.h> #include <stdlib.h> #include "util.h" #include "errormsg.h int main(int argc, char** argv) { yyin = stdin; yyout = stdout; parse(argv[1]); return 0; } void parse(char* fname) { EM_reset(fname); if (yyparse() == 0) /* parsing worked */ fprintf(stderr, "Parsing successful!\n"); else fprintf(stderr, "Parsing failed\n"); } 55
56 Синтаксни анализатор за Tiger (6/6) Добро је почети са једноставним тестовима pera pera.mika pera[djoka] pera[mika.djoka] nil () (pera;mika) (pera;mika;djoka) 100 "string" -100 foo() foo(pera) foo(pera, mika) pera + mika pera - mika pera * mika pera / mika -pera + mika pera = mika pera <> mika pera > mika pera < mika pera >= mika pera <= mika "string1" = "string2" pera & mika pera mika pera & mika djoka (pera mika) & djoka pera {} pera {mika=djoka} pera {mika=djoka, laza=nil} type tippera = perintip type tippera = {} type tippera = {id1:id1tip} 56
57 Bison у практичној употреби Предности: Једноставније специфицирати језик помоћу граматике Ако је граматика ваљана, сигурније је да ће и анализатор бити ваљан Алат нам помаже у откривању неких концептуалних проблема у граматици Мане: Резултујући анализатор је (мало) спорији од ручно писаног Теже организовање смисленог пријављивања грешака Лоше ношење са нејасним граматикама Теже дебаговање саме граматике (метајезик за описивање граматике уноси индирекцију) 57
58 Bison у практичној употреби Тренутно се користи за Ruby, PHP, Bash... Користио се за GCC do CLANG (Це предњи део за LLVM) је одмах писан ручно EDG предњи део се користи у већини комерцијалних Це/Це++ компајлера (Intel, пример) Постоје и други алати: ANTLR, JavaCC... 58
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,
ВишеP2.1 Formalne gramatike
Превођење Полазни језик? Одредишни језик 1 Превођење Полазни језик? Одредишни језик Како знање неког језика стиче и складишти човек, а како рачунар? 2 Два аспекта језика Синтакса Семантика значење То су
Више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
Више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 - 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
ВишеP8.2 Pravljenje sintaksnog analizatora
Прављење синтаксног анализатора Синтаксни анализатор Ручно: анализатор са рекурзивним спуштањем Уз помоћ алата: сличност са интерпретером 1 Синтаксни анализатор са рекурзивним спуштањем (енгл. recursive-descent)
ВишеOsnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005
Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005 2 Sadržaj 1 5 1.1 Specifikacija sintakse programskih
Више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
Више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
ВишеMicrosoft PowerPoint - Bitovi [Compatibility Mode]
Оператори над битовима (Јаничић, Марић: Програмирање 2, тачка 5.6) Оператори за рад са појединачним битовима Само на целобројне аргументе: ~ битовска негација & битовска конјункција (и) битовска (инклузивна)
ВишеP11.2 Izbor instrukcija, IBURG
Избор инструкција (1/2) Машинска инструкција се може приказати као део стабла међукода, који се назива шаблон стабла (енгл. tree pattern). Избор инструкција је проблем поплочавања стабла међукода минималним
Више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
Више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
ВишеMicrosoft PowerPoint - Datoteke [Compatibility Mode]
Датотеке стандардни улаз / излаз Датотека је именовани низ знакова (бајтова) У програмском језику C датотека је везана за улаз и излаз података функције стандардне библиотеке Најједностaвније
Више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
ВишеPowerPoint Presentation
II Karakteristike C jezika Programski jezik C je viši programski jezik opšte namene. Tesno je povezan sa UNIX OS uz koji je razvijan. Razvio ga je Dennis Ritchie 1970 u Bell Telephone Laboratories, Inc.
Више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
Више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
Више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
Више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 Ψ,
Више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
Више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
Више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
Више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*
ВишеProgramiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007
Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007 2 Sadržaj 1 Programski jezik C 5 1.1 Oblast važenja lokalnih promenljivih..........................
Више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
ВишеStrukture predavač: Nadežda Jakšić
Strukture predavač: Nadežda Jakšić složeni tip podatka; kolekcija promenljivih različitog tipa koje su sakupljene radi lakše manipulacije sintaksa: struct [oznakastrukture] navede { definicija člana strukture;
Више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
ВишеPowerPoint Presentation
Programski jezici i strukture podataka UVOD Izvođači nastave Srđan Popov (JUG 215) Petar Marić (JUG 105) Milena Počuča (JUG 215) Milica Milutinović (JUG 215) Termini konsultacija naknadno Cilj vežbi Sticanje
ВишеP1.2 Projektovanje asemblera
ПРОЈЕКТОВАЊЕ АСЕМБЛЕРА Асемблер Модули асемблера 1 Дефинисање новог лингвистичког нивоа превођењем Потребан преводилац алат који преводи програм написан на једном језику (на једном лингвистичком нивоу)
ВишеKonstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra
Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar 2016 1 Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova strategija rekurzivno razbija problem na 2 ili više potproblema
Више07_PJISP_II_Predavanja
Rekurzija i rekurzivne funkcije Informacioni inženjering 1 Rekurzija Rekurzija nastaje kada se pojam definiše pomoću sebe samog Javlja se u različitim oblastima, od lingvistike i logike, preko matematike
Више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
ВишеP1.1 Analiza efikasnosti algoritama 1
Analiza efikasnosti algoritama I Asimptotske notacije Master metoda (teorema) 1 Asimptotske notacije (1/2) Služe za opis vremena izvršenja algoritma T(n) gde je n N veličina ulaznih podataka npr. br. elemenata
ВишеMicrosoft Word - 02 Elementi programskog jezika Pascal
Elementi programskog jezika Pascal Osnovni elementi jezika Osnovni simboli U programskom jeziku Pascal sve konstrukcije se grade od skupa osnovnih simbola jezika koji čine slova, cifre i specijalni znaci.
Више3.Kontrlne (upravlja~ke) strukture u Javi
Објектно орјентисано програмирање Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ kartelj@matf.bg.ac.rs Низови у програмском језику Јава Владимир Филиповић vladaf@matf.bg.ac.rs Александар Картељ
ВишеFortran
FORTRAN Uvod Računala su samo strojevi: neznaju ništa, ne razmišljaju ni o čemu, ali mogu izuzetnom brzinom i vrlo točno, slijediti precizno napisane upute. Takve upute moraju se napisati u posebnom jeziku
Више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
ВишеMicrosoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]
Osnove programiranja Nizovi Sadržaj Definicija niza Vrste i elementi nizova Deklarisanje nizova Dodele (početne) vrednosti nizovima Jednodimenzionalni nizovi Primeri dodele vrednosti Petlja foreach Nizovi
ВишеProgramiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1
Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1 Sadržaj 1 Pokazivači - ponavljanje 3 2 Pokazivači - veza sa nizovima 5 2 1 Pokazivači - ponavljanje 1.
Више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
Више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)
ВишеUvod u PHP
Uvod u PHP Marijan Šuflaj FER, 2018 Sadržaj PHP Općenito Sintaksa Osnove Kontrola toka Zadatci Resursi Općenito Naziv od PHP Hypertext Preprocessor Obično koristi ekstenziju.php Tipovi su dinamički Trenutno
Више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
Више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
ВишеDatoteke predavač: Nadežda Jakšić
Datoteke predavač: Nadežda Jakšić svi podaci sa kojima smo do sada radili u programima su smeštani u operativnu memoriju računara i trajali su najduže koliko i sam program; kada program završi sa radom,
ВишеPowerPoint Presentation
NAREDBE U PHP-U Naredbe if else elseif/else if while do-while for foreach break continue switch return require include require_once include_once goto If-else if (izraz) uradi 1 else uradi 2 ili if (izraz)
ВишеProgramiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1
Programiranje 1 10. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1/95 Sadržaj predavanja Funkcije: Definicija funkcije.
ВишеKDP
Региони Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион
ВишеUvod u takmičarsko programiranje
8. čas Uvod u programiranje - naredbe ciklusa Uvežbavamo naredbe ciklusa, naredbe ponavljanja (loop) https://studio.code.org/s/course2/stage/6/puzzle/3 "Talk is cheap. Show me the code." - Linus Torvalds
ВишеПрограмирај!
Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком
ВишеP11.3 Analiza zivotnog veka, Graf smetnji
Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи
ВишеProgramski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk
Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijski program: Informacioni inženjering Informacioni inženjering 1 Rekurzivne funkcije Binarna stabla Informacioni
Више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
Више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
ВишеKonverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić
Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić 1. temperatura u stepenima Celzijusa i stepene Farenhajta tf=1.8*tc+32 2. pretvoriti inče u centimetre 1 inč=2.54cm 3. vreme učitano
Више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
ВишеMicrosoft Word - CAD sistemi
U opštem slučaju, se mogu podeliti na 2D i 3D. 2D Prvo pojavljivanje 2D CAD sistema se dogodilo pre više od 30 godina. Do tada su inženjeri koristili table za crtanje (kulman), a zajednički jezik komuniciranja
Више1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost
1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar. 1.. Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred. 1.7. Bodovna vrijednost (ECTS) 7 1.3. Suradnici 1.8. Način izvođenja nastave
Више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 - 03-Slozenost [Compatibility Mode]
Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба
ВишеThe real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti
The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most
ВишеTutoring System for Distance Learning of Java Programming Language
Uvod u programiranje dr Ninoslava Savić Predavanja (3) sreda: 11:15 13:50 Učionica 16 Konsultacije sreda: 15 17 h Kabinet 43 Uvod u programiranje Fond časova: 3+3 Broj ESPB: 7 Ocena znanja (max. broj poena
Више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
Више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
ВишеP9.2 Optimizujuci kompajler, prednji deo
ОПТИМИЗУЈУЋИ КОМПАЈЛЕР Структура компајлера Предњи део, до међукода 1 Важна својства одредишне архитектуре Подржане операције Регистри и меморија (Ресурси - операнди) Проточна структура Организација меморије
ВишеP1.3 Projektovanje makroasemblera
ПРОЈЕКТОВАЊЕ МАКРОАСЕМБЛЕРА Макроасемблер Потребна проширења асемблера 1 МАКРОАСЕМБЛЕР Макроасемблер преводи полазни програм написан на макроасемблерском језику у извршиви машински програм. Приликом израде
ВишеPHP kod
PHP kod Fajl test.txt kreiran u Notepad-u Ugrađene funkcije u php-u fopen() otvara datoteku fclose() zatvara datoteku Primjer pokazuje kako se može najprije otvariti datoteka "test.txt" za čitanje, zatim
Више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ргументи
ВишеP3.2 Paralelno programiranje 2
Paralelno programiranje II Analiza zavisnosti Struktura algoritma Pomoćne strukture Komunikacioni šabloni 1 4 Koraka paralelizacije programa 2 Evo algoritma. Gde je paralelizam? Dekompozicija zadataka
ВишеAlgoritmi i arhitekture DSP I
Univerzitet u Novom Sadu Fakultet Tehničkih Nauka Katedra za računarsku tehniku i međuračunarske komunikacije Algoritmi i arhitekture DSP I INTERNA ORGANIACIJA DIGITALNOG PROCESORA A OBRADU SIGNALA INTERNA
ВишеProgramiranje 2 7. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/7
Programiranje 2 7. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 7. predavanje p. 1/75 Sadržaj predavanja Tipovi i složene deklaracije:
ВишеProgramiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,
Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni podsjetnik. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite
Више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 - 12-Funkcije_1.ppt [Compatibility Mode]
Osnove programiranja Funkcije - Metode http://www.introprogramming.info/english-intro-csharp-book/read-online/ Sadržaj Funkcije Metode Definisanje Pozivanje Povratne vrednosti Parametri Metode (1) Metoda
ВишеTeorija skupova - blog.sake.ba
Uvod Matematika je jedan od najomraženijih predmeta kod većine učenika S pravom, dakako! Zapitajmo se šta je uzrok tome? Da li je matematika zaista toliko teška, komplikovana? Odgovor je jednostavan, naravno
ВишеKATUŠIĆ ANTONIO.pdf
SVEUILIŠTE JOSIP JURAJ STROSSMAYER ELEKTROTEHNIKI FAKULTET OSIJEK Preddiplomski studij raunarstva PROGRAMSKI JEZIK RUBY ZAVRŠNI RAD Antonio Katuši OSIJEK, svibanj 2015. SVEUILIŠTE JOSIP JURAJ STROSSMAYER
ВишеInženjering informacionih sistema
Fakultet tehničkih nauka, Novi Sad Inženjering informacionih sistema Dr Ivan Luković Dr Slavica Kordić Nikola Obrenović Milanka Bjelica Dr Jelena Borocki Dr Milan Delić UML UML (Unified Modeling Language)
Више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
ВишеMicrosoft PowerPoint - 07-DinamickeStrukturePodataka
Динамичке структуре података листа, стек, ред Програмирање 2: глава 6 Динамичке структуре података Динамичка алокација и динамичке структуре података Најзначајније динамичке структуре података листе и
ВишеAlgoritmi
Projektovanje algoritama L09.1. Topološko sortiranje Današnje teme Topološko sortiranje Povezanost grafa jako povezane komponente Minimum Spanning Trees (razapinjuće stablo) Lektira: 22. Elementary Graph
Више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
ВишеPowerPoint Presentation
Java konkurentno programiranje Životni ciklus niti i problemi sinhronizacije resursa Multitasking Multithreading Životni ciklus niti http://www.roseindia.net/java/thread/lifecycle-of-threads.shtml Životni
Више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
ВишеProgramiranje 1
Sveučilište u Rijeci ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina PROGRAMIRANJE 1 Studij: Preddiplomski studij informatike (jednopredmetni) Godina i semestar: 1. godina,
Више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.
Више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
ВишеSlide 1
OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik
ВишеMicrosoft Word - Zadaci za samostalno vjezbanje 4.doc
Zadaci za samostalno vježbanje 4. Svi zadaci dati ovdje su takvi da se mogu uraditi korištenjem isključivo gradiva prva četiri predavanja i ranije stečenog predznanja na predmetu Osnove računarstva. Zvjezdicom
ВишеРачунарска интелигенција
Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic
ВишеProgramiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6
Programiranje 1 9. predavanje Saša Singer singer@math.hr web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/60 Sadržaj predavanja Osnovni algoritmi na cijelim brojevima:
ВишеLAB PRAKTIKUM OR1 _ETR_
UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKULTET STUDIJSKI PROGRAM: ELEKTRONIKA, TELEKOMUNIKACIJE I RAČUNARI PREDMET: OSNOVE RAČUNARSTVA 1 FOND ČASOVA: 2+1+1 LABORATORIJSKA VJEŽBA BROJ 1 NAZIV: REALIZACIJA
ВишеДржавно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица
Државно такмичење 2018. године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица квадратног облика странице p центиметара, које се постављају
ВишеPASCAL UVOD 2 II razred gimnazije
PASCAL UVOD 2 II razred gimnazije Upis-ispis 1. Upis Read(a,b); --u jednom redu Readln(a,b); -- nakon upisa prelazi se u novi red 2. Ispis Write(a,b); -- u jednom redu Writeln(a,b); --nakon ispisa prelazi
ВишеNIZOVI
NIZOVI II gimnazije NIZOVI su složeni tip podatka u koji se može smjestiti više varijabli(podataka) JEDNODIMENZIONALNI DVODIMENZIONALNI VIŠEDIMENZIONALNI Milenko Soldat 2 JEDNODIMENZIONALNI NIZOVI Sintaksa:
Више1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме
1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме Програмирање добијања награда омогућује ученицима да
ВишеSveucilište u Zagrebu
Proširivanje Pythona programskim jezicima C/C++ Ivo Majić Mentor: Doc. dr. sc. Domagoj Jakobović Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Ak. god. 2011/12 Ivo Majić (FER) Sveučilište
Више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
ВишеSlide 1
Симулација ПМ Верификација и валидација модела Два корака у процени модела у односу на моделирани систем: 1. Верификација модела да ли модел исправно извршава постављене претпоставке. 2. Валидација модела
ВишеMicrosoft Word - 1.Operacije i zakoni operacija
1. Operacije i zakoni operacija Neka je S neprazan skup. Operacija dužine n skupa S jeste svako preslikavanje : n n f S S ( S = S S S... S) Ako je n = 1, onda operaciju nazivamo unarna. ( f : S S ) Ako
Више