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 ....         }