ALGORITMUSOK, ALGORITMUS-LEÍRÓ ESZKÖZÖK 1. ALGORITMUS FOGALMA ÉS JELLEMZŐI Az algortmus egyértelműen végreajtató tevékenység-, vagy utasítássorozat, amely véges sok lépés után befejeződk. 1.1 Fajtá: - Hétköznap algortmusok (pl. png-pongozás, udvarlás stb.) - Matematka algortmusok (pl. Eukldesz algortmus, áromszög szerkesztése árom oldalból) - Számítógépes algortmusok, amelyek alapvető feladata az adatfeldolgozás. Jellemző tevékenysége: 1.2 Jellemző: o adatbekérés, kírás (I/O műveletek), o értékadás, o feltételek kértékelése, o vezérlés átadás - Egyértelműség: azonos feltételek között mndg pontosan ugyanúgy kell végreajtódna. - Végesség: az algortmusnak véges sok lépés után be kell fejeződne, különben a gyakorlatban asználatatlan. - Olyan utasításokat, tevékenységeket tartalmazzon, amelyeket a végreajtója - legyen az ember, vagy számítógép megért, és képes s végreajtan. 1.3 Az algortmusok megfogalmazásának eszköze 1.3.1 Hétköznap nyelv Egy algortmus megfogalmazásának a legtermészetesebb módja az, ogy egyszerűen a saját szavankkal elmondjuk a végreajtandó tevékenységeket. án! E megoldást alkalmazva vszonylag egyszerű tevékenységeket s osszasan el kell magyaráznunk! Ennek az oka az, ogy a étköznap nyelvben nncsenek kész kfejezésenk az algortmusokban megszokott fordulatokra. 1
1.3.2 Folyamatábra A folyamatábra az algortmusok leírásának klasszkus eszköze. A tevékenységek végreajtásának a sorrendjét különféle geometrkus alakzatok, lletve nylak segítségével atározzuk meg. A folyamatábra alapeleme: A program kezdete: START A program vége: STOP Adatbevtel, kírás: művelet Egyéb művelet: művelet Elágazás: feltétel - A folyamatábra-készítésnek többféle jelrendszere s létezk, melyek alapelemekben megegyeznek. Alegegyszerűbb jelrendszer csak kevés grafkus elemet asznál, az összetettebb algortmkus szerkezeteket pl. cklusokat ezek segítségével írja le. - A grafkus elemek alkalmazása matt folyamatábránk már rövd program esetében s terjedelmes leet, akár több oldalas s, am neézkessé teet az ábrázolást. - A nylakat körültekntően kell alkalmaznunk, neogy áttekntetetlenné váljon az algortmusunk! Ha össze-vssza nylazgatunk, akkor programunk strukturálatlan és javítatatlan lesz. 1.3.3 Stuktogram Eleme: A stuktogram egymás alá, lletve egymásba rajzolt téglalapok segítségével írja le algortmusankat. Előnye, ogy támogatja a szabályos struktúrák asználatát. 2
- A stuktogramban nncs a program kezdetét és végét jelző szmbólum, valamnt nncsenek nylak. A program végreajtása felülről lefelé aladva történk. - A stuktogram a folyamatábránál tömörebb és bztonságosabb algortmus-leíró eszköz, mvel csak szabályos struktúrák ábrázolását tesz leetővé. Példa: korábban specfkált feladat (áromszög terület) feladat megoldása: a., Folyamatábrával: START a > 0 b > 0 c > 0 a+b>c a+c>b b+c>a s : = (a+b+c)/2 T : s(s a)(s b)(s c) K: T STOP 3
b., Stuktogrammal: a > 0 b > 0 c > 0 a + b > c a + c > b b + c > a s : = (a + b + c ) / 2 T : s(s a)(s b)(s c) K: T 1.3.4 Mondatszerű leírás A mondatszerű leírás segítségével grafkus szmbólumok nélkül, magyar nyelvű, a programozás nyelvek kulcsszavara emlékeztető specáls kfejezésekkel fogalmazatjuk meg algortmusankat. Az előző példa mondatszerű leírással megoldva: Program HaromszogTerulet: Cklus Cklus amíg nem ( a > 0 ) Cklus amíg nem ( b > 0 ) Cklus amíg nem ( c > 0 ) amíg nem ( a+b>c és a+c>b és b+c>a) s:=(a+b+c)/2 T : s(s a)(s b)(s c) K: T Program vége. - A mondatszerű leírás nylvánvaló előnye, ogy nem kell grafkus jelekkel bajlódnunk az algortmus készítésekor. 4
- Megfgyelető, ogy az alkalmazott kfejezések megfelelő a legtöbb programozás nyelvben megtalálatók. Ezért az lyen módon megírt algortmust könnyű bármely programozás nyelven kódoln. - Az előző pontban leírtak matt szokás a mondatszerű leírást pszeudo-kódnak s nevezn. Látnunk kell persze, ogy ez nem gaz programozás nyelv, szen utasításkészlete lényegében az adatbekérésre, kíratásra, valamnt az algortmkus szerkezetek leírására szorítkozk. De éppen e tulajdonsága tesz alkalmassá arra, ogy segítségével tömören meg tudjuk fogalmazn programjank lényegét. 5