A2 TADS4 Estrutura De Dados Teleaula 2 Tema 2 Impressao
1244 palavras
5 páginas
15/09/2014Estrutura de Dados
Tema 2: Recursividade.
Objetivos desse encontro
• Entender o conceito de recursividade;
• Criar funções recursivas;
• Comparar soluções recursivas e iterativas.
Relembrando ...
Função
• Solução adotada para dividir um programa em módulos, que executa, ações bem específicas; • Os módulos podem ser reutilizados quantas vezes forem necessários.
• Todo programa escrito em C possui, obrigatoriamente, uma função, a main.
1
15/09/2014
Função escrita antes da main
#include <stdio.h> int dobro(int n) { n = n * 2; return n;
}
int main() { int a; res; printf(“Digite um valor: “); scanf(“%d”, &a); res = dobro(a); printf(“Dobro = %d”, res); getchar(); }
Função escrita depois da main
#include <stdio.h> int dobro(int n); int main() { int a; res; printf(“Digite um valor: “); scanf(“%d”, &a); res = dobro(a); printf(“Dobro = %d”, res); getchar(); } int dobro(int n) { n = n * 2; return n; }
Tipos de funções
• Não recebem parâmetros e não retornam valor void funcao() {
...
}
• Recebem parâmetros e não retornam valor void funcao(par1, ...) {
...
}
2
15/09/2014
Tipos de funções
• Não recebem parâmetros e retornam valor tipo funcao() {
...
return x; }
• Recebem parâmetros e retornam valor tipo funcao(par1, ...) {
...
return x; }
Funções iterativas
• Iteração significa repetição.
• Funções iterativas realizam um procedimento repetitivo para gerar um resultado. • Cada iteração (ou cada repetição) resolve um pedaço do problema.
Quando a repetição termina, o problema está resolvido
Exemplo de funções iterativas
#include <stdio.h> int potencia(int b, int e); int main(void) { int base, exp, result; base = 2; exp = 3; result=potencia(base, exp); getchar(); }
3
15/09/2014
int potencia(int b, int e) { int i, r = 1; for (i = 1; i <= e; i++) { r = r * b;
}
return r;
}
Continuando
Tema 2: Recursividade.
O que é Recursividade?
• Alguma coisa que é definida em termos dela própria. • É a possibilidade de representar um problema em função
dele