Algoritmus po krocích rozepsaný návod k nějaké činnosti 800-825 arabský matematik Muhamad ibn Musá al Chwárizmí, lat. překlad jeho knihy o početních postupech „Agoritmi dicit“ – “Tak praví Al Chwárizmí“. 30. léta 20. století znovuzavedl Alan Turing + navrhnul formální popis algoritmu (tkzv. Turingův stroj) algoritmus = matematický pojem, definice pouze opisem (podobně jako bod, množina)
Algoritmus MNOŽINA MNOŽINA VÝSTUPNÍCH VSTUPNÍCH DAT DAT ALGORITMUS transformace množiny vstupních dat na množinu výstupních dat
Vlastnosti algoritmu Elementárnost. Skládá se z konečného počtu jednoduchých (elementárních) činností (kroků). Determinovanost. V každém kroku lze rozhodnout, jak se má pokračovat (a jestli nenastal konec). Konečnost. Algoritmus vždy skončí po konečném počtu kroků. Rezultativnost. Vede ke správnému výsledku (k nějakému…). Hromadnost. Použitelný pro celou třídu podobných problémů. Opakovatelnost. Pro stejné vstupy vždy stejný výstup. Souvisí s determinovaností a rezultativností.
Sestavit návod na čištění zubů ve formě algoritmu Algoritmus - příklad Úloha: Sestavit návod na čištění zubů ve formě algoritmu Cíl: Vyčištění zubů daného člověka Prostředky: zdravá osoba (ústa, zuby, pohyblivá ruka, …) zubní kartáček, zubní pasta, sklenička na vodu, umyvadlo
Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Člověk s nevyčištěnými zuby Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Příprava kelímku a čisticího kartáčku Vlastní čištění zubů Uklizení kelímku a kartáčku Člověk s vyčištěnými zuby
Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Člověk s nevyčištěnými zuby Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Příprava kelímku a čisticího kartáčku Vytáhni kartáček a kelímek ze skříňky. Do kelímku nalej pitnou vodu. Na kartáček nanes pastu. Krouži kartáčkem postupně po všech zubech, asi 2 minuty. Vypláchni si ústa. Smyj zbytky pasty z kartáčku. Opět krouži 2 min. čistým kartáčkem po zubech. Vypláchni si ústa. Vlastní čištění zubů Umyj kartáček proudem vody. Vylij vodu z kelímku a vypláchni ho čistou vodou. Ukliď kelímek i kartáček do skříňky. Uklizení kelímku a kartáčku Člověk s vyčištěnými zuby
Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Člověk s nevyčištěnými zuby Algoritmus - příklad ALGORITMUS ČIŠTĚNÍ ZUBŮ Otevři skříňku. Je tam kelímek ? Ne – konec Ano – pokračuj Pusť kohoutkem vodu. Teče ? Natoč do ¾ kelímku vodu. Zavři kohoutkem vodu. …… Zavři skříňku. Příprava kelímku a čisticího kartáčku Vytáhni kartáček a kelímek ze skříňky. Do kelímku nalej pitnou vodu. Na kartáček nanes pastu. Krouži kartáčkem postupně po všech zubech, asi 2 minuty. Vypláchni si ústa. Smyj zbytky pasty z kartáčku. Opět krouži 2 min. čistým kartáčkem po zubech. Vypláchni si ústa. Vlastní čištění zubů Umyj kartáček proudem vody. Vylij vodu z kelímku a vypláchni ho čistou vodou. Ukliď kelímek i kartáček do skříňky. Uklizení kelímku a kartáčku Člověk s vyčištěnými zuby
Způsoby zápisu algoritmů Algoritmizace úlohy Způsoby zápisu algoritmů Slovní popis (přirozeným jazykem). Grafické znázornění (např. vývojový diagram). Programovací jazyk (např. C). Obsahuje klíčová slova, operátory, speciální znaky a identifikátory.
Algoritmizace úlohy Procesor: objekt (člověk či stroj), který vykonává algoritmem popisovanou činnost. Druh procesoru různé formulace kroků algoritmu Program: algoritmus zapsaný v nějakém programovacím jazyce.
Algoritmizace úlohy Etapy řešení problému Specifikace (vymezení) problému Analýza problému Sestavení algoritmu Kódování (zápis) algoritmu Testování algoritmu (u programů ladění)