Escolar Documentos
Profissional Documentos
Cultura Documentos
Recurso
20/05/2009 17:00
Curso C - IC/UNICAMP
Recurso
Roteiro:
Idia do procedimento recursivo
Exemplos
20/05/2009 17:00
>
Recurso
Idia
20/05/2009 17:00
Curso C - IC/UNICAMP
Recurso
Calcular a funo fatorial
fat(n) = n x (n-1) x (n-2) x ... x 2 x 1
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Calcular a funo fatorial
fat(n) = n x (n-1) x (n-2) x ... x 2 x 1
fat(1) = 1
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Calcular a funo fatorial
fat(n) = n x (n-1) x (n-2) x ... x 2 x 1
fat(1) = 1
fat(2) = 2 x 1 = 2
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Calcular a funo fatorial
fat(n) = n x (n-1) x (n-2) x ... x 2 x 1
fat(1) = 1
fat(2) = 2 x 1 = 2
fat(3) = 3 x 2 x 1 = 6
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Calcular a funo fatorial
fat(n) = n x (n-1) x (n-2) x ... x 2 x 1
fat(1) = 1
fat(2) = 2 x 1 = 2
fat(3) = 3 x 2 x 1 = 6
fat(4) = 4 x 3 x 2 x 1 = 24
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Mtodo:
dado um problema P, parametrizado por
um valor n.
20/05/2009 17:00
>
Curso C - IC/UNICAMP
Recurso
Mtodo:
dado um problema P, parametrizado por
um valor n.
No exemplo:
P calcular a funo fatorial, fat
n o parmetro da funo
20/05/2009 17:00
10
>
Curso C - IC/UNICAMP
Recurso
Casos base:
Para alguns valores de n, sabemos
diretamente o valor de P(n):
Usualmente so os primeiros (mais baixos)
valores de n.
20/05/2009 17:00
11
>
Curso C - IC/UNICAMP
Recurso
Casos base:
Para alguns valores de n, sabemos
diretamente o valor de P(n):
Usualmente so os primeiros (mais baixos)
valores de n.
No exemplo:
fat(1) = 1, diretamente.
20/05/2009 17:00
12
>
Curso C - IC/UNICAMP
Recurso
Passo indutivo:
Para um valor de n, diferente do caso
base, assumimos que j temos prontos
os valores de P(n-1), P(n-2), .....
Usamos esses valores para calcular P(n).
20/05/2009 17:00
13
>
Curso C - IC/UNICAMP
Recurso
Passo indutivo:
Para um valor de n, diferente do caso
base, assumimos que j temos prontos
os valores de P(n-1), P(n-2), .....
Usamos esses valores para calcular P(n).
No exemplo:
fat(n) = n x (n-1) x ... x 2 x1 = n x fat(n-1)
20/05/2009 17:00
14
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
20/05/2009 17:00
15
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
20/05/2009 17:00
Fat
16
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
fat(2) = 2 x fat(1)
20/05/2009 17:00
17
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
fat(2) = 2 x fat(1)
fat(1) = 1
20/05/2009 17:00
18
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
fat(2) = 2 x fat(1)
fat(1) = 1
20/05/2009 17:00
base
1
Fat
19
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
fat(2) = 2 x fat(1)
induo
fat(1) = 1
20/05/2009 17:00
base
2x1=2
1
Fat
20
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
fat(3) = 3 x fat(2)
induo
fat(2) = 2 x fat(1)
3x2=6
2x1=2
induo
fat(1) = 1
20/05/2009 17:00
base
1
Fat
21
>
Curso C - IC/UNICAMP
Recurso
Podemos calcular P(n) para qualquer n:
fat(4) = 4 x fat(3)
induo
fat(3) = 3 x fat(2)
induo
fat(2) = 2 x fat(1)
4 x 6 = 24
3x2=6
2x1=2
induo
fat(1) = 1
20/05/2009 17:00
base
1
Fat
22
>
Curso C - IC/UNICAMP
Recurso
Recurso deve tratar todos os casos de
valores do parmetro n:
base
20/05/2009 17:00
23
>
Curso C - IC/UNICAMP
Recurso
Recurso deve tratar todos os casos de
valores do parmetro n:
20/05/2009 17:00
24
>
Curso C - IC/UNICAMP
Recurso
Recurso deve tratar todos os casos de
valores do parmetro n:
....
base passo indutivo
20/05/2009 17:00
25
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
20/05/2009 17:00
Potencia
26
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
20/05/2009 17:00
Potencia
27
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0,
20/05/2009 17:00
Potencia
28
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
20/05/2009 17:00
Potencia
29
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
20/05/2009 17:00
Potencia
30
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
n > 0,
20/05/2009 17:00
Potencia
31
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
n > 0, e j sei calcular 2^(n-1), 2^(n-2), etc.
20/05/2009 17:00
Potencia
32
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
n > 0, e j sei calcular 2^(n-1), 2^(n-2), etc.
Para calcular 2^n:
20/05/2009 17:00
Potencia
33
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
n > 0, e j sei calcular 2^(n-1), 2^(n-2), etc.
Para calcular 2^n:
calculamos z = 2^(n-1), recursivamente
20/05/2009 17:00
Potencia
34
>
Curso C - IC/UNICAMP
Recurso
Calcular pot(n) = 2^n, recursivamente, para n >= 0:
Caso base:
n = 0, e 2^0 = 1.
Passo indutivo:
n > 0, e j sei calcular 2^(n-1), 2^(n-2), etc.
Para calcular 2^n:
calculamos z = 2^(n-1), recursivamente
calculamos 2^n = 2*z.
20/05/2009 17:00
Potencia
35
>
Curso de C
PotBaseGen
Hex2dec
MDC
Hanoi
Newton
Fibo
Fibo2
20/05/2009 17:00
Merge
Quick
BuscaBin
Transposta
FormulaInfixa
Rainhas
36