Matekóráról biztosan ragadt rád valami. Hozzárendelés, egyértelmű hozzárendelés, f(x), x->|x+2|, ilyesmire gondolok. Ez persze jó, de akkor mi is az a függvény? Mondd el úgy, hogy a tízéves kistesód is értse. Ha így el tudod mondani, akkor tényleg érted, és ha érted, akkor a táblázatkezelési feladatoknál mindig, de sokszor az adatbázis-kezelésnél is könnyebb az életed. Ezek meg benne vannak a középszintű informatika érettségiben. Sőt, az emelt szintű informatika érettségiben is. Sőt, ott van programozás is, és ott sem épp haszontalan, ha tényleg érted, hogy mijaza függvény. Szóval, mondd el úgy, hogy a tízéves kistesód is értse.
"-A tízéves kistesóm? De hát ő még kicsi ehhez!"
Ehh. A függvények elsős anyag. Igen, az általános iskolában. De. Tényleg. (Na jó, lehet, hogy másodikos, de szerintem elsős.) Nem nagyon emlékszel, igaz?
Szóval, ott ülsz az első osztályban. Lóg a szájadból a kifli, és becsöngetnek. Bejön a tanító néni, és köszönsz, hogy "Jóóónnapóóót kííívááánok!" Jelentés, leültök, előveszed a kockás füzetedet, meg a ceruzádat, és a tanár azt mondja: "-Ma egy érdekes géppel ismerkedünk meg." Lerajzolja, te buzgón másolsz, mert jó gyerek vagy (Khmm-khmm). "-Ha ebbe a gépbe bedobok egy egyest, akkor alul kijön egy hármas. Mit csinál a gép?" Kis meglepetés és töprengés után buzgón jelentkezel, és felszólít a tanító néni, és te mondod, hogy "-Hozzáad kettőt!". A tanítónéni odajön és megsimogatja fejedet, és te olyan, de olyan büszke vagy...
Szóval a táblán valami ilyesmi látszik:
Bal oldalt ott a "gép".
Na, az ottan a függvény.
Bedobunk valamit, és kijön valami. Amit bedobunk, az a függvény bemeneti értéke, argumentuma, vagy paramétere. Ami kijön, az a függvény kimeneti, vagy visszatérési értéke. Azért függvény, mert a visszatérési érték függ a bemeneti értéktől. Ez a függvény egy sima
f(x): x->x+2
függvény.
Az a baj, hogy a matekóra miatt hajlandó vagy azt hinni, hogy a függvény feltétlenül számokkal dolgozik. Nos, nem. Lássuk csak:
Bemeneti érték az "a", visszatérési érték a "b". Persze ennek a függvénynek nem tudom matematikai formalizmussal felírni a hozzárendelési szabályát, de elmondani simán megy: a visszatérési érték a bemeneti érték utáni betű az ábécéből.
És a függvény lehetne más jellegű is, például: Ha bedobom, hogy Józsi, akkor kiasutót ad vissza, ha Béla, akkor is kisautót, de ha Johanna, vagy Helga, akkor babát. A kimenet megintcsak függ a bemeneti értéktől.
Na lássuk ugyanezt táblázatkezelésben:
Amikor írsz egy olyat, hogy
=MAX(2;3)
akkor a MAX a függvény, a 2 és a 3 a bemeneti értékek, a cellában az Enter megnyomása után megjelenő 3 pedig a visszatérési, vagy kimeneti érték. (Figyeltél, ugye? Ennek a függvénynek két bemeneti értéke van. Matekórán ilyesmi nem sokszor van középiskolában. Miért? Mert bonyolult ábrázolni: térkoordinátarendszer, vagy még szörnyűbb kell hozzá.)
És, hogy ne csak csúnya matekos függvények legyenek, akkor íme egy kevésbé matekos:
=KISBETŰ("KiSciCa")
Itt a KiSciCa a bemeneti érték, és a KISBETŰ függvény a kiscica szóval tér vissza.
Van persze, amikor nem közvetlenül adod meg a bemeneti értékeket, hanem hivatkozásokkal, például:
![]() | ![]() |
Persze az eredmény, a kimeneti érték ekkor is ugyanaz:
![]() | ![]() |
És hogy mi a hozzárendelési szabály? Hát, felírni ezt sem tudom, mert nem vagyok valami matek-májer, de érteni értjük: (1) A bemeneti értékek halmazához rendeld hozzá a legnagyobb bemeneti értéket. (2) A bemeneti értékhez hozzárendeljük a kisbetűs megfelelőjét. Hogy ezt hogy csinálja meg a táblázatkezelőd? Nem érdekes. A "gépre" tekinthetsz úgy, mint valami varázslóra. A varázsló bűvöli a számot-betűt, bűvölgeti, oszt' eccer csak kigyün a legnagyobb, vagy a kisbetűs. Boszorkányság!
Persze az előzőekben vázolt "teszek rá" mentalitás csak akkor megengedhető, ha középszintű informatika érettségit igyekszel szerezni. Az emelt szintű informatika érettségi (többek között) azért gázosabb, mert ott a programozási feladat során esetleg neked kell függvényt írni. Esetleg épp a MAX-szal, vagy a KISBETŰ-vel azonos működésűt.
Vannak a fenti bedobom-kijön gépeknél egzotikusabb működésű függvények is. Van olyan például, ahova nem dobok be semmit, és mégis kijön valami. Ilyen például az Excel =VÉL() és =MOST(), illetve az OpenOffice =RAND(), és =NOW() függvénye. Az üres zárójel épp azt jelzi, hogy tudjuk, hogy most nem kell bedobni semmit. Persze, ha belegondolunk, attól még van bemeneti érték, csak azt nem mi adjuk meg.
És vannak olyan függvények is, amelyeknek nincs visszatérési értékük - például a C, C++, Java void "visszatérési értékű" függvényei. Azonban itt már némileg torzul a függvény szó jelentése.
És persze van olyan "függvény" is, ahol nincs is függés, mindig ugyanaz jön vissza. Például itt egy elég rosszul működő dobókocka:
C-ben:
int dobokocka (){
return 4;
}
Pascal-ban:
Function Dobokocka(): Integer;
Begin
Dobokocka:=4;
End;
Szóval akkor: Mi az a függvény? Mondd el úgy, hogy a tízéves kistesód is értse.