Algoritmus
Z MiS
(Rozdíly mezi verzemi)
(→Problém: Vypuštěny typy problémů a další pojmy) |
(→Algoritmus: Přidány způsoby zápisu algoritmu a alternativní vlastnosti) |
||
Řádka 14: | Řádka 14: | ||
== Algoritmus == | == Algoritmus == | ||
− | |||
− | + | Schematický postup řešení určitého problému, který je konečný, určitý, korektní a obecný. | |
+ | |||
+ | ; Vlastnosti algoritmu | ||
#'''Konečnost''' | #'''Konečnost''' | ||
#*algoritmus skončí pro libovolná (korektní) data v konečném množství kroků. | #*algoritmus skončí pro libovolná (korektní) data v konečném množství kroků. | ||
− | #'''Určitost''' | + | #'''Určitost''' (determinovanost) |
#*všechny kroky algoritmu jsou přesně definovány. | #*všechny kroky algoritmu jsou přesně definovány. | ||
#'''Korektnost''' | #'''Korektnost''' | ||
Řádka 26: | Řádka 27: | ||
#*algoritmus řeší všechny úlohy daného typu. | #*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ť: | *Nechť: | ||
** X={x1, x2, ...,xn} je množnina konfiguračních proměnných | ** X={x1, x2, ...,xn} je množnina konfiguračních proměnných | ||
** Z={z1, z2, ...,zn} je množnia vnitřních proměnných algoritmu A řešícího I. | ** Z={z1, z2, ...,zn} je množnia 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. | ||
+ | |||
+ | == 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ů [http://programujte.com/clanek/2005080105-vyvojove-diagramy-1-dil/ Vývojové diagramy na Programujte.com]. | ||
== Algoritmizace × programování == | == Algoritmizace × programování == |
Verze z 19. 9. 2013, 11:37
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žnina konfiguračních proměnných
- Z={z1, z2, ...,zn} je množnia 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.
Algoritmizace × programování
- Algoritmizace
- tvorba algoritmu pro daný problém
- Výsledkem je algoritmus, může být zapsán vývojovým diagramem, pseudokódem nebo i slovně.
- Programování
- Zápis algoritmu v konkrétním prog. jazyce
- Výsledkem je zdrojový kód.