Função

De modo geral as linguagens de programação possibilita que se codifique trechos na forma de uma função (ou um procedimento), podendo chamar esses trechos em qualquer ponto do código. Isso possibilita uma melhor organização do programa, tornando-o mais modular.
O iVprog implementa essa possibilidade de modularização por meio de funções, que comportam-se como as funções matemáticas.


Fig. 1. Interface do iVProg para declarar uma função (ainda com o nome padrão).
  1. Tipo da função: define o tipo de "devolução" da função
  2. Nome da função: define o nome da função
  3. Adicionar parâmetro: adiciona um novo parâmetro à função
  4. Tipo do parâmetro: define o tipo do parâmetro
  5. Nome do parâmetro: define o nome do parâmetro

Exemplo. Na figura 2 apresentamos um código definindo uma função de nome fatorial devolvendo um valor inteiro (portanto função do tipo inteiro). No programa que chama fatorial é solicitado que o usuário digite um valor inteiro, então a função é invocada para computar esse valor (imprimindo-o).


Fig. 2. Exemplo da definição de uma função (fatorial) e uma chamada dessa função.

Portugol. Código textual correspondente

programa {
  funcao vazio inicio (  )  {
    inteiro n <- 0
    leia(n)
    escreva(fatorial(n), "\n")
    }
funcao inteiro fatorial (inteiro pn) {
    inteiro fat <- 1
    inteiro i <- 2
    enquanto_verdadeiro (i <= pn) {
      fat <- fat * i
      i <- i + 1
      }
    devolva fat
    }
  }