[Tutorial] Domeniul de valabilitate al obiectelor

User avatar
Drayke
Posts: 1910
Contact:

[Tutorial] Domeniul de valabilitate al obiectelor

Post#1 » June 1st, 2017, 7:08 am

Fiecare corp de procedura poate continein partea sa de declaratie o declaratie de procedura sau functie ( numita procedura sau functie inclusa sau locala). Prin obiecte intelegem constante, tipuri, variabile, proceduri, functii identificate prin identificatorul asociat.
Exista cateva reguli ce determina domeniul de valabilitate si durata de viata ale unui identificator. Ele sunt urmatoarele:
1. domeniul unui identificator il constituie blocul in care a fost declarat si toate blocurile incluse in el
2. daca un identificator a,declarat ontr-un bloc x, este redeclarat intr-un bloc y atunci blocul y si blocurile incluse lui se exclud din domeniul de valabilitate al identificatorului a declarat in x

Code: Select all

EX34.PAS
program test_var;
var x, y:real;
procedure citit_scris;
var x, u:real;
begin
write(’ introdu x si u, numere reale: ’); readln(x, u);
writeln(’ x=’,x:5:1; ’u=’,u:5:1);
end;
begin
write(’ introdu x si y, numere reale: ’); readln(x, y);
citit_scris;
writeln(’x=’,x:5:1, ’y=’,y:5:1);
end.


Daca am introdus x=1.5, y=2.5 si apoi x=10.5 si u=20.5 pe ecran va apare:

Code: Select all

x= 10.5 u= 20.5
valorile citite si scrise in procedura citit_scris
x= 1.5 y= 2.5
valorile citite inainte de apelarea procedurii si scrise dupa apelarea ei

3. identificatorii de proceduri se supun acelora¸si reguli de domeniu ca si ceilalti identificatori, deci o procedura poate fi folosita doar in blocul in care ea a fost declarata si in blocurile incluse in acesta
4. o procedura se poate referi la ea insasi (apelare recursiva)

Aceste reguli determina si durata de viata a identificatorilor; o variabila declarata ca locala intr-o procedura exista numai in timpul executiei procedurii fiind creata la activarea procedurii prin alocarea de memorie si distrusa la iesirea din procedura prin eliberarea memoriei ocupate.

Return to “Pascal / Turbo Pascal”

Who is online

Users browsing this forum: No registered users and 1 guest

Pronion.Ro : Disclaimer
cron