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

Funções

As funções, em algoritmos, seguem o mesmo princípio das funções matemáticas que aprendemos na escola e na disciplina de Matemática Aplicada. Quando dizemos que f(x)=x+1, temos duas variáveis (x e f(x)) e, com base no valor de uma delas, encontramos o valor da outra.

Vimos há pouco que um subalgoritmo tem como elementos, dentre outros, os parâmetros, que são os dados que ele recebe para poder executar suas instruções (as variáveis globais). Dessa forma, em uma função soma, teríamos como parâmetros os números a serem somados (no caso da função matemática citada anteriormente, o x, que é informado pelo usuário) e como valor de retorno o resultado da soma entre os números (nesse mesmo caso, o f(x), que é a variável local onde fica armazenado o valor de retorno).

As funções, assim como as variáveis, devem ser declaradas antes de serem inicializadas. Essa declaração deve estar posicionada no espaço após a declaração das variáveis e antes do início da execução do algoritmo. Veja o exemplo a seguir:

A sintaxe da criação de uma função é a seguinte:

Veja o algoritmo a seguir, que utiliza uma função que soma dois números.

algoritmo"Funçao soma"

var

a,b, soma: inteiro //declaração das variáveis globais

funcao fsoma(a1, b1: inteiro):inteiro

//declaração da função

var

resultado : inteiro //declaração de variáveis locais

inicio

resultado<-a1+b1 //instruções

retorne resultado //valor de retorno

Função criada

fimfuncao

inicio

leia(a)

leia(b)

soma <- fsoma(a,b) //chamada da função

escreva ("soma: ", soma)

Corpo do algoritmo principal

fimalgoritmo

Observe que, após a declaração das variáveis globais do algoritmo (os números a e b a serem somados e a variável soma, para armazenar o resultado), criamos a função. O nome da função é fsoma. Os parâmetros são os números inteiros que serão armazenados nas variáveis a1 e b1 (variáveis locais de fsoma). O tipo de retorno da função é inteiro. Outra variável local é a variável resultado, na qual será armazenado o resultado da soma entre a1 e b1.

No algoritmo principal, são recebidos dois números inteiros, que são armazenados nas variáveis a e b. Chamamos, então, em uma expressão de atribuição (nesse caso), a função fsoma, que armazenará em a1 e b1 os valores de a e b, digitados, e retornará o valor encontrado na soma, que está armazenado na variável resultado. Esse valor é então armazenado na variável soma (por atribuição) e exibido em seguida.

Execute o algoritmo no VisuAlg. Para tanto, é importante salientar alguns pontos, descritos a seguir.

  1. Os parâmetros da função são separados por vírgula (como na declaração de variáveis), se forem do mesmo tipo. Se forem de tipos diferentes, devemos separá-los por ponto e vírgula (;).
  2. O tipo de retorno da função, bem como todas as suas variáveis locais, pode ser qualquer um entre os tipos de dados básicos que conhecemos: inteiro, real, lógico, literal ou caractere. Porém, o VisuAlg não suporta variáveis compostas (vetores e matrizes) como parâmetros de subalgoritmos.
  3. O comando retorne é utilizado para informar o valor de retorno da função ao algoritmo, no momento em que a função é "chamada".
  4. A função é "chamada" sempre em uma expressão, na qual o valor armazenado na variável de retorno da função é atribuído a uma variável do algoritmo principal.
  5. Sempre que chamar a função, é imprescindível que os parâmetros passados (no caso do nosso exemplo, os valores das variáveis globais a e b) devem, obrigatoriamente, estar entre parêntesis, na mesma ordem, ser do mesmo tipo e em igual quantidade aos parâmetros da função (variáveis locais a1 e b1).

Versão 5.3 - Todos os Direitos reservados