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.

Slides:



Advertisements
Podobné prezentace
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Advertisements

HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Algoritmy – struktura a zápis
Algoritmizace Vývojové diagramy.
ALGO – Algoritmizace 1. cvičení
Analýzy administrativních procesů. Analýzy ve 2 krocích Analýza dokumentů Analýza administrativních procesů.
Algoritmizace 9. Ročník.
Vývojové diagramy a základy algoritmizace
Algoritmizace a programování
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
SÍŤOVÁ ANALÝZA.
Seminář – Základy programování
Algoritmizace.
Informatika a práce s počítačem
25. ALGORITMIZACE A PROGRAMOVÁNÍ
25. ALGORITMIZACE A ZÁKLADY PROGRAMOVÁNÍ
Analýza informačního systému
Algoritmus po krocích rozepsaný návod k nějaké činnosti
Informatika I 2. přednáška
Algoritmizace úloh. Algoritmizace úloh Algoritmus? CO JE TO???
Algoritmizace a základy programování
Základy algoritmizace a programování
ALGO – Algoritmizace 2. cvičení
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
Jazyk vývojových diagramů
Obchodní akademie, Náchod, Denisovo nábřeží 673
JavaScript Podmínky, cykly a pole.
ALGORITMIZACE A PROGRAMOVÁNÍ
CYKLUS S PEVNÝM POČTEM OPAKOVÁNÍ Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Pavlína Mihačová. Obchodní akademie a Střední odborná.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Dokumentace informačního systému
MATICE ODPOVĚDNOSTI Matice odpovědnosti představuje jasné a konkrétní vymezení kompetencí osob z týmu za konkrétní projektové činnosti (úkoly), např. koordinaci.
Algoritmizace a programování Vývojové diagramy - 03
Algoritmizace a programování Algoritmizace – základní pojmy - 01
doc. RNDr. Zdeněk Botek, CSc.
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
Grafický zápis algoritmů (vývojové diagramy) Test na trojúhelník (trojúhelníková nerovnost) Maximum ze tří čísel s použitím pomocné proměnné Pravoúhlý.
doc. RNDr. Zdeněk Botek, CSc.
Automaty a gramatiky.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Algoritmy – jejich tvorba Střední odborná škola Otrokovice Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je ing. Jaroslav.
Analýza informačního systému. Podrobně zdokumentovaný cílový stav Paramentry spojené s provozem systému – Cena – Přínosy – Náklady a úspory – …
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
Příkazy cyklů. Co je to cyklus Jako cyklus označujeme opakované vykonávání určitého bloku příkazů Jako cyklus označujeme opakované vykonávání určitého.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Základy programování mikropočítačů První program v jazyce symbolických adres.
Algoritmizace a programování Algoritmy 4 – Vývojové diagramy (cykly)
ALGORITMIZACE Mgr. Milan Pastyřík IUVENTAS, s. r. o.
Algoritmizace a programování Algoritmy 1 - Úvod. Základní pojmy Počítačový program Počítačový program zápis zdrojového kódu, kterému rozumí počítač zápis.
Algoritmizace a programování Algoritmy 2 – Vývojové diagramy (sekvence)
Číslo projektuCZ.1.07/1.5.00/ Kódování materiáluvy_32_INOVACE_inf3_prg10 Označení materiáluprg10_vyvoj_diagram.pptx Název školyGymnázium Kladno.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
NÁZEV ŠKOLY:SOŠ Net Office, spol. s r.o. Orlová Lutyně
Základní pojmy v automatizační technice
Inf Cykly ve vývojových diagramech
Algoritmizace – základní pojmy
Základní pojmy v automatizační technice
ZAL – 3. cvičení 2016.
Vytváření dokumentace algoritmů
2018/6/10 Počítačový model Kateřina Růžičková.
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
© Copyright Radim Štefan
Programujeme lépe a radostněji
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Algoritmizace a programování
Výukový materiál zpracován v rámci projektu
Algoritmizace a datové struktury (14ASD)
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

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. 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.

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

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í).

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.

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.

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

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.

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í.

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.

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č.

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.

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

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

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íčů)

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.

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:

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

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

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

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íčů)

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

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

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

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

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

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

Ř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

Ř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é

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.

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í:

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.

Děkuji za Vaši pozornost