|
9.5 Variável Local x Variável
Global
Dentro de uma função ou procedimento
podemos ter a declaração de outra função ou
procedimento.
Program Variável;
Var M:...;
M é global a S1,S2,S3,P1,P2 e P3
|
Procedure
S1;
Var
P:...; P é local a S1 e global a S2
e S3
|
Procedure
S2;
Var A:...; A
é local a S2 e global a S3
|
Function
S3;
Var B:...; B
é local a S3
Begin
End; { de S3 } |
Begin
{ aqui apenas S3 é conhecida }
End; { de S2
} |
Begin
{ aqui apenas S2 é conhecida }
End; { de S1
} |
|
Procedure
P1;
Var
Q:...; Q é local a P1 e global a P2
e P3
|
Function
P2;
Var
R:...; R é local a P2
Begin
End;
{ de P2 } |
|
Procedure
P3;
Var
S:...; S é local a P3
Begin
{ aqui P2 é conhecida }
End;
{ de P3 } |
Begin
{ aqui P2 e P3 são conhecidas }
End; { de P1} |
Begin
{ aqui S1 e P1 são conhecidas }
End. |
-
As variáveis globais são acessíveis
a qualquer subalgoritmo, desde que não haja variável local
dentro do módulo com o mesmo nome da variável global.
Procure evitar o uso
de variáveis globais dentro de subalgoritmos!!!! |
Ex.:
Program Teste
(input, output);
Var
X,Y,Z: Integer;
Function MDC
(P1, P2: Integer ): Integer;
Begin
While
P1 <> P2 Do
If P1> P2
Then P1:= P1 – P2
Else P2:= P2 – P1;
MDC:= P1;
End;
{ MDC }
Begin
X:= MDC (10,15) +31;
Y:= MDC ( X, 25);
End. {de Teste
} |
|