Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Algoritmizace. Co je to algoritmizace? Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém.

Podobné prezentace


Prezentace na téma: "Algoritmizace. Co je to algoritmizace? Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém."— Transkript prezentace:

1 Algoritmizace

2 Co je to algoritmizace? Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém. Co je to algoritmus? Algoritmus je přesný popis, definující jistý proces, který vede od měnitelných vstupních údajů k žádaným výsledkům. Jinak řečeno - algoritmus je jednoznačný a přesný popis řešení problému.

3 Základní vlastnosti algoritmů 1)Determinovanost (předurčenost) 2)Hromadnost 3)Resultativnost (konečnost)

4 Ad 1) Determinovanost (předurčenost) Algoritmus musí být přesný, srozumitelný a jednoznačný, tj. v každém místě je jednoznačně určen další krok a pro stejná vstupní data musí poskytovat stále stejné výsledky. (Činnost algoritmu nesmí záviset na libovůli osoby ani na vlastnostech zařízení, které ho realizují).

5 Ad 2) Hromadnost Algoritmus neslouží k řešení jen jedné úlohy, ale je řešením celé skupiny úloh, které se od sebe liší jen vstupními údaji. Vstupní údaje se mohou měnit v určitých mezích.

6 Ad 3) Resultativnost (konečnost) Hledané výsledky musíme získat po konečném počtu kroků, algoritmus musí po konečném počtu kroků skončit.

7 Základní etapy algoritmizace 1)Formulace problému 2)Analýza úlohy 3)Vytvoření algoritmu 4)Sestavení programu 5)Odladění programu

8 Ad 1) Formulace úlohy V této etapě je třeba přesně formulovat požadavky, určit výchozí hodnoty, požadované výsledky, jejich formu a přesnost řešení. Tvůrce algoritmu musí dokonale rozumět řešenému problému, jinak nemůže algoritmus sestavit – v praxi programátoři spolupracují s odborníky z oblastí, pro které mají vytvořit algoritmus.

9 Ad 2) Analýza úlohy Při analýze úlohy si ověříme, zda je úloha řešitelná a uděláme si první představu o jejím řešení. Dále zjistíme, zda výchozí hodnoty jsou k řešení postačující a zda má úloha více řešení. Podle charakteru úlohy vybereme nejvhodnější a pokud možno nejjednodušší řešení.

10 Ad 3) Vytvoření algoritmu Sestavíme jednoznačný sled jednotlivých instrukcí (příkazů), které je třeba provést, aby byl úkol správně vyřešen. Algoritmus přesně popisuje postup zpracování daného úkolu, nedává však odpověď na daný problém, ale pouze postup, jak ji získat.

11 Ad 4) Sestavení programu Na základě algoritmu řešené úlohy sestavíme program (zdrojový text) v konkrétním programovacím jazyce. Ze zdrojového textu se pomocí překladače do strojového kódu vytvoří spustitelný program, případně interpretem se přeloží a spustí jednotlivé příkazy programu. Lze říci, že dobře provedená analýza úlohy a algoritmizace je velmi důležitá pro řešení daného problému a je základním předpokladem sestavení programu pro počítač.

12 Ad 5) Odladění programu Odladěním chceme odstranit chyby z programu. Nejčastější chyby jsou chyby v zápise, tzv. syntaktické – ty odhalí překladač a dělají je i zkušení programátoři. Zobrazují se ve vývojových prostředích. Horší jsou logické chyby, které vyplývají z nesprávně navrženého algoritmu, nebo chyby, které vzniknou špatným předpokladem v etapě formulace nebo analýzy úlohy – projeví se nesprávnou činností programu nebo špatnými výsledky – při odstraňování těchto chyb může pomoci ladící program (debugger) umožňující sledování aktuálního stavu proměnných a krokování. Teprve po odstranění všech druhů chyb můžeme program použít k praktickému řešení úloh.

13 Příklady slovního zápisu algoritmů Příklad 1: Algoritmus přípravy jahodového mléčného koktejlu Formulace problému Připrav jahodový mléčný koktejl. Analýza úlohy Vstupní údaje: 60 dkg jahod, 20 dkg cukr moučky, 0,5 l mléka, mixér Výstupní údaje: jahodový mléčný koktejl Analýza: aplikovat správný postup Sestavení algoritmu Slovní popis: Očistěte jahody Dejte jahody do mixéru a zasypte cukrem Přidejte mléko a rozmixuj Před podáním zchlaďte

14 Příklady slovního zápisu algoritmů Příklad 2: Algoritmus zatloukání hřebíků Formulace problému Zatlučte hřebík do desky. Analýza úlohy Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku Sestavení algoritmu Slovní popis: 1. Vezměte kladivo a hřebík 2.Přiložte hřebík k desce 3.Uhoďte kladivem na hlavičku 4.Je hřebík zatlučen? ANO - pokračujte bodem 5 NE - vraťte se na bod 3 5.Ukončete činnost a odložte kladivo

15 Příklady k zamyšlení Napište algoritmus výroby piva Napište algoritmus přechodu křižovatky, řízené semaforem Napište algoritmus na přípravu čaje Napište algoritmus na naplnění velké kádě vodou, máte-li k dispozici konev a zdroj vody. Napište algoritmus na přechod z jedné místnosti do druhé (dveře jsou zavřeny, mají zámek a vy máte svazek klíčů)

16 Vývojové diagramy Jedním z mnoha způsobů znázornění algoritmů jsou vývojové diagramy. Je to grafické znázornění logické struktury řešeného úkolu. Ve vývojových diagramech se používá několik typů značek, z nichž každé je přiřazen určitý význam. Do těchto značek se vpisují operace nebo skupiny operací, které se mají provést.

17 Mezní značka – vstup z vnějšího prostředí do programu nebo výstup z programu do vnějšího prostředí (například začátek a konec programu) Zpracování – jakýkoli druh zpracování nebo provedení definované operace za účelem transformace informace (například změna hodnoty). příklady:

18 Data – vstup nebo výstup – blok vstupu či výstupu dat, příklad načtení dat Rozhodování– rozhodovací nebo přepínací funkce, má jeden vstup, alespoň dva výstupy příklad: A=B ne ano

19 Spojka – přechod z jedné části vývojového diagramu na jinou. Používá se k přerušení spojnice a k jejímu pokračování na jiném místě V normě můžeme najít celou řadu dalších symbolů a značek

20 Zapišme nyní slovní úlohu o zatloukání hřebíku pomocí vývojového diagramu START Vezměte kladivo a hřebík Přiložte hřebík k desce Uhoďte kladivem na hlavičku ne ano Je hřebík zatlučen? KONEC

21 Příklady k zamyšlení Nakreslete vývojový diagram výroby lihu Nakreslete vývojový diagram přechodu křižovatky, řízené semaforem Nakreslete vývojový diagram na přípravu čaje Nakreslete vývojový diagram na naplnění velké kádě vodou, máte-li k dispozici konev a zdroj vody. Nakreslete vývojový diagram na přechod z jedné místnosti do druhé (dveře jsou zavřeny, mají zámek a vy máte svazek klíčů)

22 Sekvence – je posloupnost příkazů, které se postupně provedou Příklad: proveďte příkaz P1, P2 a P3 Základní algoritmické konstrukce P1 P2 P3

23 Větvení – rozdělí program do dvou větví, podle toho, jestli je nebo není splněna podmínka Příklad: jestliže platí podmínka P, proveďte příkaz P1 jinak proveďte příkaz P2 Základní algoritmické konstrukce P ano P1 ne P2

24 Větvení s prázdnou akcí– umožňuje provést příkaz jen tehdy, když je splněna podmínka Příklad: jestliže platí podmínka P, proveďte příkaz P1 Základní algoritmické konstrukce P ano P1 ne

25 Cyklus s podmínkou na začátku – když podmínka není na počátku splněna, cyklus nemusí proběhnout ani jednou. Příklad: dokud platí podmínka P, provádějte příkaz P1 Základní algoritmické konstrukce P ano P1 ne

26 Cyklus s podmínkou na konci – tento cyklus musí proběhnout aspoň jednou. Příklad: opakujte příkaz P1, až do splnění podmínky P Základní algoritmické konstrukce P ne P1 ano

27 Jednotlivé algoritmické konstrukce lze do sebe vnořovat Složené se uplatňují v praxi ve většině případů Složené algoritmické konstrukce

28 Řešený příklad Formulace problému: Vypočítejte obsah čtverce Analýza úlohy Vstupní údaje: strana a Výstupní údaje: obsah S Analýza: S = a^2 Sestavení algoritmu Slovní popis: 1. Načtěte a 2.Je a > 0? ANO - pokračujte bodem 3 NE – pokračujte na bod 5 3.S = a^2 4.Napište S a jděte na 6 5.Napiš: Délka strany musí být kladná 6.Konec

29 Řešený příklad Vývojový diagram Čti a ne ano KONEC START a>0 S=a^2 Piš S Piš a musí být kladné

30 Příklady k zamyšlení Sestavte algoritmus na součet čísel A, B, C, D a vytisknutí jejich součtu. Sestavte algoritmus, který určí, kolik ze tří čísel A, B, C je kladných. Sestavte algoritmus, který určí objem koule ze zadaného poloměru. Sestavte algoritmus, který určí, kolik ze tří čísel A, B, C je sudých.

31 Přístupy k programování V předcházejících jsme si ukázala tzv. přístup waterfull (vodopád) – postupujeme postupně od formulace programu až k jeho odladění. Existuje ale i komplexní přístup – spirála, de se všechny prvky navzájem prolínají:

32 Přístupy k programování V dalších prezentacích se dozvíme více o přístupu funkcionálním, objektovém či modulárním.

33 Děkuji za Vaši pozornost


Stáhnout ppt "Algoritmizace. Co je to algoritmizace? Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém."

Podobné prezentace


Reklamy Google