Aula 1.12 - Funções, parâmetros e referências
Agora vamos aprender sobre funções! A grande diferença de funções para procedimentos, é que ela pode retorna um resultado. Confira abaixo uma imagem que ilustra a diferença entre procedimento e função:
Bom, as alterações no código acima ocorreram apenas onde está marcado por um retângulo laranja.
Em 1 e 2 (números vermelhos desenhados na imagem) é informado se é procedimento ou função, em 3 está escrito 'inteiro' pois informa o tipo de retorno dessa função e em 4 foi escrito o comando 'retorne' para que o valor da variável 'c' da função seja retornado para o programa principal - coisa que não acontece com procedimento, repare que no procedimento o 'escreval' (5) está dentro dele enquanto que na função o 'escreval' (6) está no programa principal.
Ao contrário do procedimento em que (7) soma não retorna valor, na função (8) o resultado da soma é retornado para uma variável 'r' como podem ver no ponto 8 sendo assim necessário no ponto 6 que tenha um 'escreval' para mostrar ao usuário o resultado.
Entendeu? Olhe o código abaixo:
Algoritmo "par-ou-impar"
Var
n : Inteiro
Procedimento parouimpar(valor: Inteiro) //'valor' vai receber o valor de 'n'
Inicio //inicio do procedimento
Se (valor%2 = 0) entao //confere se o resto da divisão de 'valor' por 2 é zero
Escreval ("O número", valor, " é par")
Senao
Escreval ("O número", valor, " é ímpar")
fimse
fimprocedimento //fim do procedimento
Inicio
Escreva ("Digite um número: ")
Leia (n)
parouimpar(n) //chamada para o procedimento
Fimalgoritmo
É um procedimento! Vamos então alterar para função!
Em Var vamos adicionar mais uma variável do tipo caractere para informar se o número é par ou impar:
Var
n : Inteiro
r : caractere
Agora vamos inciar a função, informando claro que ela vai retornar um valor do tipo caractere:
Funcao parouimpar(valor: Inteiro) : caractere //'valor' vai receber o valor de 'n'
Bom, dentro do inicio da nossa função, vamos apenas criar como o próprio nome diz uma função para descobrir se o número é par ou impar mas com uma diferença do procedimento: ela vai retornar o resultado para a parte principal do programa - isso é bom pois podemos reutilizar o código.
Se (valor%2 = 0) entao //confere se o resto da divisão de 'valor' por 2 é zero
retorne "par"
Senao
retorne "impar"
fimse
Agora na parte principal do programa, precisamos informar a variável que será usada para retornar o valor da função - no caso é 'r'.
r <- parouimpar(n)
E por fim damos a mensagem para nosso usuário saber se o número é par ou impar:
Escreval ("O número é", n, " é ", r)
Confira como ficou o código abaixo:
Pronto, você aprendeu como criar uma função! No 'procedimento' era possível fazer passagem de valor por parâmetros ou referencias, isso também é possível nas funções. No código da imagem acima foi utilizado passagem por parâmetro, agora confira a imagem abaixo uma passagem por referência:
A maioria das linguagens de programação vem com funções já pré-definidas, bastando você apenas chamar ela. No visualg existe também essas funções já pré-definidas, confira algumas:
Sendo 'n' nossa variável do tipo caractere:
Maiusc(n) vai retornar o que tiver escrito mas com todas letras em maiúsculo.
Minusc(n) vai retornar o que tiver escrito mas com todas letras em minusculo.
Compr(n) vai retornar o total de caracteres.
Asc("a") vai retorna o código da letra A, assim como Asc("b") retorna o da letra B.
Carac(65) vai retornar a letra correspondente ao código 65.
É isso, recomendo praticar.. inventar programas e resolver seus bugs.. afinal é assim que se aprende, até mais!
>> Próxima aula, clique aqui
COMENTÁRIOS