Algoritmus

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(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ém, který je konečný, určitý, korektní a obecný.
 
  
=== Vlastnosti algoritmu ===
+
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.
  
=== Stav algoritmu ===
+
; 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

Problém

Definice problému

Algoritmus

Schematický postup řešení určitého problému, který je konečný, určitý, korektní a obecný.
Vlastnosti algoritmu
  1. Konečnost
    • algoritmus skončí pro libovolná (korektní) data v konečném množství kroků.
  2. Určitost (determinovanost)
    • všechny kroky algoritmu jsou přesně definovány.
  3. Korektnost
    • algoritmus skončí pro libovolná (korektní) data správným výsledkem.
  4. Obecnost
    • algoritmus řeší všechny úlohy daného typu.
Někdy se jako vlastnosti uvádí také

Stav algoritmu

Zápis algoritmu

Algoritmy zapisujeme:

Algoritmizace × programování

Algoritmizace
Programování
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje