Analýza toku dat. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 15. listopad, 2012

Rozměr: px
Začít zobrazení ze stránky:

Download "Analýza toku dat. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 15. listopad, 2012"

Transkript

1 Překladače 2 Analýza toku dat Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 15. listopad, 2012 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

2 Lokální analýza: živost proměnných neformálně: proměnná je živá, pokud její hodnota bude přečtena nějakou operací předtím, než její hodnota bude opět změněna pro operaci x = y op z platí: x těsně před touto operací není živá proměnná y a z jsou živé před touto operací Eliminace mrtvého kódu určí se živost proměnných všechna přiřazení k proměnným, které nejsou živé, se odstraní Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

3 Příklad: živé proměnné (1/3) a = b c = a d = a + b e = d d = a f = e Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

4 Příklad: živé proměnné (2/3) 6. {b} a = b 5. {a, b} c = a 4. {a, b} d = a + b 3. {a, b, d} e = d 2. {a, b, e} d = a 1. {b, d, e} f = e 0. {b, d} Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

5 Příklad: živé proměnné (3/3) 6. {b} a = b 5. {a, b} c = a 4. {a, b} d = a + b 3. {a, b, d} e = d 2. {a, b, e} d = a 1. {b, d, e} f = e 0. {b, d} Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

6 Analýza toku dat běh programu posloupnost transformací stavu programů provedení operace IR transformace vstupního stavu na výstupní = bod programu před a po operaci má smysl uvažovat vstupní a výstupní bod bloku platí: v rámci základního bloku je bod programu za operací shodný s bodem před následující operací pokud vede hrana z bloku B 1 do B 2, pak bod programu za poslední operací bloku B 1 může být okamžitě následován bodem před prvním operací bloku B 2 Definition Cesta z bodu p 1 do p n je posloupnost bodů programu p 1,..., p n taková, že pro každé i = 1,..., n 1 platí bud : 1 p i předchází operaci a p i+1 okamžitě následuje dané operaci, 2 p i představuje konec bloku a p i+1 představuje začátek bloku následujícího. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

7 Analýza toku dat obecně lze aplikovat na různé problémy (propagace kopíı, eliminace shodných podvýrazů) hodnota datového toku abstrakce všech možných stavů v daném bodě programu doména množina možných hodnot datového toku (např. potenční množina všech proměnných) závisí na typu problému analýza datového toku: pro každý příkaz s najít hodnoty IN[s] a OUT[s] představující hodnoty datového toku před provedením příkazu a po jeho provedení hodnoty jsou určeny (1) sémantikou operace s, (2) tokem řízení programu problém se řeší zakódováním do tzv. tokových rovnic, respektujícím (1), (2) rovnice řešeny iterativním způsobem Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

8 Přechodová funkce a základní bloky vztah hodnot IN[s] a OUT[s] je určen přechodovou funkcí f s podle směru předávání informací určujeme dopředný tok: OUT[s] = f s (IN[s]) zpětný tok: IN[s] = f s (OUT[s]) Základní bloky v případě základních bloků operace zprácovávány v řadě za sebou: pro základní blok B s příkazy s 1, s 2,..., s n platí: IN[s i+1 ] = OUT[s i ] pro všechna i = 1, 2,..., n 1 budeme označovat: IN[B] = IN[s 1 ] OUT[B] = OUT[s n ] přechodová funkce pro blok B: f B = f sn... f s1 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

9 Přechodová funkce a základní bloky dopředná analýza: zpětná analýza: OUT[B] = f B (IN[B]) IN[B] = OUT[P] P predchudce B IN[B] = f B (OUT[B]) OUT[B] = IN[S] S naslednik B Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

10 Dosah definice (1/2) pokud víme, kde mohla být definována proměnná x, když se program dostal do bodu p, lze určit, zda x je v bodě p konstanta nebo, zda je vůbec inicializována definice proměnné x je operace, která přiřazuje nebo může přiřazovat proměnné x hodnotu definice d proměnné x dosahuje do bodu p, pokud na cestě jdoucí přímo z d do p není jiná definice proměnné x uvažujme definici: d : u = v + w operace,,generuje definici d proměnné u a odstraňuje ostatní definice proměnné u přechodová funkce pro d: f d (x) = gen d (x kill d ) kde gen d = {d}, kill d množina všech ostatních definic proměnné u v programu. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

11 Dosah definice (2/2) skládáním přechodových funkcí lze rozšířit na základní bloky, viz str. 604 pro základní bloky platí následující rovnice: OUT[Entry] = pro ostatní základní bloky B: OUT[B] = gen B (IN[B] kill B ) IN[B] = P predchudce B OUT[P] hledáme nejmenší pevný bod: Algoritmus 1 OUT[Entry] = 2 pro každý blok B mimo Entry: OUT[B] = 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 IN[B] = P predchudce B OUT[P] 6 OUT[B] = gen B (IN[B] kill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

12 Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

13 Analýza živých proměnných (1/2) Proměnná x je živá v bodě p pokud existuje cesta začínající v bodě p, kde může být proměnná x použita, jinak je proměnná v daném bodě mrtvá. def B množina všech definovaných proměnných v bloku B předtím, než byly v bloku B použity use B množina proměnných, jejichž hodnoty mohou být použity v B, aniž by byly definovány pro základní bloky platí následující rovnice: IN[Exit] = pro ostatní základní bloky B: IN[B] = use B (IN[B] def B ) OUT[B] = S naslednik B IN[S] na konci programu jsou všechny proměnné mrtvé proměnná je živá, pokud vstupuje do bloku před svou redefinicí nebo není v bloku předefinována proměnná je živá, pokud je použita v bloku, který je následovníkem Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

14 Analýza živých proměnných (2/2) 1 IN[Exit] = 2 pro každý blok B mimo Exit: IN[B] = 3 pokud došlo ke změně nějaké IN[B], opakuj: 4 pro každý blok B mimo Exit: 5 OUT[B] = S naslednik B IN[S] 6 IN[B] = use B (OUT[B] def B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

15 Analýza dostupných výrazů (1/2) Výraz x op y je dostupný v bodě p, pokud na každé cestě z počátečního uzlu do p dojde k vyhdnocení x op y a po posledním vyhodnocením před p nedojde ke změně x nebo y. Blok,,zabíjí výraz, pokud může měnit x nebo y. Blok,,generuje výraz x op y, pokud vždy daný výraz vyhodnotí a následně nezmění x nebo y. egen B množina všech generovaných výrazů v bloku B ekill B množina zabitých výrazů v bloku B pro základní bloky platí následující rovnice: OUT[Entry] = pro ostatní základní bloky B: IN[B] = P predchuce B OUT[P] OUT[B] = egen B (IN[B] ekill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

16 Analýza dostupných výrazů (2/2) 1 OUT[Entry] = 2 pro každý blok B mimo Entry: OUT[B] = U 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 OUT[B] = egen B (IN[B] ekill B ) 6 IN[B] = P predchuce B IN[P] U množina všech výrazů, které se mohou objevit na pravé straně operace (,,počáteční odhad ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

17 Framework analýzy datového toku Definition Framework analýzy datového toku je čtveřice D, V,, F, kde D je směr toku (Dopředný, Zpětný) V je polosvaz s operací průsek F množina přechodových funkcí f : V V taková, že obsahuje funkci I (x) = x pro všechna x z V a F je uzavřená vzhledem k operaci skládání funkcí. Definition Framework analýzy toku dat D, V,, F je monotonní pokud pro všechna x a y z V a f z F platí: x y f (x) f (y) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

18 Iterativní algoritmus pro obecný framework Vstup Výstup Postup graf toku dat s uzly Entry a Exit směr toku D množin hodnot V, operátor množina funkcí F, kde f B z F je přechodová funkce pro blok B konstanta v Entry nebo v Exit představující mezní případ pro dopřednou nebo zpětnou analýzu hodnoty V pro IN[B] a OUT[B] pro každý blok B v grafu toku dat pro každý blok B se opakovaně aproximují hodnoty IN[B] a OUT[B] Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

19 Algoritmus Dopředný tok 1 OUT[Entry] = v Entry 2 pro každý blok B mimo Entry: OUT[B] = 3 pokud došlo ke změně nějaké OUT[B], opakuj: 4 pro každý blok B mimo Entry: 5 IN[B] = P predchudce B OUT[P] 6 OUT[B] = f B (IN[B]) Zpětný tok 1 IN[Exit] = v Exit 2 pro každý blok B mimo Exit: IN[B] = 3 pokud došlo ke změně nějaké IN[B], opakuj: 4 pro každý blok B mimo Exit: 5 OUT[B] = S naslednik B IN[S] 6 IN[B] = f B (OUT[B]) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

20 Vlastnosti algoritmu pokud algoritmus konverguje, výsledek je řešením tokových rovnic pokud je framework monotonní, pak řešení je maximální pevný bod tokových rovnic (tj. pro jiná řešení platí, že hodnoty IN[B] a OUT[B] jsou vzhledem k maximálnímu pevnému bodu) pokud je framework monotonní a polosvaz je konečné výšky, pak algoritmus konverguje Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

21 Propagace konstant pro každý datový typ proměnné zavedeme polosvaz L t = D t {NAC, UNDEF},, kde Dt je množina hodnot, kterých může proměnná nabývat NAC představuje hodnotu,,není konstanta UNDEF představuje hodnotu,,hodnota není definována a platí: NAC v = NAC UNDEF v = v pro všechny hodnoty proměnné v c c = c pro všechny konstanty c c1 c 2 = NAC pro všechny vzájemně různé konstanty c 1 a c 2 Parametry algoritmu: Hodnoty datového toku doména: součin polosvazů L = L t1... L tn, kde každá složka představuje jednu proměnnou programu hodnota datového toku budeme označovat jako m, kde m(v) představuje hodnotu proměnné v z definice: m m = m pokud m (v) = m(v) m (v) pro všechny proměnné v Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

22 Další parametry algoritmu směr: dopředný Množina přechodových funkcí uvažujeme pouze přechodové funkce pro jednotlivé operace (pro bloky lze odvodit skládáním) funkce ve tvaru: f : L L F obsahuje funkce: fi (m) = m, pro všechna m L (identita) f0 (m) = m 0, pro všechna m L, kde m 0 (v) = UNDEF pro všechny proměnné v přechodové funkce fs pro obecný příkaz s pro přechodovou funkci f s a všechna m a m z L taková, že m = f s (m) platí: (1) pokud s není přiřazení, pak f s = f i (2) pokud s je přiřazení proměnné x, pak m (v) = m(v) pro všechny proměnné v x a m (x) je definováno: Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

23 Další parametry algoritmu...dokončení bodu (2)... a m (x) je definováno: (a) pokud je pravá strana výrazu konstanta: m (x) = c (b) pokud je pravá strana výrazu ve tvaru y z m (x) = m(y) m(z), pokud m(y) a m(z) jsou konstanty m (x) = NAC, pokud m(y) nebo m(z) jsou NAC m (x) = UNDEF, jinak (c) pokud je pravá stran jiný typ výrazu (např. volání fce.), pak m (x) = NAC. Poznámky funkce z F jsou monotonní algoritmus konverguje (viz (B)) pokud se objeví UNDEF v kódu, neexistuje cesta, na které by byla definice dané proměnné pokud existuje cesta s definicí proměnná, proměnná nemá hodnotu UNDEF (plyne z definice ) algoritmus může nalézt více konstant než by měl v případě nedefinovaných hodnot může zvolit tuto konstantu jako hodnotu (viz str. 638) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

24 Odstraňování redundance Globální společné podvýrazy výraz y z je (plně) redundantní v bodě p pokud je v daném bodě dostupný (bude spočítaný na všech cestách do p a nedojde následně po tomto výpočtu k redefinici y a z) výraz y z je částečně redundantní v bodě p pokud existuje cesta do p, kde je výraz y z spočítaný a nedošlo následně k redefinici y a z Invariant cyklu výraz x = y z je invariant cyklu, pokud y a z nejsou v cyklu redefinovány přesun výrazu mimo smyčku a uložení hodnoty do pomocné proměnné v optimalizovaném kódu by se nemělo by se provést víc instrukcí než v neoptimalizovaném (problém, pokud smyčka končí dřív než dojde k vyhodnocení výrazu) jedno z možných řesení pro while while (c) { if (c) { S; ----> do { S;} while (c); } } Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

25 Líné přesouvání kódu odstranění redundance požadujeme následující vlasnosti: všechny redundantní výpočty, které lze odstranit bez duplikace kódu, jsou odstraněny program neprovádí žadný výpočet, který by nebyl proveden v originálním kódu výrazy jsou vyhodnoceny v nejzazším možném bodě algoritmus se snaží vložit kopii výrazu, aby byl výraz plně redundantní Umístění výrazu Výraz x y je očekávaný (anticipated) v bodě p, pokud všechny cesty vedoucí z tohoto bodu v nějakém bodě spočítají hodnotu x y s použitím hodnot x a y, které jsou dostupné v bodě p. Výraz x y je odložitelný (postponable) v bodě p, pokud je očekávaný a bude použitý na každé cestě jdoucí tímto bodem. Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

26 Nástin algoritmu 1 nalezení očekávaných výrazů pro každý bod programu 2 vložení očekávaných výrazů, kde jsou poprvé očekávány + analýza dostupnosti 3 přesun výrazů na místa, kde už nejsou odložitelné 4 odstranění proměnných, které jsou použité pouze jednou Přípravný krok každý příkaz je ve svém bloku pokud má blok více předků, je vložen nový blok mezi počátek a konec této každé hrany pro každý blok máme množiny: euseb množina výrazů spočítaných v B ekillb množina výrazů, jejichž operandy jsou definovány v B Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

27 Očekávané výrazy udávají místo, kam lze vložit výpočet výrazu dřívější umístění umožní redukovat více redundance pozdější umístění redukuje čas nutnný k držení výpočtu výrazu v registru výraz je očekávaný na vstupu do bloku, pokud je generovaný daným blokem (euse B ) výraz je očekávaný na výstupu z bloku, pokud je očekávaný na vstupu do bloku a nejsu předefinovány jeho operandy v daném bloku (ekill B ) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

28 Nalezení očekávaných výrazů Parametry algoritmu Doména množina výrazů Směr zpětný Přechodová funkce f B (x) = euse B (x ekill B ) Hraniční stav IN[Exit] = Průsek Rovnice IN[B] = f B (OUT[B]) OUT[B] = S naslednik B IN[S] Inicializace IN[B] = U Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

29 Dostupnost výrazů mírně odlišná přechodová funkce: výraz je dostupný na výstupu z bloku, pokud: je dostupný na vstupu do bloku nebo je očekávaný v daném bloku (tj. lze jej spočítat) a není,,zabitý v daném bloku Doména Směr Přechodová funkce Hraniční stav Průsek Rovnice Inicializace množina výrazů dopředný f B (x) = (anticipated[b].in x) ekill B OUT[Entry] = OUT[B] = f B (IN[B]) IN[B] = P predchudce B OUT[P] OUT[B] = U anticipated[b].in výsledek předchozího kroku algoritmu earliest[b] = anticipated[b].in available[b].in první místa vhodná pro výpočet výrazu Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

30 Odložitelnost výrazů odloží vykonání výrazu na nejzazší mez výraz x y je odložitelný (postponeable) do bodu p, pokud dřívější umístění x y leží na každé cestě z Entry do p a neexistuje další použítí x y za tímto umístěním výraz je odložitelný na konci bloku, pokud není použitý v daném bloku a pokud je výraz odložitelný na vstupu do daného bloku nebo je v earliest[b] výraz je odložitelný na začátek bloku, pokud je odložitelný ve všech jeho předchůdcích (na výstupu z bloku) Doména množina výrazů Směr dopředný Přechodová funkce f B (x) = (erliest[b].in x) euse B Hraniční stav OUT[Entry] = Průsek Rovnice OUT[B] = f B (IN[B]) IN[B] = P predchudce B OUT[P] Inicializace OUT[B] = U Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

31 Odložitelnost výrazů umístění výrazu e na hranici, kde se výraz stáva z odložitelného,,neodložitelným výraz e může být umístěn na začátek bloku B pokud e není v postponable[b].in, tj. e je použito e nelze přesunout do některého z následníků Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

32 Použité výrazy výraz je použitý (used) v bodě p, pokud existuje cesta z p taková, že výraz je použit předtím, než je opět vyhodnocen analýza živosti (ale pro výrazy) Doména Směr Přechodová funkce Hraniční stav Průsek Rovnice Inicializace množina výrazů zpětný f B (x) = (euse B x) latest[b] IN[Exit] = IN[B] = f B (OUT[B]) OUT[B] = S naslednik B IN[S] IN[B] = earliest[b] = anticipated[b].in available[b].in latest[b] = (earliest[b] postponable[b].in) (euse B ( S naslednik B (earliest[s] postponable[s].in))) latest[b]... poslední místo, kam lze umístit výrazy Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

33 Přesun Pro každý výraz x y proved : pro všechny bloky B takové, že x y je v latest[b] used[b].out přidej t = x y na začátek B pro všechny bloky B takové, že x y je v nahrad x y proměnnou t euse B ( latest[b] used[b].out]) Petr Krajča (UP) KMI/PRKL2: Přednáška I. 15. listopad, / 33

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11 333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]

Více

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11 Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Algoritmizace prostorových úloh

Algoritmizace 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 Algoritmus Daniela Szturcová Tento

Více

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K. Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

Více

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Přednáška 3. Rekurze 1

Přednáška 3. Rekurze 1 Paradigmata programování 1 Přednáška 3. Rekurze 1 Michal Krupka KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Obsah 1 Příklady 2 Rekurzivní procedury a rekurzivní výpočetní proces 3 Další příklady

Více

Denotační sémantika. Marek Běhálek

Denotační sémantika. Marek Běhálek Denotační sémantika Marek Běhálek Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 29. listopadu 2015 M. Běhálek (VŠB-TUO)

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T. BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné

Více

Dynamické programování

Dynamické programování Dynamické programování 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í algoritmy (BI-EFA)

Více

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g). 7 Barevnost grafu Definice 71 Graf G se nazývá k-obarvitelný, jestliže každému jeho uzlu lze přiřadit jednu z barev 1 k tak, že žádné dva sousední uzly nemají stejnou barvu Definice 72 Nejmenší přirozené

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Vzdálenost uzlů v neorientovaném grafu

Vzdálenost uzlů v neorientovaném grafu Vzdálenosti a grafy Vzdálenost uzlů v neorientovaném grafu Je dán neorientovaný neohodnocený graf G = (V,E,I) vzdálenost uzlů u a v v neorientovaném souvislém grafu G je délka nejkratší cesty spojující

Více

GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)

GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) 2011 Jan Janoušek MI-GEN Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Úvod

Více

2. lekce Algoritmus, cyklus Miroslav Jílek

2. lekce Algoritmus, cyklus Miroslav Jílek 2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává

Více

Algoritmizace prostorových úloh

Algoritmizace 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 Algoritmus Daniela Szturcová Tento

Více

Řídicí struktury. alg3 1

Řídicí struktury. alg3 1 Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení

Více

Binární vyhledávací stromy II

Binární vyhledávací stromy II Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

Úvod do programování. Lekce 3

Úvod do programování. Lekce 3 Úvod do programování Lekce 3 Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include #include // budeme pouzivat funkci

Více

Dynamické datové struktury III.

Dynamické datové struktury III. Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. 9.5 Třída NP Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování. Příklad. Uvažujme problém IND a následující

Více

10. Složitost a výkon

10. Složitost a výkon Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří

Více

Optimalizace & soft omezení: algoritmy

Optimalizace & soft omezení: algoritmy Optimalizace & soft omezení: algoritmy Soft propagace Klasická propagace: eliminace nekonzistentních hodnot z domén proměnných Soft propagace: propagace preferencí (cen) nad k-ticemi hodnot proměnných

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky

Více

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest Obsah prezentace Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest 1 Základní pojmy Vrchol grafu: {množina V} Je to styčná vazba v grafu, nazývá se též uzlem, prvkem

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

Úvod do programovacích jazyků (Java)

Ú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

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39 Algoritmy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna 2018 1/ 39 Algoritmy Příklad: Popis algoritmu pomocí pseudokódu: Algoritmus 1: Algoritmus pro nalezení největšího prvku v poli 1 Find-Max(A,n):

Více

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace

Více

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

4. NP-úplné (NPC) a NP-těžké (NPH) problémy Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA 4. NP-úplné (NPC) a NP-těžké (NPH) problémy Karpova redukce

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 06. Proměnné, deklarace proměnných Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

Více

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s

Více

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2010/11 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou

Více

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Funkce, podmíněný příkaz if-else, příkaz cyklu for Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto

Více

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Vyvažování a rotace v BVS, všude se předpokládá AVL strom Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Zá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íce

NPRG030 Programování I, 2016/17 1 / :58:13

NPRG030 Programování I, 2016/17 1 / :58:13 NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

IV113 Validace a verifikace

IV113 Validace a verifikace IV113 Validace a verifikace Lehký úvod do analýzy programů Jiří Barnat Analýza programů IV113 Úvod do validace a verifikace: Analýza programů str. 2/29 Cíle programové analýzy Odvodit vlastnosti programů

Více

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

2) 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.

2) 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íce

Algoritmizace prostorových úloh

Algoritmizace 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 Vývojové diagramy Daniela Szturcová

Více

Funkce jedn e re aln e promˇ enn e Derivace Pˇredn aˇska ˇr ıjna 2015

Funkce jedn e re aln e promˇ enn e Derivace Pˇredn aˇska ˇr ıjna 2015 Funkce jedné reálné proměnné Derivace Přednáška 2 15. října 2015 Obsah 1 Funkce 2 Limita a spojitost funkce 3 Derivace 4 Průběh funkce Informace Literatura v elektronické verzi (odkazy ze STAGu): 1 Lineární

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

Základy umělé inteligence

Základy umělé inteligence Základy umělé inteligence Automatické řešení úloh Základy umělé inteligence - prohledávání. Vlasta Radová, ZČU, katedra kybernetiky 1 Formalizace úlohy UI chápe řešení úloh jako proces hledání řešení v

Více

PŘEDNÁŠKA 2 POSLOUPNOSTI

PŘEDNÁŠKA 2 POSLOUPNOSTI PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému

Více

Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,

Více

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

Více

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

Matice sousednosti NG

Matice sousednosti NG Matice sousednosti NG V = [ v ij ] celočíselná čtvercová matice řádu U v ij = ρ -1 ( [u i, u j ] )... tedy počet hran mezi u i a u j?jaké vlastnosti má matice sousednosti?? Smyčky, rovnoběžné hrany? V

Více

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

Více

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ

Přijímací zkoušky z matematiky pro akademický rok 2018/19 NMgr. studium Učitelství matematiky ZŠ, SŠ Přijímací zkoušky z matematiky pro akademický rok 8/9 NMgr studium Učitelství matematiky ZŠ, SŠ Datum zkoušky: Varianta Registrační číslo uchazeče: Příklad 3 4 5 Celkem Body Ke každému příkladu uved te

Více

Diferenciální počet funkcí jedné proměnné

Diferenciální počet funkcí jedné proměnné Diferenciální počet funkcí jedné proměnné 1 4. Derivace funkce 4.3. Průběh funkce 2 Pro přesné určení průběhu grafu funkce je třeba určit bližší vlastnosti funkce. Monotónnost funkce Funkce monotónní =

Více

Automatická segmentace slov s pomocí nástroje Affisix. Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz

Automatická segmentace slov s pomocí nástroje Affisix. Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz Automatická segmentace slov s pomocí nástroje Affisix Michal Hrušecký, Jaroslava Hlaváčová Michal@Hrusecky.net, Hlavacova@ufal.mff.cuni.cz Motivace Při zpracování přirozeného jazyka nikdy nemůžeme mít

Více

Algoritmy na ohodnoceném grafu

Algoritmy na ohodnoceném grafu Algoritmy na ohodnoceném grafu Dvě základní optimalizační úlohy: Jak najít nejkratší cestu mezi dvěma vrcholy? Dijkstrův algoritmus s t Jak najít minimální kostru grafu? Jarníkův a Kruskalův algoritmus

Více

Matematika (KMI/PMATE)

Matematika (KMI/PMATE) Matematika (KMI/PMATE) Přednáška druhá aneb Úvod do matematické analýzy Limita a spojitost funkce Matematika (KMI/PMATE) 1 / 30 Osnova přednášky lineární funkce y = kx + q definice lineární funkce význam

Více

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,

Více

Matematická analýza pro informatiky I. Limita posloupnosti (I)

Matematická analýza pro informatiky I. Limita posloupnosti (I) Matematická analýza pro informatiky I. 3. přednáška Limita posloupnosti (I) Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 25. února 2011 tomecek@inf.upol.cz

Více

Regulace frekvence a napětí

Regulace frekvence a napětí Regulace frekvence a napětí Ivan Petružela 2006 LS X15PES - 5. Regulace frekvence a napětí 1 Osnova Opakování Blokové schéma otáčkové regulace turbíny Statická charakteristika (otáčky, výkon) turbíny Zajištění

Více

Teorie měření a regulace

Teorie měření a regulace Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace 22.z-3.tr ZS 2015/2016 2015 - Ing. Václav Rada, CSc. TEORIE ŘÍZENÍ druhá část tématu předmětu pokračuje. oblastí matematických pomůcek

Více

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12. Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

Více

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Úvod do teorie grafů

Úvod do teorie grafů Úvod do teorie grafů Neorientovaný graf G = (V,E,I) V množina uzlů (vrcholů) - vertices E množina hran - edges I incidence incidence je zobrazení, buď: funkce: I: E V x V relace: I E V V incidence přiřadí

Více

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,

Více

12. Automatické vyhodnocení derivací. jaro 2012

12. Automatické vyhodnocení derivací. jaro 2012 1/16 12. derivací jaro 2012 2/16 Motivace kromě funkce dokážeme vyhodnotit i její derivace první, druhé,... parciální mnohé numerické problémy jsou lépe řešitelné metodami s dostupnou derivací metody s

Více

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

Paradigmata programování 1

Paradigmata programování 1 Paradigmata programování 1 Vytváření abstrakcí pomocí procedur Vilém Vychodil Katedra informatiky, PřF, UP Olomouc Přednáška 2 V. Vychodil (KI, UP Olomouc) Vytváření abstrakcí pomocí procedur Přednáška

Více

Rekonstrukce diskrétního rozdělení psti metodou maximální entropie

Rekonstrukce diskrétního rozdělení psti metodou maximální entropie Rekonstrukce diskrétního rozdělení psti metodou maximální entropie Příklad Lze nalézt četnosti nepozorovaných stavů tak, abychom si vymýšleli co nejméně? Nechť n i, i = 1, 2,..., N jsou známé (absolutní)

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 40 regula Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague regula 1 2 3 4 5 regula 6 7 8 2 / 40 2 / 40 regula Iterační pro nelineární e Bud f reálná funkce

Více

Konečný automat. Jan Kybic.

Konečný automat. Jan Kybic. Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s

Více

Diferenciální počet funkcí jedné proměnné

Diferenciální počet funkcí jedné proměnné Diferenciální počet funkcí jedné proměnné 1 3. Limita funkce 3.2. Limita funkce v nevlastním bodě 2 Limita funkce v nevlastním bodě Ukážeme, že je možné definovat limitu funkce i pro x +, x - Uvažujme

Více

Funkce a limita. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF)

Funkce a limita. Petr Hasil. Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) Funkce a limita Petr Hasil Přednáška z matematiky Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny společného základu

Více

Regulární výrazy. Filtry grep, sed a awk.

Regulární výrazy. Filtry grep, sed a awk. Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem

Více

Rekurzivní algoritmy

Rekurzivní algoritmy Rekurzivní algoritmy 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í algoritmy (BI-EFA) ZS

Více

Prohledávání do šířky = algoritmus vlny

Prohledávání do šířky = algoritmus vlny Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé

Více

Stromy, haldy, prioritní fronty

Stromy, haldy, prioritní fronty Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Soustavy linea rnı ch rovnic

Soustavy linea rnı ch rovnic [1] Soustavy lineárních rovnic vlastnosti množin řešení metody hledání řešení nejednoznačnost zápisu řešení a) soustavy, 10, b) P. Olšák, FEL ČVUT, c) P. Olšák 2010, d) BI-LIN, e) L, f) 2009/2010, g)l.

Více