Escolar Documentos
Profissional Documentos
Cultura Documentos
Computadores
Michael A. Pontes
Funções e Procedimentos
Abordagem
Técnica de modularização de programas que
utiliza estruturas chamadas de
procedimentos ou funções;
Técnica de resolução de problemas que
utiliza a recursividade;
Procedimentos e Funções
Uma forma usual de resolver um problema complexo
é procurar “quebrá-lo” em “problemas menores” ou
subproblemas.
dividir para conquistar.
Ao resolver cada subproblema estamos na verdade
resolvendo uma parte do problema em questão.
Se algum dos subproblemas for ainda muito
complexo, podemos dividi-lo em outros
subproblemas e assim sucessivamente.
Esta abordagem de solução de problemas é
chamada de top-down, pois partimos de um nível de
abstração alto (isto é, todo o problema) e vamos
fazendo refinamentos sucessivos definindo cada um
dos subproblemas envolvidos na solução do
problema.
Procedimentos e Funções
Da mesma forma podemos dividir
um programa em programas
menores.
A esta técnica chamamos
modularização.
Modularização
Estes programas menores chamaremos módulos ou
subprogramas.
Os módulos ou subprogramas podem ser de dois
tipos: procedimentos ou funções.
São utilizados no que chamamos programa principal,
que é aquele que “chama” (dispara a execução) os
subprogramas.
Um subprograma pode também chamar outro
subprograma.
Um módulo pode passar ou receber variáveis de
outro módulo. Estas variáveis recebem o nome de
parâmetros do módulo
Modularização
A modularização consiste em dividir o
programa em subprogramas.
Criamos módulos contendo um grupo de
comandos que irão ser executados como um
bloco.
Se este bloco de comandos é
freqüentemente utilizado só precisamos fazer
a sua codificação uma única vez.
Programação Modular
A programação modular consiste numa
metodologia de projeto de programas
visando facilitar:
a escrita dos programas;
a leitura e o entendimento dos programas
pelos programadores;
a verificação da correção do programa;
a manutenção e modificação dos programas.
Programação Modular
Dentre as vantagens da modularização de
programas podemos citar:
Partes comuns a vários programas ou que se repetem
dentro de um mesmo programa são programadas e
testadas uma única vez, mesmo que tenham que ser
executadas com variáveis diferentes;
Podemos construir bibliotecas de programas, isto é,
uma coleção de módulos que podem ser usados em
diferentes programas sem alteração;
A modularização dos programas permite preservar na
sua implementação os refinamentos obtidos durante o
desenvolvimento dos algoritmos;
Economia de memória do computador, uma vez que o
módulo é armazenado uma única vez, mesmo que
utilizado em diferentes partes do programa.
Programação Modular
Uma desvantagem que podemos citar é que
existe um acréscimo de tempo de execução
dos programas constituídos de módulos,
devido ao tratamento adicional necessário
para ativação/desativação do módulo,
embora este tempo possa ser considerado
desprezível com os processadores atuais.
Você deve estar se perguntando: Como
dividir um programa em módulos?
Programação Modular
A resposta a esta pergunta é: Utilize as seguintes
regras para a divisão de um programa em módulos:
Mantenha os módulos o mais auto-suficientes
possível.
Mantenha o número de variáveis passadas como
parâmetros de um modulo para outro o mínimo
possível.
Faça cada modulo realizar bem uma única tarefa.
Faça com que cada módulo possa ser visto como
uma “caixa-preta”.
Se possível mantenha o tamanho do módulo com
no máximo 50 linhas de código.
Programação Modular
Um algoritmo agora terá a seguinte estrutura:
inicio
declaração de constantes;
declaração de variáveis;
declaração de subprogramaA(procedimento ou função)
{ // corpo do subprograma
comandos;
}
declaração de subprogramaB(procedimento ou função)
{ // corpo do subprograma
comandos;
}
...
{ // corpo do programa principal
comando-1;
comando-2;
...
comando-n;
}
Fim.
Procedimentos
São módulos que executam tarefas específicas.
Os procedimentos são como programas dentro de
programas.
Os procedimentos têm:
um nome;
uma lista de parâmetros;
variáveis e constantes próprias;
bloco de comandos.
Procedimentos
A lista de parâmetros pode não existir em um
procedimento.
Ela representa a “entrada de dados” do procedimento.
Os parâmetros da lista de parâmetros são declarados
e utilizados como se fossem variáveis normais do
programa.
A ordem em que os parâmetros aparecem na lista é
extremamente importante.
Procedimentos
Um procedimento tem a seguinte estrutura:
procedimento nomeDoProcedimento (<lista de parâmetros>)
{
declaração de variáveis;
comandos
}
Procedimentos
Exemplo: Construa um algoritmo que utilize um procedimento
que imprima o valor da soma de dois números inteiros,
fornecidos como parâmetros.
inicio
real num1, num2;
procedimento soma(real a, real b) Observe que para chamar
{ um procedimento
real s; basta colocar o nome do
s = a + b; procedimento em
escreva("Soma: ", s);
uma linha de comando,
}// soma seguidos dos
{ // início do algoritmo parâmetros, se definidos.
escreva(“Entre com o primeiro valor:”);
No nosso exemplo temos:
leia (num1);
soma(num1, num2);
escreva(“Entre com o segundo valor:”);
leia (num2);
soma(num1, num2);
}
Fim.
Funções
As funções são “procedimentos” que retornam um
valor.
Executam tarefas específicas porém, retornam um
valor para o programa ou módulo que o chamou.
São parecidas com as funções matemáticas, pois
retornam um valor.