Capítulo 18: Funções II: Parâmetros e Retorno

🎯 Objetivo da Aula

Uma função que apenas escreve algo na tela é limitada. Nesta aula, você aprenderá a criar funções que processam dados dinamicamente. O objetivo é dominar o envio de Parâmetros (dados de entrada) e o uso do Retorno (o resultado que a função devolve para o programa principal).


🏢 O Cenário Prático (Seu Desafio)

Situação: A FastLog opera em vários países. Você precisa de um módulo que converta qualquer valor em Reais para Dólares, usando uma cotação informada no momento.

O Problema: Você não quer que a função apenas escreva o resultado na tela; você quer que ela calcule e devolva o valor para que você possa usá-lo em outros cálculos (como impostos ou frete).


🧠 Fundamentos: A Teoria Traduzida

1. Parâmetros e Retorno

Uma função pode receber dados e devolver resultados.

🍹 Exemplo 1: Cotidiano (Liquidificador)

  • Entrada: Fruta e Açúcar.
  • Processo: Triturar.
  • Saída: Suco.

💵 Exemplo 2: Técnico (Conversor de Moeda)

  • Entrada: Valor em Real e Cotação do Dia.
  • Processo: divisão.
  • Saída: Valor em Dólar.
graph LR
    P[Parâmetros: Valor e Cotação] --> F(Funcao Converter)
    F --> R[Retorno: Dólares]
    
    style F fill:#8e44ad,stroke:#fff,color:#fff
    style R fill:#2ecc71,stroke:#fff,color:#fff

📖 Exemplo Guiado: Conversor Inteligente

O retorne permite que a função devolva um resultado para quem a chamou. Observe que especificamos o tipo real antes do nome da função:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao real converter_dolar(real valor_real, real cotacao) {
		real resultado = valor_real / cotacao
		retorne resultado
	}

	funcao inicio() {
		real meu_dinheiro = 500.00
		real valor_convertido
		
		valor_convertido = converter_dolar(meu_dinheiro, 5.00)
		escreva("Você tem US$ ", valor_convertido)
	}
}

🛠️ Prática Obrigatória 1: Calculadora de Área

Crie uma função chamada calcular_area(real base, real altura) que retorne o valor da área (base * altura). No inicio(), peça os valores ao usuário, chame a função e exiba o resultado.

✅ Resultado Esperado

1
2
3
Base: 10.0
Altura: 5.0
A ÁREA CALCULADA É: 50.0

🛠️ Prática Obrigatória 2: Verificador de Paridade FastLog

Crie uma função do tipo logico chamada eh_par(inteiro n). Ela deve retornar verdadeiro se o número for par e falso se for ímpar. Use-a no inicio() para validar um número digitado.

✅ Resultado Esperado

1
2
Digite um número: 8
O número é par? verdadeiro

🔥 Desafio de Fixação (Opcional): Frete com Desconto

Crie uma função calcular_frete(real peso) que retorne o valor do frete (Peso * 5.0). No inicio(), se o valor do frete for maior que 100, aplique 10% de desconto e exiba o total.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. O tipo da função deve ser compatível com o valor que você deseja retornar.
  2. Salve os arquivos com a extensão .por (Ex: Atividade_18_SeuNome.por).
  3. Envie no Microsoft Teams na tarefa “Capítulo 18 - Parâmetros e Retorno”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
programa {
	funcao real calcular_area(real b, real a) {
		retorne b * a
	}
	funcao inicio() {
		real base, altura
		escreva("Base: ") leia(base)
		escreva("Altura: ") leia(altura)
		escreva("ÁREA: ", calcular_area(base, altura))
	}
}

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
programa {
	funcao real calcular_frete(real p) {
		retorne p * 5.0
	}
	funcao inicio() {
		real peso, valor
		escreva("Peso: ") leia(peso)
		valor = calcular_frete(peso)
		se (valor > 100) { valor = valor * 0.90 }
		escreva("Total Frete: R$ ", valor)
	}
}