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) } }