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

Passagem de parâmetros

Sabemos que em funções e procedimentos deve haver uma comunicação entre o subalgoritmo e o algoritmo que o "chama", através das variáveis globais do algoritmo e das variáveis locais do subalgoritmo. A essa comunicação, damos o nome de passagem de parâmetros.

Os tipos de parâmetros que utilizamos nesse processo são dois. Veja-os a seguir:

  1. Parâmetros formais – são aquelas variáveis locais que declaramos entre parêntesis, nos cabeçalhos dos subalgoritmos. São utilizados para realizar os cálculos dentro do subalgoritmo.
  2. Parâmetros reais – são os valores que substituem os parâmetros formais no momento da chamada de um subalgoritmo.

Por exemplo, veja o cabeçalho da função fsoma, a seguir.

Funcao fsoma (a1, b1 :inteiro) : inteiro

As variáveis a1 e b1 são os parâmetros formais da função. Veja, agora, o seguinte trecho do algoritmo que chama essa função:

leia (a)

leia (b)

soma <- fsoma(a,b)

Os valores armazenados nas variáveis globais a e b são os parâmetros reais. Note que poderíamos, simplesmente, chamar a função, passando os valores diretamente: soma <- fsoma (3,5). Nesse caso, os números 3 e 5 seriam os parâmetros reais.

No processo de passagem de parâmetros, são passados dados de entrada do algoritmo para o subalgoritmo e dados de saída no sentido oposto. Veja esse processo ilustrado na Figura 2.

Troca de informações entre algoritmo e função

Na Figura 2, podemos ver uma função, no módulo da esquerda, que calcula uma soma entre dois números. No módulo da direita, temos o corpo do algoritmo que "chama" essa função.

O algoritmo passa os dados de entrada (números armazenados nas variáveis a e b, que são os parâmetros reais) para a função, que os armazena em suas variáveis locais a1 e b1 (parâmetros formais). O cálculo é efetuado e o valor encontrado é armazenado na variável local resultado. Através do comando retorne, esse valor é passado como dado de saída para o algoritmo (no momento da chamada da função), que o armazena na variável global soma para então ser exibido.

Em um procedimento, essa passagem de parâmetros é feita de uma forma um pouco diferente. Veja a Figura 3.

Troca de informações entre algoritmo e procedimento

No procedimento, a comunicação de saída não é feita de forma explícita como na função. Veja que, ao contrário do que é feito na função, a palavra reservada var é utilizada nos parâmetros do procedimento. Veja, também, que na chamada ao procedimento todos os dados são passados como parâmetros, ao passo que na função, são passados apenas os dados de entrada (os números armazenados em a e b). Por que será que isso ocorre?

Porque os parâmetros, na função da Figura 2, estão sendo passados por valor e, no procedimento da Figura 3, os parâmetros estão sendo passados por referência.

Vamos compreender o que isso significa?

Versão 5.3 - Todos os Direitos reservados