Algoritmus

Algoritmus je přesný postup, či návod, jak vyřešit daný typ úlohy.

Vlastnosti algoritmu

Každý algoritmus musí splňovat následující podmínky.

Formy zápisu algoritmů

Algoritmy se zapisují nejčastěji v následujících formách.

Slovní vyjádření
Jen jednoduché postupy, u složitějších postupů je slovní popis nepřehledný a nesrozumitelný. Příkladem algoritmů zapsaných slovně jsou kuchařské recepty, návody na ovládání přístrojů apod.

Matematický zápis
Je jednoznačný, ale ve většině případů bývá málo podrobný. Nelze jej přímo zadat do počítače.
Příkladem jsou matematické vzorce.

Počítačový program
Program je algoritmus zapsaný v jazyce, kterému počítač rozumí a umí z něho vytvořit strojový kód. Je to jediný způsob zápisu, kterému rozumí člověk i počítač.
Nevýhodou je, že bývá často málo názorný a přehledný. Rozumí mu pouze odborníci, programátoři.

Grafická forma zápisu:

Rozhodovací tabulka
Příkladem jsou například školní rozvrhy, tabulky pro výpočty čisté mzdy apod.
Jsou vhodné pokud se v úloze vyskytuje jen několik možností a jejich řešení lze stručně popsat.

Strukturogram
Úspornější znázornění algoritmu, než forma vývojového diagramu. Jde o kombinaci grafického a textového popisu.
Je tvořen obdélníkovou tabulkou, do řádků zapisujeme postup kroků symbolickou či slovní formou v pořadí, v jakém budou prováděny.
Záhlaví tabulky obsahuje název algoritmu nebo dílčího kroku. Jeho výhodou je přehlednost, lze ho použít i na složitější problémy. V něm zapsaný algoritmus se snadno převádí do programovacího jazyka.
Nevýhodou je pracnost konstrukce.

UML - Unified Modeling Language
Jazyk pro vizuální návrh a popis datových struktur, programů či systémů. Umožňuje vytvářet různé typy diagramů: diagram části programu, diagram objektů, diagram tříd...
Z těchto diagramů lze zpětně vygenerovat kostru zdrojového kódu.
Používá se při vývoji informačníh systému.

Vývojový diagram
Jde o symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmů. Používá se při vývoji software.
Jeho výhodou je názornost a přehlednost, nevýhodou je pracnost a složitost konstrukce.

Ke kreslení vývojových diagramů používáme standardní grafické symboly.

diagram

Jednotlivé symboly spojujeme čárami a spojkami. Ve vývojovém diagramu dodržujeme směr shora dolů, proto není nutné svislé čáry kreslit se šipkou. Čáru zakončujeme šipkou v případě, kdy se směr mění, např. při naznačení cyklu. Spojky použijeme v případě, že vývojový diagram nevejde na jednu stránky a pokračuje na straně další. Pak je vhodné pomocí spojek označit návaznosti.

Základní algoritmické struktury

Algoritmus je sestaven na základě tří základních struktur:

Posloupnost
Posloupnost je řada za sebou navazujících kroků, jejichž pořadí je předem pevně dáno. Posloupnost má svůj začátek a konec. Žádný krok nemůže být vynechán.
Posloupnost se v algoritmech objevuje samostatně nebo jako součást složitějších struktur (větvení, cykly).

Cykly
V algoritmech velmi často nastává situace, kdy musíme některé činnosti zopakovat. Příkaz cyklu zajišťuje opakování v něm obsaženého příkazu nebo skupiny příkazů. Má určitou strukturu – označujeme zde co se bude opakovat a za jaké podmínky se to bude opakovat. Podmínkou může být dosažení určitého počtu průchodů – jde o cyklus s předem stanoveným počtem opakování..

Větvení
Větvení použijeme tam, kde podle okolností mají být některé kroky v posloupnosti vynechány, přidány nebo nahrazeny jinými. Větvení obsahuje obvykle tří části. První částí je otázka, na kterou existuje kladná nebo záporná odpověď. Druhou částí je krok, který se provede v případě kladné odpovědi na otázku. Třetí částí je krok, který se provede v případě záporné odpovědi na otázku. První část větvení (otázka) je povinná, zbylé dvě části jsou nepovinné. Pokud však současně chybí druhý i třetí krok, ztrácí větvení smysl.

Větvení může být: