ALGORITMUSOK
Az algoritmus szó és fogalom a matematikából ered, de a számítástechnikai kultúra elterjedése, ültette át a köznyelvbe.
Algoritmuson vagy inkább eljáráson olyan módszert, utasítás(sorozato)t, részletes útmutatást, receptet értünk, amely valamely felmerült probléma megoldására alkalmas. Például eljárást, algoritmust, receptet lehet adni egy bútor összeszerelésére, valamilyen élelmiszer, mondjuk sajt elkészítésének módjára, a Deák térről a Lánchídhoz vezető út megtalálására, vagy éppen két egész szám legnagyobb közös osztójának kiszámolására. A számítógépes programok általában tartalmaznak algoritmusokat, ezekkel utasítják a gépet az adott feladat végrehajtására.
Algoritmus fogalma
egyértelmű, világos elemi utasítások véges sorozata, amely véges idő alatt a probléma megoldásához vezet. Az algoritmusok különböző nyelveken - programozási vagy akár természetes, emberi nyelven is - készülhetnek, de mindenképpen egyértelműnek kell lenniük minden kérdés tekintetében, és jól meghatározott bemeneti valamint kimeneti pont(ok)kal kell rendelkezniük. A számítógépes szoftverek mindegyike algoritmusok, valamint az ezekhez kapcsolódó adatok sokaságából áll.
Algoritmusok leírása
mondatszerű leírás (pszeudokód) olyamatábrával való leírás (blokkdiagram) struktogrammal való leírás
Algoritmuselemek
Beviteli, kiviteli utasítás
Be: változók Ki: változók, kifejezések
Értékadás
változó = kifejezés
Elágazások
kétirányú elágazás Ha feltétel akkor ....... egyébként ....... Ha vége többirányú elágazás Elágazás feltétel 1 ....... feltétel n ....... Elágazás vége
Ciklusok
megszámlálható Ciklus cv = ké-től vé-ig lk-zel ....... Ciklus vége elöltesztelő Ciklus míg feltétel ....... Ciklus vége hátultesztelő Ciklus ....... Ciklus amíg feltétel
Alprogramok
Eljárások Eljárás: Név (paraméterek) ....... Eljárás vége Függvények Függvény: Név (paraméterek) ....... Függvény vége
Mintapéldák
Eljárás: LNKO Be : a, b Ciklus míg a # b Ha a > b akkor a = a-b egyébként b = b-a Ha vége Ciklus vége Ki : "LNKO: ", a Eljárás vége
|
|
|
Betyár-teendők algoritmusa (Sobri Jóska és betyárjai) Állj ki az útra ! Ciklus Figyelj ! Ciklus, míg Jön kereskedő Rabold ki ! Algoritmus vége
Teafőzés algoritmusa (filteres teából) Tedd fel a vizet forrni ! Ciklus Ciklus, míg Forr a teavíz Ízesítsd ! Algoritmus vége
Bevásárlás I. algoritmusa (önkiszolgáló boltban) Végy egy kosarat/kocsit ! Ciklus Keresd meg a "következő" árut ! Ha Van ilyen, akkor Tedd a kosárba/kocsiba ! Ciklus, míg Nincs "következő" áru, amit vásárolni akartál Fizesd ki a választott termékeket ! Algoritmus vége
Bevásárlás II. algoritmusa (Peny Market) Ha van 10 vagy 20 Ft-os érméd, akkor Végy egy kocsit ! Ciklus Keresd meg a "következő" árut ! Ha Van ilyen, akkor Tedd a kocsiba ! Ciklus, míg Nincs "következő" áru, amit vásárolni akartál Fizesd ki a választott termékeket ! egyébként Menj haza ! Ha vége Algoritmus vége
Eljárás: Négyzetgyökvonás Be: Szam, p { p - pontosság, pl. 1 milliomod } x0=1 x1=Szam Ciklus, míg |x0-x1|>p x0=x1 x1=(x0+Szam/x0)/2 Ciklus vége Eljárás vége
Eljárás: PrimFelbontas (Szam) { Szam - ezt kell felbontani } i=1 Ciklus, míg Szam # 1 Ha p[i] / Szam { p[] sorozat tárolja a prímeket } akkor Szam = Szam / p[i] k[i] növelése { k[] sorozat tárolja a kitevőiket } egyébként i növelése Ha vége Ciklus vége Eljárás vége { ! rossz, ha rövid a .... }