Algoritmus
Z MiS
(Rozdíly mezi verzemi)
m (→Zápis algoritmu: Přidán odkaz na Vývojové diagramy) |
m (Opravy překlepů.) |
||
Řádka 36: | Řádka 36: | ||
== Stav algoritmu == | == Stav algoritmu == | ||
*Nechť: | *Nechť: | ||
− | ** X={x1, x2, ...,xn} je | + | ** X={x1, x2, ...,xn} je množina konfiguračních proměnných |
− | ** Z={z1, z2, ...,zn} je | + | ** Z={z1, z2, ...,zn} je množina vnitřních proměnných algoritmu A řešícího I. |
*Pak každé ohodnocení s proměnných X a Z je stav algoritmu. | *Pak každé ohodnocení s proměnných X a Z je stav algoritmu. | ||
Verze z 13. 8. 2017, 13:35
Obsah |
Úloha
- Zadání, které řešíme.
- Formálním popisem vznikne problém.
Problém
- Definice problému
- vstupní proměnné
- výstupní proměnné
- konfigurační proměnné
- omezení
- optimalizační kritérium
Algoritmus
Schematický postup řešení určitého problému, který je konečný, určitý, korektní a obecný.
- Vlastnosti algoritmu
- Konečnost
- algoritmus skončí pro libovolná (korektní) data v konečném množství kroků.
- Určitost (determinovanost)
- všechny kroky algoritmu jsou přesně definovány.
- Korektnost
- algoritmus skončí pro libovolná (korektní) data správným výsledkem.
- Obecnost
- algoritmus řeší všechny úlohy daného typu.
- Někdy se jako vlastnosti uvádí také
- resultativnost — konečnost a korektnost dohromady
- Algoritmus skončí pro libovolná (korektní) data v konečném množství kroků správným výsledkem.
- elementárnost
- Základní kroky algoritmu jsou dostatečně jednoduché, aby jim rozuměl vykonávající stroj.
- Chápeme to jako součást určitosti algoritmu.
Stav algoritmu
- Nechť:
- X={x1, x2, ...,xn} je množina konfiguračních proměnných
- Z={z1, z2, ...,zn} je množina vnitřních proměnných algoritmu A řešícího I.
- Pak každé ohodnocení s proměnných X a Z je stav algoritmu.
Zápis algoritmu
Algoritmy zapisujeme:
- v přirozeném jazyce (slovně)
- pseudokódem
- používáme jazyk podobný programovacím jazykům
- vynecháváme ale některé prvky, které člověk pro pochopení nepotřebuje (složené závorky tam, kde je dostačující odsazení apod.).
- v programovacím jazyce
- pomocí vývojových diagramů
- viz série článků Vývojové diagramy na Programujte.com.
- Viz stránka Vývojové diagramy.
Algoritmizace × programování
Pojem programování v užším smyslu je synonymem kódování, tedy přepisu algoritmu do zdrojového kódu.
Pojem programování v širším slova smyslu je synonymem pro tvorbu software a zahrnuje: analýzu zadání, algoritmizaci a kódování.
Viz Tvorba software.