Výpis řady čísel
1. VypisRady
1.1. Analýza a návrh řešení
Příklad jednoduchým způsobem využívá podprogramy (ve formě procedur) pro výpis řady čísel, jejichž těla obsahují cykly různého typu - viz Obrázek 1. V hlavním programu je také na konci spuštěn podprogram, který nevyužívá žádného cyklu. Pro oddělení číselných řad jsou použity výpisy s informací, který typ cyklu je použit při tvorbě číselné řady.
Obrázek 1: Hlavní program VypisRady pro výpis číselných řad pomocí cyklů
Pomocí cyklů jsou jednotlivá čísla (uložená v řídící proměnné cyklu i, tzv. čítače) konvertována na číslice (pomocí příkazu ToString) a umísťována do lokální textové proměnné rada, která je před prováděním cyklu inicializována prázdným textovým řetězcem. Poněvadž je vhodné jednotlivá čísla od sebe oddělit čárkou, je v cyklech umístěna podmínka, která porovnává, zda se jedná již o druhé číslo v číselné řadě (první číslo v řadě již bylo vypsáno). Pokud ano, je do textového řetězce za číslici připojena čárka, která slouží pro vizuální oddělení dalšího vypsaného čísla. Textová proměnná rada je na konci těla podprogramu vypsána.
U prvního typu cyklu s krokem v podprogramu CyklusFor je řídící proměnná cyklu inicializována uvnitř bloku cyklu. V tomto bloku je také definována konečná hodnota (horní mez) této proměnné. U cyklu s krokem je automaticky po každé iteraci (jedna smyčka cyklu) zvýšena hodnota čítače - viz Obrázek 2. Cyklus s krokem probíhá tak dlouho, dokud je řídící proměnná menší, nebo rovna konečné hodnotě, tj. větev Next. Pokud hodnota řídící proměnné překročila konečnou hodnotu, řízení programu je přepnuto do větve Done.
Obrázek 2: Podprogram CyklusFor - výpis řady čísel pomocí cyklu s krokem
U podprogramu CyklusWhile je použit cyklus s podmínkou na začátku. Před provedením cyklu je zapotřebí inicializovat jak textovou lokální proměnnou, tak i řídící proměnnou cyklu pomocí počáteční hodnoty. Na rozdíl od cyklu s krokem musíme hodnotu čítače v každé iteraci zvedat- inkrementace - viz Obrázek 3. Cyklus s podmínkou na začátku probíhá tehdy (je vykonávána větev True), pokud je splněna řídící podmínka. V našem případě, dokud je řídící proměnná menší, nebo rovna specifikované konečné hodnotě (pokud by před provedením cyklu byla hodnota řídící proměnné nastavena větší než specifikovaná konečná hodnota, cyklus by neproběhl ani jednou). Pokud hodnota řídící proměnné překročila konečnou hodnotu, řízení programu je přepnuto do větve False.
Obrázek 3: Podprogram CyklusWhile - výpis řady čísel pomocí cyklu s podmínkou na začátku
U poslední typu cyklu s podmínkou na konci v podprogramu CyklusDoWhile je z vývojového diagramu patrné, že musí proběhnout minimálně jedna iterace - viz Obrázek 4. Oproti předchozímu cyklu je tedy podmínka testována až na konci každé iterace. Cyklus s podmínkou na konci probíhá tak dlouho, dokud je splněna řídící podmínka - větev True. Pokud podmínka není splněna, řízení programu je přepnuto do větve False.
Obrázek 4: Podprogram CyklusDoWhile - výpis řady čísel pomocí cyklu s podmínkou na konci
Poslední ukázkou výpisu řady čísel je pomocí podprogramu BezCyklu, který nevyužívá žádného cyklu - viz Obrázek 5. Tento přístup byl zvolen proto, aby bylo zřejmé, jak je vhodné u opakujících se příkazů používat cykly, namísto provádění jednotlivých příkazů odděleně. V tomto případě existuje větší náchylnost k vytvoření chyby programátorem.
Obrázek 5: Podprogram BezCyklu - výpis řady čísel bez využití cyklu




