(17) Algoritmizace
Algoritmus = přesný postup, který je potřeba k vykonání určité činnosti
1. Podmínky, které algoritmus musí splňovat
- Mít začátek a konec
- Být věcně správný
- Být jednoznačný
- Být obecný
- Být opakovatelný
- Být srozumitelný
1.1. Začátek a konec algoritmu
Po všech krocích musí algoritmus dojít od začátku do konce
1.2. Věcná správnost
Důležitá podmínka => porušíme –li tuto podmínku, nemusí se chyba ihned projevit. Program zdánlivě pracuje, ale vydává chybné výsledky.
- Zlomková čára >>> lomítka
- Znak odmocnina >>> sqrt(x)
1.3. Jednoznačnost
Program musí být jednoznačný ß poskytuje špatné výsledky, nebo vykazovat syntaktickou chybu
- Výrazy se zlomky: nelze dělit nulou
- Odmocniny: výraz musí být nezáporný
1.4. Obecnost
Každý algoritmus by měl řešit obecné úlohy, pro co nejširší skupinu uživatelů. Pokud máme přesně daný algoritmus, pak pro další úlohu musíme řešit jiný algoritmus
1.5. Opakovatelnost
Měl by být kdykoliv opakovatelný a za sejných podmínek by se měl chovat stejně.
1.6. srozumitelnost
Každý algoritmus by měl být srozumitelný, nejen pro programátora, který algoritmus psal, ale i pro jiné programátory.
Pro zápis algoritmů je třeba volit některou z daných metod. Je nutné používat v dostatečné míře komentáře, u všech proměnných v algoritmu a měl by být vysvětlen jejich význam.
2. Možnosti zápisu algoritmů
- Slovní vyjádření
- Matematický zápis
- Rozhodovací tabulky
- Vývojové diagramy
- Počítačové programy
2.1. Slovní vyjádření
Slovní postupy algoritmů = kuchařky, recepty, návody na použití, instrukce, …
Použití:
- Pro skupiny uživatel bez programátorského ducha
- Komunikace programátor × uživatel
Výhody:
- Domluva i s laikem
- Jediná možnost, když nic jiného nezbývá
Nevýhody:
- Nejméně přehledná
- Nelze zaručit, zda vede k cíli (jednoznačnost, přesnou, srozumitelnost)
2.2. Matematický zápis
- Pro řešení matematických vztahů:
Výhody: Jednoznačný
Nevýhody: Bývá málo podrobný
2.3. Rozhodovací tabulky
Vhodná pro případy, kdy se v úloze vyskytuje několik možností a vlastní řešení je pro každou možnost jednoduše opsatelné
2.4. Vývojové diagramy
Symbolický algoritmický jazyk, používaný pro názorné zobrazení algoritmu,
komunikační prostředek
- Při týmové spolupráci analytiků a programátorů
- K dokumentačním účelům – přehlednější než výpis programu
3. Značky vývojových diagramů
4. Příklady
4.1. Výpočet BMI v PHP