Toto je starší verze dokumentu!
Obsah
Algoritmizace
Algoritmus
Algoritmus je přesný popis pracovního procesu, který z měnitelných vstupních údajů dochází k žádaným výsledkům.
Vlastnosti algoritmus
- Determinovanost - v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat, pro stejné vstupní data musí mít stejný výstup
- Obecnost - algoritmus by neměl řešit jeden konkrétní problém (například 5 x 5), ale měl by nabízet obecné řešení daného problému (například X x Y)
- Finitivnost - algoritmus by měl vždy mít omezený počet kroků, po kterých skončí
- Resultativnost - musí mít nějaký výstup
- Korektnost - výstup by měl být správně
- Efektivita - děláí se na paměťovou efektivitu (náročnost na paměť) a výpočetní efektivitu (náročnost na výpočet), tyto dvě vlastnosti jsou většinou k sobě ve vztahu nepřímé úměry
Základní prvky algoritmů
Podmínky (selekce)
Umožňují větvení algoritmů. Podmínky můžou mít čtyři možné formy. První forma jsou podmínky typu if-then, když něco, tak dělej („Pokud máš řidičák, budeš řídit.“).
Druhou formou jsou podmínky typu if-else když něco, tak dělej, a pokud ne něco, tak dělej něco jiného („Když máte kuřecí kůžičky, přidejte je, pokud je nemáte použijte potravinovou fólii.“ - převzato z kuchařky Ládi Hrušky). Podmínka typu if-else může mít speciální variantu a tou je tzv. ternární operátor. Ternární operátor se používá ve chvíli, kdy se při splnění podmínky použije jedna hodnota a při jejím nesplnění hodnota druhá (zápis vypadá takto: podmínka ? hodnota při splnění : hodnota při nesplnění).
Existuje ještě jeden typ podmínky a tou je switch-case. Tato podmínka je založena na tom, že konkrétní proměnná (například stav) může nabývat několik specifických hodnot a děj algoritmu se ubíhá podle hodnoty, kterou má tato proměnná (Pokud stav nabývá hodnoty čekám čekej, pokud nabývá hodnoty načítám načítej,…).
Cykly
Umožňují vícenásobné opakování části algoritmu. Cykly můžou mít také dvě možné formy. První forma jsou cykly typu while, dokud něco tak prováděj („Dokud máš v košíku nákup, skládej ho na pult.“). Druhá forma jsou cykly typu do-while prováděj dokud něco(„Ohřívej vodu, dokud nezačne vařit.“). Hlavní rozdíl mezi cykly typu while a do-while je ten, že cyklus typu do-while proběhne minimálně jednou, zatímco cyklus while pokud nebude hned na počátku splněna podmínka nemusí.
for a for-each
Ukázka algoritmu
Vajíčka
- Vstupní údaje: počet vajec, typ tuku, šunka
- Výstup: poživatelná volská oka
- Vezmi pánev
- POKUD je typ tuku máslo, vezmi z lednice máslo
- POKUD NENÍ, vem ze skříně olej (if-else)
- Dej olej na pánev
- Přidej na pánev šunku
- DOKUD není šunka dozlatova, čekej (while)
- Přidej vejce, DOKUD tam nejsou všechny (do-while)
- DOKUD vše není hotovo, čekej (while)
- Vypni plotnu
- Jez!
Pseudokód - klasický kód