AGK Tier 1 alapok 9. rész – Funkciók

Az előző leckében a ciklusokról beszéltünk, ebben a leckében pedig a “funkciókról” más néven metódusokról fogunk beszélni.

A funkciók vagy metódusok (ahogy tetszik) szerepe hogy a programunkban többször ismétlődő kódot tárolja és azt bármikor, bárhonnan meghívhatjuk a programunkban, így nem kell hosszú és bonyolult kódokat újra és újra leírnunk. Ami azt illeti, használtunk is már ilyen funkciókat mégpedig a Print() utasítást. Ez is egy funkció ami gyárilag rendelkezésünkre áll az AGK-ben, de saját magunk is készíthetünk hasonló funkciókat. Lássuk hogyan.

Ahogy láthatjuk a funkciónk a do-loop ciklus alatt helyezkedik el. Fontos hogy minden általunk készített funkció a fő ciklusunk alatt helyezkedjen el.

A Function utasítással jelezzük a programunknak hogy ez egy funkció lesz amit a funkció neve követ ez esetben uzenet a név után pedig zárójelek () kerülnek aminek feladata is van, a későbbiekben paramétereket, változó értékeket vihetünk majd be a funkciónknak hogy azt felhasználja. Később erre is látni fogunk egy példát. Végül az EndFunction utasítással zárjuk a funkciót. Bármi ami a Function és EndFunction közé kerül, az fog lefutni amikor meghívjuk a funkciót. Lássuk hogyan

Hogy meghívjunk egy funkciót a programunkban, nemes egyszerűséggel a funkciónk nevét kell használnunk a zárójelekkel. A funkciókat bárhol meghívhatjuk a programunkban, értelemszerűen a tartalmától függ hogy ezt a do-loop cikluson belül vagy kívül tesszük.

Említettem hogy a zárójeleknek feladata is van, most lássunk erre egy példát

Ahogy láthatjuk, amikor létrehoztam a funkciót a zárójelek között egy string változót hoztam létre majd ezt a változót használom a funkción belül a Print utasításban. Amikor pedig meghívom a funkciót, a név után a zárójelek közé írom az üzenetem amit a funkción belül a Print() utasítás használni fog. Fontos hogy mindég a zárójelek között hozzuk létre más szóval deklaráljuk a változókat amit a funkción belül szeretnénk használni.

Na persze ez nem valamit hasznos példa elvégre a funkciónk gyakorlatilag ugyan azt a szerepet tölti így be mint önmagában a Print() utasítás. Lássunk egy gyakorlatiasabb példát.

Ahogy láthatjuk itt már nem egy hanem két változóval dolgozunk amiknek az értékeit a funkción belül összeadjuk majd az összeget kiírjuk a Print() utasítással. Ám ennél egy funkció még hasznosabb is lehet

Alapértelmezettként egy funkción belül kapott érték mint például a c értéke privát, csak a funkción belül lehet hozzáférni. Ám lehetőségünk van értékeket a funkcióból visszaküldeni miután az lefutott és így az érték hozzáférhetővé válik a funkción kívül és ezt láthatjuk a fenti példában. Az EndFunction után írva a c változót, annak értékét visszaküldjük a funkció végén és így az hozzáférhetővé, olvashatóvá válik. Ez esetben a Print() utasítás zárójelei közé írva a funkciót az hozzáfér és fel is használja a c értékét hogy ki írja azt. De akár egy feltételes vizsgálatban is használhatjuk.

Ahogy láthatjuk itt azt a feltétel vizsgáljuk hogy a funkcióból visszaküldött érték egyenlő-e 5-el. Persze azt is megtehetjük hogy a funkcióból visszaküldött értéket eltároljuk egy változóban

Ahogy láthatjuk, itt a do-loop ciklus előtt elvégezzük a műveletet egyszer és az eredményt eltároljuk az eredmeny változóban, majd a változót használjuk a Print() utasításban hogy azt kiírjuk a képernyőre. Illy módon, elég csak egyszer meghívnunk a funkciót hogy a műveletet elvégezze és a későbbiekben a műveletet eredményét bárhol felhasználhatom a művelet újabb elvégzése nélkül.

Ennyi lenne amit tudni lehet a funkciókról, ha a programozás teljesen új számunkra, ezt itt és most talán egy picit sok feldolgozni de ahogy egyre többet és többet fogjuk használni, egyre összetettebb programokat fogunk írni, garantálom hogy ez mind magától értetődő lesz.

A következő leckében a címkékről fogunk beszélni.