Domeniul de viziblilitate.Efecte colaterale
-
Upload
colegiul-de-industrie-usoara -
Category
Education
-
view
1.150 -
download
1
description
Transcript of Domeniul de viziblilitate.Efecte colaterale
Domeniul de viziblilitate. EFECTE COLATERALE
Corpul unui program sau subprogram se numeşte bloc. Deoarece subprogramele sînt incluse în programul principal şi pot conţine la rîndul lor alte subprograme, rezultă că blocurile pot fi imbricate (in-cluse unul în altul). Această imbricare de blocuri este denumită structura de bloc a programului PASCAL.
Structura de bloc
Prin domeniul de vizibilitate al unei declaraţii se înţelege textul de program, în care numele introdus desemnează obiectul specificat de declaraţia în studiu. Domeniul de vizibilitate începe imediat dupăterminarea declaraţiei şi se sfîrşeşte o dată cu textul blocului respectiv.
Domeniul de vizibilitate
O variabilă este globală relativ la un subprogram atunci cînd ea este declarată în programul sau subprogramul ce îl cuprinde fară să fie redeclarată în subprogramul în studiu.ExempluProgram P108; { Comunicarea prin variabile globale }var a, { variabilă globală în P }b : real; {variabilă globală în P,procedure P;var c : integer; { variabilă locală în P }beginc:=2;b: =a* c ;end; { P }function F : real;var a : 1..5; {variabilă locală în F }begina:=3;F:=a+b;end; { F }begina: = 1; P;writeln(b); { se afişează 2.OOOOOOOOOOE+00 }writeln(F); { se afişează 5.OOOOOOOOOOE+00 )readln; end.
COMUNICAREA PRIN VARIABILE GLOBALE
Prin efect colateral se înţelege o atribuire (în corpul funcţiei) a unei valori la o variabilă globală sau la un parametru formal variabilă.Program PI 10;{ Efect colateral - atribuire la o variabilă globală}var a : integer; { variabilă globală }function F(x : integer) : integer;beginF:=a*x;a:=a+1; { atribuire defectuoasă }end; { F }begina:=1;writeln(F(1)) ; { se afişează 1 }writeln(F(1)); { se afişează 2 }writeln(F(1)); { se afişează 3 }readln;end.
EFECTE COLATERALE
Precizaţi structura dc bloc a programului ce urmează. Indicaţi domeniul de vizibilitate al fiecărei declaraţii şi determinaţi obiectele desemnate de fiecare apariţie a identificatorilor c şi x.Program P106;{ Redefinirea constantelor )const c=1;function F1(x : integer) : integer;beginF1:=x+c;end; { F1 }function F2(c : real) : real;const x=2.0;beginF2:=x+c;end; { F2 }function F3(x : char) : char;const c=3;beginF3:=chr (ord(x)+c);end; { F3 }beginwriteln('F1=', F1(1));writeln('F2=', F2(1));writeln{'F3=', F3('1'));readln;end.
Exemple si exercitii
Comentaţi programul ce urmează:Program P117; { Eroare }var a : real;procedure P(xvar a : integebegina:=3.14;writeln(x+a);end; { P }begina:=3.14;P(a);end.
Exemple si exercitii
Program P109;{ Comunicarea prin variabile globale }var a : integer;procedure P;var b, c, d : integer;procedure Q;beginc :=b+1;end; { Q }procedure R;begind:=C+1;
end; { R }beginb: =a;Q;R;a:=d;end; { P }begina:=1;P;writeln (a);readln;end.
Exemple si exercitiiNumiţi variabilele globale şi variabilele locale din programul ce urmează. Ce va afişa pe ecran acest program?