Algoritmizace 2 Algoritmy struktura a zpis algoritmizace Algoritmizace

  • Slides: 26
Download presentation
Algoritmizace 2 Algoritmy – struktura a zápis

Algoritmizace 2 Algoritmy – struktura a zápis

algoritmizace • • • Algoritmizace = činnost, která se skládá z: analýzy problému návrhu

algoritmizace • • • Algoritmizace = činnost, která se skládá z: analýzy problému návrhu etap způsobu jeho řešení sestavení algoritmu v příslušném algoritmickém jazyku • zvláštní způsob algoritmizace považujeme sestavení a napsaní programu ve vybraném programovacím jazyku, kterému říkáme programování

algoritmizace • algoritmizaci zpravidla provádíme více méně zkusmo • je to podobná činnost jako

algoritmizace • algoritmizaci zpravidla provádíme více méně zkusmo • je to podobná činnost jako při řešení úsudkových příkladů • řešení bývá rozděleno do několika částí, určí se jak a v jakých návaznostech mají být jednotlivé části řešeny • nakonec se prověří, zda získané výsledky řešení vzorového příkladu odpovídají správným výsledkům • této poslední etapě říkáme simulace

algoritmizace • algoritmů pro řešení určitého problému může být několik a záleží na autorovi,

algoritmizace • algoritmů pro řešení určitého problému může být několik a záleží na autorovi, kterou variantu algoritmu zvolí • při tomto výběru je pak třeba respektovat zejména požadavky spojené s následným použitím algoritmu jako podkladu pro napsání programu • zde je obecným požadavkem, aby výsledný program byl co nejkratší a zabíral co nejmenší rozsah operační paměti počítače • takový program pak bude ve své činnosti efektivní a rychlý • výběr algoritmického jazyka záleží jak na typu řešené úlohy, tak na požadavcích zadavatele, který daný algoritmus bude používat

algoritmizace Symboly vývojových diagramů • symboly vývojových diagramů = grafické značky přesně definovaného významu

algoritmizace Symboly vývojových diagramů • symboly vývojových diagramů = grafické značky přesně definovaného významu • pro upřesnění funkce symbolu se do nich vpisují slovní nebo symbolické operace, nebo i celé skupiny operací • způsob psaní a symbolika tohoto textového zápisu nejsou normou určeny • doporučuje se však používat jednoduchý text a výpočetní vztahy s použitím matematických značek podle normy ČSN ISO 31 -11 • tím zajistíme čitelnost tohoto vývojového diagramu i čtenářům neznalým žádný programovací jazyk, případně programátorům, kteří budou daný vývojový diagram přepisovat do konkrétního programovacího jazyka

algoritmizace 1. Zpracování • symbol představující jakýkoliv druh zpracování nebo provedení definované operace nebo

algoritmizace 1. Zpracování • symbol představující jakýkoliv druh zpracování nebo provedení definované operace nebo skupiny operací - např. změna hodnoty, umístění a pod. • možnost vstupu do tohoto symbolu je z libovolné strany a těchto vstupů může být i několik • přitom to mohou být vstupy samostatné, nebo se může jednat o jednu spojnici výslednou, která vznikla spojením několika spojnic dílčích • výstup je však v zásadě vždy jenom jeden

algoritmizace 2. Rozhodování • symbol představuje rozhodovací nebo přepínací funkci • symbol má jeden

algoritmizace 2. Rozhodování • symbol představuje rozhodovací nebo přepínací funkci • symbol má jeden vstup (ten může být realizován jako výsledná spojnice) a alternativní výstupy • daný výstup je aktivován po vyhodnocení podmínek uvnitř symbolu • příslušné výsledky vyhodnocení podmínky mohou být zapsány přidruženě u spojnic reprezentujících dané cesty dalšího řešení • tato značka má obyčejně dva výstupy - obecně může mít i tři výstupy a může mít i jeden větvený výstup (viz spojnice).

algoritmizace 3. Příprava • tento symbol představuje úpravu nebo modifikaci (proto se mu někdy

algoritmizace 3. Příprava • tento symbol představuje úpravu nebo modifikaci (proto se mu někdy také říká modifikační symbol) činnosti, která mění vlastní postup následné činnosti, např. nastavení přepínače, vyjmenování hodnot, kterých nabývá proměnná cyklu, úprava indexového registru • symbol má dva vstupy, jeden sekvenční, druhý pro návrat po provedení příslušného bloku operací • dva výstupy, jeden vstupující do daného bloku operací, druhý sekvenční, který pokračuje do další části programu

algoritmizace 4. Data - vstup a výstup dat • symbol reprezentuje vstupně - výstupní

algoritmizace 4. Data - vstup a výstup dat • symbol reprezentuje vstupně - výstupní operace s daty, tj. dodání dat pro zpracování v programu nebo zpracování dat do požadované formy výstupu • druh vstupního nebo výstupního zařízení nebo nosiče dat je buď jednoznačně určen charakterem zpracovávané úlohy, nebo může být popsán slovně, nebo k tomuto symbolu je možné připojit symbol charakterizující vstupně-výstupné zařízení nebo nosič dat • v případě použití vstupně - výstupního zařízení je tento připojen k uvedenému symbolu paralelně • symbol má jeden vstup (realizovaný jako výsledná spojnice) a jeden výstup

algoritmizace 5. Ruční vstup • tento symbol představuje všechny nosiče a zařízení pro ruční

algoritmizace 5. Ruční vstup • tento symbol představuje všechny nosiče a zařízení pro ruční vstup informací jako jsou např. spřažená klávesnice počítače, světelné péro, snímač čárového kódu, různé přepínače apod. • symbol má jenom jeden výstup

algoritmizace 6. Interní paměť • symbol představuje nosič dat v případě, že paměť počítače

algoritmizace 6. Interní paměť • symbol představuje nosič dat v případě, že paměť počítače nosičem je vnitřní • data v tomto případě mohou do programu z tohoto nosiče vstupovat, nebo se mohou z programu do této paměti ukládat • symbol může tak mít jeden výstup nebo jeden vstup

algoritmizace 7. Paměť s přímým přístupem • symbol představuje nosič s přímým přístupem dat

algoritmizace 7. Paměť s přímým přístupem • symbol představuje nosič s přímým přístupem dat - magnetický disk, magnetický buben nebo pružný disk (disketa) • podobně jako u interní paměti mohou data do programu z tohoto nosiče vstupovat, nebo se mohou z programu do této paměti ukládat • symbol může mít tak jenom jeden vstup nebo jeden výstup

algoritmizace 8. Zobrazení • tento symbol představuje zařízení pro vizuální zobrazení dat, jako je

algoritmizace 8. Zobrazení • tento symbol představuje zařízení pro vizuální zobrazení dat, jako je např. monitor počítače, spřažené indikátory, signální zařízení apod. • symbol má jenom jeden vstup

algoritmizace 9. Dokument • symbol představuje zařízení pro tištěný výstup, kterým může být klasická

algoritmizace 9. Dokument • symbol představuje zařízení pro tištěný výstup, kterým může být klasická tiskárna, ale i zařízení pro tvorbu mikrofilmu, pokladní tiskárna a jiné • symbol má jenom jeden vstup

algoritmizace 10. Spojka • tento symbol představuje přechod z jedné části vývojového diagramu na

algoritmizace 10. Spojka • tento symbol představuje přechod z jedné části vývojového diagramu na jinou část • používá se k přerušení spojnice a k jejímu pokračování na jiném místě • odpovídající symboly musí stejné označení obsahovat • spojka má buď pouze jeden vstup nebo jeden výstup • spojku lze použít i pro zobrazení větvení programu pomocí přepínače

algoritmizace 11. Mezní značka • symbol představuje vstup z vnějšího prostředí do programu nebo

algoritmizace 11. Mezní značka • symbol představuje vstup z vnějšího prostředí do programu nebo výstup z programu do vnějšího prostředí např. začátek nebo konec programu, zastavení programu nebo začátek a konec samostatně zpracované části programu (např. podprogram) a pod. • podobně jako spojka může mít buď jenom jeden výstup nebo jeden vstup

algoritmizace 12. Spojnice • symbol ve tvaru svislé nebo vodorovné čáry představuje tok dat

algoritmizace 12. Spojnice • symbol ve tvaru svislé nebo vodorovné čáry představuje tok dat nebo řízení a slouží ke spojení jednotlivých symbolů ve vývojovém diagramu • standardní směr toku informací je shora dolů a zleva doprava • spojnice by měly do symbolu vstupovat shora nebo zleva a vystupovat dole nebo vpravo • je možné spojnice opatřit šipkou pro zvýšení názornosti a jasnosti vývojového diagramu • křížení spojnic se nedoporučuje • větvení spojnic se používá v případě výstupu z podmíněného symbolu

algoritmizace 13. Anotace k • symbol se používá připojení popisných komentářů nebo vysvětlujících textů

algoritmizace 13. Anotace k • symbol se používá připojení popisných komentářů nebo vysvětlujících textů • přerušovaná čára symbolu anotace je připojena k příslušnému výkonnému symbolu, nebo může být připojena k ohraničené skupině symbolů

algoritmizace Příklad: Zapište algoritmus pro výpočet an. Řešení: 1. Pro uložení vstupních hodnot zavedeme

algoritmizace Příklad: Zapište algoritmus pro výpočet an. Řešení: 1. Pro uložení vstupních hodnot zavedeme proměnné A, N 2. Výslednou hodnotu přiřadíme proměnné MOCNINA: A: B: MOCNINA:

algoritmizace 3. Vstupní podmínka: Hodnoty proměnných A, N jsou celá kladná čísla. výstupní podmínka:

algoritmizace 3. Vstupní podmínka: Hodnoty proměnných A, N jsou celá kladná čísla. výstupní podmínka: MOCNINA = AN

algoritmizace Postup řešení: 1. přiřazení vstupních hodnot a, n proměnným A a N, 2.

algoritmizace Postup řešení: 1. přiřazení vstupních hodnot a, n proměnným A a N, 2. výpočet hodnoty AN a přiřazení této hodnoty proměnné MOCNINA, 3. pomocná proměnná I – uchovává hodnotu, kolikátou mocninou má být provedeno umocňování čísla a, 4. vypsání výsledné hodnoty MOCNINA.

začátek algoritmizace Algoritmus řešení: Čti A, N MOCNINA: = 1 I: = N I>0

začátek algoritmizace Algoritmus řešení: Čti A, N MOCNINA: = 1 I: = N I>0 MOCNINA: = MOCNINA*A I: = I - 1 Piš MOCNINA konec

algoritmizace Příklad: Zapište algoritmus pro vyhledávání největší hodnoty ze tří čísel a, b, c.

algoritmizace Příklad: Zapište algoritmus pro vyhledávání největší hodnoty ze tří čísel a, b, c. Řešení: - Vstupní hodnoty budou v proměnných A, B, C. Největší hodnota v proměnné MAX. A: B: MAX: C:

algoritmizace Vstupní podmínka: Hodnoty proměnných A, B, C jsou celá čísla. Vstupní podmínka: MAX

algoritmizace Vstupní podmínka: Hodnoty proměnných A, B, C jsou celá čísla. Vstupní podmínka: MAX = největší hodnota z A, B, C.

začátek Čti A, B, C MAX: = A B>MAX + C>MAX Piš MAX konec

začátek Čti A, B, C MAX: = A B>MAX + C>MAX Piš MAX konec MAX: = B + MAX: = C

algoritmizace Úkoly: 1. Zapište algoritmus pro výpočet průměrné hodnoty ze tří čísel zadaných na

algoritmizace Úkoly: 1. Zapište algoritmus pro výpočet průměrné hodnoty ze tří čísel zadaných na vstupu. 2. Zapište algoritmus pro výpočet druhé mocniny čísla zadaného na vstupu.