340 likes | 608 Views
Algoritmy – grafický zápis. Střední odborná škola Otrokovice. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je ing. Jaroslav Šolc
E N D
Algoritmy – grafický zápis Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je ing. Jaroslav Šolc Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785, financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze. www.zlinskedumy.cz
Náplň výuky Algoritmy – grafický zápis Zápis algoritmů Co je to vývojový diagram Sestavení vývojových diagramů pomocí základních značek Používání základních algoritmických konstrukcí při tvorbě vývojových diagramů
Jak zapsat algoritmus? Algoritmus – postup, který určuje, co máme dělat, abychom vyřešili libovolnou úlohu. Algoritmus můžeme zapsat: • slovně – jen jednoduché postupy, u složitějších postupů – nepřehlednost, nesrozumitelnost. Příkladem algoritmů zapsaných slovně jsou kuchařské recepty. • graficky – při tomto zápisu se používají grafické symboly, které mají předem definovaný význam. Nejrozšířenější formy grafického zápisu jsou vývojové diagramy a strukturogramy. Algoritmus zapsaný v programovacím jazyku se nazývá program.
Slovně zapsaný algoritmus Postup při výměně žárovky stropního světla • přerušíme dodávku elektrické energie • přistavíme žebřík pod zdroj světla • vystoupáme do potřebné pozice • odstraníme kryt světla • kryt odložíme na pomocný prostředek (stůl) • opět zaujmeme potřebnou pozici na pomocném prostředku (štafle) • vyšroubujeme poškozenou žárovku ze zdroje světla • vezmeme nepoškozenou žárovku • našroubujeme novou, nepoškozenou žárovku do zdroje světla • uchopíme kryt světla • vrátíme kryt světla na jeho původní místo • odklidíme pomocné prostředky na jejich původní místo • poškozenou žárovku zlikvidujeme
Grafický zápis Vývojový diagram • Postup řešení určité úlohy lze zapsat pomocí vývojového diagramu. Ten se skládá ze značek, do kterých se zapisují jednotlivé příkazy algoritmu. Strukturogram • Strukturogram je algoritmus přepsaný do tabulkového způsobu seřazení příkazů pod sebou v návaznosti tak, aby se po přepsání do programovacího jazyka dosáhnul požadovaný výsledek.
Vývojové diagramy se skládají z různých, tvarově a obsahově odlišných značek, doplněných o krátké textové popisy a výplně. Právě grafická vyjádření jednotlivých značek v kombinaci s textovým popisem určují význam příslušného kroku v algoritmu.
Vývojové diagramy – značky Ke kreslení vývojových diagramů používáme standardní grafické symboly. Začátek Konec A:= 0 Tiskni: z U >0 Tabulka : Vývojové značky Záměna
Začátek 1 Tisk: Z Z:=0 U:=10 Konec Z:=Z+U U:=U-1 U=0 1 Vývojové diagramy – značky Jednotlivé značky spojujeme čárami a spojkami: Spojka – + Spojka Obr.1: Ukázka vývojového diagramu
Sestavení algoritmu Algoritmus je sestaven na základě tří základních struktur: • Posloupnost (sekvence) • Větvení (alternativa) • Cykly (iterace, opakování)
Posloupnost (sekvence) • Posloupnost je řada za sebou navazujících kroků, jejichž pořadí je předem pevně dáno. Posloupnost má svůj začátek a konec. Žádný krok nemůže být vynechán. Posloupnost se v algoritmech objevuje samostatně nebo jako součást složitějších struktur (větvení, cykly).
Posloupnost (sekvence) Příkaz 1 Příkaz 2 Obr. 2: Sekvence příkazů Příkaz 3
Začátek Příkaz1 Příkaz2 Konec Začátek Příkaz1 Příkaz2 Konec Vývojový diagram: Strukturogram: Obr. 3: Ukázky grafických zápisů algoritmů
Větvení (alternativa) • Větvení použijeme tam, kde podle okolností mají být některé kroky v posloupnosti vynechány, přidány nebo nahrazeny jinými. • Větvení obsahuje obvykle tři části. První částí je otázka, na kterou existuje kladná nebo záporná odpověď. Druhou částí je krok, který se provede v případě kladné odpovědi na otázku. Třetí částí je krok, který se provede v případě záporné odpovědi na otázku. První část větvení (otázka) je povinná, zbylé dvě části jsou nepovinné. Pokud však současně chybí druhý i třetí krok, ztrácí větvení smysl.
Podmínka Příkaz1 Příkaz2 Úplné větvení (alternativa) jsou zařazeny kroky pro kladnou i zápornou odpověď + - Obr. 4: Úplné větvení
podmínka Příkaz1 Neúplné větvení (alternativa) chybí krok pro kladnou nebo pro zápornou odpověď (častější je situace, kdy chybí krok pro zápornou odpověď) + Obr. 4: Neúplné větvení
Cykly (iterace) • Cykly použijeme vždy tam, kde nastane potřeba některé činnosti zopakovat. To, zda se opakování provede či nikoliv, závisí na vyhodnocení určité podmínky. • Rozlišujeme 3 typy cyklů:
1) cyklus s podmínkou na konci (s výstupní podmínkou) Postup provádění: • Nejdříve se vykonají příkazy v těle cyklu, pak se provede vyhodnocení podmínky. Má-li podmínka hodnotu FALSE, provede se návrat na začátek těla cyklu, provedou se příkazy těla cyklu a opět se vyhodnotí podmínka. Tato činnost se opakuje tak dlouho, až podmínka nabude hodnotu TRUE. Pak je cyklus ukončen. • Při této konstrukci příkazu cyklu se tělo cyklu provede vždy alespoň jednou!
Tělo cyklu Podmínka Vývojový diagram – cyklus 1 cyklus s podmínkou na konci - + Obr. 5: Cyklus 1
2) cyklus s podmínkou na začátku (se vstupní podmínkou) Postup provádění: • Nejdříve se vyhodnotí podmínka. Má-li hodnotu TRUE, provede se tělo cyklu (jeden nebo více příkazů) a pak se provede automaticky návrat k podmínce, ta se opět vyhodnotí. Pokud má podmínka opět hodnotu TRUE, celá činnost se opakuje. Cyklus je ukončen až tehdy , když podmínka nabude hodnoty FALSE. • U cyklu se vstupní podmínkou se může stát, že se tělo cyklu neprovede ani jednou! To nastane v případě, že podmínka má hodnotu FALSE již při prvním vyhodnocení.
podmínka Tělo cyklu Vývojový diagram – cyklus 2 - cyklus s podmínkou na začátku + Obr. 5: Cyklus 2
3) cyklus s řídící proměnnou • Cyklus s řídící proměnnou je poněkud zjednodušený cyklus se vstupní podmínkou. Lze jej použít pouze tehdy, jestliže počet opakování je dán explicitně a nezávisí na činnosti prováděné v těle cyklu.
Rp := 1, 2, …, n Tělo cyklu Vývojový diagram – cyklus 3 cyklus s řídící proměnnou Obr. 6: Cyklus 3
Postup provádění: Cyklus je řízen řídící proměnnou. Hodnoty řídící proměnné jsou omezeny počáteční (initial) a koncovou (final) hodnotou cyklu. Na začátku provádění cyklu se do řídící proměnné uloží počáteční hodnota. Pokud je pak hodnota řídící proměnné menší nebo rovna koncové hodnotě, pak se provedou tyto činnosti:
Postup provádění: • Vykoná se tělo cyklu. • Pak se provede návrat na začátek cyklu a automaticky se zvýší hodnota řídící proměnné o krok (obvykle 1). • Pokud je pak hodnota řídící proměnné menší nebo rovna koncové hodnotě, celá činnost se opakuje. • Cyklus končí tehdy, když řídící proměnná má hodnotu vyšší než je hodnota koncová.
Kontrolní otázky: • Uveď formy zápisu obecného algoritmu. • Vyjmenuj a nakresli ve WORDU základní značky vývojových diagramů. • Jaký je rozdíl mezi úplným a neúplným větvením ve vývojových diagramech? • Jak musí být formulována podmínka v rozhodovacím bloku? • Popiš jak pracuje cyklus s podmínkou na konci. • Problémová úloha: • Pomocí internetového vyhledávače najděte vývojový diagram použitelný ve vašem oboru. •
Seznam obrázků: Obr. 1: vlastní Obr. 2: vlastní Obr. 3: vlastní Obr. 4: vlastní Obr. 5: vlastní Obr. 6: vlastní
Seznam použité literatury: [1] TAUFER, I., HRUBINA, J., TAUFER, J.: Algoritmy a algoritmizace: vývojové diagramy, sbírka řešených příkladů. Pardubice: Univerzita Pardubice, 2001.Kopp, České Budějovice, 1997 ISBN 80-901342-2-X.