====== Algoritmizace - základní definice ====== ===== Počítač ===== Počítač v dnešní době představuje programovatelný, digitální, elektronický stroj sloužící ke zpracování dat. Počítač potřebuje ke své činnosti program. Níže můžete vidět takzvané blokové schéma představující obecné složení počítače. ==== Von Neumannova koncepce počítače ==== {{ :ccpp:von-neumann.drawio.svg |}} ==== Harvardská koncepce počítače ==== {{ :ccpp:harvad.drawio.svg |}} ===== Instrukce ===== Elementární operace, kterou je schopen počítač (mikroprocesor) vykonat. ===== Program ===== Počítačový program je posloupnost instrukcí řešící daný problém/úkol. ===== Algoritmus ===== Algoritmus je posloupnost přesně definovaných kroků, které vedou k vyřešení daného problému. Alternativní definici může být: Algoritmus je podrobně popsaný postup, jak převést zadaný vstup na požadovaný výstup. ==== Vlastnosti algoritmů ==== Každý algoritmus by měl splňovat následující kritéria * Vstup - Musí být přesně definován typ a množství vstupních i výstupních dat. * Výstup - Musí mít alespoň jeden definovaný výstup. * Determinovanost - Každý krok musí být přesně a jasně definovaný – Pro jeden konkrétní vstup, musí algoritmus vrátit vždy stejný výstup. * Konečnost - Musí skončit po konečném počtu kroků. * Hromadnost - Řeší celou třídu problémů, nikoli jen jednu instanci. Jako příklad zadání algoritmu můžeme uvést nalezení maximální hodnoty, kde vstupem je konečná množina celých čísel a požadovaným výstupem celočíselná hodnota představující maximální hodnotu ze vstupní množiny. Hromadnost v tomto kontextu znamená, že algoritmus musí vydat správný výsledek pro všechny existující konečné množiny celých čísel.