Aula 08 - Modularização: Funções e Procedimentos 🧩
Objetivo
Objetivo: Aprender a dividir um problema grande em pequenos pedaços reutilizáveis. "Dividir para conquistar".
1. O Que é Modularização? 🧱
Imagine construir um carro. Você não faz o motor, os pneus e o vidro ao mesmo tempo num bloco só. Você monta peças separadas e as encaixa. Funções são essas peças.
Visualizando a Chamada (Mermaid)
sequenceDiagram
participant Principal
participant CalcularMedia
Principal->>CalcularMedia: Envia (Nota1, Nota2)
Note right of CalcularMedia: Processa (N1+N2)/2
CalcularMedia-->>Principal: Retorna (Média)
Principal->>Principal: Mostra Resultado
2. Tipos de Módulos 🛠️
Em Portugol (e muitas linguagens), temos dois tipos:
Procedimento (Sem Retorno)
Faz uma ação e não devolve número matemático. Ex: LimparTela(), MostrarMenu().
Função (Com Retorno)
Calcula algo e devolve uma resposta. Ex: RaizQuadrada(x), Soma(a, b).
3. Escopo de Variáveis (Onde ela vive?) 🏠
Isso é CRÍTICO. * Variável Global: Todo mundo vê. (Perigoso!) * Variável Local: Só existe dentro da função. (Seguro)
Warning
Se você criar uma variável x dentro da função somar, o programa principal NÃO enxerga ela.
3.5 Passagem de Parâmetros (Valor vs Referência) 🚚
Como a função recebe os dados?
- Por Valor (Padrão): A função recebe uma CÓPIA. Se mudar lá dentro, não afeta fora.
- Por Referência (
var): A função recebe o ENDEREÇO da variável original. Se mudar lá dentro, muda fora também!
// Exemplo: Trocar valor (Precisa ser referência!)
procedimento trocar(var a, var b : inteiro)
// ... código de troca ...
fimprocedimento
4. Simulando (Termynal)
5. Mini-Projeto: Fábrica de Áreas 🚀
Funções permitem que você crie sua própria linguagem de comandos.
Desafio do Projeto
Crie uma função chamada AreaRetangulo(base, altura) que retorne o cálculo da área.
No seu programa principal, peça para o usuário os dados e chame a função para mostrar o resultado.
Lembre-se: O programa principal não deve saber como a área é calculada, apenas pedir o resultado para a função!
6. Exercícios de Fixação 📝
- Fácil: Crie um procedimento
DesenharLinha()que escreva "----------" na tela. Use-o para separar títulos. - Médio: Crie uma função
ConverterParaFahrenheit(celsius)que recebe o valor em C e retorna em F. - Desafio (Calculadora): Crie funções para
Somar,Subtrair,MultiplicareDividir. No programa principal, peça dois números e a operação desejada, chamando a função correta. - 🏆 PROJETO FINAL MÓDULO 1: Crie um "Sistema de Notas" que use tudo que aprendeu:
- Um vetor para nomes e um vetor para médias.
- Um procedimento
LerDados()para preencher os vetores. - Uma função
VerificarAprovacao(media)que retorna "Aprovado" ou "Reprovado". - Um loop para mostrar o boletim final de 5 alunos.
Próxima Aula: Fim dos Fundamentos! Agora vamos aplicar tudo isso em linguagens reais, começando pelos pais da programação: C e C++.