OrgPad logo

Algoritmus a vývojové diagramy

Created by Pavel Honzík

Algoritmus a vývojové diagramy

Vývojový diagram

Snímek obrazovky 2024-02-14 v 8.28.03

V%C3%BDvojov%C3%BD diagram vy%C5%99%C3%ADzen%C3%AD %C5%BE%C3%A1dosti o informace

Slovní popis

  1. Vezmi kladivo a hřebík
  2. přilož hřebík k desce
  3. uhoď kladivem na hlavičku hřebíku
  4. je hrřebík zatlučen? 
    1. ANO - pokračuj bodem 5.
    2. NE - Vrať se na bod 3 
  5. Ukončí činnost a odlož kladivo

Vývojový diagram

Snímek obrazovky 2024-02-14 v 8.29.23

Slovní popis

  1. Dojdi až k semaforu
  2. Svítí na semaforu červená? 
    1. ANO - čekej, vrať se na bod 2
    2. NE - pokračuj bodem 3
  3. Přejdi ulici přes přechod

457px-Vyvojovy diagram zarovka

Zatloukání hřebíku

Přechod křížovatky, řízené semaforem

Algoritmus

Lidé a stroje na celém světě bez ustání provádí pracovní postupy. Ráno vstaneš a spustíš svou ranní rutinu. Obličej, zuby, hřeben, obléknout, snídaně, svačina, batoh a ven. Každý má svou, ale pro každého je ráno skoro stejné. O čem při ní přemýšlíme? Většina z nás už nepřemýšlí o tom, co bude další krok v pořadí. To jsme se naučili v první třídě. Máme ranní postupy zautomatizované. Uříznout chleba, druhý krajíc, máznout máslo, med, totéž druhý krajíc, nalít si čaj. Můžeme myslet na zajímavější a důležitější věci: co nás dnes čeká?

Vyřešit početní příklad je pro někoho složitější, než namazání chleba. Někdo ale má řešení zautomatizované. Nemusí nad ním přemýšlet, neunavuje ho. Je to rutinní, stále stejně se opakující sled jednoduchých kroků, které spolehlivě vedou k výsledku. Zbývá tak kapacita na přemýšlení o tom, co pak vlastně bude dělat s výsledkem. Podobně osvobozující efekt má kalkulačka, jen se člověk tak dobře nepocvičí a není v přímém kontaktu s tím, co se s čísly vlastně děje.

Provoz na křižovatce se na první pohled může jevit jako poměrně složitý. Je však dostatečně jednoduchý na to, aby ho bylo možno jednoznačně popsat. A pokud jde něco jednoznačně popsat, může to provádět stroj. Provoz proto může řídit semafor namísto policisty, který tak svůj intelektuální potenciál může využít efektivněji.

Zásadním předpokladem úspěšného zvládnutí záplavy informací je jejich třídění a přiřazování priorit. Někteří lidé stráví desítky minut denně rozdělováním příchozí pošty do složek, aby se tak mohli soustředit na ty nejdůležitější a zároveň nejurgentnější, a přitom mohli později snadno dohledat ty ostatní. Někteří lidé si všimnou, podle jakých kritérií vlastně zprávy posuzují, a vytvoří pro jejich třídění automatizované filtry. Mají totiž pro svůj čas lepší využití, nechtějí ho trávit tříděním pošty, které za ně snadno udělá stroj, když mu postup správně popíšou.

Tyto spolehlivé pracovní postupy, které lze provádět bez zapojení intelektu, jsou velmi užitečné a my je prozkoumáme blíž. Budeme jim říkat algoritmy.

Snímek obrazovky 2024-02-15 v 8.49.14

Příklady

Vývojové diagramy

Vývojové diagramy musí splňovat zásady, které asi očekáváš, např.:

Shrnutí vývojového diagramu

Otázky:

Algoritmus

Algoritmus je popsán konečným počtem základních instrukcí.

Tedy takových, o kterých je jasné, jak se provedou (a tedy neumožňují žádný osobitý výklad některého vykonavatele).

korektnost (správnost)

Úkol 1

Vyber si diagram a najdi jeho nedostatky a uveď, jak ty nedostatky brání snadnému provedení postupu podle diagramu. Zkus daný diagram samostatně vylepšit (především co do formy, ale třeba tě napadne i obsahové vylepšení).

Diagrams

https://app.diagrams.net

Úkol 2

  1. Nakresli vývojový diagram na přípravu čaje.
  2. Nakresli vývojový diagram na naplnění velké kádě vodou, máš-li k dispozici konev a zdroj vody.

univerzálnost (obecnost, hromadnost)

Co to je algoritmizace?

Vyjmenuj body základní definice algoritmu.

Popiš jednotlivé kroky algoritmizace a vysvětli je.

Základní definice

Další žádoucí vlastnosti

efektivita (úspornost)

1. Rezultativnost

vždy vydá nějaký výsledek

Tvorba

1. Formulace problému

2. Finitnost (konečnost)

To znamená, že někdy skončí. Jinými slovy, skončí po konečném počtu provedených kroků.

2. Analýza úlohy

3. Elementárnost (jednoduchost) popisu

3. Vytvoření algoritmu

Jednoznačný sled instrukcí, příkazů

přesný popis postupu

pouze  nám dává postup

4. Determinovanost (jednoznačnost)

Postup práce je jasně daný a vždy závisí pouze na popisu algoritmu a na vstupu („pracovní materiál“, ať už jde o vejce, nebo o informace, tedy nějaká čísla). Na průběh algoritmu nemá žádný vliv náhoda nebo svobodná vůle vykonavatele.

4. Sestavení programu

- na záklasdě algoritmui se sestavuje program

Pozn:

Determinovanost (jednoznačnost) algoritmů má zcela zásadní důsledek: Pro stejný vstup algoritmus vždy vydá stejný výstup. Nezáleží na denní době, počasí či náladě. Výsledkem sčítání dvou stejných čísel bude vždy stejný součet, výsledkem hledání cesty mezi dvěma body v mapě bude vždy stejná cesta. Uvedené vlastnosti tak společně zaručují právě tu hlavní a skvělou výhodu algoritmů, totiž že mohou být prováděny automatizovaně, bez dozoru, a přitom se můžeme spolehnout na výsledek. Uživatelé nemusí ani vědět, jak přesně fungují a co se v průběhu práce děje. Používají je jako tzv. černé skříňky (black box). Do skříňky vloží povolený vstup a na druhé straně vypadne odpovídající výstup s danými vlastnostmi. Co se děje uvnitř skříňky nemusíme vědět, což je často značné ulehčení situace.

5. Odladění programu