Cursos / Informática para Internet / Lógica de Programação / Aula

arrow_back Aula 14 - Subalgoritmos: Funções e Procedimentos – Mecanismos de Passagem de Parâmetros

Escopo de variáveis

As variáveis que criamos no início de um algoritmo podem ser utilizadas em qualquer lugar dentro dele. Se desejarmos utilizar tais variáveis dentro de um subalgoritmo, por exemplo, podemos fazer isso sem problemas. Essas variáveis são as variáveis globais.

Ao criarmos um subalgoritmo, porém, criamos variáveis específicas para utilizarmos em seu interior. Tais variáveis são inicializadas no momento em que o subalgoritmo está sendo executado e são válidas somente em seu interior. Elas não são visualizadas fora dos limites do subalgoritmo. São as variáveis locais.

A essa visibilidade das variáveis (se ela é local ou global) damos o nome de escopo de variáveis. Trata-se da abrangência de uma variável, ou seja, em quais limites do algoritmo ela é visível e pode ser utilizada.

Veja, na Figura 1, como podemos ilustrar a hierarquia da visibilidade das variáveis.

Hierarquia no escopo de variáveis

Veja que as variáveis A e B estão declaradas no algoritmo principal. Logo, elas são variáveis globais que podem ser utilizadas em qualquer subalgoritmo do conjunto que vemos na Figura 1.

Porém, declaramos a variável A novamente, em outro contexto, no subalgoritmo1. Essa nova variável A, nesse caso, não é a mesma que foi criada no algoritmo principal. Trata-se de uma variável local do subalgoritmo1 e que pode ser utilizada no subalgoritmo 1.1 (ou em qualquer subalgoritmo interno ao subalgoritmo 1). A variável X é, também, local ao subalgoritmo1 e pode ser utilizada no subalgoritmo 1.1.

É declarada no subalgoritmo 2.1 outra variável X, que é local naquele subalgoritmo (ela não tem relação alguma com a variável X do subalgoritmo1). A variável M é local ao subalgoritmo2 e pode ser utilizada no subalgoritmo 2.1. A variável W é local ao subalgoritmo 1.1 e somente nesse subalgoritmo pode ser visualizada.

Uma variável local pode ter o mesmo nome de uma variável global. Porém, uma vez declaradas em contextos diferentes, elas são distintas.

Além de melhorar o desempenho do algoritmo, essa divisão entre variáveis locais e globais serve para definir os parâmetros de um subalgoritmo. Ou seja, elas estabelecem a comunicação entre o subalgoritmo e o algoritmo principal, que o "chamou".

As variáveis globais do algoritmo servem como dados de entrada para o subalgoritmo e as variáveis locais do subalgoritmo armazenam os dados recebidos para, com eles, efetuar os cálculos necessários.

No caso das funções, como veremos adiante, a variável (local) de retorno (através do comando retorne) serve como dado de saída da função para o algoritmo principal e uma variável global recebe e armazena essa informação. Ao acessar essa variável global, temos acesso ao valor de retorno da função.

A maneira com que tratamos as variáveis dentro do algoritmo pode afetar de forma direta o desempenho do programa, pois uma variável local é liberada (um espaço na memória é liberado) assim que o subalgoritmo que a utiliza termina de executar. Dessa forma, se uma variável vai ser utilizada somente no interior de um subalgoritmo, não há necessidade de declará-la como variável global. Você pode utilizar variáveis globais nos subalgoritmos que você criar, porém, é recomendável que você utilize variáveis locais, pois isso permite que o subalgoritmo seja executado sem interferir em outros subalgoritmos que possam estar utilizando as mesmas variáveis.

Versão 5.3 - Todos os Direitos reservados