Algoritmizace
Co je to algoritmus a co je potřeba na to aby vznikl
Historie
- 9. Století
- perský matematik a astronom
- Mohammed Al-Chorezín
- V latinském přepise příjmení = Algorithmus
Nejstarší algoritmus
- Euklid: řecký matematik, 4. století p.ř.nl.
- Euklidova Geometrie (axiomy)
- Euklidův algoritmus (hledá největšího společného dělitele dvou daných čísel)
Algoritmus
Program x Programování
-
Postup, který je v počítači proveden nějakým programem Se nazívá algorithmus (program) a jeho tvorba algoritmizace (programování).
-
Algoritmus = popis procesu, který vede od měnitelných vstupních údajů k požadovaným výsledkům
Algoritmus je jednoznačný a přesnů popis řešení problému.
- 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ý.
Vstupní informace:
- vycházíme z řešení úholy
- musí splňovat vstupní podmínky
Výstupní informace:
- získáme nové informace
- výsledek realizace algoritmů
- musí splňovat výstupní podmínky
Algoritmus lze vyjádřit:
Slovně: jednotlivé kroky postupu jsou vyjádřeny větami v přirozeném jazyceGraficky: jednotlivé kroky jsou popsány grafickými značkami se slovním popisem, například pomocí tzv, vývojových diagramůMatematicky: soustavou rovnic, vztahem mezi veličinami.s: jednotlivé kroky jsou popsány instrukcemi určitého procesoru
Efektivnost algoritmu
Danou úlohu řeší více algoritmů, vybíráme efektivnější podle určitých kritérii
Časové: úloha vyřešena v kratším čase (Strojový čas tj. počet instrukcí procesoruúPaměťové: spotřeva pamětiPřehlednost, srozumitelnost: (důležité pro další vývoj a úpravy)
Každý algoritmus musí mít:
- `správnost``: výsledek, který vznikne použitím algoritmu, musí být správny
resultativnost: po konečném počtu kroků dospěje k řešení (vrátí třeba jen chybové hlášení)konečnost: algoritmus se nezacyklí, po určitém počtu kroků skončídeterminovanost: v každém kroku je jednoznačně určen způsob pokračování práce algoritmuhromadnost: znamená, že algoritmus lze použít pro řešení obecné úlohy, tj. že nepopisujeme postup jedné úlohy, ale poslouží k řešení libovolné úlohy, která patří do stejné třídy úlohopakovatelnost: algoritmus vede vždy ke stejným výsledkům, jsou-li zadána stejná data
Algoritmizace má tyto kroky:
- Formulace problému
- Analýzace úlohy
- Vytvoření algoritmu
- Sestavení programu
- Odladění programu