Paraméter

A Programozás Wiki wikiből

A programozásban paraméternek hívunk egy olyan értéket, (vagy feltételt, körülményt) amitől egy programrész pontos működése függ. A programnyelvekben a paraméterek jellemzően függvény argumentumokként jelennek meg.

Formális paraméternek hívjuk egy függvény deklarációjában, vagy definíciójában leírt argumentumkat. Aktuális paraméternek nevezzük a függvény hívásakor leírt konkrét értékeket.

Az adatok szerepe szempontjából egy paraméter lehet:

  • bemeneti (in, input): a paraméter értéke határozza meg a programrész futását
  • kimeneti (out, output): a programrész állítja be a paraméter értékét
  • be- és kiemeneti (in-out, input-output): a programrész függ a paraméter kezdeti értékétől, és módosít(hat)ja is azt.


Az átadási technika szerint egy paraméter lehet:

  • érték szerint átadott: az adatról másolat készül a memóriában a programrész számára
  • cím szerint átadott: az adatot a programrész annak címe szerint közvetlenül éri el
  • név szerint átadott: az adat programnyelvben szereplő nevét használja a programrész a hivatkozásra

A modernebb programnyelvekben az objektum-orientált technikák megvalósítása, és hatékonysági szempontok miatt jellemzően a cím szerinti átadás kerül előtérbe. Név szerinti átadás elsősorban dinamikus programnyelvekben, vagy makrónyelvekben fordul elő.

A típusos nyelvekben a formális paraméterekhez típus is tartozik. a függvények hívásakor az aktuális paraméterek meg kell feleljenek ezeknek. Egyező, leszármazott, vagy konvertálható típussal kell, hogy rendelkezzenek.

A paramtéreket jellemzően a deklaráció szerinti sorrendben szoktuk használni, de egyes nyelvek (pl. Python) lehetővé teszik a paraméter neve szerinti megadást is.

Ha egy paraméter rendelkezik alapértékkel (default parameter), azt híváskor rendszerint csak akkor kell kiírnunk, ha más értéket akarunk adni neki.

Egyes programnyelvek (pl. C, PHP) támogatják a változó hosszúságú paraméterlisták (variable-length parameters, varargs) használatát. Az alprogramban a paraméterek ilyenkor speciális függvényekkel érhetők el.

A sablonokat támogató nyelvekben a függvények, vagy osztályok típus-paraméterekkel is rendelkezhetnek.

Példa[szerkesztés]

{ eljárás paraméterei }
{ Text: be- és kimeneti, cím szerint átadott, típusa String }
{ OrigChar: bemeneti, érték szerint átadott, típusa Char }
{ NewChar: bemeneti érték szerint átadott, típusa Char, alapértékkel }
procedure ReplaceChar( var Text: String; OrigChar: Char; NewChar: Char = ' ' );

...

S := 'Az ipafai papnak fapipája van';
{ eljárás hívása aktuális paraméter értékekkel }
Replace( S, 'p', 'b' );