Função é um pedaço de programa que é criado para ser uma parte modularizada que realiza uma tarefa. Pode ter parâmetros e retorna um valor ao seu término.

Uma função é declarada utilizando a palavra reservada funcao. O retorno de um valor é feito utilizando a palavra reservar retorne como mostrado abaixo.:

Sintaxe: declaração
funcao tipo_retorno nome_funcao()
{
    //corpo
    retorne valor_retorno
}

Após a declaração de uma, essa pode ser invocada, usada ou chamada por meio da sintaxe mostrada a seguir, que pode ser chamada de dentro da função principal inicio, ou dentro outra função ou procedimento.

Sintaxe: chamada
nome_funcao()
Onde
-
Exemplo 1
programa
{
    funcao RecuperarTituloAlgoritmo()
    {
       literal titulo
       titulo = "Um titulo qualquer"
       retorne titulo
    }

    funcao inicio()
    {
       literal titulo
       titulo = RecuperarTituloAlgoritmo()
       escreva(titulo)
    }
}
Saída:
Um titulo qualquer

É importante observar no exemplo acima que qualquer comando declarado/escrito após o comando de retorno retorne, não será executada.

Apesar de no exemplo acima o retorno tenha sido colocado no fim da função, como é feito normalmente, é possível colocar retorne dentro de qualquer outra instrução como comandos de decisão, por exemplo.

Exemplo 2
programa 
{
    funcao cadeia RecuperarTituloAlgoritmo(inteiro parametro)
    {
        inteiro opcao = parametro

        se(opcao == 1)
        {
          retorne "titulo 1"
        }
        senao se(condicao2)
        {
          retorne "titulo 2"
        }
        senao
        {
          retorne "titulo 3"
        }
        
        retorne "titulo 4"
    }

    funcao inicio()
    {
 	    cadeia titulo
	    titulo = RecuperarTituloAlgoritmo(1)
	    escreva(titulo)
    }
}
Saída:
titulo 1

O exemplo acima é apenas ilustrativo para mostrar como utilizar as funções para ter mais de uma instrução retorne na declaração de seu corpo.

É importante observar que Portugol, assim como outras linguagens, não aceita que uma função retorne mais de um valor.

Além do uso de variáveis e/ou expressões lógicas, também é possível utilizar funções, por exemplo, que retornam valor Verdadeiro ou Falso dentro de comandos como os de decisão, por exemplo.

Exemplo 3

Uso de funções com comandos

//não irá compilar
programa
{
    funcao ValidarExecucao(...) 
    {
        //trecho de código omitido
        logico flag = false;
        se (condicao)
        {
            flag = Verdadeiro;
        }
        retorna flag;
    }

    funcao RetornarOpcaoMenu(...)
    {
        //trecho de codigo omitido
	
        inteiro opcao;
        opcao = -1; //nenhuma opção selecionada

        //trecho de código omitido que manipula opção

        retorna opcao
    }

    funcao inicio()
    {
        //trecho de código omitido
		
        se (ValidaExecucao(...))
        {
            //instruções omitidas
        }

        enquanto (ValidaExecucao(...))
        {
            //instruções omitidas
        }

        escolha (RetornarOpcaoMenu(...))
        {
            //instruções omitidas
        }
    }
Saída:
-
  1. 02/10/2024 - revisão 3 - Correção: Exs. 1 e 2, intro 'Função', 'sintaxe' de uso; remoção de texto repetido; outros ajustes
  2. 30/08/2024 - revisão 2 - Correção de namespace que gerava erro ao carregar página
  3. 29/05/2023 - revisão 1 - Correção em navegação e erros gramaticais
  4. 08/05/2023 - versão inicial