Informatika Algoritmy



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

Algoritmizace prostorových úloh

Algoritmizace. 1. Úvod. Algoritmus

Základy algoritmizace

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

Algoritmizace prostorových úloh

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

APLIKOVANÁ INFORMATIKA

Algoritmizace a programování

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

2. lekce Algoritmus, cyklus Miroslav Jílek

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

Algoritmizace a programování

Program a životní cyklus programu

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

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

Úvod do programování

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

ALGORITMIZACE PROGRAMOVÁNÍ VT3/VT4

Basic256 - úvod do programování Příklady. ing. petr polách

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. dubna Filip Železný (ČVUT) Vytěžování dat 9.

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

KOPENOGRAMY A JEJICH IMPLEMENTACE V NETBEANS

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Pojem algoritmus a jeho základní vlastnosti

NPRG030 Programování I, 2018/19 1 / :03:07

Lekce 01 Úvod do algoritmizace

Úvod do simulace - 1

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

Algoritmizace a programování

IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)

Algoritmizace a programování

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Digitální učební materiál

TÉMATICKÝ OKRUH TZD, DIS a TIS

Programovací jazyky. Obsah. Proč používáme programovací jazyky? Programovací jazyk

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

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

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

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

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Operační systémy Linux, Mac OS X a jejich srovnání

Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III

Automatizační technika. Obsah. Algebra blokových schémat Vývojové diagramy. Algebra blokových schémat

Programovací jazyk Pascal

Digitální učební materiál

3. Derivace funkce Definice 3.1. Nechť f : R R je definována na nějakém okolí U(a) bodu a R. Pokud existuje limita f(a + h) f(a) lim

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

Tvorba software a algoritmizace

Algoritmus Minimax. Tomáš Kühr. Projektový seminář 1

Digitální učební materiál

Digitální učební materiál

Algoritmy I, složitost

Algoritmy. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Algoritmizace I. Ak. rok 2015/2016 vbp 1. ze 132

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

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

. Určete hodnotu neznámé x tak, aby

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

Složitosti základních operací B + stromu

Heuristické řešení problémů. Seminář APS Tomáš Müller

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

Gramatická evoluce a softwarový projekt AGE

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.

NPRG030 Programování I, 2018/19 1 / :25:37

Základy algoritmizácie a programovania

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Signálové a mezisystémové převodníky

Digitální učební materiál

XD16HT1 Semestrální práce Algoritmy ČVUT FEL obor STM - Softwarové inženýrství, kombinované studium 4. semestr

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

přirozený algoritmus seřadí prvky 1,3,2,8,9,7 a prvky 4,5,6 nechává Metody řazení se dělí:

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Ú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ů

Sada 1 - Základy programování

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Databáze, sítě a techniky programování X33DSP

Algoritmy a datové struktury

Vývojové diagramy - zápis algoritmu

Rekurentní rovnice, strukturální indukce

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

Poslední nenulová číslice faktoriálu

8. Geometrie vrací úder (sepsal Pavel Klavík)

Principy operačních systémů. Lekce 7: Souborový systém

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

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

Základy algoritmizace, návrh algoritmu

Břetislav Fajmon, UMAT FEKT, VUT Brno. Poznámka 1.1. A) první část hodiny (cca 50 minut): představení všech tří metod při řešení jednoho příkladu.

Transkript:

Informatika Algoritmy Radim Farana Podklady předmětu Informatika pro akademický rok 2010/2011 Obsah Algoritmus. Vlastnosti algoritmu. Popis algoritmu. Hodnocení algoritmů. Příklady algoritmů. Algoritmus Algoritmus je přesný předpis definující výpočtový proces vedoucí od měnitelných výchozích údajů až k žádaným (vždy správným) výsledkům. Tento předpis se skládá z jednotlivých výpočtových kroků, které jsou zapsány v určitém pořadí. Počet výpočtových kroků musí být konečný. Muhammad ibn Musa Al'Khwarizmi * 778? Baghdad 850? http://www.cs.jcu.edu.au/ftp/web /teaching/subjects/cp1030/1997 /lectures/history/algorism.html 1

Vlastnosti algoritmu determinovanost shrnuje přesnost, srozumitelnost a jednoznačnost. V každém okamžiku řešení musí být jasné, jakou operaci má algoritmus provádět. hromadnost (masovost) algoritmus musí popisovat zpracování celé skupiny příbuzných hodnot. rezultativnost algoritmus musí vždy dospět ke správnému výsledku, a to pomocí konečného počtu kroků. opakovatelnost při stejných hodnotách vstupních dat musí algoritmus vždy dospět ke stejnému výsledku. Algoritmus versus program program posloupnost příkazů, dokumentu je se výpisem programu, je chráněn autorským zákonem. algoritmus postup práce, dokumentuje se zápisem algoritmu, je možné ho patentovat. Program realizuje algoritmus (algoritmy), algoritmus je jeho nutnou součástí. Popis algoritmu Slovní popis pracovní postup, strukturovaný text, zápis pomocí grafu, pseudokód (programovací). Grafický zápis vývojový diagram, Kopenogram, NSdiagram, strukturogram. 2

Slovní popis Příklad 2.1: Z klávesnice čteme celá čísla a vypisujeme je na obrazovku doplněná o informaci, zda je číslo sudé nebo liché. Práce končí po vstupu čísla 0, které se nezpracovává. Příklad 2.3: 10 Read Cislo 20 If Cislo0 Then Goto 90 30 Write Cislo 40 If Int(Cislo/2)*2Cislo Then Goto 70 50 Write "liché" 60 Goto 10 70 Write "sudé" 80 Goto 10 90 End Příklad 2.2: 1 pře ze vstupu 2 když je číslo 0 jdi k bodu 9 3 vyšli číslo na výstup 4 když je číslo sudé, jdi k bodu 7 5 vyšli na výstup "liché" 6 jdi k bodu 1 7 vyšli na výstup "sudé" 8 jdi k bodu 1 9 konec Příklad 2.4: číslo je 0? napiš číslo konec je číslo sudé? napiš "liché" napiš "sudé" Vývojový diagram Popis algoritmů pro FORTRAN (FORmula TRANslator) IBM v r. 1954 Formalizován různými normativy (ČSN 36 9030 ) John Warner Baskus * 3. 12. 1924 Philadelphia, USA http://wwwgap.dcs.stand.ac.uk/~history/ Mathematicians/Backus.html Kopenogram Autoři: Kofránek, Pecinovský a Novák Pro výukový jazyk Karel zpracování řady čísel Ing. Rudolf Pecinovský, CSc. * 17. 7. 1954, Praha http://rudolf.pecinovsky.cz/ MUDr. Jiří Kofránek, CSc. číslo není 0 napiš číslo zpracování řady čísel jedno číslo napiš číslo číslo je sudé číslo není 0 jedno číslo číslo je sudé napiš "sudé" napiš "liché" napiš "sudé" napiš "liché" zpracování řady čísel 3

NS diagramy Autoři: Nassi a Schneiderman Úspornější zápis Stále používán Plugin do Vizio Isaac Ike Nassi číslo není nula http://www.nassi.com napiš číslo číslo je sudé Ben Shneiderman * 21. 8. 1947 http://www.cs.umd.edu/~ben/ ano ne napiš "sudé" napiš "liché" Diagramy aktivit UML Podpora paralelismu rozvětvení karoserie motor sestavení vozu spojení Strukturogramy M. A. Jackson, 1975 * 1936 Základní struktury: http://mcs.open.ac.uk/mj665/ sekvence (posloupnost operací), selekce (větvení). opakování zvláštní případ sekvence. Snadné postupné upřesňování algoritmu Jednoznačný vztah mezi daty a algoritmem Michael Anthony Jackson 4

Strukturogramy Vstupní soubor dat vstup 1 : 1 1 : 1 Algoritmus zpracování výstup čísla nula začátek tělo konec * číslo znázornění opakování čísel příprava 1 : 1 * řádek 1 : 1 piš číslo text vstup / napiš "sudé" číslo je sudé / napiš "liché" Základní struktury Pseudojazyk Vývojový diagram Kopenogram Strukturogram Programový celek (rutina, podrogram, procedura a pod.) definice název (parametry)... end název začátek. konec název horní pruh vybarven žlutě jeden celý strukturogram programový celek použití (volání) název (parametry) název(par.) název blok vybarven červeně, při rekurzívním volání žlutě název(parametry) Podmíněná, rozhodování Pseudojazyk Vývojový diagram Kopenogram Strukturogram Provedení konkrétní i popis činosti popis i popis i popis i Podmíněná (provádí se pouze pokud je splněna určitá ) blok vybarven červeně if podmíněná end if podmíněná horní pruh vybarven modře Rozhodování (pokud platí určená, provede se 1, jinak 2) if 1 else 2 end if 1 2 1 2 horní pruh vybarven modře 1 2 5

Pseudojazyk Vývojový diagram Kopenogram Strukturogram Větvení (podle hodnoty u se provádí určená ) case hodnota 1 1 case hodnota 2 hodnota1 hod.1 hod.2 hodnota1 hodnota2... 2... case else při neznámé hodnotě end case 1 hodnota n n při neznámé hodnotě činn. při činn. činn. nezn. 1 2 hodn. horní pruh vybarven modře činn.1 činn.2 při nezn. hodnotě Opakování s pevným počtem opakování for počítadlozačátek to konec step krok počítadlozačátek počet opakování # počet opakování end for počít. > konec horní a dolní pruh vybarveny zeleně počítadlopočítadlokrok Opakování Pseudojazyk Vývojový diagram Kopenogram Strukturogram Opakování s testem na začátku (dokud platí, se opakuje pokud na začátku opakování není splněna, se vůbec neprovede) while end while horní a dolní pruh vybarven zeleně * Opakování s testem na konci (opakování končí, pokud je splněna i když platí již na začátku opakování, se jednou provede) repeat until (v některých jazycích while end while ) neexistuje Zvláštní i Pseudojazyk Vývojový diagram Kopenogram Strukturogram Vstupní nebo výstupní operace Jako každá jiná popis i Jako každá jiná Jako každá jiná Přípravná Jako každá jiná popis i Jako každá jiná Jako každá jiná Spojka ( končí v jedné části algoritmu a pokračuje v jiné části) Neexistuje číslo číslo Neexistuje Neexistuje 6

Hodnocení algoritmů Složitost algoritmu (binární bitová). Sčítání dvou kbitových čísel má binární bitovou složitost úměrnou délce k. Násobení dvou k a j bitových čísel představuje Tedy celkem nejvýše (j 1) součtů (k j 1) místných čísel: (j 1)(k j 1) < j(k j) < 2kj. Zkráceně: f(n) O(g(n)), f ( n) pro konečnou limitu: lim n g n ( ) Složitost algoritmů Polynomická složitost: výpočet vyžaduje O(k d ) bitových operací sčítání d 1, násobení d 2. Nepolynomická složitost, složitost výpočtu s rostoucím n roste rychleji. n! O(nlog 22 (n)) O(2 k k 2 ). a n Realizace základních operací Sčítání (odečítání) binárně: 45 23 dekadicky: 68 23 45 23 68 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 29 6 3 81 7

Násobení Násobení postupné sčítání a rotace 45 x 11 495 1 0 1 1 0 1 x 1 0 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 2 3 4 5 01 12 0 1 3 5 dekadicky: 23.45 x x x Realizace funkcí Taylorova řada f ( x) f ( a) 40000000 f '( a) f ''( a) 10000000 1! 02! a 2 x x 1... 1! 2! 50000000 e x 40000000 50000000 ( x 1) ( x 1) 30000000 ( ) ( ) 2 20000000 x a x... 3 ( x 1) ( x 1) 10000000 0 5 10 15 20 25 30 20000000 30000000 a(k) Suma 1..k problémy kumulace chyb, výpočet e 20 : 5 ( x 1) ( x 1) ln x 2.... 3 3. 5. 5 8