quinta-feira, 14 de junho de 2012

Variáveis Globais e Locais

Variáveis Globais e Locais


         Variáveis Globais são aquelas declaradas no início de um algoritmo. São visíveis, ou seja, podem ser utilizadas no algoritmo principal e por todos os outros subalgoritmos.
         Variáveis Locais são aquelas declaradas no início de um subalgoritmo. São visíveis, ou seja, podem ser utilizadas somente pelo subalgoritmo onde foram declaradas. Outros subalgoritmos ou mesmo o algoritmo principal não podem utiliza-las.

Exemplo:

Algoritmo EXEMPLO_VARIAVEIS
Var  X  :  real
         I   :  inteiro
Função  FUNC( )  :  real
Var  X  :  conjunto[5] de inteiro
        Y  :  literal[10]

Início

            . . .

Fim

Procedimento  PROC( )
Var  Y  :  lógico

Início

         X ß 4 * X
         I  ß  I + 4
         Y ß X = I
         Se Y
                  Então
                            Escreva  “X = I”
                  Senão
                            Escreva  “X <> I”
         Fim_se

Fim

Início

            . . .
         X ß 3.5
          I ß 10
         PROC( )

Fim

  Algoritimos
 

Parâmetros


         Parâmetros são canais por onde os dados são transferidos pelo algoritmo chamador a um subalgoritmo, e vice-versa.
         Parâmetros Formais são os nomes simbólicos usados na definição dos parâmetros de um subalgoritmo.
         Parâmetros Reais são aqueles que substituem os parâmetros formais quando da chamada de um subalgoritmo.

Exemplo:

Algoritmo  EXEMPLO_PARAMETROS
Var  Z  :  real
Função  MEDIA (X, Y  :  real)  :  real

Início

         Retorne  (X + Y) / 2

Fim

Início

         Z ß MEDIA(8, 7)
         Escreva  “A Média é igual a “, Z

Fim


         No exemplo acima, X e Y são parâmetros formais da função MEDIA, enquanto 8 e 7 são parâmetros reais do algoritmo principal que substituirão X e Y quando da chamada da função MEDIA.



Mecanismos de Passagem de Parâmetros


 
         A substituição dos parâmetros formais pelos parâmetros reais no ato da invocação de um subalgoritmo é denominada de passagem de parâmetros e pode se dar por dois mecanismos distintos: passagem por valor (ou por cópia) e passagem por referência.
 
-         Passagem de Parâmetros por Valor
 
No ato da invocação do subalgoritmo, o parâmetro real é calculado e uma cópia do seu valor é substituída pelo parâmetro formal. Quando o subalgoritmo é executado, as modificações efetuadas no parâmetro formal não afetam o parâmetro real, pois trabalha-se apenas com uma cópia do mesmo.
 
Exemplo:
 
Algoritmo  EXEMPLO_PAR_VAL
Var  X  :  inteiro
Procedimento  PROC(Y  :  inteiro)

Início

Y ß Y + 1
         Escreva  “Durante Y = “, Y

Fim

Início

         X ß 1
         Escreva  “Antes X = “, X
         PROC(X)
         Escreva  “Depois X = “, X

Fim

 
-         Passagem de Parâmetros por Referência
 
Quando da invocação de um subalgoritmo com parâmetros passados por referência, o espaço de memória ocupado pelos parâmetros reais é compartilhado pelos parâmetros formais correspondentes, portanto as modificações efetuadas nos parâmetros formais também afetarão os parâmetros reais.
 
Exemplo:
 
Algoritmo  EXEMPLO_PAR_REF
Var  X  :  inteiro
Procedimento  PROC(Var  Y  :  inteiro)

Início

Y ß Y + 1
         Escreva  “Durante Y = “, Y

Fim

Início

         X ß 1
         Escreva  “Antes X = “, X
         PROC(X)
         Escreva  “Depois X = “, X

Fim

 
 
Exercícios:
 
1 – Escreva um subalgoritmo para determinar se um dado número é ou não impar.
 
Função  IMPAR(n  : inteiro)  :  lógico

Início

         Se  (n – (n / 2) * 2)  <>  0
                  Então
                            Retorne  .V.
                  Senão
                            Retorne  .F.
         Fim_se

Fim

 
2 – Escreva um subalgoritmo para realizar a escrita de um vetor de n componentes reais (n <= 100).
 
Procedimento ESCR_VETOR(V  :  conjunto[100] de real, n  :  inteiro)
Var  I  :  inteiro

Início

         Para I de 1 até n faça
                  Escreva  “V[“, I, “] = “, V[I]
         Fim_para

Fim

 
3 – Escreva um subalgoritmo para realizar a leitura de um vetor de n componentes reais (n <= 100).
 
Procedimento LE_VETOR(Var  V  :  conjunto[100] de real, n  :  inteiro)
Var  I  :  inteiro

Início

         Para I de 1 até n faça
                  Escreva  “V[“, I, “] = “
Leia  V[I]
         Fim_para

Fim

link acessado: http://www.berriel.com.br/ltpi/aula15/aula15.htm

Nenhum comentário:

Postar um comentário