Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Lógica de Programação / Aula
Um procedimento é um subalgoritmo, assim como a função. A principal diferença entre ambos é que a função retorna um valor, enquanto o procedimento não retorna, mas modifica os valores recebidos.
Um procedimento é um subalgoritmo que é chamado dentro do algoritmo através da citação de seu nome (identificador) e deve alterar os valores dos parâmetros recebidos.
Vimos anteriormente que uma função retorna um único valor, enquanto um procedimento não retorna, mas modifica os valores. Existem, porém, outras diferenças importantes entre os dois.
As funções retornam o seu valor de forma explícita, por meio do comando retorne.
As chamadas às funções ocorrem sempre em expressões ou instruções de atribuição.
Os procedimentos não retornam valor. Não existe comando retorne.
Os procedimentos são chamados em comandos isolados, como as instruções de entrada e saída de dados (leia e escreva), e nunca em expressões ou atribuições.
Os procedimentos devem ser criados e declarados na mesma posição que as funções: após a declaração de variáveis dos algoritmos e antes do início da execução do mesmo. Veja:
Algoritmo "<nome do algoritmo>"
var
<declaração de variáveis do algoritmo>
<declaração do procedimento>
inicio
<corpo do algoritmo>
fimalgoritmo
A sintaxe da criação de um procedimento é a seguinte:
// cabeçalho, com o nome e os parâmetros
procedimento<identificador> (var <lista de parâmetros>:<tipo dos parâmetros>)
// inicio da execução do procedimento
inicio
<instruções>
fimprocedimento
Veja o algoritmo a seguir, que utiliza um procedimento que calcula a área de um triângulo.
algoritmo "Procedimento triangulo"
var
altura, base, area : real // declaração das variáveis globais
procedimento ptriangulo (var h,b,ar : real)
// declaração do procedimento
inicio
ar <- (b*h)/2 // instruções
fimprocedimento
inicio
escreval ("Digite o valor da base: ")
leia (base)
escreval ("Digite o valor da altura: ")
leia (altura)
ptriangulo(altura,base, area) // chamada ao procedimento
escreval (area,"m²")
fimalgoritmo
Veja que o procedimento é criado após a declaração das variáveis globais do algoritmo. No momento da declaração do procedimento, seus parâmetros (variáveis locais) são informados entre parêntesis, precedidos da palavra chave var. Isso ocorre porque os procedimentos, como vimos há pouco, modificam valores por meio dos parâmetros, diferente das funções, que utilizam a instrução retorne.
Sabemos que os parâmetros permitem a comunicação entre o subalgoritmo e o algoritmo que o "chama". Dessa forma, o procedimento recebe os valores através das variáveis globais (no caso, altura e base) e os armazena em suas variáveis locais (h e b). Após realizar o cálculo da área, o valor resultante é passado, por meio da variável local ar, e armazenado na variável global area.
Por isso, ao "chamarmos" o procedimento no algoritmo principal, devemos fornecer os parâmetros (variáveis globais do algoritmo), entre parêntesis, na mesma ordem, quantidade e tipo que os parâmetros (variáveis locais) do procedimento, assim como fazemos nas funções.
Versão 5.3 - Todos os Direitos reservados