(17) Algoritmizace

Osnova

Algoritmus = přesný postup, který je potřeba k vykonání určité činnosti

alg1

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ů

  1. Slovní vyjádření
  2. Matematický zápis
  3. Rozhodovací tabulky
  4. Vývojové diagramy
  5. 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ů

 

alg2

4.  Příklady

4.1.       Výpočet BMI v PHP

 

alg3

4.2.       Výpočet kvadratické rovnice s užitím algoritmických vývojových diagramů

alg4

image_pdfimage_print