Algoritmem označujeme v intuitivním smyslu postup, který nás dovede k řešení určitého problému. Postup musí být zadán formou konečného počtu jednoznačných kroků a musí umožnit řešení celé třídy problémů stejného druhu.
(Obecné vlastnosti algoritmu : rezultativnost, determinovanost, hromadnost.)
Heuristika postup, který je schopen často nalézt řešení problému (nezaručují je však). K heuristikám se uchylujeme tehdy, jestliže zaručené řešení problému je pro jeho přílišnou náročnost ( např. časovou ) prostě nezvládnutelné.
Přístup řešení problémů jehož výsledkem jsou algoritmy využívá dva základní principy dekompozice a abstrakce
Dekomponovat znamená chápat složité objekty v podobě kolekce jednodušších. Také to znamená najít ve složitém objektu takové hierarchické uspořádání, které umožní zapsat složité akce pomocí akcí jednodušších(Ty mohou být stejným způsobem redukovány na akce ještě jednodušší). Tímto způsobem postupujeme tak dlouho, až dosáhneme natolik jednoduchých akcí, že máme prostředky k jejich řešení.
Abstrakce: koncepční zjednodušení složitého ignorováním detailů. Pojmenováním akcí adočasným ignorováním detailů je možné celý složitý problém řešit po částech. Abstrakce tedy umožňuje oddělit jádro řešeného problému od detailů.
Princip použití dekompozice a abstrakce : princip modulárního programování.(programovací jazyky jej umožňují prostřednictvím podprogramů, programových jednotek atd.)
Dekompozice i abstrakce souvisí s metodologiemi programování známými pod názvy: shora dolů a zdola nahoru. Přístup metodou shora dolů je bezpečnější, protože vychází z celkových požadavků a měl by být základní metodou při návrhu algoritmů.
Základním požadavkem na vytvářený algoritmus je požadavek strukturovanosti. To předpokládá použití standardních programových konstrukcí.
1. Blok N příkazů
Zápis v jazice JAVA
{
P1;
P2;
...
Pn;
}
2. Větvení programu
Zápis v jazyce JAVA
if(PODMÍNKA) {
BLOK PŘÍKAZŮ1;
}
else {
BLOK PŘÍKAZŮ2;
}
blok příkazů jen v kladné větvi ( analogicky nakreslení bloku příkazů do záporné větve - do větve else)
Zápis v jazyce JAVA
if (PODMÍNKA) {
. . .
BLOK PŘÍKAZŮ;
}
3. Cyklus se známým počtem opakování
Zápis v jazyce JAVA
for (i = 1; I <= n; i++) {
BLOK PŘÍKAZŮ;
}
nebo : for ( i = n; I > 0; i--)
4. Cyklus s podmínkou na začátku
Zápis v jazyce JAVA
while (PODMÍNKA) {
BLOK PŘÍKAZŮ;
}
(je-li splněna podmínka, vykoná se blok příkazů)
5. Cyklus s podmínkou na konci
Zápis v jazyce JAVA
do {
BLOK PŘÍKAZŮ;
} while (Podmínka);
(opakuje blok příkazů dokud je splněna podmínka)
6. Přiřazovací příkaz
Zápis v jazyce JAVA
Proměnná = výraz;
7. Příkaz vstupu
Zápis v jazyce JAVA
Balík .io obsahuje třídy, které slouží ke zpracování datových vstupů.
8. Příkaz výstupu
Zápis v jazyce JAVA
Balík .io obsahuje třídy, které slouží ke zpracování datových výstupů.
např. Systém.out.print(seznam proměnných);
9. Označení začátku/konce/spojky algoritmu ve vývojovém diagramu
10. Příkaz výběru z více možností
Zápis v jazyce JAVA
Switch ( výraz ) {
case 0 : System.out println(‘sudá číslice’); break;
case 2 : System.out println(‘sudá číslice’); break;
case 4 : System.out println(‘sudá číslice’); break;
case 6 : System.out println(‘sudá číslice’);break; >100);
case 8 : System.out println(‘sudá číslice’); break;
case 10: System.out println(‘číslo 10’); break;
default: System.out println(‘číslo liché nebo záporné nebo větší než 10’); break;
}
Použití příkazu Switch