You are on page 1of 13

Az algoritmus fogalma

Nap, mint nap találkozunk algoritmusokkal. Szinte minden feladat,


amit végrehajtunk, algoritmizálható. Ilyen például egy ételnek az
elkészítése, egy ház felépítése. Így elmondható, hogy az élet
számtalan területén algoritmusokba „botlunk”.
Gyermekként, az algoritmusokat meg kell tanulnunk, el kell sajátítani
a különböző lépéseit. Miután az algoritmusokat megtanultuk, könnyen
végre tudjuk hajtani ezeket. Így az algoritmus végrehajtása
mechanikus lesz, melyet automatizálhatunk, és rábízhatjuk gépekre is.
Az algoritmusok könnyebbé tehetik életünket, éppen ezért nagyon
fontos az elkészítési módjuk.
Nézzük meg, hogy milyen egy algoritmus felépítése. Egy
házfelépítésénél többféle alapanyagra (tégla, cement, sóder) van
szükség. A továbbiakban ezeket az alapanyagokat adatoknak
nevezzük. Ezekkel az alapanyagokkal tudjuk elkészíteni a házat
bizonyos tevékenységek (pl. betonozás, falazás, a tetőkészítése)
segítségével, mely tevékenységeket műveleteknek vagy utasításoknak
nevezzük. Így az algoritmus adatokból és műveletekből áll.
Fontos a műveletek megfelelő sorrendje és ezt meg kell határozni.
Különbséget kell még tenni a műveletek minősége között is, vagy
másképpen a műveletek között minőségi különbséget állapíthatunk
meg. Beszélhetünk egyszerű műveletekről, amit elemi műveleteknek
(a tégla átadása a kőművesnek) hívunk, de beszélhetünk összetett
műveletekről (falazás), amelyek több részműveletből,
részalgoritmusból állnak. Algoritmusnak nevezzük a műveletek
tartalmát és sorrendjét meghatározó egyértelmű utasítási rendszert,
amely a megfelelő kiinduló adatokból a kívánt eredményre vezet.
(Egy feladat megoldására szolgáló elemi lépések véges számú
sorozata)
Tulajdonságai:
1.Mindenféleképpen végrehajtható.
2.Minden lépés vagy egy elemi utasítás, vagy további algoritmus
végrehajtását igényli.
3.Meghatározott sorrendet követ.
4.Véges számú lépésben véget ér.
Tevékenységek csoportosítása, szerkezetek

Az előbbiekből már kiderült, hogy beszélhetünk elemi vagy összetett


műveletekről. Elemi műveletek azok a tevékenységek, melyek nem
igényelnek magyarázatot és azonnal végrehajthatók, míg az összetett
műveletek elemi tevékenységekből épülnek fel. Tartalmukat mindig
meg kell magyarázni, ami azt jelenti, hogy mindig meg kell adni, hogy
milyen elemi tevékenységeket kell végrehajtani és ezeket milyen
sorrendben kell végrehajtani. Így egy összetett tevékenység valójában
egyszerűbb algoritmusokból épül fel. Az összetett műveletek esetén
megfigyelhetjük, hogy a bennük szereplő tevékenységek végrehajtási
sorrendje három kategóriába sorolható:

1.A sorrend szigorúan kötött.


2.A sorrend felcserélhető.
3.A tevékenységek egymással párhuzamosan is elvégezhetőek.

Algoritmusok leírása

Az algoritmusokat többféle módszer segítségével tudjuk leírni. A


mondatszerű leírás egy olyan leíró eszköz, amely már jól definiált
formalizmusokkal, egyértelműen adja meg az algoritmust. Lehetőség
van arra is, hogy az algoritmusokat olyan ábrák segítségével készítsük
el, melyek nyelv független formák. Ilyenek a folyamatábra, a
struktogram, és a struktúra diagram. Alkalmazhatunk kódolt formájú
leírást is, amelyhez már valamilyen programozási nyelv szükséges. A
különböző tevékenységi szerkezeteket ezeknek a leíró eszközöknek a
segítségével kell megadni.

Szerkezetek

1.Adat be és kivitel
Adatbevitel esetén a változók után célszerű megadni az adattípust, ami
a változó adattípusa lesz.
Adatkivitelnél már kifejezést adunk meg.
2.Értékadás
Értékadás esetén a kettőspont egyenlőségjelet használjuk, hiszen a
sima egyenlőségjel a programozás esetén relációt jelent. A kettőspont
egyenlő (:=) a „legyen egyenlő”-nek olvassuk.
Pédául egy változónak a := jel segítségével adhatunk értéket, vagy
rendelhetünk hozzá valamilyen kifejezést (I:= I+1, ÖSSZEG:=
ÖSSZEG+SZÁM).
3.Utasítássorozat (szekvencia)
Műveletek egymás utáni végrehajtás.
4.Feltételes elágazás (szelekció)
Az elágazást szokás feltételes elágazásnak is hívni. Beszélhetünk,
egyszerű vagy másképpen egyágú elágazásról, de megadhatunk
összetett elágazást is, amelynek további két csoportja van, a kétágú
elágazás, vagy kettőnél több, tehát a többágú elágazás
Egyágú elágazásnál egy logikai igaz feltétel esetén végrehajtódik egy
utasítás (Ha esőt jelez a meteorológia, akkor magammal viszem az
esernyőmet).
Kétágú elágazásnál van egy logikai feltétel, egy logikai igaz ág, és egy
logikai hamis ág. Ha a feltétel igaz, akkor az igaz ágon található
tevékenységeket hajtja végre, amennyiben hamis, akkor a hamis ágon
lévőket (Egy számról el akarjuk dönteni, hogy pozitív vagy nem
pozitív; ha pozitív, akkor kiírhatjuk, hogy pozitív, ha nem pozitív,
akkor kiírhatjuk azt, hogy nem pozitív).
Összetett, többágú elágazásról akkor beszélünk, ha több feltételünk
van. (Számláljuk meg, hogy egy osztályban egy dolgozatra hányan
kaptak ötöst, négyest, hármast, kettest illetve egyest). Amennyiben a
feltételek közül egyik teljesül, akkor ehhez az ághoz tartozó
utasításokat hajtja végre az algoritmus.
Az elágazásokat tehát feltétel vezérli. A feltétel lehet, igaz vagy
hamis. Az ilyen feltételeket kijelentéseknek hívjuk, az igaz-hamis
tulajdonságokat logikai értéknek. A kijelentések sokfélék lehetnek,
jelöljük őket a latin ABC nagy betűivel: X, Y, Z. Ezeket a
továbbiakban logikai változóknak nevezzük, amelyek felvehetnek igaz
vagy hamis értéket. A logikai változókat különböző logikai
műveletekkel kapcsolhatjuk össze.
Amennyiben az elágazás feltétele több kijelentésből áll, akkor ezeket a
kijelentéseket logikai műveletekkel tudjuk összekapcsolni.
Ilyen logikai művelet például az ÉS, VAGY. Egy argumentumú
művelet a NEM, amit kijelentések tagadására használjuk.
5.Ismétlési szerkezet (iteráció)
Ismétléses szerkezetekben elemi vagy összetett tevékenységek
többszöri végrehajtását adjuk meg (Egy ház falazása során a tégláknak
az egymás mellé pakolását tekinthetjük ciklusnak). Kétfajta ismétléses
szerkezetet tudunk megkülönböztetni: az elöltesztelő, illetve a
hátultesztelő.
Az elöltesztelő ciklus, akkor kezdődik el, ha a ciklus elején lévő
feltétel igaz és mindaddig végrehajtódnak a ciklusmag utasításai, amíg
a feltétel igaz. Ha a feltétel hamis, akkor befejeződik a ciklus, ezért ezt
a feltételt úgy hívjuk, hogy ciklusban maradás feltétele. Ha a feltétel
már az elején nem igaz, akkor nem indul el a ciklus, a program futása
a ciklus utáni ponton folytatódik.
6.Eljárás megadása (deklaráció)
Egy programban alkalmazhatunk olyan alprogramokat, melyek
önállóan megoldanak egy-egy részfeladatot, esetleg bizonyos
paraméterek segítségével. Ezeket a programrészeket eljárásoknak
hívjuk, amelyeket akár többször is lehet használni egy adott
programban.
Eljárás ELJÁRÁSNÉV(paraméterlista)
eljárás törzse
Eljárás vége

Algoritmust leíró eszközök

Mondatszerűleírás Alapeleme a mondat, illetve az úgynevezett


mondatszerű forma. Az algoritmust elemi műveletekre bontjuk,
melyek jól illeszkednek a programozási nyelvek szerkezetéhez.
Szerkezetek megadása
1.Input/output műveletek (be/kivitel):
Be: változók (velük szemben támasztott követelmények)
Ki: kifejezések (a kiírás formátuma: ’Szöveg’, változó, konstans,
műveletek)
2.Értékadás
változó := kifejezés
3.Utasítássorozat
Az egymás alatt található utasításokat sorrendben hajtjuk végre.
4.Elágazás
a) Egyágú
Ha feltétel, akkor utasítás
Elágazás vége
b) Kétágú
Ha feltétel, akkor utasítás1
különben utasítás2
Elágazás vége
c) Többágú Elágazás
feltétel1 esetén utasítás1
feltétel2 esetén utasítás2
... feltétel n esetén utasításn
egyéb esetben utasítás
Elágazás vége
5.Ismétlés vagy ciklus
a) Számlálós ciklus
Ismételd ciklusváltozó:= kezdő érték-től végérték-ig
ciklusmag
Ismétlés vége
b) Elöltesztelő ciklus
Ismételd, amíg feltétel
ciklusmag
Ismétlés vége
c) Hátultesztelő ciklus
Ismételd
ciklusmag
amíg feltétel
6.Eljárás
Eljárás ELJÁRÁSNÉV(paraméterlista)
utasítássorozat
Eljárás vége
7.Program
Program PROGRAMNÉV
utasítássorozat
Program vége

Folyamatábra

Az algoritmust grafikus módon ábrázolja. Az utasítások sorrendje jól


nyomon követhető. A különböző grafikus jelek közötti nyilak
megmutatják, hogy mi lesz a következő művelet. Alapszimbólumai a
téglalap, a rombusz, és az ellipszis.
1.Input/output műveletek (be/kivitel):
2.Utasítás sorozat
Az utasítások végrehajtási sorrendjét mindig a nyilak mutatják.

Struktogram

A szerkezetek egy téglalapba kerülnek, így sokkal tömörebben lehet


megadni az algoritmust. Nem tartalmaz nyilakat. Az olvasása felülről
lefelé történik, illetve balról jobbra. A strukturált
programszerkezeteket tudjuk vele megjeleníteni. Egy szerkezet akkor
strukturált, ha szekvencián, elágazáson és ismétlésen kívül más
szerkezetet nem tartalmaz.
Struktúra diagram (Jackson ábra)

Egyesíti a folyamatábra és a struktogram leírásokat. A lépésenkénti


finomítás elvét támogatja. Az elemi tevékenységeket egymás mellett
adja meg. Az utasítások balról jobbra, felülről lefelé hajtódnak végre.

You might also like