Abstraktní datové typy
|
|
- Ludvík Bezucha
- před 8 lety
- Počet zobrazení:
Transkript
1 Datové struktury a algoritmy Část 4 Abstraktní datové typy Petr Felkel
2 Data structures and algorithms Part 4 Abstract data types Petr Felkel
3 Abstraktní datové typy Zdůrazňují vnější chování datové struktury Input Control Output BLACK BOX Emphasize outer behavior of the data structure 3/ 82
4 Abstraktní datové typy Abstrahují od jak? Jak jsou data zobrazena v paměti Jak jsou prováděny operace Zdůrazňují co? Co s nimi operace s daty provádějí nezávisle na konkrétní implementaci 4/ 82
5 Abstract data types Abstract from: How? How is the data stored in memory? How are the operations executed? Emphasize: What? What do the operations do with the data (independent of any particular implementation)? 5/ 82
6 Example Queue (Fronta) Čelo Front 6/ 82
7 Queue (Fronta) FIFO = First-in, First-out Access to front Insert to back 7/ 82
8 Abstract Queue (Fronta) Operations: Variables: e element, Q queue init(), front( Q ), delfront( Q ), inslast( e, Q ) Axioms: 1. init() returns a queue 2. front( inslast( e, init() )) = e 3. delfront( inslast( e, init() ) ) = init() 4. front( inslast( e, inslast( f, Q ) )) = front( inslast( f, Q ) ) 5. delfront( inslast( e, inslast( f, Q ) )) = inslast( e, delfront( inslast( f, Q ) )) 8/ 82
9 Expression Abstract Queue (Fronta) is a way of construction of data object by means of a sequence of operations Ex: inslast(4, inslast(3, inslast(2, init() ))) represents a queue front(inslast(4, inslast(3, inslast(2, init() )))) represents its first element (head), 2 9/ 82
10 1. init() Abstract Queue (Fronta) Returns a queue Is informally empty Must not be formally defined 10 / 82
11 Abstract Queue (Fronta) 2. front( inslast( e, init() )) = e = is a rewrite operation axiom A=B means instead A, write B Ex: front( inslast( 99, init() )) means / 82
12 Abstract Queue (Fronta) 3. delfront( inslast( e, init() )) = init() Axioms allow reduction of expressions Ex. delfront( inslast( 6, init() )) means init() 12 / 82
13 Abstract Queue (Fronta) 4. front( inslast( e, inslast( f, Q ) )) = front( inslast( f, Q ) ) Ex: front( inslast( 11, inslast( 5, init() ))) means [according to axiom 4] front( inslast( 5, init() )) 5 means [ax. 2] 13 / 82
14 Abstract Queue (Fronta) 5. delfront( inslast( e, inslast( f, Q ) )) = inslast( e, delfront( inslast( f, Q ) )) Ex: delfront( inslast( 8, inslast( 6, init() ))) means [according to axiom 5] inslast( 8, delfront( inslast( 6, init() ))) means [ax. 3] inslast( 8, init() ) 14 / 82
15 Abstract Queue (Fronta) And what to do with: front( init() )? delfront( init() )? Behavior is in the queue undefined! Add error states 6. error_empty_queue(q) = Q error_empty_elem() = e 7. front( init() ) = error_empty_elem() Ignore 8. delfront( init() ) = init() 15 / 82
16 Abstract Queue (Fronta) complete init() returns a queue Variables: e element, Q queue front( init() ) = error_empty_elem() front( inslast( e, init() )) = e front( inslast( e, inslast( f, Q ) )) = front( inslast( f, Q ) ) delfront( init() ) = init() delfront( inslast( e, init() ) ) = init() delfront( inslast( e, inslast( f, Q ) )) = inslast( e, delfront( inslast( f, Q ) )) error_empty_queue(q) = Q 16 / 82
17 Abstract Queue - extensions empty( init() ) = true empty( inslast( e, Q )) = false Variables: e element, Q queue length( init() ) = 0 length( inslast( e, Q ) ) = succ( length( Q ) ) 17 / 82
18 Some theory 18 / 82
19 Abstraktní datový typ Abstraktní datový typ (ADT) je množina druhů a příslušných operací, které jsou přesně specifikovány. Je nezávislý na konkrétní implementaci. Abstract data type is a set of data sorts and associated operations that are precisely specified independent of any particular implementation. [PEB, nist.gov] 19 / 82
20 Abstraktní datový typ SYNTAXE signatura = deklarace druhů Jména oborů hodnot + deklarace operací Jména operací Druhy (a pořadí) argumentů operací Druh výsledku SÉMANTIKA = popis vlastností operací! axiomy 20 / 82
21 Abstract data type SYNTAX signature = declaration of sorts Names of scopes of values + declaration of operations Names of operations Sorts (and order of) arguments of operations Sort of the result SEMANTICS axioms = descritption of the operations properties! 21 / 82
22 Abstract Queue SIGNATURE init empty Queue Signature as a diagram Elem inslast Bool delfront front error_empty_queue 22 / 82
23 Abstract Queue SIGNATURE Signature in symbols init: -> Queue inslast(_,_): Elem,Queue -> Queue empty(_): Queue -> Bool front(_): Queue -> Elem delfront(_): Queue -> Queue 23 / 82
24 Why syntax not enough? Example: Interval {1, 2, 3, 4, 5,..., 11, 12} a) month_in_year b) natural_number_from_interval_1_až_12 BUT! Operation successor (12) a) 1 for month_in_year b) undefined for number_from_interval 24 / 82
25 Implementation From Abstract Data Type to Data Structure 25 / 82
26 Data structure Data structure = a realization of ADT 1. Choose data type B for implementation of A. [integer / interval 1..12] 2. Choose representation of objects of type A by means of objects of type B. [1..January, 2..February, ] 3. Code the operations on A by means of operations of B 26 / 82
27 Queue implementation In Array Linear Circular A D B or A D B = A D B last SIZE-1 first last SIZE-1 In Dynamic Memory front last A D B 27 / 82
28 Example SPECIFIC Queue Interface (Syntax): Class Queue { int _size; Coupled together with Elem elems[max_size]; public: Queue init(); Elem front(); Queue delfront(); Queue inslast( Elem elem ); bool empty(); } Implementation: = 28 / 82
29 Specific Queue x Abstract Queue Implementation bool empty() { return (_size == 0) }; or bool empty() { return (_front == null ) }; or bool empty() { return (_front == _last ) }; Axioms vars: Elem e; Queue q; eqns: empty( init ) = true empty( inslast( e, q )) = false 29 / 82
30 Specific Queue x Abstract Queue Implementation Axioms Elem front(){ if(_front == null ) error; else return ( _front->val ) }; or Elem front() { if(_frontidx == _lastidx ) error; else return( elems[_frontidx] ) }; front( init ) = error_empty_elem front( inslast( e, q )) = if( empty( q )) then e else front( q ) Or front( inslast( e, init() )) = e front( inslast( e, inslast( f, Q ) )) = front( inslast( f, Q ) ) Details later on 30 / 82
31 Queue in an Array Elem queue ::front(void) { if( last == 0 ) return error_empty_elem(); else return array[front]; } void queue::delfront(void) { if( last!= 0) { //!empty() { last--; for(int i=0; i<last; i++) array[i] = array[i+1]; } } 31 / 82
32 Queue in Dynamic Mem. Elem queue ::front(void) { if( last!= null ) return error_empty_elem(); else return front->val; } void queue::delfront(void) { if( first!= null) { //!empty() Item *delitem = first; first = first.next; delete delitem; last } } front A delitem D B E 32 / 82
33 Queue in Dynamic Mem. void queue::inslast( elem e ) { Item *newitem = new Item; newitem->val = e; newitem->next = null; last.next = newitem; last = newitem; } front last A D newitem B E bool queue ::empty(void) // empty(): Queue -> Bool { if( last == NULL ) return true; else return false; } 33 / 82
34 Fronta Shrnutí úlohy hromadné obsluhy FIFO = First-in, First-out kdo dřív přijde, ten dřív mele přístup pouze k prvnímu prvku (front) vkládání pouze na konec (back) homogenní, lineární, dynamická 34 / 82
35 Queue - Summary multi-user services FIFO = First-in, First-out only first element accessible (front) insert only at and (back) homogeneous, linear, dynamic 35 / 82
36 (Abstraktní) datové typy Počet a vzájemné uspořádání složek statické = nemění se dynamické = mění se Typ komponent homogenní = všechny stejného typu nehomogenní = různého typu Existuje bezprostřední následník lineární = existuje [např. pole, seznam, ] nelineární = neexistuje [strom, tabulka, ] 36 / 82
37 (Abstract) data types Number and arrangement of elements static = fixed, does not change dynamic = changes Type of the components homogeneous = all of equal type inhomogeneous = different types Direct successor existence linear = direct successor exists nonlinear = direct successor does not exist 37 / 82
38 Abstraktní datové typy Fronta (Queue) Zásobník (Stack) Pole (Array) Tabulka (Table) Seznam (List) Strom (Tree) Množina (Set) 38 / 82
39 Zásobník (Stack) Kdy? odložení informace, výběr v opačném pořadí (návrat z procedury, uzlové body cesty, náboje v pistoli,...) LIFO = Last-in, First-out poslední tam, první ven přístup pouze k prvku na vrcholu (top) vkládání pouze na vrchol (top) homogenní, lineární, dynamický 39 / 82
40 Stack (Zásobník) When? temporary data storage, access in reverse order (return from the procedure call), important nodes along the path, ammunition in pistol,...) LIFO = Last-in, First-out only top element accessible (top) insert on the top only homogeneous, linear, dynamic 40 / 82
41 Stack (Zásobník) init empty full Stack length Nat Elem push max Bool pop top 41 / 82
42 Stack (Zásobník) Operations: init: -> Stack empty(_): Stack -> Bool push(_,_): Elem, Stack -> Stack top(_): Stack -> Elem pop(_): Stack -> Stack length(_): Stack -> Nat max: -> Nat full(_): Stack -> Bool...omezen 42 / 82
43 Stack (Zásobník) empty( init ) = true empty( push( e, s )) = false top( init ) = error_elem top( push( e, s )) = e pop( init ) = init pop( push( e, s )) = s 43 / 82
44 Stack (Zásobník) 1. empty( init() ) = true 2. empty( push( e, s )) = false Ex: empty( push( X, push( Y, pop( push( A, init() ))))) -> false empty( pop( push( A, init() ))) ->??? Need for more axioms! 44 / 82
45 Stack (Zásobník) 3. top( init() ) = error_elem() 4. top( push( e, s )) = e Ex: top( push( X, push( Y, pop( push( A, init() ))))) -> X top( init() ) -> error_elem top( pop( push( A, init() ))) ->??? Need for more axioms! 45 / 82
46 Stack (Zásobník) 5. pop( init ) = init() 6. pop( push( e, s )) = s Ex: pop( push( A, init() )) -> init() pop( push( X, push( Y, pop( push( A, init() ))))) -> push( Y, pop( push( A, init() ))) -> push( Y, init() ) 46 / 82
47 Stack (Zásobník) ext. 7. length( init ) = 0 8. length( push( e, s )) = succ( length( s )) Ex: length( push( A, init() )) -> succ( length( init() )) -> succ( 0 ) -> 1 47 / 82
48 Stack (Zásobník) limit. 9. full( s ) = eq( length( s ), max ) 10. push( e, s ) = if full( s ) then error_stack 48 / 82
49 In Array Stack - implementation vals A D B E last SIZE-1 In Dynamic Memory tos E B D A 49 / 82
50 Stack in Array class stack { private: elem vals[size]; int last; // array of elements // index behind (place for next item) public: void init( void ); elem top( void ); void pop( void ); void push( elem e ); void error( const char errortext[] ); }; stack(void); ~stack(void); // just calls init() 50 / 82
51 void stack::init(void) { last = 0; } Stack in Array // init: -> Stack elem stack::top(void){ // top(_): Stack -> Elem if( last > 0 ) return vals[last-1]; else error("stack is empty during top()"); return 0; } void stack::pop(void){ // pop(_): Stack -> Stack if( last > 0 ) last--; else error("stack is empty during pop()"); } 51 / 82
52 void stack::push( elem e ) { if( last < SIZE ) vals[ last ++ ] = e; } Stack in Array //push(_,_):elem, Stack -> Stack bool stack::empty(void)// empty(_): Stack -> Bool { if( last == 0 ) return true; else return false; } 52 / 82
53 #include "stack.h" //#include "stackdyn.h" Stack Usage void main( void ) { stack s; // OUTPUT: cout << s.empty() << endl; // 1 s.push( 2 ); s.push( 3 ); cout << s.empty() << endl; // 0 cout << s.top() << endl; // 3 s.pop(); cout << s.top() << endl; // 2 s.pop(); cout << s.top() << endl; // Stack is empty during top cout << s.empty() << endl; // 1 } 53 / 82
54 Stack in Dynamic Mem. class stack { private: Item * s; // head of the list of elements public: void init( void ); elem top( void ); void pop( void ); void push( elem e ); void error( const char errortext[] ); }; stack(void); ~stack(void); // just calls init() 54 / 82
55 Stack in Dynamic Mem. void stack::init(void) { s = NULL; } // init: -> Stack elem stack::top(void){ // top(_): Stack -> Elem if( s!= NULL ) return s->val; else error( "Stack is empty during top()" ); return 0; } void stack::pop(void){ // pop(_): Stack -> Stack if( s!= NULL ) { Item* tmp = s; s = s->next; delete( tmp ); } else error( "Stack is empty during pop()" ); } 55 / 82
56 Abstraktní datové typy Fronta (Queue) Zásobník (Stack) Pole (Array) Tabulka (Table) Seznam (List) Strom (Tree) Množina (Set) 56 / 82
57 Pole (array) j i 6 A B C 7 D E F Array A of 2x3 elements Row index i {6,7} Column index j {1, 2, 3} A[6,3] -> C 57 / 82
58 Pole (array) 6 A B C D E F Kdy? prvky stejného typu - homogenní všechny prvky současně v paměti rychlý náhodný přístup (random-access) známý počet prvků - statické indexy uspořádány - lineární ---- dán počet dimenzí (n) a meze indexů přístup k prvkům - mapovací funkce A[6,3] -> C 58 / 82
59 When? Array (pole) all elements equal - homogeneous all elements in memory fast random access fixed number of elements - static indexes ordered - linear ---- given: number of dimensions (n) and index range access to elements - map function 6 A B C D E F 59 / 82 3 A[6,3] -> C
60 init Pole (array) Array Elem A B C 7 D E F Idx lower upper set get 60 / 82
61 Pole (array) Operations init(_,_): Idx, Idx -> array upper(_): Array -> Idx lower(_): Array -> Idx set(_,_,_): Array,Idx,Elem->Array get(_,_): Array, Idx -> Elem 1-D (one dimensional) n-d -> Elem ~ (n-1)d Array 6 A B C D E F 61 / 82
62 Pole (array) lower( init(m,n) ) = m lower( set(a,i,e) ) = lower( a ) upper( init(m,n) ) = n upper( set(a,i,e) ) = upper( a ) set( a, i, e ) = if( or( lt(i,lower(a)), lt(upper(a),i) )) then error_array else set( a, i, e ) A B C 7 D E F 62 / 82
63 Pole (array) A B C 7 D E F get( init(m,n), i ) = error_elem get( set( a, i 1, e ), i 2 ) = = if( eq(i 1, i 2 )) then e else get( a, i 2 ) Praxe: array[i] = e zápis set(array,i,e) e = array[i] zápis e = get(array,i) 63 / 82
64 Array (Pole) mapping function Logical structure Array a[6..7, 1..3] Ex: a[7,2]->e Physical location in memory Row order (po řádcích) A B C D E F Relative address (offset) A B C i 7 D E F Indices Column order (po sloupcích) A D B E C F j row 6 row 7 col 1 col 2 col 3 Base address map(7,2) -> (base + 4) map(7,2) -> (base + 3) 64 / 82
65 Array (Pole) mapping function A B C D E F map(i,j) = a(i min, j min ) + (i-i min ) n j + (j-j min ) Base address row order (po řádcích) 2D Column offset Row offset map(i,j) = a(0,0) + (i*n j + j) for indices from (0,0) Ex: map(7,2) = a(6,1) + (i-6)*3 + (j-1) map(7,2) = a(6,1) + (7-6)*3 + (2-1) = a(6,1) + 4 row length = Number of columns Relative address i A B C 7 3 D E F A B C D E F j 65 / 82
66 Array (Pole) mapping function A B C D E F map(i,j,k) = a(i min, j min, k min ) + (i-i min ) n j n k + + (j-j min ) n k + + (k-k min ) Base address map(i,j,k) = a(0,0,0) + (i*n j + j) * n k + k for indices from (0,0) row order (po řádcích) 3D Relative address (element offset) 66 / 82
67 Array (Pole) mapping function A D B E C F map(i,j) = a(i min, j min ) + (i-i min ) + column order (po sloupcích) 2D Base address + (j-j min ) n i Relative address map(i,j) = a(0,0) + j * n i + i for indices from (0,0) Ex: map(7,2) = a(6,1) + (7-6) + (2-1) * 2 = a(6,1) / 82
68 Array (Pole) mapping function A D B E C F column order (po sloupcích) 3D map(i,j,k) = a(i min, j min, k min ) + (i-i min ) + + (j-j min ) n i + Base address + (k-k min ) n i n j Relative address map(i,j,k) = a(0,0,0) + (k*n j + j) * n i + i for indices from (0,0) 68 / 82
69 Array speedup by Iliff s vectors Mapping functions need multiplications -> change them to additions (0) (1) (2) 3 4 A: array [3..4, 1..3, 0..2] i (0) j j (0) k A B C E F G H I J K L M N O P Q R S [Hudec93, PT] 69 / 82
70 Abstraktní datové typy Fronta (Queue) Zásobník (Stack) Pole (Array) Tabulka (Table) Seznam (List) Strom (Tree) Množina (Set) 70 / 82
71 Vyhledávací Tabulka (Look-up Table) Kartotéka, asociativní paměť, převod mezi kódy, četnost slov,... homogenní, dynamická (nejen) Obsahuje a nelineární položky jednoznačně identifikované klíčem (podle klíče se položky vyhledávají) klíč jen 1x (je jedinečný) Př.: seznam hospod, klíčem je jejich jméno. 71 / 82
72 Look-up Table (Vyhledávací Tabulka) Card-register, associative memory, code conversion, word count homogeneous, dynamic (not only), Contains and nonlinear items items fully qualified by the key (item are searched according to their key) key is unique Ex.: directory of bars, the bar name is its key. 72 / 82
73 Tabulka (Look-up Table) delete read Key Table search Bool init Elem insert 73 / 82
74 Tabulka (Look-up Table) Operace: init: -> Table insert(_,_,_): Key, Elem, Table -> Table read(_,_): Key, Table -> Elem delete(_,_): Key, Table -> Table search(_,_): Key, Table -> Bool 74 / 82
75 Tabulka (Look-up Table) search( k, init ) = false search( k 1, insert(k 2,e,t)) = if( eq(k 1, k 2 ) ) then true else search( k 1, t ) 75 / 82
76 Tabulka (Look-up Table) delete( k, init ) = init delete( k 1, insert(k 2,e,t)) = if( eq(k 1, k 2 ) ) then delete( k 1, t ) else insert(k 2,e,delete(k 1, t)) 76 / 82
77 Tabulka (Look-up Table) read( k, init ) = error_elem read( k 1, insert(k 2,e,t)) = if( eq(k 1, k 2 ) ) then e else read( k 1, t ) 77 / 82
78 Tabulka (Look-up Table) insert(k 1,e 1, insert(k 2,e 2,t)) = if( eq(k 1, k 2 ) ) then insert(k 1,e 1, t) else insert(k 2,e 2, insert(k 1,e 1, t)) 78 / 82
79 Look-up Table Implementation In Array For small interval of keys sequential search O(n) direct access (key = index) O(1) converttolatin2( char_kamenický) LUT[char_kamenický] For large universum of keys Hash tables average O(1) to O(n) Wait for a separate lecture 79 / 82
80 Abstraktní datové typy Fronta (Queue) Zásobník (Stack) Pole (Array) Tabulka (Table) Seznam (List) Strom (Tree) Množina (Set) 80 / 82
81 Prameny / References Jan Honzík: Programovací techniky, skripta, VUT Brno, 19xx Karel Richta: Datové struktury, skripta pro postgraduální studium, ČVUT Praha, 1990 Bohuslav Hudec: Programovací techniky, skripta, ČVUT Praha, / 82
82 Prameny / References Steven Skiena: The Algorithm Design Manual, Springer-Verlag New York, Gang of four (Cormen, Leiserson, Rivest, Stein): Introduction to Algorithms, MIT Press, 1990 Code exapmples: M.A.Weiss: Data Structures and Problem Solving using JAVA, Addison Wesley, 2001, code web page: ode/code.html 82 / 82
Abstraktní datové typy
Datové struktury a algoritmy Abstraktní datové typy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2013 Datové struktury a algoritmy,
VíceAbstraktní datové typy
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní datové typy BI-PA2, 2011, Přednáška 10 1/27 Abstraktní datové typy Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra teoretické informatiky,
VíceDatové struktury. Obsah přednášky: Definice pojmů. Abstraktní datové typy a jejich implementace. Algoritmizace (Y36ALG), Šumperk - 12.
Obsah přednášky: Definice pojmů o datový typ, o abstraktní datový typ Datové struktury Abstraktní datové typy a jejich implementace o Fronta (Queue) o Zásobník (Stack) o Množina (Set) Algoritmizace (Y36ALG),
VíceDynamic programming. Optimal binary search tree
The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamic programming Optimal binary search tree Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The complexity
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceAbstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
VíceHASHING GENERAL Hashovací (=rozptylovací) funkce
Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný
VíceŠablony, kontejnery a iterátory
7. října 2010, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 21 Šablona funkce/metody Šablona je obecný popis (třídy, funkce) bez toho, že by
VíceADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
VíceDatové struktury 1: Základní datové struktury
Datové struktury 1: Základní datové struktury prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní
VíceŠablony, kontejnery a iterátory
11. března 2015, Brno Připravil: David Procházka Šablony, kontejnery a iterátory Programovací jazyk C++ Šablony Strana 2 / 31 Obsah přednášky 1 Šablony 2 Abstraktní datové struktury 3 Iterátory 4 Array
VíceČipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
VíceDatové struktury. alg12 1
Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou
VíceALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
VíceKolekce, cyklus foreach
Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro
VíceZákladní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
VíceStromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.
Stromy Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2018, B6B36DSA 01/2018, Lekce 9 https://cw.fel.cvut.cz/wiki/courses/b6b36dsa/start
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
Více2011 Jan Janoušek BI-PJP. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE TRANSFORMACE GRAMATIK NA LL(1) GRAMATIKU. TABULKA SYMBOLŮ. VNITŘNÍ REPREZENTACE: AST. JAZYK ZÁSOBNÍKOVÉHO POČÍTAČE. RUNTIME PROSTŘEDÍ. 2011 Jan Janoušek BI-PJP Evropský
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceAbstraktní datové typy II.
Datové struktury a algoritmy Abstraktní datové typy II. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol., 2012 Datové struktury a algoritmy,
VíceVyhledávání, zejména rozptylování
Datové struktury a algoritmy Část 11 Vyhledávání, zejména rozptylování Petr Felkel 16.5.2016 Topics Vyhledávání Rozptylování (hashing) Rozptylovací funkce Řešení kolizí Zřetězené rozptylování Otevřené
VíceZákladní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
VíceKonstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
VíceInformační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek
5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené
VíceProgramování v C++ 2, 8. cvičení
Programování v C++ 2, 8. cvičení návrhový vzor iterátor 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí minule procvičené látky
Vícex86 assembler and inline assembler in GCC
x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register
VíceWORKSHEET 1: LINEAR EQUATION 1
WORKSHEET 1: LINEAR EQUATION 1 1. Write down the arithmetical problem according the dictation: 2. Translate the English words, you can use a dictionary: equations to solve solve inverse operation variable
VíceCompression of a Dictionary
Compression of a Dictionary Jan Lánský, Michal Žemlička zizelevak@matfyz.cz michal.zemlicka@mff.cuni.cz Dept. of Software Engineering Faculty of Mathematics and Physics Charles University Synopsis Introduction
VíceProgramování v C++ 1, 5. cvičení
Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené
VícePG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
VíceProgramování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
VíceSpojový seznam. Jan Kybic.
Spojový seznam Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 25 Složitost operací u lineárních datových struktur v Pythonu operace zásob. fronta pole pole řetězce přidej na začátek
VíceAbstraktní datový typ
Abstraktní datový typ Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 B0B36PRP Procedurální programování Jan Faigl, 2017 B0B36PRP Přednáška 11: Abstraktní
VíceFronta (Queue) Úvod do programování. Fronta implementace. Fronta implementace pomocí pole 1/4. Fronta implementace pomocí pole 3/4
Fronta (Queue) Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Fronta uplatňuje mechanismus přístupu FIFO first
VíceSemestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz
Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).
VíceALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)
ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK) Strom / tree uzel, vrchol / node, vertex hrana / edge vnitřní uzel
VíceGymnázium, Brno, Slovanské nám. 7, SCHEME OF WORK Mathematics SCHEME OF WORK. cz
SCHEME OF WORK Subject: Mathematics Year: first grade, 1.X School year:../ List of topisc # Topics Time period Introduction, repetition September 1. Number sets October 2. Rigtht-angled triangle October,
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceDynamické datové struktury I.
Dynamické datové struktury I. Seznam. Fronta. Zásobník. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz
VíceSeznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
VíceAngličtina v matematických softwarech 2 Vypracovala: Mgr. Bronislava Kreuzingerová
Angličtina v matematických softwarech 2 Vypracovala: Mgr. Bronislava Kreuzingerová Název školy Název a číslo projektu Název modulu Obchodní akademie a Střední odborné učiliště, Veselí nad Moravou Motivace
Více2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5
Contents Contents 1 Semestrální práce 1 2 Axiomatic Definition of Object 2 3 UML Unified Modelling Language 2 3.1 Classes in UML............................ 3 4 Tools for System Design in UML 5 5 Student
VíceHASHING GENERAL Hashovací (=rozptylovací) funkce
Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný
VíceDefinice uživatelského typu. Uživatelem definované typy. Součinové datové typy. Součtové datové typy. FLP - Uživatelem definované typy
Uživatelem definované typy Ing. Lumír Návrat katedra informatiky, A 1018 59 732 3252 Definice uživatelského typu data Color = Red Green Blue Color typový konstruktor Red / Green / Blue datové konstruktory
VíceV případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:
20. Programovací techniky: Abstraktní datový typ, jeho specifikace a implementace. Datový typ zásobník, fronta, tabulka, strom, seznam. Základní algoritmy řazení a vyhledávání. Složitost algoritmů. Abstraktní
VíceGUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA What is an FTP client and how to use it? FTP (File transport protocol) - A protocol used to transfer your printing data files to the MAFRAPRINT
VíceDynamické struktury a Abstraktní Datový Typy (ADT)
Dynamické struktury a Abstraktní Datový Typy (ADT) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1
VíceAbstraktní datový typ
Abstraktní datový typ Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 B0B36PRP Procedurální programování Jan Faigl, 2018 B0B36PRP Přednáška 11: Abstraktní
VíceČást I. Část 1 Abstraktní datový typ. Přehled témat. Abstraktní datový typ. Zdroje
Přehled témat Abstraktní datový typ Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 B0B36PRP Procedurální programování Část 1 Abstraktní datový typ
VíceČást 1 Spojové struktury (stromy) Dynamické struktury a Abstraktní Datový Typy (ADT) Část 2 Abstraktní datový typ. Část 3 Příklad ADT Prioritní fronta
Část 1 Spojové struktury (stromy) Dynamické struktury a Abstraktní Datový Typy (ADT) Stromy Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 A0B36PR1
VíceDatabase systems. Normal forms
Database systems Normal forms An example of a bad model SSN Surnam OfficeNo City Street No ZIP Region President_of_ Region 1001 Novák 238 Liteň Hlavní 10 26727 Středočeský Rath 1001 Novák 238 Bystřice
VíceTabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceČást 1 Abstraktní datový typ. Datové struktury a abstraktní datový typ
Přehled témat Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 11 B0B36PRP Procedurální programování Část 1 Datové struktury Zásobník Fronta spojovým seznamem
VíceEnterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
Více1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:
Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.
VíceVytvoření pokročilé Fotogalerie v Drupalu - Views
Vytvoření pokročilé Fotogalerie v Drupalu - Views Views Máme tři pohledy: gallery_photos, all_galeries, admin_gallery Buď je můžete vytvořit podle návodu níže, nebo importovat z přiložených txt souborů
Víceprohled av an ı graf u Karel Hor ak, Petr Ryˇsav y 16. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT
prohledávání grafů Karel Horák, Petr Ryšavý 16. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Nad frontou (queue) byly provedeny následující operace: push(1) push(2) print(poll()) print(peek()) print(peek())
VíceIntroduction to MS Dynamics NAV
Introduction to MS Dynamics NAV (Item Charges) Ing.J.Skorkovský,CSc. MASARYK UNIVERSITY BRNO, Czech Republic Faculty of economics and business administration Department of corporate economy Item Charges
VíceČást I Spojové struktury
Část 1 Spojové struktury (seznamy) Spojové struktury Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 10 A0B36PR1 Programování 1 Spojové struktury Spojový
VíceLineární datové struktury
Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 5. března 2019 Jiří Dvorský (VŠB TUO) Lineární datové
VícePB161 6. přednáška (26. října 2015)
PB161 6. přednáška (26. října 2015) Standardní knihovna C++ obsahuje řadu částí, některé už jsme viděli (strings, I/O streams) mimo jiné obsahuje i knihovní funkce ze standardní knihovny jazyka C jiné
VíceJazyk C++ I. Šablony 3
Jazyk C++ I Šablony 3 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()
VíceABSTRAKTNÍ DATOVÉ TYPY (ADT)
ABSTRAKTNÍ DATOVÉ TYPY (ADT) hierarchie abstrakcí: nejvyšší úroveň ZOO DruhZvirat celá čísla, řetězce nejnižší úroveň bity Abstrahujeme od - reprezentace (implementace) dat - realizace (implementace) operací
Více2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky
Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých
VíceIRAE 07/08 Přednáška č. 7. Začátek (head)
Fronta (Queue) FIFO First In First Out (první dovnitř první ven) Vložení položky (Enqueue) Vyjmutí položky (Dequeue) Přidávání prvků Konec (Tail) Začátek (head) na jedné straně (konec) Odebírání prvků
VíceLineární datové struktury
Lineární datové struktury doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Lineární datové
VíceChapter 7: Process Synchronization
Chapter 7: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris
VíceTento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost. Projekt MŠMT ČR Číslo projektu Název projektu školy Klíčová aktivita III/2 EU PENÍZE ŠKOLÁM CZ.1.07/1.4.00/21.2146
VíceCvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;
Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru
VíceMIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Stručný úvod do programování v jazyce C 2.díl. České vysoké učení technické Fakulta elektrotechnická
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 2.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 07 Ver.1.10 J. Zděnek,
VícePL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
VíceALG 09. Radix sort (přihrádkové řazení) Counting sort. Přehled asymptotických rychlostí jednotlivých řazení. Ilustrační experiment řazení
ALG Radix sort (přihrádkové řazení) Counting sort Přehled asymptotických rychlostí jednotlivých řazení Ilustrační experiment řazení Radix sort Neseřazeno Řaď podle. znaku Cbb DaD adb DCa CCC add DDb adc
Více2. Entity, Architecture, Process
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš
VíceSpojové struktury. Jan Faigl. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze. Přednáška 10 A0B36PR1 Programování 1
Spojové struktury Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 10 A0B36PR1 Programování 1 Jan Faigl, 2015 A0B36PR1 Přednáška 10: Spojové struktury
VícePREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
VíceDC circuits with a single source
Název projektu: utomatizace výrobních procesů ve strojírenství a řemeslech egistrační číslo: Z..07/..0/0.008 Příjemce: SPŠ strojnická a SOŠ profesora Švejcara Plzeň, Klatovská 09 Tento projekt je spolufinancován
VíceAbstraktní třídy, polymorfní struktury
Karel Müller, Josef Vogel (ČVUT FIT) Abstraktní třídy, polymorfní struktury BI-PA2, 2011, Přednáška 9 1/32 Abstraktní třídy, polymorfní struktury Ing. Josef Vogel, CSc Katedra softwarového inženýrství
VíceDatabázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce
Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální
VíceJazyk C++ I. Šablony 2
Jazyk C++ I Šablony 2 AR 2013/2014 Jazyk C++ I Třídy template class TVektor { T *a; int n; static int PocInstanci; public: TVektor(int _n = 0) : n(_n) { a = new T[n]; PocInstanci++; } ~TVektor()
VíceO makrech, která umí aritmetiku s velkými čísly. Macros Which Handle Arithmetics with Big Numbers. Jan Šustek KMa PřF OU. Brejlov
O makrech, která umí aritmetiku s velkými čísly Macros Which Handle Arithmetics with Big Numbers KMa PřF OU Brejlov.. 0 O makrech, která umí aritmetiku s velkými čísly Reprezentace čísel Representation
VíceDatové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
Vícebfs, dfs, fronta, zásobník, prioritní fronta, halda
bfs, dfs, fronta, zásobník, prioritní fronta, halda Petr Ryšavý 19. září 2017 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší
VíceTopics. Vyhledávání, zejména rozptylování. Slovník - Dictionary. Vyhledávání. Rozptylování - Hashing. Rozptylování - Hashing
8..007 Datové struktury a algoritmy Vyhlednávání Topics ást Vyhledávání, zejména rozptylování Petr Felkel Rozptylování (hashing) Rozptylovací funkce ešení kolizí Z et zené rozptylování Otev ené rozptylování
VíceSpojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
VíceDatabáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
VíceMIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Stručný úvod do programování v jazyce C 1.díl. České vysoké učení technické Fakulta elektrotechnická
MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,
Více2. Mřížky / Záplavové vyplňování
2. Mřížky / Záplavové vyplňování BI-EP2 Efektivní programování 2 LS 2017/2018 Ing. Martin Kačer, Ph.D. 2011-18 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké
VícePB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Dynamická alokace Kopírovací konstruktor Přetypování v C++ Nikola Beneš 12. října 2015 PB161 přednáška 4: dynamická alokace, kopírovací konstruktor, casting
Vícebfs, dfs, fronta, zásobník
bfs, dfs, fronta, zásobník Petr Ryšavý 25. září 2018 Katedra počítačů, FEL, ČVUT prohledávání grafů Proč prohledávání grafů Zkontrolovat, zda je sít spojitá. Hledání nejkratší cesty, plánování cest. Prohledávání
VíceGenerování vnitřní reprezentace programu
Generování vnitřní reprezentace programu Miroslav Beneš Dušan Kolář Možnosti překladu Interpretace Okamžité provádění programu Překlad do instrukcí procesoru Závislost na konkrétním typu procesoru Překlad
VíceIII/2 Inovace a zkvalitnění výuky prostřednictvím ICT
Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo didaktického materiálu EU-OPVK-VT-III/2-ŠR-303 Druh didaktického materiálu DUM Autor RNDr. Václava Šrůtková Jazyk čeština
Více1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
VíceTransportation Problem
Transportation Problem ١ C H A P T E R 7 Transportation Problem The transportation problem seeks to minimize the total shipping costs of transporting goods from m origins (each with a supply s i ) to n
VícePAINTING SCHEMES CATALOGUE 2012
Evektor-Aerotechnik a.s., Letecká č.p. 84, 686 04 Kunovice, Czech Republic Phone: +40 57 57 Fax: +40 57 57 90 E-mail: sales@evektor.cz Web site: www.evektoraircraft.com PAINTING SCHEMES CATALOGUE 0 Painting
VícePokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++
Pokročilé programování v jazyce C pro chemiky (C3220) Statické proměnné a metody, šablony v C++ Globální konstantní proměnné Konstantní proměnné specifikujeme s klíčovým slovem const, tyto konstantní proměné
VíceNávrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
VíceMySQL sežere vaše data
MySQL sežere vaše data David Karban @davidkarban AWS Certified http://davidkarban.cz/ It s not a bug, it s a feature syndrome Pravděpodobně znáte indexy. Urychlují dotazy. Mohou být řazené, vzestupně i
VíceZápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Více