Ugrás a tartalomhoz

formal argument

A Wikiszótárból, a nyitott szótárból


Főnév

formal argument (tsz. formal arguments)

  1. (informatika) A parameter (vagy más néven formális paraméter / formális argumentum) a számítógépes programozás egyik alapfogalma. Olyan változó, amely egy alprogram (függvény vagy eljárás) meghívásakor kap értéket, mégpedig az úgynevezett argumentumtól, amit más néven aktuális argumentumnak vagy aktuális paraméternek is nevezünk.



🧠 1. Alapfogalmak tisztázása

Formális paraméter (formal parameter)

  • A függvény definíciójában szerepel.
  • Ez egy helyettesítő név, amely megkapja a híváskor átadott értéket.
  • Olyan, mint egy változó, amely ideiglenesen létezik a függvény futása alatt.

Aktuális argumentum (actual argument / actual parameter)

  • Ez az érték vagy kifejezés, amit a függvényhíváskor megadunk.
  • A hívás során ez kerül összerendelésre a formális paraméterrel.



📘 2. Példa C++ nyelven

int osszeg(int a, int b) { // 'a' és 'b' formális paraméterek
    return a + b;
}

int main() {
    int eredmeny = osszeg(5, 3); // 5 és 3 az aktuális argumentumok
    return 0;
}
  • A osszeg(5, 3) hívás során a 5 az a-hoz, a 3 a b-hez kerül.
  • Az a és b változók csak a osszeg függvényen belül léteznek.



🧱 3. Paraméterek és függvényszignatúra

A függvény szignatúra (signature) az a rész, amely meghatározza a:

  • függvény nevét,
  • paraméterek számát,
  • típusát és sorrendjét.

Példa szignatúra:

int osszeg(int, int);

Ezen keresztül lehet megkülönböztetni az azonos nevű, de különböző paramétereket használó függvényeket (függvény túlterhelés, overload).



🔁 4. Paraméterátadás módjai

Mód Leírás
Érték szerint (pass by value) A paraméter másolatot kap. A függvényen belüli változtatás nem hat ki az eredeti változóra.
Referencia szerint (pass by reference) A paraméter hivatkozást kap az eredeti változóra. A változtatás hatással van rá.
Pointerrel A cím kerül átadásra. Rugalmas, de több hibalehetőséggel.

Példa érték szerinti:

void negyzet(int szam) {
    szam = szam * szam;
}

Példa referencia szerint:

void negyzet(int& szam) {
    szam = szam * szam;
}

🔧 5. Paraméterek viselkedése különböző nyelvekben

Nyelv Alapértelmezett mód
C Érték szerint, de pointerrel lehet referenciát utánozni
C++ Érték és referencia szerint is
Java Érték szerint, de objektumreferencia másolódik
Python “Object reference by value” – minden objektum referencia, de az érték módosítása nem mindig hat vissza
JavaScript Objektumok referencia, primitívek érték szerint



📦 6. Paraméterek fajtái funkció szerint

➤ Kötelező paraméter:

  • A függvény meghívásakor mindenképp meg kell adni.

➤ Opcionális paraméter:

  • Lehet alapértelmezett értéke.
  • Ha nem adjuk meg, az alapérték lép életbe.
void koszones(string nev = "vendég") {
    cout << "Szia, " << nev << "!" << endl;
}

➤ Változó számú paraméter:

  • ... szintaxissal (varargs)
  • Példa: printf("%d %f", a, b);



🧰 7. Függvények és memóriakezelés

  • A formális paraméterek a veremben (stack) kapnak helyet.
  • Érték szerinti átadás: az érték lemásolásra kerül, azaz plusz memóriát használ.
  • Referencia szerint: nem kell másolni, de óvatosan kell vele bánni, nehogy váratlan mellékhatások legyenek.



🔄 8. Függvényhívás folyamata (röviden)

  1. Az aktuális paramétereket kiértékeljük.
  2. Ezek az értékek átkerülnek a formális paraméterekhez.
  3. A függvény végrehajtódik a saját paraméterei alapján.
  4. A hívás után az aktuális környezet folytatódik.



🧠 9. Miért hasznosak a formális paraméterek?

  • Általánosítható a kód: nem konkrét értékekre épül.
  • Többszörhasználható: egyetlen függvény többféle bemenetre is működik.
  • Jobban tesztelhető: könnyű új értékekkel kipróbálni.
  • Olvashatóbb és strukturáltabb programkódot eredményez.



🚫 10. Hibák és félreértések

Probléma Példa
Helytelen paraméterszám Egy argumentum hiányzik a hívásnál
Típusütközés Például int helyett string
Referencia helyett érték használata A változások nem érvényesülnek
Oldalhatások Váratlan módosítás az eredeti változón



🌐 11. Funkcionális nyelvek és paraméterek

A funkcionális nyelvek (pl. Haskell) paraméterkezelése más filozófiát követ:

  • Minden függvény tiszta: nincs mellékhatás.
  • Paraméterek értéktípusok, és a függvény mindig ugyanazt adja vissza ugyanarra a bemenetre.



🧩 12. Összegzés

A formális paraméter a függvények egyik legfontosabb eleme: ezek révén általánosan megfogalmazott műveleteket tudunk végrehajtani. Az aktuális argumentumokkal való kapcsolatuk adja meg a függvény rugalmas használhatóságát. A különféle paraméterátadási módok, típusok és viselkedések kulcsfontosságúak a hatékony, biztonságos és olvasható kód írásához.