Se você reparar bem nos exemplos anteriores, existem variáveis declaradas no corpo principal do algoritmo e variáveis declaradas dentro dos procedimentos ou funções.
É muito importante que se tenha atenção a esse ponto, pois pode ser a origem de muitos problemas futuros.
INICIO a : inteiro; a := 10; ESCREVA(a); dobro(); ESCREVA(a); FIM PROCEDIMENTO dobro() a : inteiro; INICIO a := 50; ESCREVA(a * 2); FIM
O algoritmo acima exibirá:
10 100 10
Você não esperava esse resultado? Se não estiver atento ao escopo de variáveis, o resultado esperado seria:
10 100 50
Isso não acontece porque a variável a usada dentro do procedimento dobro foi uma variável local (com escopo local) e não uma variável global (com visibilidade em todo o algoritmo).
Para ter o resultado “esperado”, precisaríamos fazer o nosso algoritmo de outra forma:
INICIO a : inteiro; a := 10; ESCREVA(a); dobro(); ESCREVA(a); FIM PROCEDIMENTO dobro() INICIO a := 50; ESCREVA(a * 2); FIM
Perceba que dessa vez não declaramos a variável a dentro do procedimento, fazendo com que a variável usada fosse a global.

Entrar
Cadastre-se
Ajuda
Responder


Quote