
Prof. Paulo Rettore
Universidade Federal de Lavras
GAC124 — Introdução aos Algoritmos
Uma função bem definida faz uma tarefa e pode ser testada isoladamente.
Modularizar é transformar uma solução grande em partes menores, chamadas funções ou subprogramas.
Parâmetros recebidos.
Comandos da função.
Valor retornado.
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.
int dobro(int valor) {
return 2 * valor;
}
int main() {
int resultado = dobro(5);
cout << resultado;
}main() chama dobro(5).return devolve o resultado para resultado.cout imprime o valor armazenado: 10.int resultado declarado em main() existe somente dentro de main().
int tentativa declarado em um if ou for só existe naquele bloco.
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.
void dobra(int x) {
x = 2 * x;
}
int n = 5;
dobra(n);
cout << n; // continua 5A função recebe uma cópia. Alterar o parâmetro não altera a variável original.
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 2Sem &, a e b seriam cópias. A troca aconteceria apenas dentro da função e x e y continuariam 2 e 7.
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.
Crie funções para:
Cada função deve ter uma responsabilidade clara e nomes que expliquem sua finalidade.
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.
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.
PRÓXIMA AULA
Prof. Paulo Rettore
GAC124 — Introdução aos Algoritmos