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:
- Criar o protótipo da função
- Chamar a função
Criando uma função
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
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
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
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
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
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)