Jump to content

[PASCAL] Informatică Clasa a X-a - Capitolul #1 - Subprograme - Lecția 1.2.5.4.


Leventhe
 Share

Recommended Posts

Cum memorează subprogramele parametrii transmiși?

În acest paragraf vom analiza modul prin care sunt memorați parametrii transmiși în momentul lansării în executare a subprogramului.

 

  • Pentru memorarea parametriilor, subprogramele folosesc o zonă de memorie numită stivă (mai exact, această zonă se numește segment de stivă).
  • Memorarea parametrilor transmiși se face în ordinea în care aceștia figurează în antet: de la stânga la dreapta.
  • Pentru parametrii transmiși prin valoare, se memorează valoarea transmisă, iar pentru cei transmiși prin referință, se memorează adresa variabilei transmisă ca parametru.
  • În cadrul subprogramului, parametrii transmiși și memorați în stivă sunt variabile. Numele lor este cel din lista parametrilor formali.

 

Reluăm exemplul anterior:

  • antetul este: "procedure suma(a,b:integer; var s: integer);";
  • la primul apel, parametrii sunt: x,y,sum, unde x reține "3" și y "4".

În stivă sunt memorate variabilele subprogramului. În figură, sunt prezentate și valorile memorate:

____________________

stiva -> 3|4|adresa variabilei sum|

a|b|s

 

La al doilea apel, parametrii sunt: 2,3, sum.

 

stiva -> 2|3|adresa variabilei sum|

a|b|s

Observații:
  • La revenirea în blocul apelant, conținutul variabilelor memorate în stivă se va pierde.
  • Memorarea în stivă are și alte consecințe, dar acestea vor fi tratate la momentul potrivit (vezi recursivitatea).
Edited by Leventhe
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.