Você está na página 1de 30

FUNÇÕES E

PROCEDIMENTOS
Funções e Procedimentos
 Decomposição de problemas
 Utilização na Indústria
 Na Informática
 Funções
 Procedimentos
 Componentes
 Subalgoritmos, rotinas
Funções e Procedimentos
 Evitam que os blocos do programa fiquem
grandes demais e mais difíceis de ler e entender
 Ajudam a organizar o programa
 Permitem reaproveitamento de códigos
construídos anteriormente.
 Evitam repetição de trechos de códigos,
minimizando erros e facilitando alterações
Procedimentos
 O procedimento é um tipo de rotina que tem
como características:
 Chamada Independente
 Não existe retorno de um único valor. Qualquer valor a
ser retornado por um procedimento volta através da
lista de parâmetros
Procedimentos
 Formato de um procedimento usando pseudocódigo:
 Procedimento

NomedoProcedimento(Lista_de_Parâmetros);
Constantes
{declaração de constantes}
Tipos
{declaração de tipos}
Variáveis
{declaração de variáveis}
Início
{corpo do procedimento}
Fim;
Procedimentos
 Exemplo:
Procedimento Multiplicacao;
Início
Escreva(´Rotina de Multiplicação´);
Entrada; {procedimento de leitura dos dados}
X a* b;
Escreva(´A multiplicação de ´, a, ´ por ´, b, ´ é ´, x);
Fim;
 
Procedimentos
Exemplo usando Pascal
procedure imprimir(mat : matriz; l,c : integer);
var
i,j : integer;
begin
for i:=1 to l do
begin
for j:=1 to c do
write(mat[i,j],' ');
writeln;
end;
end;
Procedimentos
 Exemplo usando Java
private static void classificaTriangulo(int a,int b,int c)
  {
     if (existeTriangulo(a,b,c))
      if ((a==b) && (b==c))
         System.out.println("O triangulo é equilatero");
         else 
         { if((a==b) || (b==c) || (a==c))  
             System.out.println("O triangulo e isoceles");
             else System.out.println("O triangulo é escaleno");
         }
     else System.out.println("O triangulo não existe"); 
  } 
}
Funções
 Todas as linguagens de programação põem à
disposição dos programadores várias funções
embutidas, algumas delas já vistas durante o curso,
tais como SIN (seno) e COS (co-seno). As funções
embutidas podem ser utilizadas diretamente em
expressões. O exemplo abaixo calcula o
comprimento da hipotenusa de um triângulo

HIPOTENUSA  SQRT(LADO_ESQ  2 + LADO_DIR  2)


Funções
 As funções são utilizadas como se fossem
variáveis, e como variáveis possuem somente um
valor. É responsabilidade de o programador
fornecer o argumento particular no qual a função
opera para um cálculo específico
Funções
 Afetam o fluxo de controle do
algoritmo/programa
 Após a execução da função com os argumentos
fornecidos, o controle retorna ao ponto de
chamada do algoritmo principal, com o valor
calculado da função
Funções
 Propósito
 Executar cálculos
 Exemplo em pseudocódigo:
Função MEDIA(Valor1, Valor2, Valor3:real):real;
Início
Media  (Valor1 + Valor2 + Valor3)/3;
Retornar (media);
Fim;
Funções
 Cabeçalho define o tipo da função
 Lista de parâmetros
 Opcional
 Se presente, indica as variáveis que receberão os
valores de argumentos enviados pela chamada à
rotina
Funções
 Parâmetro (parâmetros formais)
 indica as variáveis listadas no cabeçalho da função ou
procedimento
 Argumento(parâmetros reais)
 indica o valor que foi passado à rotina por uma chamada
Funções
 A lista de parâmetros especifica o número e o
tipo dos valores de argumentos que devem ser
passados à rotina
 Cada nome de variável na lista de parâmetros é
seguida geralmente, por um identificador de
tipo, e os parâmetros na lista são separados por
vírgulas
Funções
 Variáveis dentro de uma rotina estão disponíveis
para uso somente dentro da rotina
Funções
 Chamadas usando parâmetros/argumentos:
 A lista de argumentos, se existir, deve ser separada
por vírgulas e estar entre parênteses, bem como deve
conter o mesmo número e tipo de valores
Funções
 Exemplo em pseudocódigo:
Função FuncaoSimples(p1, p2, p3:Inteiro):Inteiro;
Var
ReturnVal:Inteiro;
Início
{Corpo da função; usa p1, p2, p3 para calcular um valor inteiro,
ReturnVal}
ReturnVal (p1 + p2 + p3) * 5;
FuncaoSimplesReturnVal;
Fim;
Funções
 Exemplo em Pascal
FUNCTION Soma(V1, V2 : BYTE) : BYTE;
Begin
Soma := V1 + V2;
End;
Funções
 Exemplo em Java
private static boolean existeTriangulo(int a,int b,int c)
  {    
     return (a>Math.abs(b-c)) && a<(b+c);
  }
Funções
 Exemplo de chamadas
 Escreva(´O resultado é ´, FuncaoSimples(1,2,3))
 i:= FuncaoSimples(a, b, c);
 ProcedSimples(StVar, NumVar, FuncaoSimples
(1,2,3));
Funções e procedimentos
 Declaração Global Versus Local
 Declarações em nível de programa definem identificadores globais,
ou seja, constantes, tipos e variáveis que estão disponíveis para uso
em qualquer ponto do programa;

 Declarações em nível de procedimento e funções definem


identificadores locais, ou seja, constantes, tipos e variáveis que só
estão disponíveis para uso dentro de uma rotina em particular,
sendo removidas da memória quando a execução da rotina termina
Funções e Procedimentos
 Parâmetros por Valor e Parâmetros por
Variável
 Parâmetros por valor:
 Por default, todas as variáveis contidas no cabeçalho
de uma rotina são parâmetros por valor.
 compilador faz uma cópia na memória de cada
argumento
Funções e Procedimentos
 Parâmetros por valor:
 Cópias são para uso exclusivo da rotina
 As operações feitas sobre estes parâmetros por valor
não alteram os valores de argumentos originais
Funções e Procedimentos
 Parâmetros por variável
 Fornece um argumento que é passado por referência.
O compilador não fará nenhuma cópia do valor na
memória do computador.
 Rotina recebe a localização na memória do valor do
argumento original
 Em linguagens como Pascal, é identificado pela
palavra reservada Var
Funções e Procedimentos
Exemplo
Algoritmo VarTest;
Var
a, b, c:Inteiro;

Procedimento Test(x:Inteiro; Var y:Inteiro; z:Inteiro);


Início
Inc(x,10);
Inc(y,10);
Inc(z,10);
Escreva(´Teste Interno´);
Escreva (´x: ´,x, ´ y:´,y, ´ z:´,z);
Escreva;
Fim;
 
Funções e Procedimentos
Início {Teste de Parâmetros}
a:=5;
b:=6;
c:=7;
Escreva (´Antes da chamada ao procedimento Test´);
Escreva (´a: ´,a, ´ b:´,b ,´ c:´,c);
Test(a, b, c);
Escreva (´Depois da chamada ao procedimento Test´);
Escreva (´a: ´,a, ´ b:´,b ,´ c:´,c);
Fim.
Funções e Procedimentos
 Exercícios
Crie uma função para elevar à quinta potência qualquer número digitado pelo usuário.
 
Desenvolva um subalgoritmo para preencher um vetor de 10 posições de números
inteiros e outro para retornar a soma dos elementos deste vetor.
 
Desenvolva um subalgoritmo para que dadas duas variáveis, base e expoente, dê
como resultado a base elevada ao expoente.
 
Desenvolva uma subrotina para que, digitados dois valores X e Y, dê como resultado os
valores trocados, ou seja, o valor que foi digitado em Y passa para X, e vice versa.
 
Funções e Procedimentos
(cont)
Desenvolva uma subrotina para retornar a média aritmética de quatro
valores reais digitados pelo usuário.
 
Desenvolva uma subrotina para preencher uma matriz de 10 linhas e 5
colunas com strings de 10 posições.
 
Faça uma subrotina para calcular uma equação do segundo grau.
Funções e Procedimentos
 Bibliografia
 Veloso, P. et al. Estruturas de dados. 3ed. Rio de
Janeiro:Campus, 1985
 Pereira, S.L. Estrutura de dados fundamentais,
Érica, 1996

Você também pode gostar