UFLA

🎓 Aula 05

Modularização e Passagem de Parâmetros

Prof. Paulo Rettore

Universidade Federal de Lavras

GAC124 — Introdução aos Algoritmos

🎯 Dividir para resolver melhor

  • Separar um problema em subproblemas.
  • Criar funções com responsabilidades claras.
  • Entender fluxo, escopo e parâmetros.
  • Reaproveitar código sem copiar e colar.

Uma função bem definida faz uma tarefa e pode ser testada isoladamente.

🧱 O que é modularização?

Modularizar é transformar uma solução grande em partes menores, chamadas funções ou subprogramas.

Entrada

Parâmetros recebidos.

Processamento

Comandos da função.

Saída

Valor retornado.

⚙️ Declaração, definição e chamada

int dobro(int valor); // Protótipo (declaração)

int dobro(int valor) { // definição
    return 2 * valor;
}

int main() {
    cout << dobro(5); // chamada
}

A declaração informa o tipo de retorno, o nome e os tipos dos parâmetros.

🔀 Fluxo de execução

int dobro(int valor) {
    return 2 * valor;
}

int main() {
    int resultado = dobro(5);
    cout << resultado;
}
  1. main() chama dobro(5).
  2. A execução entra na função.
  3. return devolve o resultado para resultado.
  4. cout imprime o valor armazenado: 10.

🔒 Escopo: onde a variável existe?

Dentro da função

int resultado declarado em main() existe somente dentro de main().

Dentro de um bloco

int tentativa declarado em um if ou for só existe naquele bloco.

Fora das funções

Uma constante como PI pode ser usada por várias funções, mas deve ser global apenas quando fizer sentido.

Parâmetros, como valor em dobro(int valor), também são variáveis locais da função. Prefira parâmetros e retornos a globais.

📦 Passagem por valor

void dobra(int x) {
    x = 2 * x;
}

int n = 5;
dobra(n);
cout << n; // continua 5

A função recebe uma cópia. Alterar o parâmetro não altera a variável original.

🔁 Troca de dois valores

void troca(int& a, int& b) {
    int aux = a;
    a = b;
    b = aux;
}

int x = 2, y = 7;
troca(x, y);
cout << x << " " << y; // 7 2

Passagem por valor

Sem &, a e b seriam cópias. A troca aconteceria apenas dentro da função e x e y continuariam 2 e 7.

Passagem por referência

Com &, a e b são apelidos para x e y. A função altera as variáveis originais, que terminam como 7 e 2.

🧩 Desafio de modularização

Crie funções para:

  1. ler três notas;
  2. calcular a média;
  3. informar se o estudante foi aprovado.

Cada função deve ter uma responsabilidade clara e nomes que expliquem sua finalidade.

🧩 Prática em aula

Crie funções para ler três notas, calcular a média e informar se o estudante foi aprovado.

Gabarito orientador: Separe as responsabilidades: uma função para a média e outra para a decisão. Escolha retornos coerentes.

📚 Referências e materiais

Use estas fontes para consultas pontuais depois da aula:

Os slides completos, o Campus Virtual e o DREDD continuam sendo as fontes principais da disciplina.

📌 Resumo da aula

  • Funções reduzem complexidade e repetição de código.
  • Declaração, definição e chamada têm papéis diferentes.
  • Variáveis locais vivem dentro do próprio escopo.
  • Por valor: cópia; por referência: acesso à variável original.

PRÓXIMA AULA

⏭️ Próxima aula

Vetores e repetições contadas

Prof. Paulo Rettore

GAC124 — Introdução aos Algoritmos