Algoritmizace 9. Ročník
Úvod 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á algoritmus a jeho tvorba algoritmizace.
Definice Algoritmus je přesný popis, definující jistý proces, který vede od měnitelných vstupních údajů k žádaným výsledkům. Jinak řečeno - algoritmus je jednoznačný a přesný popis řešení problému.
Každý algoritmus musí mít tyto vlastnosti: Determinovanost (předurčenost) - algoritmus musí být přesný, srozumitelný a jednoznačný, tj. v každém místě je jednoznačně určen další krok a pro stejná vstupní data musí poskytovat stále stejné výsledky. (Činnost algoritmu nesmí záviset na libovůli osoby ani na vlastnostech zařízení, které ho realizují).
Každý algoritmus musí mít tyto vlastnosti: Hromadnost - algoritmus neslouží k řešení jen jedné úlohy, ale je řešením celé skupiny úloh, které se od sebe liší jen vstupními údaji. Vstupní údaje se mohou měnit v určitých mezích. Resultativnost (konečnost) - hledané výsledky musíme získat po konečném počtu kroků, algoritmus musí po konečném počtu kroků skončit.
Algoritmy Některé problémy lze řešit více způsoby - různými algoritmy, které se mohou svým postupem značně lišit. Naší snahou je vybrat pro řešení problému co nejefektivnější algoritmus, který řeší problém v co nejkratším čase, je přehledný a srozumitelný. Algoritmy můžeme zapisovat slovně nebo graficky, například pomocí tzv. vývojových diagramů.
Příklady slovního zápisu algoritmů
Příklad 1: Algoritmus přípravy banánové bowle Formulace problému - Připrav banánovou bowli. Analýza úlohy Vstupní údaje: 60 dkg banánů, 20 dkg práškového cukru, 4 dcl vína, 0,25 l sifonu, 2 lžíce rumu Výstupní údaje: banánová bowle Analýza: aplikovat správný postup Sestavení algoritmu Slovní popis: Oloupej banány Rozkrájej je na tenká kolečka Dej banány do mísy a zasyp cukrem Přidej víno a nechej zchladit Před podáním přidej rum a sifon
Příklad 2: Algoritmus zatloukání hřebíků Formulace problému - Zatluč hřebík do desky. Analýza úlohy Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku Sestavení algoritmu Slovní popis: Vezmi kladivo a hřebík Přilož hřebík k desce Uhoď kladivem na hlavičku Je hřebík zatlučen? ANO - pokračuj bodem 5 NE - vrať se na bod 3 Ukonči činnost a odlož kladivo
Příklad 3: Algoritmus přechodu křižovatky, řízené semaforem Formulace problému - Přejdi na druhou stranu ulice. Analýza úlohy Vstupní údaje: přechod, semafor Výstupní údaje: pozice na druhé straně ulice Analýza: přes přechod se nechodí na červenou Sestavení algoritmu Slovní popis: Dojdi až k semaforu Svítí na semaforu červená? ANO - čekej, vrať se na bod 2 NE - pokračuj bodem 3 Přejdi přes přechod
Příklady k procvičení: Napiš algoritmus na přípravu čaje Napiš algoritmus na naplnění velké kádě vodou, máš-li k dispozici konev a zdroj vody. Napiš algoritmus na přechod z jedné místnosti do druhé (dveře jsou zavřeny, mají zámek a ty máš svazek klíčů).
Vývojové diagramy Jedním z mnoha způsobů znázornění algoritmů jsou vývojové diagramy. Je to grafické znázornění logické struktury řešeného úkolu. Ve vývojových diagramech se používá několik typů značek, z nichž každé je přiřazen určitý význam. Do těchto značek se vpisují operace nebo skupiny operací, které se mají provést.
Vývojové diagramy 1) začátek algoritmu 2) konec algoritmu 3) blok zpracování (do bloku zapisujeme akce, které se mají provést) 4) blok rozhodování (do bloku zapisujeme podmínku) 5) blok vstupu nebo výstupu 6) blok pro cyklus se známým počtem průchodů 7) spojka (pro rozsáhlé diagramy, rozdělené do několika částí)
Vývojové diagramy k slovně zapsaným algoritmům Příklad 2: Algoritmus zatloukání hřebíků Slovní popis: Vezmi kladivo a hřebík Přilož hřebík k desce Uhoď kladivem na hlavičku Je hřebík zatlučen? ANO - pokračuj bodem 5 NE - vrať se na bod 3 Ukonči činnost a odlož kladivo
Vývojové diagramy k slovně zapsaným algoritmům Příklad 3: Algoritmus přechodu křižovatky, řízené semaforem Slovní popis: Dojdi až k semaforu Svítí na semaforu červená? ANO - čekej, vrať se na bod 2 NE - pokračuj bodem 3 Přejdi ulici přes přechod
Zdroje http://www.spsemoh.cz/vyuka/algor/index.htm Další možné zdroje: http://algoritmizace.asp2.cz/algo/index_egen.html http://dragon.web2001.cz/ivt/algoritmizace/01.htm http://www.ms.mff.cuni.cz/~forstova/priroL/priro.html.cs