Algoritmus. Strukturované programování. Vývojové diagramy
ALGORITMUS
Algoritmus (původ názvu: zkomolené jméno arabského učence al-Chvárizmího, který v osmém století napsal knihu o algebře) je přesný návod či postup, kterým lze vyřešit daný úkol. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému (oproti přesnému zápisu v konkrétním programovacím jazyce). Obecně se ale algoritmus může objevit v jakémkoli jiném vědeckém odvětví. Jako jistý druh algoritmu se může chápat i např. kuchyňský recept.
Základní vlastnosti algoritmů
Konečnost (rezultativnost)
Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup musí být konečný.
Determinovanost (podmíněnost)
Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat.
Obecnost (hromadnost)
Algoritmus neřeší jeden konkrétní problém (např. "jak spočítat 3×7"), ale obecnou třídu obdobných problémů (např. "jak spočítat součin dvou celých čísel").
Způsoby zápisu algoritmu
- slovní
- grafický (vývojový diagram, strukturogram, kopenogram, ...)
- program
Etapy řešení algoritmické úlohy
- Zadání
- Rozbor, analýza
- Algoritmus (vývojový diagram)
- Testování
- Přepis do programovacího jazyka (kódování)
- Ladění (chyby syntaktické, logické)
- Optimilizace (efektivita, přehlednost, testování vstupů, vzhled programu)
- Dokumentace (vznik manuálů, referenčních příruček, učebnic, ...)
Některé známé algoritmy
- Eratosthenovo síto (viz. odkaz)
- Euklidův algoritmus (viz. odkaz)
- Algoritmus de Casteljau (viz. odkaz)
- Dijkstrův algoritmus (viz. odkaz)
- Bellman-Fordův algoritmus (viz. odkaz)
STRUKTUROVANÉ PROGRAMOVÁNÍ
Strukturované programování označuje programovací techniku, kdy se implementovaný algoritmus rozděluje na dílčí úlohy, které se spojují v jeden celek (dílčí úlohy řešíme metodou shora dolů). K impleentaci v programu se používá vybraných řídících struktur, ostatní struktury nejsou povoleny - u strukturovaného programování se např. nepoužívá řídící příkaz skoku (Goto). Implementace je uvedení teoreticky stanovené myšlenky do praxe za účelem jejího dalšího použití. |
Existují tři druhy řídících struktur
Posloupnost příkazů - všechny příkazy se postupně provedou jeden po druhém
Větvení - v závislosti na splnění podmínky se určitý příkaz buď provede nebo neprovede
Cyklus - v závislosti na splnění podmínky se část programu vykoná vícekrát
Pro podrobnější informace k rozebrání jednotlivých řídících struktur viz. odkaz.
VÝVOJOVÉ DIAGRAMY
Vývojový diagram je grafické znázornění nějakého algoritmu či procesu. Vývojový diagram se používá pro znázornění jednotlivých dílčích operací symboly, které jsou navzájem propojeny pomocí orientovaných šipek. Vývojový diagram má nečastější použití v informatice a proramování.
Pokud se rozhodnete programovat nějaký program, který má být funkční, není nikdy na škodu si takový diagram vytvořit. Celkem dobře se v něm hledají chyby, můžete sledovat postup programu a případně vše poopravit.
Vývojové diagramy se skládají z grafických značek. Značky jsou různé a různě se kombinují, tím se simulují různé situace a různé příkazy, do těchto značek se pak vypisují upřesňující údaje. Nyní se podívejme na to, jak vypadají jednotlivé části vývojového diagramu.
Mezní značka (značení začátku a konce programu) | |
Vstup a výstup hodnot | |
Spojovací bod (když máme více stránek) | |
Zpracování (příkazy, úkoly, činosti,...) | |
Větvení | |
Cyklus s určeným počtem opakování | |
Cyklus s určeným začátkem | |
Cyklus s určeným koncem | |
Spojovací čára (aby se vědělo odkud kam...) | |
Podprogram |
Znázornění jednoho takového vývojového diagramu
Přeti si to!
Na závěr našeho seriálu o programování bych chtěl vyřknout otázku, na kterou by si každý účastník kurzu měl najít odpoveď před maturitou :-) : "Jaký jsi typ programátora?" Odpověď nebude pro některé nijak příjemná ;-), najdete ji na této stránce (text o programátorech začíná před půlkou).
Citace:
- http://cs.wikipedia.org/wiki/Algoritmus
- http://objekty.vse.cz/Programovani/CoJeANeniAlgoritmus
- http://cs.wikipedia.org/wiki/Strukturovan%C3%A9_programov%C3%A1n%C3%AD
- http://encyklopedie.seznam.cz/heslo/490874-vyvojovy-diagram
Zdroje:
- http://www.volny.cz/pczekaj/pocit/pascal/algoritmus.htm
- http://www.ics.muni.cz/zpravodaj/images/vol05num05.html
- http://cs.wikipedia.org/wiki/%C5%98%C3%ADd%C3%ADc%C3%AD_struktura
- http://www.sweb.cz/david.padrta/pascal/2strukt.html#odkaz2
- http://pavel.lasakovi.com/projekty/programovani/vyvojove-diagramy-uvod/
- http://programujte.com/index.php?akce=clanek&cl=2005080105-vyvojove-diagramy-1-dil
- http://programujte.com/index.php?akce=clanek&cl=1970010171-vyvojove-diagramy-2-dil