Az algoritmus elemi lépések egymás utáni sorozata, melyek végrehajtása egy probléma megoldásához vezet. Az egyes részlépéseknek végrehajthatónak és egyértelműnek kell lennie. Ez biztosítja, hogy tetszőlegesen sokszor végrehajtva, mindig ugyanazt a részeredményt kapjuk.
Definiálhatjuk így: Az algoritmus egyértelműen végrehajtható tevékenységek vagy utasítások sorozata, amely véges sok lépés után befejeződik.
Az algoritmus jellemző tulajdonságai:
Egy adott problémára több algoritmust is lehet készíteni, amikben törekedni lehet ezekre:
Az algoritmus készítésének lépései:
Az algoritmusok rögzítésére, leírására több módszer is létezik, és majdnem mindnek saját jelrendszere van. Legismertebb módjai a mondatszerű leírás, a folyamatábra és a struktogram.
Az algoritmusokat folyamatos szövegként is rögzíthetjük, ilyenek találhatók a szakácskönyvekben is.
Az algoritmus másik szöveggel szemléltetett formája a mondatszerű leírás, amely már bonyolultabb problémák megoldását is jól szemlélteti. Az algoritmus egymást követő lépéseit rövid és tömör mondatokkal, illetve mondatszerű szerkezetek egymásutánjával írjuk le. A folyamatot alkotó utasításokat kicsit beljebb kezdjük, ezzel áttekinthetőbbé válik a leírás.
Az algoritmus alapvető lépéstípusait meghatározott szavakkal kell megfogalmaznunk, például:
Az adatbevitel formája: Be: adat vagy felsorolás
Feltétel megadás formája:
Ha feltétel, akkor
Egyébként
Elágazás vége.
Ha egy szám abszolút értékét kell meghatározni:
Be: szám
Ha szám>0, akkor
Különben
Elágazás vége
Példák:
Be: a,b
k := 2*(a+b)
t := a*b
Eredmény: "A kerület: ", k
Eredmény: "A terület: ", t
Vége
Be: a,b
k := 2*(a+b)
t := a*b
Eredmény: "A kerület: ", k
Eredmény: "A terület: ", t
Vége
Be a,b
Ha (a>0) és (b>0), akkor
Különben
Ha vége
Vége
Az első 100 páros szám:
Minden i:=2; i<200; i:=i+2 végezd el
Minden vége
Szokás a fenti példát az alábbi módon leírni:
Ciklus i:=2-től 200-ig, lépésköz:=2
Feladat: Kódold le a fenti leírással megadott algoritmusokat!
A rekurzióról szóló részben további példákat is találsz a mondatszerű leírással megadott algoritmusokra.