BlitzMax/Lições/Função

Em programação, funções podem ser definidas como subprogramas ou subrotinas que consistem como uma parte de código utilizada para resolver um problema específico. Para utilizar uma função você deverá sempre fazer esses 2 procedimentos:

  1. Criar o protótipo da função
  2. Chamar a função

Criando uma função

editar

Primeiramente vamos criar uma função simples que vai exibir apenas uma mensagem na tela. Para isso iremos usar o comando Function e EndFunction para criar o protótipo.

Function minhaFuncao()
    Print("Ola mundo")
EndFunction

Apesar de ter escrito toda a função você notou que ela não foi exibida, isso porque você criou apenas o protótipo dela, para exibir ser conteúdo você precisa chamar a função para ela ser executada.

Chamando uma função

editar

Para chamar a função você precisa apenas escrever o seu nome após a criação do protótipo.

Function minhaFuncao()
    Print("Ola mundo")
EndFunction

minhaFuncao()

O comando Print faz parte do protótipo da função, depois de criado, o programa chama a função para ser executada. Note que você SEMPRE deve chamar a função para ela ser executada.

Parâmetros de uma função

editar

Parâmetro pode ser entendido como um valor externo que será aplicado à função, os parâmetros ficam sempre dentro dos parênteses. No exemplo abaixo a função irá exibir o valor 5 que colocamos externamente na chamada da função.

Function minhaFuncao(valorInserido%)
    Print(valorInserido%)
EndFunction

minhaFuncao(5)

Modificando uma variavel via função

editar

Também pode-se modificar o valor de uma variavel externa através da passagem por referência, para isso dentro do atributo coloque o comando Var.

Function minhaFuncao(valorInserido% Var)
    valorInserido% = 1
EndFunction

numero% = 0
Print numero%
minhaFuncao(numero%)
Print numero%

Função retornando um valor

editar

Até agora vimos funções do tipo procedimento que apenas rodam. Uma função também pode funcionar como uma variável para exibir alguma coisa, para isso devemos fazer a função retornar alguma coisa para a sua saída na hora em que for chamada. No exemplo veremos uma função que irá retornar o quadrado de um numero.

Function quadradoDeUmNumero(valorInserido)
    Return valorInserido * valorInserido
EndFunction

Print quadradoDeUmNumero(3)

Função recursiva

editar

A função recursiva é aquela que recorre a si mesmo na hora da execução, é utilizada principalmente para facilitar e simplificar algoritmos. Sua execução ocorre da seguinte forma: a função chama ela mesma, que chama ela mesma, que chama ela mesma, que chama ela mesma...... e assim por diante.

Function funcaoRecursiva(valorInserido)
    Return funcaoRecursiva(valorInserido + 1)
EndFunction

funcaoRecursiva(0)

Você deve ter notado que a execução do programa se tornou contínua (aperte Esc para encerrá-lo), isso acontece porque nós não inserimos nenhuma condição de parada, ou seja, um "freio" para função, para isso iremos criar uma condição If-Else para fazer a condição de parada.


Function funcaoRecursiva(valorInserido)
    If (valorInserido < 10)
        Print(valorInserido)
        Return funcaoRecursiva(valorInserido + 1)
    EndIf
EndFunction

funcaoRecursiva(0)