Sunteți pe pagina 1din 14

 Bloc – corpul unui program sau subprogram

 Structură de bloc – imbricarea blocurilor (blocuri


incluse unul în altul)
Nivel 0

Nivel 1

Structura
de bloc
Nivel 1

Nivel 2

a unui
Nivel 2

program
 Programul principal este considerat de nivel 0

 Un bloc definit în programul principal este de nivel 1

 Regulă: Un bloc definit în nivelul n este de nivelul


n+1
 Declaraţii de etichete
 Variabile
 Constante
 Funcţii
 Proceduri
 Parametri
 etc.
 O declaraţie introduce un nume (identificator sau
etichetă).

 O declaraţie dintr-un bloc poate redefini un nume


declarat în exteriorul lui.

!!! În diferite părţi ale programului unul şi acelaşi


nume poate desemna obiecte diferite.
Program P1;
Uses crt;
constc=2
c=2;
Function F1 (x integer) : integer;{F1}
x : integer
Begin
F1:=x+c;
End; {F1}

Function F2(c
c :: real
real) : real; {F2}
const x=2.0
x=2.0
Begin
F2:=x+c;
End; {F2}

Begin
writeln( ' F1= ' , F1(1));
writeln( ' F2= ' , F2(1));
Readkey;
End.
Domeniul de vizibilitate – zona de program în care este
valabilă declararea sau definirea unui identificator (variabilă,
constantă).
Cu alte cuvinte, zona din program în care este “văzută”
declaraţia acesteia,

!!! Domeniul de vizibilitate începe imediat după terminarea


declarației și se sfârșește o dată cu textul blocului respectiv.
 O variabilă este locală în subprogramul în care a fost declarată.
 O variabilă este globală relativ la un subprogram atunci când ea
este declarată în programul sau subprogramul ce îl cuprinde fără să
fie redeclarată în subprogramul în studiu.
 Putem avea într-un program o variabilă locală şi una globală cu
acelaşi nume. În acest caz, în subprogramul în care a fost declarată,
variabila locală “ascunde” variabila globală cu acelaşi nume, adică
în timpul execuţiei subprogramului este văzută valoarea variabilei
locale, iar în afara subprogramului este cunoscută variabila
globală.
Considerăm un program care conţine:
- un modul principal P
- trei subprograme, notate P1, P2, P3.
presupunem că avem următoarele variabile:
x, variabilă globală
b, variabilă locală în P1
m, variabilă locală în P2

programul principal apelează procedurile P1 şi P2, iar P1 apelează P3


Care va fi domeniul de vizibilitate în acest caz?
Astfel:
 Variabila x, fiind globală, este vizibilă în tot programul, adică în modulul principal P şi în

procedurile P1, P2, P3.


 Variabila b, ea nu e vizibilă în modulul principal P şi nici în procedura P2.

 Variabila m, fiind variabilă locală în procedura P2, este vizibilă în procedura P2


 Cunoașterea domeniilor de vizibilitate ale declarațiilor
este necesară pentru determinarea obiectului curent
desemnat de un nume.

 Comunicarea prin variabile globale se utilizează în


cazurile în care mai multe subprograme prelucrează
aceleași date.

S-ar putea să vă placă și