Nesta aula vamos aprender a criar nossa primeira função sem nenhum parâmetro, para ler e retornar o nome do usuário. A diferença entre uma função e um procedimento é que, enquanto um procedimento executa uma sequência de código e finaliza sem nenhum retorno, uma função também executa uma sequência de código, contudo, retornando algum valor ao final.
Continuando o código da aula anterior, vamos agora escrever uma função para pedir ao usuário seu nome, ler o nome digitado e retornar.
A pergunta que mais escuto nas aulas é: retorna pra onde?
Retorna exatamente para onde foi feita a chamada à nossa função.
O processo de construção da nossa função é bem parecido com um procedimento, porém na função temos que indicar o tipo de retorno, neste caso tipo cadeia. A assinatura da nossa função fica assim:
// Assinatura da função lerNome funcao cadeia lerNome()
Temos a palavra reservada “funcao“, o tipo de retorno “cadeia“, o nome da nossa função “lerNome” e o par de parênteses, neste caso vazio porque não precisamos receber nenhum parâmetro.
Dentro da nossa função vamos criar uma variável do tipo cadeia, pedir para o usuário digitar seu nome, fazer a leitura do que for digitado salvando na variável do tipo cadeia e, por fim, retornar o conteúdo da variável.
funcao cadeia lerNome(){
cadeia nome = ""
escreva("\n\tDigite seu nome: ", nome)
leia(nome)
retorne nome
}
Perceba que existem basicamente duas diferentes entre uma função e procedimento:
- indicar, após a palavra reservada funcao, o tipo de retorno da nossa função e,
- a última linha com um retorne, retornando algum valor.
A seguir apresento o código completo em portugol. Dentro do procedimento início utilizamos nossa função lerNome, como é uma função e irá retornar um elemento do tipo cadeia, atribuímos o retorno à uma variável também do tipo cadeia. Por fim, utilizamos o procedimento para imprimir uma mensagem de boas vindas e o nome do usuário.
programa{
funcao cadeia lerNome(){
cadeia nome = ""
escreva("\n\tDigite seu nome: ", nome)
leia(nome)
retorne nome
}
funcao menssagemBoasVindas(cadeia nome){
escreva("\n\t-----------------------------------------\n")
escreva("\t\t\tOlá ", nome,"\n\t Seja bem vindo ao nosso sistema!")
escreva("\n\t-----------------------------------------\n\n")
}
funcao inicio(){
cadeia nome = "José"
nome = lerNome()
menssagemBoasVindas(nome)
}
}
