Programação I




    Funções
   22/09/2011
Funções

    Trechos do programa que podem ser
    executados em várias partes do
    programa;

    Aceitam parâmetros, que podem ser
    constantes e variáveis;

    Podem “retornar” ou não valores para o
    trecho de onde foram chamadas;

    No G-Portugol os parâmetros e os
    retornos de dados são feitos por valor.
Exemplo de Função
1    algoritmo exemplo-funcao;
     ···
        VAR1, VAR2, SOMA : inteiro;
10   fim-variáveis
11   início
12   ···
13   fim
14   ···
15   /*Início do bloco da função*/
27   função nome(VAR2: inteiro) :inteiro
28   Início
29         SOMA := VAR1 + VAR2;
30   retorne SOMA;
31   fim
Exemplo de Função
1    algoritmo fatorial_recursivo;
2    variáveis
3    x : inteiro;
4    fim-variáveis
5    início
6      imprima("Digite um número:");
7      x := leia();
8      imprima("fatorial de ",x," é igual a ",fatorial(x));
9    fim
10 função fatorial(z:inteiro) : inteiro
11 início
12     se z = 1 então
13         retorne 1;
14     senão
15         retorne z * fatorial(z-1);
16     fim-se
17 fim

Funções

  • 1.
    Programação I Funções 22/09/2011
  • 2.
    Funções  Trechos do programa que podem ser executados em várias partes do programa;  Aceitam parâmetros, que podem ser constantes e variáveis;  Podem “retornar” ou não valores para o trecho de onde foram chamadas;  No G-Portugol os parâmetros e os retornos de dados são feitos por valor.
  • 3.
    Exemplo de Função 1 algoritmo exemplo-funcao; ··· VAR1, VAR2, SOMA : inteiro; 10 fim-variáveis 11 início 12 ··· 13 fim 14 ··· 15 /*Início do bloco da função*/ 27 função nome(VAR2: inteiro) :inteiro 28 Início 29 SOMA := VAR1 + VAR2; 30 retorne SOMA; 31 fim
  • 4.
    Exemplo de Função 1 algoritmo fatorial_recursivo; 2 variáveis 3 x : inteiro; 4 fim-variáveis 5 início 6 imprima("Digite um número:"); 7 x := leia(); 8 imprima("fatorial de ",x," é igual a ",fatorial(x)); 9 fim 10 função fatorial(z:inteiro) : inteiro 11 início 12 se z = 1 então 13 retorne 1; 14 senão 15 retorne z * fatorial(z-1); 16 fim-se 17 fim