Úvodní díl seriálu, který je určen všem, kteří by se chtěli naučit nové algoritmy pro řešení různých problémů se kterými v programování setkají. Ačkoliv budou všechny popisované algoritmy v seriálu předváděny na příkladech v Delphi, měli by být postupy jasné i Delphi neznalým...
V tomto seriálu bych vás chtěl seznámit s možnými řešeními jednoduchých a postupně i složitějších úkolů, se kterými se můžete v běžném životě programátora setkat. Postupně vám ukážu a vysvětlím algoritmy, například vyhledávání v polích nebo řazení, ale i složitější problémy jako je generování náhodných čísel či komprimace dat.
Rozhodl jsem se algoritmy vysvětlovat na příkladech a ukázkách v Delphi. Proč zrovna Delphi? Jazyk Delphi obsahuje prvky, které podle mě umožňují algoritmy lehčeji a přirozeněji chápat i vytvářet. Například vlastnosti nebo výjimky při nepředvídatelných chybách. Tím ale neříkám, že v jiných jazycích by to také nešlo.
Seriál předpokládá alespoň základní znalosti jazyka Delphi a práce v jeho prostředí.
Na úvod bychom si měli odpovědět na základní otázku: Co je to algoritmus? Algoritmus je postup krok po kroku k vytvoření nějakého výpočtu či výsledku. Toto je však pouhá definice, kterou vlastně ani nebudete potřebovat, protože nakonec budete vymýšlet algoritmy, aniž byste si to uvědomovali. Ukázku algoritmu si však můžeme předvést na jednoduchém příkladu: někdy v prvních letech na základní škole jste jistě byli v situaci, kdy jste měli vypočítat příklad podobný tomuto:
18
36
--
??
Jak byste asi postupovali při výpočtu? Již na základní škole jste se vlastně naučili algoritmus, jak se dopátrat výsledku tohoto příkladu: nejdříve jste sečetli 8 + 6 = 14, dopsali jste 4 na konec ve výsledku a pamatovali si 1, poté jste sečetli 1 + 3 + 1 z minulého součtu = 5. To znamená, že výsledek = 54. A toto byl vlastně algoritmus (postup) při sčítání nad sebou.
Další otázkou, kterou je třeba vyřešit, je, jakou verzi Delphi byste měli používat? Je to v podstatě jedno. Příklady, které budu uvádět by měli fungovat ve všech verzích stejně (to se týká i Kylixu). Pokud byste však přece jenom měli nějaký problém, obraťte se na mě v Poradně. Měl bych tam být denně, takže byste na odpověď neměli čekat dlouho.
Myslím, že na úvod by to mohlo stačit. Příště už se vrhneme na nějaké příklady a rozebereme si algoritmus hlouběji.