Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

a programegységek között

Hasonló előadás


Az előadások a következő témára: "a programegységek között"— Előadás másolata:

1 a programegységek között
Paraméterátadás a programegységek között

2 Programegység Szerkezete Hívása
Eljárás* Eljárásnév(formális paraméterek listája) saját konstansok, változók deklarációja utasítások, eljárás-hívások Eljárás vége Hívása Eljárásnév(aktuális paraméterek listája) Változónév = Függvénynév(aktuális paraméterek listája) *Függvény Függvénynév(formális paraméterek listája): típus

3 Értékszerinti paraméterátadás
Eljárás A (x: egész) x=2 Eljárás vége A(5) Értékszerinti paraméterátadás Példa alapján A formális paraméter számára létrehoz egy új helyet a memóriában a megadott x névvel egész szám számára  x Az x helyre bemásolja az aktuális paraméterként kapott értéket  x=5 Az eljárásban x értéke olvasható és módosítható  x=2 Az eljárás végén felszabadítja a memóriában x helyét  x helye és értéke is megszűnik Az aktuális paraméter lehet: változó, konstans, kifejezés Hátránya a paraméternek újra helyet foglal a memóriában.

4 … static int maximum(int x, int y) { int z; if (x>y) z=x; else z=y; return(z); } static void Main() Console.WriteLine(maximum(4,3)); Pl.: C# Képernyőn: 4 static int maximum(int x, int y) ^ | visszatérési érték típusa

5 Címszerinti paraméterátadás
Eljárás B (x: egész) x=2 Eljárás vége Z=5 : B(Z) Címszerinti paraméterátadás Példa alapján Meghatározza Z memóriacímét, ezt adja át az eljárás formális paraméterének  x címe = Z címe Az eljárásban x értéke olvasható és módosítható  x=2 Az eljárás végén felszabadítja az x nevet, de nem szabadítja fel a helyet a memóriában Az eljáráson kívül a Z név él tovább  Z=2 Az aktuális paraméter lehet: változó

6 … void csere(ref int x, ref int y) { int segéd=x; x=y; y=segéd; } static void Main() int a=5, b=6; Console.WriteLine(„Csere előtt: a,b:”,a,b); csere(ref a,ref b); Console.WriteLine(„Csere után: a,b:”,a,b); Pl.: C# Képernyőn: 5 6 6 5 ref (reference) Megíráskor is oda kell írni meghíváskor is oda kell írni Minden változó elé külön-külön

7 Eredményszerinti paraméterátadás
Függvény C (…): egész Függvény vége Ki: C(…) Eredményszerinti paraméterátadás Példa alapján Visszatérési érték számára létrehoz egy új helyet a memóriában, a típusa a visszatérési típus A függvény végén ez a memóriacím értéket kap A függvény végén visszaadja a keletkezett értéket majd felszabadítja a memóriában az érték helyét A visszatérési érték: értékül adható változónak, kiírható, kifejezésben felhasználható

8 Függvényeredmény paramétere – C#
Amikor egy függvénnyel több értéket kell előállítani. a visszatérési érték mellett, a paraméterlistán jelezhető, hogy melyik paraméter értéke fog változni  Címszerinti paraméterátadás

9 … public static int TesztKiiras(out char i) { i=‚B’; return -1; } public static void Main() char i; Console.WriteLine(TesztKiiras(out i)); Console.WriteLine(i); Pl.: C# Képernyőn: -1 B Több visszatérési érték esetén public static int TesztKiiras(out char i) ^ ^ | | return adja vissza változtatható

10 Mutató típus

11 Mutató típus algoritmusban
Értékhalmaz A memória megengedett tartománybeli címe egy adott típusú objektumnak vagy Egy előre definiált „sehova” érték Definiálása Pl.: Egész’Mutató Műveletek Konstrukciós függvény: Pl.: Egész(M) M a memóriacímet határozza meg, ahol egy egész szám „fér el” a memóriában

12 Mutató típus algoritmusban
Műveletek Létrehozás futási időben Pl.: Lefoglal(M) M a memóriacímtől egy egész számnyi helyet lefoglal a memóriában Pl.: Lefoglal(M,17) M a memóriacímtől egy egész számnyi helyet lefoglal a memóriában és feltölti a megadott értékkel (az érték kifejezés eredménye is lehet) Ha a helyfoglalás sikertelen, akkor M a „Sehova” címet kapja értékül

13 Mutató típus algoritmusban
Műveletek Felszabadítás futási időben Pl.: Felszabadít(M) az M memóriacímet „Sehova” címre állítja, tehát az objektum a memóriában már nem elérhető Relációk =  A mutató típusú változókkal nagyon óvatosan kell bánni, mert velük közvetlenül a memóriában végzünk műveleteket! A fejlesztői környezet nem tud a segítségünkre lenni. Ábrázolás A memóriacímnek megfelelő szélességű tartomány (2-4 bájt)


Letölteni ppt "a programegységek között"

Hasonló előadás


Google Hirdetések