Függvények Flashcards

1
Q

Mikor beszélünk procedurális programozásról?

A

Procedurális programozásról beszélünk, ha egy feladat megoldását egymástól többé-kevésbé független alprogramokból (függvényekből) építjük fel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Mi a függvény?

A

A függvény a C++ program olyan névvel ellátott egysége (alprogram), amely a program más részeiből annyiszor hívható, ahányszor csak szükség van a függvényben definiált tevékenységre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Mit nevezünk paraméternek?

A

A függvények hatékony felhasználása érdekében a függvény bizonyos belső változóinak a függvényhívás során adunk értéket. Ezek a paramétereknek hívott tárolókat függvény definíciójában a függvény neve után zárójelben kell deklarálnunk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Mik az argumentumok?

A

A függvény hívásánál (aktiválásánál) pedig hasonló formában kell felsorolnunk az egyes paramétereknek átadni kívánt értékeket, az argumentumokat.
A függvényhívás során az argumentumok (amennyiben vannak) átkerülnek a hívott függvényhez, és a vezérlés a hívó függvénytől átkerül az aktivizált függvényhez.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Mi a függvény visszatérési értéke?

A

A függvények definíciójában/deklarációjában szereplő visszatérési típus határozza meg a függvényérték típusát.
A függvény a return utasítás feldolgozását követően visszatér a hívóhoz, és függvényértékként megjelenik az utasításban szereplő kifejezés értéke, melynek típusa a visszatérési típus:
return kifejezés;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

mi a void típus?

A

A void típus felhasználásával olyan függvényeket is készíthetünk, amelyek nem adnak vissza értéket. Ebben az esetben azonban nem kötelező a return használata,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

mutass példát egy függvényre.

A

include

using namespace std;

bool isNumberZero(int a);
int main()
{
    cout << isNumberZero(0);
}
bool isNumberZero(int a)
{
    if(a == 0) {
        return true;
    }
    return false;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Honnan tudja a program, hogy melyik függvényt kell meghívnia?

A

A függvény prototípusából, a paraméterek típusából

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

egy fgv-nek hány paramétere lehet?

A

Egy függvénynek 0 vagy több bemenő paramétere lehet. Emiatt a függvényeket túl lehet terhelni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hogy történik a túlterhelés? Ez minek egy formája?

A

A túlterhelés úgy történik, hogy a bemenő paraméterek száma és/vagy típusa változik. A függvények túlterhelése a polimorfizmus egy formája.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Mit jelent a változók hatóköre/élettartama?

A

Ami a változók hatókörét, élettartamát illeti, a függvényben deklarált változókat csak a függvényen belül érjük el, a globális változókat is elérjük a függvényen belül. A lokálisan létrehozott változók az értékeiket a függvény futásának idejére tartják meg.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Mikor használjuk a rekurziót?

A

A rekurziót leggyakrabban a visszalépéses keresés (angolul backtracking) jellegű
algoritmusokban szokták használni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

A verem bevezetésével mi végezhető el automatikusan?

A

A rekurzív algoritmusok ciklussá formálása “automatikusan” elvégezhető verem bevezetésével.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Mi a rekurzió lényege?

A

Lényege, hogy egy függvény implementációjában az adott függvény újra meg van hívva, tehát a függvény saját magát hívja. Az egyik legnépszerűbb példa erre a rekurzív faktoriális számítás.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

mutass egy példát a rekurzióra:

A
int factorial(int n){
   if (n <= 1) {
    return 1;
   }
       return n*factorial(n-1);
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Mutasd be az előző példát.

A

A függvény addig hívogatja magát, amíg az n-1 nem lesz egyenlő 1-gyel. Az if feltétel olyan okból hasznos, hogy a megakadályozza a verem túlcsordulást (stack overflow). A feltétel megakadályozza hogy végtelenszer kivonja az egyet az n bemeneti számból a függvény és ezáltal újra hívná magát a fgv.

17
Q

mit nevezünk veremnek?

A

A számítástechnikában a verem (angolul stack) egy LIFO adatszerkezet, amelyben általában véges számú azonos típusú (méretű) adatot lehet tárolni.

18
Q

milyen két műveletet értelmezünk rá?

A

push és pop

19
Q

mi a pushnak a lényege?

A

A verem tetejére helyez egy új adatot. Ha a verem betelt, akkor túlcsordulásos állapotba kerül.

20
Q

Mi a popnak a lényege?

A

A verem legfelső elemét leveszi és visszaadja. Ha a verem már üres, akkor alulcsordulásos állapotba kerül.

21
Q

Hogy kell elképzelni a veremet?

A

Úgy kell elképzelni, hogy van egy doboz, abba a dobozba vékony doboz szélességű lapokat teszel (push). Ha ki akarod venni a legalsót, akkor a felette lévőket ki kell szedned először. (pop) A pop mindig a legfelsőre vonatkozik.