VisuAlg Web

Alterando Variáveis Externas (Var)

Veja como parametros por referencia funcionam no VisuAlg com var, permitindo alterar variaveis externas dentro de procedimentos.

Quando você envia uma variável para um procedimento comum, ela envia apenas uma cópia (xerox) do seu valor. O procedimento pode alterar esse valor internamente à vontade, a variável original na base do código continuará intacta. Chamamos isso de passagem por Valor.

Exemplo de codigoVisuAlg
algoritmo "PassagemPorValor"

procedimento tenta_aumentar(s: real)
  inicio
    s <- s + 500 // Altera apenas a CÓPIA (s)
    escreval("Salário dentro do procedimento: ", s)
fimprocedimento

var
  salario: real

inicio
  salario <- 1000.0
  tenta_aumentar(salario)
  escreval("Salário original fora do procedimento: ", salario)
fimalgoritmo

Se você quiser que o procedimento modifique o documento original permanentemente, precisa adicionar a palavra var dentro dos parâmetros dele (Passagem por Referência). Mas atenção: na hora de executar no bloco principal, apenas repasse o nome da variável normal.

Exemplo de codigoVisuAlg
algoritmo "PassagemPorReferencia"

procedimento realmente_aumentar(var s: inteiro)
  inicio
    s <- s + 500
fimprocedimento

var
  salario: inteiro

inicio
  salario <- 1000
  realmente_aumentar(salario)
  escreval("Salário original agora é: ", salario)
fimalgoritmo
Exercício Prático: Crie um procedimento que receba uma variável 'pontuacao' por referência, e some 10 nela a cada execução.