Obsah 10. přednášky: Jak bude probíhat zkouška?! Podrobné informace:

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

Download "Obsah 10. přednášky: Jak bude probíhat zkouška?! Podrobné informace:"

Transkript

1 Obsah 10. přednášky: Kódování dat - terminologie Rozdělení kódů Kódování čísel Kódování znaků Dynamické programování* Příklad řešení úlohy ACM* Úloha pro zájemce* efektivita algoritmu Tato tematika je zpracována v Záznamy přednášek: str materiál: PrikladyZobrazeniCisel.pdf viz portál Jak bude probíhat zkouška?! Podrobné informace: Portál (1.termín) příští přednáška Přednášky KIV/PPA1, A. Netrvalová, přednáška

2 Kódování dat - terminologie Data - informace, které jsou v průběhu výpočtu uloženy v paměti počítače nebo na vnějším mediu. Typy dat: čísla, texty, obrázky, zvuky atd. Kódování - převod dat na posloupnost bytů (bitů) Kapacita kódu o n bitech - počet zobrazitelných hodnot Příklad: počet bytů počet bitů kapacita Rozdělení kódů dle charakteru kódovaných dat znakové číselné ostatní (formáty) ~ grafické, zvukové,... Znakové kódy - každý znak zvolené abecedy reprezentován nezáporným celým číslem. ASCII: 7 bitový kód pro anglickou abecedu Unicode: 16 bitový mezinárodní kód (Java) Windows 1250: 8-bitový kód Microsoft (CZ) ISO/IEC : 8-bitový standardizovaný kód (CZ) používaný v OS Linux Strana 2 (celkem 25)

3 Číselné kódy celočíselné bez znaménka znaménkové přímý inverzní doplňkový s posunutou nulou reálné jednoduchá přesnost dvojnásobná přesnost Kódování čísel Poznámka - výklad celočíselných kódů na 8 bitech Celočíselné kódy Kód bez znaménka (nezáporná čísla) binární zápis čísla (užití: zobrazení logické hodnoty) Př.: = 23 Znaménkové kódy Přímý kód nezáporná čísla + znaménkový bit (Most Significant Bit) Nevýhoda: dvojí zobrazení nuly (kladná a záporná) Užití: zobrazení mantisy reálných čísel Př.: = = = 0 Strana 3 (celkem 25)

4 Inverzní kód (tzv. jedničkový doplněk) kladná čísla - binární zápis záporná čísla - binární zápis + změna 0 1 a 1 0 Nevýhoda: opět dvojí nula Užití: bitové operace, při převodu na doplňkový kód Př.: = = = = 0 Doplňkový kód (tzv. dvojkový doplněk) kladná - binární zápis záporná - inverze binárního zápisu + 1 Výhody: zobrazení nuly: odečítání: přičítáním záporného čísla Nevýhody: nesymetrický rozsah: -128 až 127 vznik tzv. přetečení: 127+1= -128 (častá chyba!!!) Užití zobrazení znaménkových čísel Př.: = = -23 postup: Př.: jednodušší způsob převodu = = -30 Př.: (doplňkový kód) = inverze = -1 (10) Ale: (doplňkový kód) = 127 (10) Strana 4 (celkem 25)

5 Kód s posunutou nulou - základem je lineární posun nuly, nula je uprostřed rozsahu 2 n-1-1 (ilustrace na n=8) : největší záporné číslo : : největší kladné číslo Nevýhoda: kladná čísla odlišná od binární reprezentace Použití: zobrazení exponentu reálných čísel Př.: převod: číslo = = -23 Př.: (kód s posunutou 0) = = = 24 (10) Kódování reálných čísel - aproximace reálného čísla - tzv. zobrazení v pohyblivé řádové čárce - formát IEEE jednoduchá přesnost (4 byty) - dvojnásobná přesnost (8bytů) 4 byty: 1 bit znaménko (mant.), 8 bitů exponent, 23 bitů mantisa Strana 5 (celkem 25)

6 Znaménkový bit mantisy 0 kladná, 1- záporná Mantisa přímý kód (binární) - normalizace mantisy: 1 mantisa základ - určuje přesnost (numerické chyby při výpočtech!) - první bit mantisy=1, ale nezobrazuje se (skrytý), reprezentuje jedničku před desetinnou čárkou Exponent v kódu s posunutou nulou - určuje rozsah Formát - kompromis mezi přesností a rozsahem - rozsah ~ přesnost 6-7 desetinných míst reálná 0 Hodnota čísla x = (-1) znaménko 2 exp-127 1,mantisa Příklad 1: Zobrazte v IEEE (na 4 bytech) číslo: -258, (10) = (2) ( ) 0,125 2 = 0,25 0 0,125 (10) = 0,001 (2) 0,25 2 = 0,5 0 0,5 2 = 1, ,125 (10) = ,001 (2) normovaný tvar: 1, *2 8 exp.: =2 7 +7= = Strana 6 (celkem 25)

7 -258,125 (10) = (2) = C (16) Příklad 2: Zobrazte v IEEE (na 4 bytech) číslo: +0,5 0,5 (10) = 0,1 (2) 1,0 * = = (2) = 3 F (16) Příklad 3: BF (16) = (2) = = = -1.0 (10) Poznámka (viz dříve): Problematika přetečení - příliš malá čísla (<MIN) zaokrouhlení na 0 - příliš velká čísla (>MAX) zaokrouhlení na Operace s reálnými čísly nutná obezřetnost - sčítání řádově velmi odlišných čísel - násobení (exp se sčítají, mantisy násobí) - nepoužívat == (porovnání na rovnost) Kódování logických hodnot pouze 2 hodnoty (true, false) - celočíselný kód bez znaménka Strana 7 (celkem 25)

8 Kódování znaků pro zájemce velice podrobné informace v Záznamech přednášek (str ), zde jen přehled kódů Úvodní poznámka - týká se všech datových typů Datový typ má více bytů a záleží na pořadí jejich ukládání do paměti - 2 možnosti: - big-endian (BE) - vyšší řády na nižší adrese - little-endian (LE) - vyšší řády na vyšší adrese Příklad: celé číslo: 01A2B3C4 (16) ( (10) ) ukládáme do paměti od adresy 1000 BE: 01 A2 B3 C4 LE: C4 B3 A2 01 Často oba systémy na témže PC, způsob uložení závisí na: - procesoru - OS - programovacím jazyku Terminologie nejednotná (dále terminologie z Unicode Character Encoding Model) Znaková sada množina kódovaných znaků US ASCII, ISO8859-1,Unicode, Kódovací schéma (charset) Strana 8 (celkem 25)

9 US-ASCII - sedmibitový charset - nemůže zobrazit akcenty - anglické dokumenty, zdrojové kódy programů ISO bitový charset pro východní Evropu Windows bitový charset Microsoft od předchozího se liší znaky: š, Š, ž, Ž, ť, Ť IBM852 MS-DOS Latin-2 8-bitový charset IBM používaný v MS DOS a konzolovém okénku Win xmaccentraleurope Macintosh Latin-2 8-bitový charset Macintosh Unicode charsety: UTF-8, UTF-16, UTF-32 LE,BE značka bytového pořadí UTF-8 (1992) pro kódování znaků Unicode posloupností bytů - 1 byte pro znaky anglické abecedy (jako ASCII) - 2 byty pro akcentované znaky Výhoda - úsporné, Nevýhoda znaky nestejné délky, nelze aplikovat přímý přístup UTF-16 (1996) - rozšíření, znaky 2 byty, oproti předchozímu dvojnásobná velikost, použití - u iphone pro SMS Strana 9 (celkem 25)

10 UTF-32 (1999) - kód znaku 32 bitů (4 bajty) Výhoda - přímý přístup (indexovatelné) Nevýhoda - neefektivita při nakládání s pamětí, pořadí bytů je dané architekturou - možná nekompatibilita při zpracovaní textů v různých OS Příklady kódování (znaky české abecedy A a š): Strana 10 (celkem 25)

11 Dynamické programování* Příklad: Fibonacciho čísla ještě jednou využívá opakování problémů v průběhu rekurze vede na mnohem rychlejší algoritmus. Algoritmus Fib(n) klasická rekurze 1. Pokud n 1, vrátíme n. 2. Jinak vrátíme Fib(n - 1) + Fib(n - 2). Jaká je časová složitost? Sledujme strom rekurze: Kořen - F n, listy F 0 a F 1, uvnitř - výpočty F k pro 2 k < n. Hodnota vnitřního vrcholu = součtu hodnot všech listů pod ním Ale: F n 2 n - exponenciální složitost Fib(n) voláme pro 0 n => je-li O(2 n ), počítá se totéž vícekrát! (viz obrázek) Strana 11 (celkem 25)

12 Jak tomu zabránit? Fibonacciho čísla už spočtená do tabulky. Při každém volání rekurze se podíváme nejprve do tabulky, je-li tam, jen ho vrátíme, jinak spočteme a uložíme do tabulky. Algoritmus Fib2(n): 1. Je-li T[n] definováno, vrátíme T[n]. 2. Pokud n 1, pak T[n] n. 3. Jinak T[n] Fib2(n - 1) + Fib2(n - 2). 4. Vrátíme T[n]. Jak se změnila časová složitost? K rekurzi nyní dojde jedině tehdy, vyplňujeme-li políčko tabulky, v němž dosud nic nebylo. To se může stát nejvýše (n + 1)-krát, z toho dvakrát triviálně (pro F 0 a F 1 ), takže strom rekurze má nejvýše n vnitřních vrcholů. Pod každým vrcholem leží nejvýše 2 listy, takže celkově má strom nanejvýš 3n vrcholů (s konstantním časem) O(n). Strana 12 (celkem 25)

13 A co dál? Uvědomíme si, že tabulku mezivýsledků není nutno vyplňovat rekurzivně. Jelikož k výpočtu T[k] potřebujeme pouze T[k - 1] a T[k - 2], vyplníme v pořadí T[0], T[1], T[2], Algoritmus Fib3(n): iterace 1. T[0] 0, T[1] 1 2. Pro k = 2,,n: 3. T[k] T[k - 1] + T[k - 2] 4. Vrátíme T[n]. Fib3(n) lze samozřejmě vymyslet i přímo, bez úvah o rekurzi. Předvedený postup ovšem funguje i v méně přímočarých případech! Princip dynamického programování: 1. Začneme s rekurzivním algoritmem, který je exponenciálně pomalý. 2. Odhalíme opakované výpočty stejných podproblémů. 3. Vytvoříme tabulku a zapisujeme vyřešené podproblémy. Tím prořežeme strom rekurze a vznikne rychlejší algoritmus. Tomuto přístupu se říká kešování a tabulce keš (cache). 4. Uvědomíme si, že keš lze vyplňovat bez rekurze, zvolíme-li vhodné pořadí podproblémů. Tím získáme stejně rychlý, ale jednodušší algoritmus. Strana 13 (celkem 25)

14 Příklad řešení úlohy ACM* Flip Sort Řazení je důležitá součást Computer Science. Téměř každý problém může být řešen efektivně, pokud jsou data seřazena. Existuje několik výborných řadících algoritmů, které už překonaly hranici O (N log 2 N). Dále se budeme zabývat následujícím řadícím postupem. V tomto postupu bude dostupná pouze jedna operace, tzv. flip, a tou je výměna dvou sousedních prvků. Budete-li chvíli přemýšlet, zjistíte, že takto je možné vždy seřadit množinu čísel. Formulace problému Je dána množina celých čísel. Za použití výše uvedeného postupu je možno zadaná čísla vzestupně seřadit. Vaším úkolem je zjistit, jaký nejmenší počet flip operací je k seřazení nutný. Například k seřazení nepotřebujeme žádnou flip operaci, zatímco k seřazení potřebujeme nejméně 2 flip operace. Vstup Na vstupu bude několik testovaných případů. Pro každý případ bude zadáno celé kladné číslo N (N 1000) a na následující řádce bude zadáno N celých čísel oddělených mezerami. Vstup bude ukončen koncem souboru. Výstup Pro každou množinu čísel vypište Minimum exchange operations: M, kde M je minimum flip operací potřebných k vykonání řazení. Pro každý testovaný případ použijte pro výpis samostatný řádek. Strana 14 (celkem 25)

15 Ukázka vstupu: Ukázka výstupu Jak budeme řešit? Existuje více postupů, budeme sledovat složitost 1. Naprogramujeme nejprve podle zadání průchod a operaci flip Strana 15 (celkem 25)

16 int flip=0; int i=0; while(i < pole.length-1) { if(pole[i] > pole[i+1]) { int pom = pole[i+1]; pole[i+1] = pole[i]; pole[i] = pom; flip++; i=0; // od zacatku else { i++; // dalsi // pruchod // flip - prohozeni Složitost? O (n 2 ), záleží na míře seřazení dat Počet porovnání - pro nejlepší případ: n pro nejhorší případ: n 1 n i i 2 2 i 1 Výhodné pro částečně seřazené posloupnosti Strana 16 (celkem 25)

17 2. Co flip operace připomíná? Použijeme Bubble Sort a budeme počítat výměny public class Main { public static void main(string args []) { Scanner sc = new Scanner(System.in); int flip = 0; while(sc.hasnextint()) { int pocetprvku = sc.nextint(); int [] pole = new int[pocetprvku]; flip = 0; for(int i=0;i<pocetprvku;i++) { pole[i] = sc.nextint(); for (int i=0; i<pole.length; i++){ for (int j=0; j<pole.length-1; j++){ if(pole[j]>pole[j+1]) { int pom = pole[j+1]; pole[j+1]=pole[j]; pole[j]=pom; flip++; Složitost O (n 2 ), počet porovnání = n (n-1) nezáleží na míře seřazení dat Strana 17 (celkem 25)

18 3. Další zlepšení ukončení po seřazení public class Main { public static void main(string args []) { Scanner sc = new Scanner(System.in); int flip = 0; while(sc.hasnextint()) { int pocetprvku = sc.nextint(); int [] pole = new int[pocetprvku]; flip = 0; for(int i=0;i<pocetprvku;i++) { pole[i] = sc.nextint(); for (int i=0; i<pole.length; i++){ boolean hotovo = true; for (int j=0; j<pole.length-1; j++){ if(pole[j]>pole[j+1]) { int pom = pole[j+1]; pole[j+1]=pole[j]; pole[j]=pom; hotovo = false; flip++; if (hotovo){ break; Jak algoritmus ještě dále zlepšit? Strana 18 (celkem 25)

19 4. Protože zadání po nás nepožaduje pole seřadit, nešlo by spočítat výměny bez řazení? Jak? Musíme zjistit, kolik prvků je menších než daný prvek a tudíž je nutno je prohodit. Pole procházíme zleva doprava a pro každý prvek hledáme, kolik je od něj napravo menších prvků. Počty těchto prvků sečteme. Příklad: Mějme v poli prvky: 9, 1, 2, 8, 6, 5, 3, 4 Pro prvek 9 je napravo od něj 7 menších prvků, pro 1 a 2 není žádný, pro 8 jsou 4, pro 6 jsou 3, pro 5 jsou 2, pro 3 a 4 není žádný takový prvek. Sečteme tučně vytištěná čísla ( =16) a tak získáme počet výměn. Složitost? (n-1) + (n-2) + (n-3) = ((n-1)n)/2 = = (n 2 -n)/2 Strana 19 (celkem 25)

20 import java.io.*; import java.util.*; /** * Flip sort * ACM - example netrvalo */ public class Main { private static Scanner sc = new Scanner(System.in); public static void main(string args []) { while(sc.hasnextint()) { int pocetprvku = sc.nextint(); int [] pole = new int[pocetprvku]; int flip = 0; for(int i=0;i<pocetprvku;i++) { pole[i] = sc.nextint(); // pocet "flipu" - pro rychlejsi vypocet se prvky v poli neprohazuji for(int k = 0;k<pole.length-1;k++) { for(int j = k+1;j<pole.length;j++) { //kdyz je prvek s vetsim indexem mensi, zvetsime citac flip o 1 if(pole[k]>pole[j]) { flip++; //vypiseme vysledek System.out.println("Minimum exchange operations: "+flip); Strana 20 (celkem 25)

21 Úloha pro zájemce* Je dána posloupnost celých čísel a 1, a 2,... a n. Nalezněte celistvý úsek posloupnosti a i až a j, takový, aby součet hodnot těchto prvků byl maximální. Nezapomeňte, že indexy i, j představují pořadí prvků, tj. i, j > 0. Ilustrační příklady: {-2, 11, -4, 13, -5, 2 i = 2, j = 4, s = 20 {1, -3, 4, -2, -1, 6 i = 3, j = 6, s = 7 {-1, -3, -5, -7, -2 i = 0, j = 0, s = 0 Pro řešení tohoto problému lze napsat odlišné, více či méně efektivní algoritmy: Řešení hrubou silou Řešení s kvadratickou složitostí Řešení s lineární složitostí Strana 21 (celkem 25)

22 1. Řešení hrubou silou Nejjednodušší (a nejméně efektivní) je algoritmus, který postupně projde všechny možné úseky, zjistí součet jejich prvků a vybere ten, který má největší součet. static int maxsoucet(int[] a) { int maxsum = 0; for (int i=0; i<a.length; i++) { for (int j=i; j<a.length; j++) { int sum = 0; for (int k=i; k<=j; k++){ sum += a[k]; if (sum>maxsum) { maxsum = sum; prvni = i; posledni = j; //první, poslední = nelokalni promenne return maxsum; Časová složitost algoritmu je O (n 3 ), tj. kubická Strana 22 (celkem 25)

23 2. Řešení s kvadratickou složitostí Vnitřní cyklus počítající součet S i,j = a[i]+...+a[j] je zbytečný: známe-li součet S i,j-1 = a[i]+...+a[j-1], pak S i,j = S i,j-1 + a[j] static int maxsoucet(int[] a) { int maxsum = 0; for (int i=0; i<a.length; i++) { int sum = 0; for (int j=i; j<a.length; j++) { sum += a[j]; if (sum>maxsum) { maxsum = sum; prvni = i; posledni = j; return maxsum; Časová složitost algoritmu je O (n 2 ), tj. kvadratická Strana 23 (celkem 25)

24 3. Řešení s lineární složitostí Řešení lze sestavit s použitím jediného cyklu s řídicí proměnnou j, která udává index posledního prvku úseku. Proměnná i udávající index prvního prvku úseku se bude měnit takto: počáteční hodnota i = 0 postupně zvětšujeme j a je-li součet úseku od i do j (sum) větší, než doposud největší součet (summax), uložíme: prvni=i, posledni=j, summax=sum vznikne-li však zvětšením j úsek, jehož součet je záporný, pak žádný další úsek začínající indexem i a končící indexem j větším, nemůže mít součet větší, než je uložen hodnotu proměnné i je proto možno nastavit na j+1 a sum na 0. Strana 24 (celkem 25)

25 static int maxsoucet(int[] a) { int maxsum = 0; int sum = 0, i = 0; for (int j=0; j<a.length; j++) { sum += a[j]; if (sum>maxsum) { maxsum = sum; prvni = i; posledni = j; else if (sum<0) { i = j + 1; sum = 0; return maxsum; Časová složitost algoritmu je O (n), tj. lineární Strana 25 (celkem 25)

Tato tematika je zpracována v Záznamy přednášek: str. 214 235 + materiál: PrikladyZobrazeniCisel.pdf

Tato tematika je zpracována v Záznamy přednášek: str. 214 235 + materiál: PrikladyZobrazeniCisel.pdf Obsah 11. přednášky: Kódování dat - terminologie Rozdělení kódů Kódování čísel Kódování znaků Tato tematika je zpracována v Záznamy přednášek: str. 214 235 + materiál: PrikladyZobrazeniCisel.pdf Jak bude

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných PJC Cvičení #2 Číselné soustavy a binární reprezentace proměnných Číselné soustavy Desítková (decimální) kdo nezná, tak...!!! Dvojková (binární) - nejjednodušší Šestnáctková (hexadecimální) - nejpoužívanější

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury Data a datové typy 1 / 28 Obsah přednášky Základní datové typy Celá čísla Reálná čísla Znaky 2 / 28 Organizace dat Výběr vhodné datvé struktry různá paměťová náročnost různá

Více

Informatika Datové formáty

Informatika Datové formáty Informatika Datové formáty Radim Farana Podklady předmětu Informatika pro akademický rok 2007/2008 Obsah Datové formáty (datové typy). Textové formáty, vlastnosti zdroje zpráv. Číselné formáty, číselné

Více

Tato tematika je zpracována v Záznamy přednášek: str

Tato tematika je zpracována v Záznamy přednášek: str Obsah 10. přednášky: Souvislosti Složitost - úvod Výpočet časové složitosti Odhad složitosti - příklady Posuzování složitosti Asymptotická složitost - odhad Přehled technik návrhů algoritmů Tato tematika

Více

Časová složitost algoritmů, řazení a vyhledávání

Časová složitost algoritmů, řazení a vyhledávání Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Časová složitost algoritmů, řazení a vyhledávání BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky Miroslav Balík Fakulta

Více

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah

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

3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače... 3. 4 Problémy s matematickými operacemi 5

3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače... 3. 4 Problémy s matematickými operacemi 5 Obsah Obsah 1 Číselné soustavy 1 2 Paměť počítače 1 2.1 Měření objemu paměti počítače................... 1 3 Jednoduché datové typy 2 3.1 Interpretace čísel v paměti počítače................. 3 4 Problémy

Více

Úvod do programování 7. hodina

Úvod do programování 7. hodina Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace

Více

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19 Algoritmy I Číselné soustavy přečíst!!! Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické

Více

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu 1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Časová složitost algoritmů

Časová složitost algoritmů Časová složitost algoritmů Důležitou vlastností algoritmu je časová náročnost výpočtů provedené podle daného algoritmu Ta se nezískává měřením doby výpočtu pro různá data, ale analýzou algoritmu, jejímž

Více

ADT/ADS = abstraktní datové typy / struktury

ADT/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íce

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly Počítačové systémy Zobrazení čísel v počítači Miroslav Flídr Počítačové systémy LS 2007-1/21- Západočeská univerzita v Plzni Vážený poziční kód Obecný předpis čísla vyjádřeného v pozičním systému: C =

Více

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění

Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double

Více

Algoritmizace řazení Bubble Sort

Algoritmizace řazení Bubble Sort Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,

Více

Čísla a číselné soustavy.

Čísla a číselné soustavy. Čísla a číselné soustavy. Polyadické soustavy. Převody mezi soustavami. Reprezentace čísel. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK.

Více

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně Čísla v plovoucířádovéčárce INP 2008 FIT VUT v Brně Čísla v pevné vs plovoucí řádové čárce Pevnářádováčárka FX bez desetinné části (8 bitů) Přímý kód: 0 až 255 Doplňkový kód: -128 až 127 aj. s desetinnou

Více

Pole a kolekce. v C#, Javě a C++

Pole a kolekce. v C#, Javě a C++ Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java

Více

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

5. přednáška - Rozklad problému na podproblémy

5. přednáška - Rozklad problému na podproblémy 5. přednáška - Rozklad problému na podproblémy Obsah přednášky: Rozklad problému na podproblémy. Rekurze. Algoritmizace (Y36ALG), Šumperk - 5. přednáška 1 Rozklad problému na podproblémy Postupný návrh

Více

5 Rekurze a zásobník. Rekurzivní volání metody

5 Rekurze a zásobník. Rekurzivní volání metody 5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení

Více

Mikroprocesorová technika (BMPT)

Mikroprocesorová technika (BMPT) Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D. Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální

Více

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4 Uložení dat v počítači Data = užitečné, zpracovávané informace Kódování (formát) dat = způsob uložení v počítači (nutno vše převést na čísla ve dvojkové soustavě) Příklady kódování dat Text každému znaku

Více

Rozklad problému na podproblémy

Rozklad problému na podproblémy Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy zadaný problém rozložíme na podproblémy pro řešení podproblémů zavedeme abstraktní příkazy s pomocí abstraktních

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

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

PB002 Základy informačních technologií

PB002 Základy informačních technologií Operační systémy 25. září 2012 Struktura přednašky 1 Číselné soustavy 2 Reprezentace čísel 3 Operační systémy historie 4 OS - základní složky 5 Procesy Číselné soustavy 1 Dle základu: dvojková, osmičková,

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) { Vyhledání extrému v poli použito v algoritmech řazení hledání maxima int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) // nikoli 0 if (Pole[i] > max) max = pole[i];

Více

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3

DobSort. Úvod do programování. DobSort Implementace 1/3. DobSort Implementace 2/3. DobSort - Příklad. DobSort Implementace 3/3 DobSort Ú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 V roce 1980 navrhl Dobosiewicz variantu (tzv. DobSort),

Více

C2115 Praktický úvod do superpočítání

C2115 Praktický úvod do superpočítání C2115 Praktický úvod do superpočítání IX. lekce Petr Kulhánek, Tomáš Bouchal kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137

Více

IB111 Úvod do programování skrze Python

IB111 Úvod do programování skrze Python Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově

Více

Architektury počítačů

Architektury počítačů Architektury počítačů IEEE754 České vysoké učení technické, Fakulta elektrotechnická A0M36APO Architektury počítačů Ver.1.20 2014 1 Fractional Binary Numbers (zlomková binární čísla / čísla v pevné řádové

Více

1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

1 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íce

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;

int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ; Pole Příklad: přečíst teploty naměřené v jednotlivých dnech týdnu, vypočítat průměrnou teplotu a pro každý den vypsat odchylku od průměrné teploty Řešení s proměnnými typu int: int t1, t2, t3, t4, t5,

Více

Číselné soustavy. Binární číselná soustava

Číselné soustavy. Binární číselná soustava 12. Číselné soustavy, binární číselná soustava. Kódování informací, binární váhový kód, kódování záporných čísel. Standardní jednoduché datové typy s pevnou a s pohyblivou řádovou tečkou. Základní strukturované

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

Fz =a z + a z +...+a z +a z =

Fz =a z + a z +...+a z +a z = Polyadické číselné soustavy - převody M-místná skupina prvků se z-stavovou abecedou umožňuje zobrazit z m čísel. Zjistíme, že stačí vhodně zvolit číslo m, abychom mohli zobrazit libovolné číslo menší než

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

Principy počítačů I Reprezentace dat

Principy počítačů I Reprezentace dat Principy počítačů I Reprezentace dat snímek 1 Principy počítačů Část III Reprezentace dat VJJ 1 snímek 2 Symbolika musí být srozumitelná pro stroj, snadno reprezentovatelná pomocí fyzikálních veličin vhodně

Více

Binární soubory (datové, typované)

Binární soubory (datové, typované) Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i

Více

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů ÚVODNÍ ZNALOSTI datové struktury správnost programů analýza algoritmů Datové struktury základní, primitivní, jednoduché datové typy: int, char,... hodnoty: celá čísla, znaky, jednoduché proměnné: int i;

Více

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

KTE / ZPE Informační technologie

KTE / ZPE Informační technologie 4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší

Více

Časová a prostorová složitost algoritmů

Časová a prostorová složitost algoritmů .. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová

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

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer 4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

Datové typy a struktury

Datové typy a struktury atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro

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í 04. Datové typy, operace, logické operátory 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 KTE / ZPE Informační technologie

3 KTE / ZPE Informační technologie 3 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Komentáře

Více

Aritmetické operace a obvody pro jejich realizaci

Aritmetické operace a obvody pro jejich realizaci Kapitola 4 Aritmetické operace a obvody pro jejich realizaci 4.1 Polyadické číselné soustavy a jejich vlastnosti Polyadické soustavy jsou určeny přirozeným číslem z, kterému se říká základ nebo báze dané

Více

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické

Java reprezentace dat, výrazy. A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Java reprezentace dat, výrazy A0B36PR1-Programování 1 Fakulta elektrotechnická České vysoké učení technické Dva základní přístupy k imperativnímu programování Strukturované procedurální Objektové V PR1

Více

Struktura a architektura počítačů (BI-SAP) 5

Struktura a architektura počítačů (BI-SAP) 5 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 5 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

Struktura a architektura počítačů (BI-SAP) 6

Struktura a architektura počítačů (BI-SAP) 6 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 6 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty. Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

Čísla, reprezentace, zjednodušené výpočty

Čísla, reprezentace, zjednodušené výpočty Čísla, reprezentace, zjednodušené výpočty Přednáška 5 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2015, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001

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

Datové typy a jejich reprezentace v počítači.

Datové typy a jejich reprezentace v počítači. Datové typy a jejich reprezentace v počítači. Celá čísla. Reálná čísla. Semilogaritmický tvar. Komplexní čísla. Řetězce. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie,

Více

V případě jazyka Java bychom abstraktní datový typ Time reprezentující čas mohli definovat pomocí třídy takto:

V 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íce

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Čísla, reprezentace, zjednodušené výpočty

Čísla, reprezentace, zjednodušené výpočty Čísla, reprezentace, zjednodušené výpočty Přednáška 4 A3B38MMP kat. měření, ČVUT - FEL, Praha J. Fischer A3B38MMP, 2014, J.Fischer, ČVUT - FEL, kat. měření 1 Čísla 4 bitová dec bin. hex. 0 0000 0 1 0001

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

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

Datové struktury. alg12 1

Datové 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íce

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují. 7 Celá čísla Pro práci s celými čísly jsou v Javě typy byte, short, int a long. Všechny jsou znaménkové (připouštějí záporné hodnoty) a všechny používají doplňkový kód. Doplňkový kód definuje, jak jsou

Více

C# konzole Podíl dvou čísel, podmínka IF

C# konzole Podíl dvou čísel, podmínka IF C# konzole Podíl dvou čísel, podmínka IF Tematická oblast Datum vytvoření 2013 Ročník 3 Stručný obsah Způsob využití Autor Kód Internetové technologie, programování Výpočet podílu v konzolové aplikaci

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

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

Více

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika amortizovaná složitost, Fibonacciho halda, počítačová aritmetika Jiří Vyskočil, Marko Genyg-Berezovskyj 2009 Amortizovaná složitost Asymptotická složitost často dostatečně nevypovídá o složitosti algoritmů,

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

Úvod do programování 10. hodina

Úvod do programování 10. hodina Úvod do programování 10. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Dvojrozměrné pole

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Algoritmizace a programování. Terminálový vstup a výstup

Algoritmizace a programování. Terminálový vstup a výstup Algoritmizace a programování Terminálový vstup a výstup Verze pro akademický rok 2012/2013 1 Výpis hodnot Terminálový vstup a výstup budeme používat jako základní způsob interakce programu s uživatelem

Více

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Reprezentace dat v informačních systémech. Jaroslav Šmarda Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,

Více

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody. Y36SAP Číselné soustavy a kódy, převody, aritmetické operace Tomáš Brabec, Miroslav Skrbek - X36SKD-cvičení. Úpravy pro SAP Hana Kubátová Osnova Poziční číselné soustavy a převody Dvojková soust., převod

Více

Řazení. Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria.

Řazení. Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria. Řazení Problém řazení: Uspořádat množinu prvků obsahujících klíč podle definovaného kriteria. Až 30% času běžného počítače. Příklad: Mějme zjistit zda jsou v posloupnosti prvků, například celých čísel,

Více

Zobrazení dat Cíl kapitoly:

Zobrazení dat Cíl kapitoly: Zobrazení dat Cíl kapitoly: Cílem této kapitoly je sezn{mit čten{ře se způsoby z{pisu dat (čísel, znaků, řetězců) v počítači. Proto jsou zde postupně vysvětleny číselné soustavy, způsoby kódov{ní české

Více

1. Téma 03 - Rozhodování

1. Téma 03 - Rozhodování 1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice

Více

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru Reprezentace reálnách čísel v počítači Reálná čísla jsou v počítači reprezentována jako čísla tvaru ±x

Více

Asymptotická složitost algoritmů

Asymptotická složitost algoritmů Semestrální projekt 1 Y14TED Asymptotická složitost algoritmů Autor: Antonín DANĚK Osnova Slide 2 Co je to složitost algoritmu? Jak se počítá složitost algoritmu? Smysl přesného výpočtu složitosti algoritmu

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal 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íce

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Abstraktní datové typy: zásobník

Abstraktní 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íce

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači 1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači 2. Reprezentace čísel v Pascalu celá čísla Typ Rozsah Formát shortint 128..127

Více

1 Nejkratší cesta grafem

1 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í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 / 38 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 2 3 4 5 6 2 / 38 2 / 38 čárkou Definition 1 Bud základ β N pevně dané číslo β 2, x bud reálné číslo s

Více