














































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Documento que apresenta a introdução à recursividade na computação básica, com exemplos de cálculo de fatorial usando recursão. Contém código em c.
Tipologia: Notas de estudo
1 / 54
Esta página não é visível na pré-visualização
Não perca as partes importantes!















































Computação BásicaComputação Básica
UniversidadeUniversidade de Brasília
de Brasília InstitutoInstituto de
de CiênciasCiências Exatas
Exatas
DepartamentoDepartamento de
de CiênciaCiência da
da ComputaçãoComputação
Computação BásicaComputação Básica
Computação BásicaComputação Básica
-^ Após termos trabalhado com funções, alguns devem terse perguntado:
Posso chamar uma função dentro dela mesma?
1.^ Recursividade1.^ Recursividade - A^
resposta
é^
sim,^
e^ esta
técnica
se
chama
RECURSIVIDADE.• Algumas
vezes
ela facilita
a^ interpretação
de^
certos
problemas.
Computação BásicaComputação Básica
Quando parar de chamar a função?
-^ A questão é: 1.^ Recursividade1.^ Recursividade
Computação BásicaComputação Básica
De forma iterativa: De^ forma
recursiva
:
1.^ Recursividade1.^ Recursividade fatorial (n) = 1 * 2 * 3 .... n
^ De
forma
recursiva
: fatorial (n) = n * fat (n – 1),
sendo fat (0) = 1
Computação BásicaComputação Básica
De forma iterativa: #include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {
1.^ Recursividade1.^ Recursividade
Computação BásicaComputação Básica
De forma recursiva:^ printf("%d \n", fat);^ system("PAUSE")
1.^ ; Recursividade1. Recursividade
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];return 2*fatorial(2-1);
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];return 2*fatorial(2-1);
[fatorial(1)];return 1*fatorial(1-1);
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];return 2*fatorial(2-1);
[fatorial(1)];return 1*fatorial(1-1);
[fatorial(0)]
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];return 2*fatorial(2-1);
[fatorial(1)];return 1*fatorial(1-1);
return 1;
Computação BásicaComputação Básica
(int^
n){ if(n==0)return
elsereturn
n*fatorial(n-1); }
1.^ Recursividade1.^ Recursividade
N = fatorial(3);
return 3*fatorial(3-1);
[fatorial(2)];return 2*fatorial(2-1);
[fatorial(1)];return
^1 *^1
;