Algoritmizace
Úvodní sekce
V této kapitole se budeme věnovat principům logického převodu problému na kód, jeho zápisem a následným vyřešením. Tím se zabývá algoritmizace.
Co je to algoritmus?
Algoritmem rozumíme posloupnost konečného počtu přesně definovaných kroků potřebných k dosažení určitého výsledku či vyřešení určité úlohy. Příklad algoritmu pro opravu žárovky:
OpravaZarovky :
{
Pokud: Svítí žárovka
{
Skoč na: Konec
}
Pokud: Není žárovka připojena na zdroj energie
{
Připojit žárovku na zdroj energie
Pokud: Svítí žárovka
{
Skoč na: Konec
}
}
Vyměnit žárovku
Konec
}
Důležité vlastnosti algoritmu
Konečnost
Každý algoritmus musí vrátit výsledek v konečném počtu kroků.
Obecnost
Každý algoritmus by měl být univerzální. Například by cílem navržení algoritmu nemělo být vyřešit úlohu kolik je 3x4, ale implementace operace násobení pro jakýkoli vstup. Tedy pokud správně navrhneme algoritmus pro operaci násobení, pak by měl fungovat jak v případě, kdy jako vstupní data zadáme 3 a 4, ale také v případě, kdy zadáme čísla 23567 a 856.
Determinovanost (jednoznačnost výsledku)
Každý algoritmus musí vždy pro stejná vstupní data, vrátit stejná data výstupní.
Jednoznačnost (determinismus)
Každý algoritmus by měl být jednoznačný. Tedy každý jeho krok by měl být přesně a jednoznačně určen a mělo by být zcela zřejmé, co a jak který krok algoritmu provádí.
Resultativnost
Každý algoritmus by měl mít nějaký výstup, který je řešením zadaného problému pro vstupní data.
Elementárnost
Každý algoritmus by se měl skládat z konečného počtu jednoduchých kroků. Například by jeden krok neměl být “uvař vodu na kávu”, ale měl by obsahovat kroky jako vezmi konvici do ruky, otevři víko konvice atd.