doc. RNDr. Zdeněk Botek, CSc. Jednoduché cykly doc. RNDr. Zdeněk Botek, CSc.
Jednoduché cykly Příklady
Jednoduché cykly Cyklus je základní nástroj na řešení algoritmických úloh spočívajících ve vyhodnocení určité vlastnosti v posloupnosti prvků a(1), a(2), a(3),… a(n). Jádro problému spočívá v určení akce, kterou algoritmus musí učinit s každým prvkem a(i) tak, aby po zpracování všech prvků posloupnosti jsme získali potřebné výsledky. Poté je třeba dopracovat nastavení hodnot před započetím cyklu a příp. výpočty a tisky po skončení cyklu.
Příklady cyklů
Jednoduché cykly Příklad 1: Je dána posloupnost n, a(1), a(2),….a(n). Určete průměr prvků posloupnosti. Řešení: Každý prvek a(i) přičteme k dosavadnímu součtu prvků a(1),… a(i-1). Před započetím cyklu nastavíme proměnou pro výpočet součtu SUM na hodnotu nula. Po skončení cyklu vydělíme součet prvků SUM počtem prvků n. Zpracování všech prvků a(1), a(2), a(3),… a(n) realizujeme tak, že se index i nastaví na hodnotu nula před započetím tisku, před každým zpracováním prvku posloupnosti se index zvětší o jedna.
Jednoduché cykly – příklad 1
Jednoduché cykly Příklad 2: V posloupnosti n, a(1), a(2),…a(n) určete počet kladných prvků. Řešení: Jádro cyklu spočívá v testu, zda prvek a(i) je větší než nula, v tomto případě se do proměnné KLAD přičte hodnota jedna. Zbylé části algoritmu budou stejné jako v předchozím příkladu
Vývojový diagram
Jednoduché cykly Příklad 3: V posloupnosti n, a(1), a(2),…a(n) určete maximální číslo. Řešení: Jádro cyklu spočívá v testu, zda prvek a(i) je větší než dosud největší číslo průběžně uchovávané v proměnné MAX. Před započetím cyklu načteme hodnotu a(1) a tuto uložíme do proměnné MAX. Cyklus začínáme od prvku a(2).
Vývojový diagram
Jednoduché cykly Příklad 4: V posloupnosti n, a(1), a(2), … a(n) určete největší kladné číslo, průměr čísel záporných a počet prvků nulových. Řešení: Příklad je kombinací předchozích tří, každý prvek nejdříve zařadíme do větve kladných, záporných či nulových čísel, v každé větvi vykonáváme dříve známé operace pro výpočet maxima, průměru či počtu prvků.
Vývojový diagram
Jednoduché cykly Příklad 4: V posloupnosti n, a(1), a(2),…a(n) určete druhý nejmenší prvek. Řešení: Jádro cyklu spočívá ve vyhodnocení prvku a(i) s dosud nejmenším a druhým nemenším prvkem. Na začátku nastavíme hodnoty MIN1 a MIN2 prvky a(1) a a(2) dle jejich velikosti.
Vývojový diagram
Jednoduché cykly Příklad 5: V posloupnosti n,a(1), a(2) … a(n) určete délku nejdelšího řetězce. Řetězcem rozumíme souvislou podposloupnost stoupajících prvků. Řešení: U každého prvku a(i) se vyhodnotí, zda předchozí řetězec pokračuje nebo naopak, začíná nový řetězec.
Vývojový diagram
Použitá literatura [1] WIRTH, Niklaus. Algorithms data structures=programs. Englewood Cliffs, N.J.: Prentice-Hall, c1976, xvii, 366 p. ISBN 01-302-2418-9. [2] DRÓZD, Januš. Začínáme s programováním. 1.vyd. Praha: Grada, 1992, 306 s. ISBN 80-854-2441-X. [3] TÖPFER, Pavel. Algoritmy a programovací techniky. 2. vyd. Praha: Prometheus, 2007c1995, 300 s. ISBN 978-80-7196-350-9. [4] BOTEK, Zdeněk. Algoritmizace a programování. Vyd 1. Brno: Rektorát Masary-kovy university, 1990, 128 s. ISBN 80-210-0191-7.