Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba » vyvojovy-diagram-algoritmus
Microsoft Excel logo

Vývojový diagram - algoritmus

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Pokud dokážete převést úkol na algoritmus, naprogramování je již hračka., aneb proč a jak využít vývojové diagramy pro algoritmizaci.

Úvodem

Než se pustíme do programování je potřeba si daný úkol rozmyslet, jak ho budu řešit. Neboli úkol algoritmizovat. Vím, že přirozenou snahou člověka je sednout k počítači a začít programovat (ale pokud se předem připravíte, ušetříte si spoustu práce a hledání chyb).

V tomto článku je popsáno jak na algoritmus a tvorbu vývojových diagramů. Nejprve se podívejme na jednotlivé pojmy:

Algoritmus

Algoritmus přesný postup, kterým je možno vyřešit daný problém, úlohu. S pojmem algoritmu se setkáte nejčastěji při programování, kdy než se úloha naprogramuje je potřeba ji rozdělit na jednotlivé kroky. Prostě jakým postupem dojdeme k řešení daného problému.

Pak již není problém tento postup přepsat pomocí daného programovacího jazyka, například VBA v Excel.

Ono recept je zle také považovat za algoritmus, vezmi tři vejce, přidej 0,5 kg mouky, ...

Vývojový diagram

Vývojový diagram je grafické znázornění jednotlivých kroků onoho algoritmu. Ve vývojovém diagramu se pro znázornění jednotlivých kroků používá grafických symbolů, které jsou navzájem propojeny pomocí orientovaných šipek.

I ten recept by šel přepsat do vývojového diagramu, ale pro recepty textová podoba plně postačuje ;)

Proč algoritmus - vývojový diagram?

Výhody:

  • názornost pro rychlé zorientování a pochopení daného úkolu
  • přehlednost oproti psanému textu
  • možný rozpad na podalgoritmy (může se programovat odděleně)

Jak má vypadat správně navržený algoritmus

Správný algoritmus (vývojový diagram) musí být:

  • Konečný - algoritmus se nesmí zacyklit, musí být jednoznačně jasné jak se dostane na konec (nebo ohlásit chybu). Nekonečný je jen vesmír, lidská blbost, a měsíční zkušební verze TotalCommanderu ;)
  • Jednoznačný (determinovaný) - v každém kroku je jasný způsob pokračovaní, jaký bude následující krok, co bude provedeno (třeba označení chyby a konec)
  • Opakovatelný - po dalším zopakování algoritmus skončí se stejným výsledkem (náhodné číslo - vypíše náhodné číslo což je stejný výsledek i když zobrazené číslo není pokaždé stejné ;) ), předpokládám, že se zadávají stejná data
  • Správný (korektní) - zpracovaný výsledek musí být správný (mnohdy za nesprávný výsledek nemůže algoritmus, ale metoda (nulou dělit nelze).
  • Hromadný - doporučuji tvořit algoritmus (vývojový diagram) pro obecné úkoly. Budeme-li počítat obsah kruhu tak ne jen pro průměr 12,51 mm, ale i pro ostatní zadání, co když budu mít průměr 12,51 cm

Co použít k zápisu algoritmu

Nejlépe se algoritmus vyjadřuje pomocí vývojového diagramu. Lze využít předdefinovaných grafických prvků. Dle mého názoru je zápis přehledný a jasný.

Pokud tvoříte vývojové diagramy v týmu, je vhodné držet se zavedené konvence. Ať kolegové nemusí dlouze přemýšlet, co jste daným obrazcem měli na mysli.

Grafické prvky

Pro znázornění algoritmů se používají grafické značky spojené orientovanými spojnicemi. Tvary a významy značek, které budeme při tvorbě vývojových diagramů využívat jsou v následující tabulce.

Grafický prvek Popis
Začátek a konec algoritmu Začátek a konec algoritmu
Sipka - prvek algoritmu Spojovací čára. (aby se vědělo odkud kam...)
Spojovací bod - prvek algoritmu Spojovací bod. (když potřebujeme spojit více šipek)
Příkaz - prvek algoritmu Příkaz (načti soubor, ulož soubor, přečti hodnotu)
Podmínka - prvek algoritmu Podmínka. (pokud ano jdi na .... pokud ne, jdi na...)
prvek algoritmu Cyklus s určeným počtem opakování. (přečti 3 x za sebou)
prvek algoritmu Cyklus s určeným začátkem. (Pokud je hodnota rovna požadavku 3 x zopakuj)
prvek algoritmu Cyklus s určeným koncem. (opakuj dokud nedosáhneš požadované hodnoty)
Vstup - prvek algoritmu Vstup zadávaný uživatelem, nebo nám přijde s čidla. (pokud uživatel zadává rodné číslo :)
... atd.

Další značky

  • Zpracování souboru. (překódování, úpráva rozměru u fotky...)
  • Uložení souboru. (V případě že například návštěvník vloží vzkaz do návštěvní knihy, musíme jeho data uložit)
  • Zobrazení souboru. (Když už vložil data tak je můžeme zobrazit pro kontrolu...)
  • Podprogram - pro složitější algoritmy. (vytvoří se samostatný podprogram, ulehčí a zpřehlední programování...)
  • Porovnávaní, filtrace - (data v databázi)
  • Řazení. (opět vhodné pro práci s databází)
  • Vyjmout sloučit.
  • Přechod na další stránku. (pro rozsáhlejší vývojové diagramy)
  • Ruční operace.
  • Nebo

Ukázkový vývojový diagram, algoritmus

MS Excel 2010 - vylepšený algoritmus

Potřebujeme program pro výpočet plochy kruhu. Můžeme vytvořit vývojový diagram. Uživatel zadá poloměr, provede se výpočet a výsledek se zobrazí.

Záměrně je uveden jednoduchý vývojový diagram, aby se dal dále vylepšovat.


Vylepšený algoritmus

MS Excel 2010 - vylepšený algoritmus

Bude fungovat, pokud člověk zadá číslo větší než nula. Co se stane, když zadá písmeno? Proto je potřeba doplnit o kontrolu zadávaných dat.

Už se vám zdá dokonalý? Ještě se dá doplnit o možnost program ukončit, aniž uživatel zadá poloměr. Například po 5-ti pokusech se program zeptá, zda nechce raději program pro výpočet plochy kruhu opustit. Najednou z celku jednoduchého požadavku na výpočet plochy kruhu ze zadaného poloměru se stává o něco komplikovanější algoritmus než na úplném začátku.


Závěrem

Tvoříte vývojové diagramy, nebo využíváte jiné postupy před tvorbou vlastních programů? Své zkušenosti můžete zmínit v komentářích.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Míša

Přidáno: 28.05.15 13:59

Já prostě nemám slov :) konečně :) díky za to že tu neopisujete nudné příručky, ale vysvětlujete jako člověk. Já se snad nikdy u čtení o excelu tolik nenasmála jako za poslední hodinu co si tento váš web tak pročítám :) ještě jednou moooc díky :) Míša

Luke

Přidáno: 15.12.15 15:07

Zdravím, mám na Listu 1 pár údajů jako číslo zakázky, výrobek číslo atp. ve sloupci J mám seznam 5 textových hodnot přičemž jedna je Vyřešeno-Oprávněná Reklamace, pokud člověk zatrhne tuto hodnotu chtěl bych aby se celý řádek (číslo zakázky, výrobek číslo...atp) zapsal na další list věděl někdo jak na to ? (v konečné fázi úplně nejlepší by bylo aby se řádek po zvolení v seznamu hodnoty vyřešeno propsal na další list a nešel upravovat, až třeba po zvolení jiné hodnoty ze seznamu by zase šel upravit (aby např když člověk zapomene nějákou hodnotu z listu zapsat třeba číslo výrobku, tak aby musel pro opravu odkliknout jinný stav než vyřešeno kvůli integritě a kompletu dat. můj mail: Depo8@seznam.cz






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |