21
1 Aula 06: Laboratório - Recursão (parte 2) MCTA028 Programação Estruturada Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-20108

Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

1

Aula 06: Laboratório

- Recursão (parte 2)

MCTA028 – Programação Estruturada

Prof. João Henrique Kleinschmidt

Material elaborado pelo prof. Jesús P. Mena-Chalco

3Q-20108

Page 2: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c
Page 3: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

3

(1) Fatorial de um número inteiro

Page 4: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

4

Fatorial de um número

Teste para num=20a resposta deve ser 2432902008176640000

Page 5: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

5(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 6: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

6

Fatorial de um número

Número de vezes em que a função Fatorial é chamada?

Page 7: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

7

Fatorial de um número

Número de vezes em que a função Fatorial é chamada? n+1

Page 8: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

8

Fatorial de um número

$ gcc fatorial.c -o fatorial.exe

$ ./fatorial.exe

17

355687428096000

$ ./fatorial.exe

18

6402373705728000

$ ./fatorial.exe

19

121645100408832000

$ ./fatorial.exe

20

2432902008176640000

Page 9: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

9

(2) Números de Fibonacci

Page 10: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

10

Page 11: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

11

Números de Fibonacci

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Page 12: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

12

Números de Fibonacci

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (7)Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (8)Fib (7)

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (9)Fib (8)

Fib (7)

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (7)

Fib (6)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (5)

Fib (4)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Fib (2)

Fib (1)

Fib (0)

Fib (3)

Fib (2)

Fib (1)

Fib (0)

Fib (1)

Page 13: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

13

Números de Fibonacci

Page 14: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

14

Usando uma variável global para contar o número de chamados à função

fibonacciContador.c

Page 15: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

15

Versão com memória

FibonacciComMemoria.c

0 0 1 2 3 5 8 ...

0 0 0 0 0 0 0 ...

Page 16: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

16

(3) Palíndromo

Page 17: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

17

Vetor palíndromo (Iterativo)

Crie sua versão recursiva

Page 18: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

18

Vetor palíndromo (Recursivo)

Page 19: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

19

(4) Primorial

Page 20: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

20

Primorial

O primorial de um número inteiro positivo n é o produto de todos os

primos menores ou iguais a n.

É denotado por n#

Crie uma função recursiva que, dado um número inteiro positivo, devolva o seu Primorial.

https://en.wikipedia.org/wiki/Primorial

Page 21: Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/~joao.kleinschmidt/aulas/... · Aula 06: Laboratório - Recursão (parte 2) ... Fatorial de um número $ gcc fatorial.c

21

ehPrimo