Capítulo 17: Funções I: O Conceito de Modularização

🎯 Objetivo da Aula

Programas reais podem ter milhares de linhas. Escrever tudo dentro da funcao inicio() torna o código impossível de ler e manter. Nesta aula, você aprenderá sobre Modularização. O objetivo é aprender a criar suas próprias Funções, organizando seu código em pequenos blocos independentes e reutilizáveis.


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

Situação: O sistema da FastLog precisa exibir um cabeçalho padrão com o logo e o nome da empresa em todas as telas (Login, Cadastro, Relatório). O Problema: Se você copiar e colar o desenho do cabeçalho em 10 lugares diferentes e depois precisar mudar o telefone da empresa, terá que alterar 10 vezes.

Missão: Criar uma única função chamada desenhar_cabecalho() e “chamá-la” sempre que precisar dela.


🧠 Fundamentos: A Teoria Traduzida

1. O que é uma Função?

Pense em uma função como um especialista que você chama para realizar uma tarefa sempre que necessário.

💡 Exemplo 1: Cotidiano (Iluminação)

Você não precisa saber como a eletricidade funciona. Você apenas “chama” a função ligar_interruptor() e a luz acende.

📝 Exemplo 2: Técnico (Cabeçalho de Relatório)

Em vez de escrever o nome da empresa e o logo em 20 telas, você cria a função gerar_cabecalho() e a chama no topo de cada código.

graph TD
    A[funcao inicio] -- Chamada --> B[funcao gerar_cabecalho]
    B -- Escreve Dados da Empresa --> B
    B -- Retorna ao Fluxo --> A
    
    style B fill:#f39c12,stroke:#fff,color:#fff

3. Vantagens

  • Organização: O código fica limpo.
  • Reuso: Você escreve uma vez e usa mil vezes.
  • Manutenção: Se algo quebrar, você só conserta em um lugar.

📖 Exemplo Guiado: Sistema Modular

Uma função é um especialista que você chama para realizar uma tarefa. Observe como o código do inicio fica muito mais limpo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
programa {
	funcao desenhar_linha() {
		escreva("----------------------------------\n")
	}

	funcao inicio() {
		desenhar_linha()
		escreva("     SISTEMA FASTLOG V1.0\n")
		desenhar_linha()
		escreva("Aguardando login...\n")
		desenhar_linha()
	}
}

🛠️ Prática Obrigatória 1: Exibir Menu Reutilizável

Crie um programa que tenha uma função chamada exibir_menu(). Essa função deve mostrar as opções: 1. Cadastrar | 2. Listar | 3. Sair. Chame essa função dentro do seu inicio().

✅ Resultado Esperado

1
2
3
4
5
=== MENU PRINCIPAL ===
1) Adicionar Produto
2) Ver Estoque
3) Sair
======================

🛠️ Prática Obrigatória 2: Calculadora de Imposto FastLog

Crie uma função calcular_icms(real valor) que receba um valor como parâmetro e exiba na tela o valor do imposto calculado (18% do valor recebido).

✅ Resultado Esperado

1
2
Valor do frete: 1000.0
Imposto ICMS (18%): R$ 180.0

🔥 Desafio de Fixação (Opcional): Conversor de Moeda

Crie uma função chamada converter_para_dolar(real valor_real). A função deve receber o valor em Reais, calcular a conversão (considere o dólar a R$ 5.00) e exibir o resultado.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Funções permitem que você escreva o código uma vez e o reuse em várias partes do sistema.
  2. Salve os arquivos com a extensão .por (Ex: Atividade_17_SeuNome.por).
  3. Envie no Microsoft Teams na tarefa “Capítulo 17 - Funções Básicas”.

🔑 Gabarito de Código

Prática 1:

1
2
3
4
5
6
7
8
9
programa {
	funcao exibir_menu() {
		escreva("=== MENU PRINCIPAL ===\n")
		escreva("1) Cadastrar | 2) Listar | 3) Sair\n")
	}
	funcao inicio() {
		exibir_menu()
	}
}

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
programa {
	funcao converter_para_dolar(real valor_real) {
		real total = valor_real / 5.0
		escreva("Valor em Dólar: U$ ", total)
	}
	funcao inicio() {
		real valor
		escreva("Digite o valor em R$: ") leia(valor)
		converter_para_dolar(valor)
	}
}