aula 106

Como criar uma função que recebe parâmetros em Portugol?

Já vimos na aula anterior o que diferencia uma função de um procedimento. Uma função possui retorno enquanto que um procedimento não retorna nenhum valor. Nesta aula vamos ver que, assim como um procedimento, uma função também pode receber uma lista de parâmetros e as vezes isso é muito útil para resolver um problema.

Imagine que desejamos fazer um bloco de código que, dado a idade e o sexo de um indivíduo, diz se ele precisa se alistar ou não. Basicamente o que precisamos fazer é realizar alguns testes:

  • se for do sexo feminino, não precisa se alistar
  • se tiver menos de 18 anos não precisa se alistar
  • se tiver mais de 18 anos já se alistou

Ou seja, basicamente precisamos fazer apenas dois testes:

  • se for do sexo masculino e tiver 18 anos então precisa se alistar.

É exatamente isso que faremos. Uma função que recebe a idade e o sexo de uma pessoa e verifica se precisa ou não se alistar. Podemos utilizar como retorno os números 0 e 1. O 0 indica falso, ou seja, não precisa se alistar, e o 1 indica verdadeiro.

A seguir apresento a função alistamento em Portugol que recebe como parâmetro dois valores, a idade e o sexo do usuário e retorna um valor inteiro, 0 ou 1.

	funcao inteiro alistamento(inteiro id, caracter s){
		se(s == 'm' e id == 18){
			retorne 1 // significa que o usuário deve se alistar
		}
		senao{
			retorne 0 // significa que o usuário está dispensado do alistamento
		}
	}

Chamo sua atenção para um detalhe importante. Perceba que verifiquei apenas pela letra m minúscula. Isso significa que, caso o usuário digite M maiúsculo, nossa função vai retornar 0 mesmo que ele tenha 18 anos. Para corrigir isso basta acrescentar mais uma verificação, comparando com m minúsculo e maiúsculo, assim:

	funcao inteiro alistamento(inteiro id, caracter s){
		se(s == 'm' ou s == 'M' e id == 18){
			retorne 1 // significa que o usuário deve se alistar
		}
		senao{
			retorne 0 // significa que o usuário está dispensado do alistamento
		}
	}

Para tornar nosso programa mais interessante, vamos construir também outras duas funções, uma para ler a idade e outra para ler o sexo, assim:

	funcao inteiro lerIdade(){
		inteiro idade
		escreva("\nDigite sua idade: ")
		leia(idade)
		retorne idade
	}

	funcao caracter lerSexo(){
		caracter sexo
		escreva("\nDigite f para FEMININO ou m para MASCULINO: ")
		leia(sexo)
		retorne sexo
	}

Agora, no procedimento inicio, podemos usar nossas funções para ler a idade e o sexo do usuário e imprimir uma mensagem na tela dizendo se ele é obrigado ou não a se alistar de acordo com o retorno da função alistamento.

programa{

	/* 
	* Aula 106: Criando uma função com parâmetro.
	* 
	* Escrito por Wagner Gaspar
	* Março de 2021
	*/

	funcao inteiro alistamento(inteiro id, caracter s){
		se(s == 'm' e id == 18){
			retorne 1 // significa que o usuário deve se alistar
		}
		senao{
			retorne 0 // significa que o usuário está dispensado do alistamento
		}
	}

	funcao inteiro lerIdade(){
		inteiro idade

		escreva("\nDigite sua idade: ")
		leia(idade)
		retorne idade
	}

	funcao caracter lerSexo(){
		caracter sexo
		escreva("\nDigite f para FEMININO ou m para MASCULINO: ")
		leia(sexo)
		retorne sexo
	}
	
	
	funcao inicio(){
		inteiro idade
		caracter sexo

		idade = lerIdade()
		sexo = lerSexo()

		se(alistamento(idade, sexo) == 1){
			escreva("\n\tAlistamento obrigatório!\n")
		}
		senao{
			escreva("\n\tAlistamento NÃO obrigatório!\n")
		}
	}
}

Deixe um comentário

três × um =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.