Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/.../pe-3q-2017/PE-aula06.pdf ·...

Post on 19-Aug-2020

3 views 0 download

Transcript of Aula 06: Laboratório - Recursão (parte 2)professor.ufabc.edu.br/.../pe-3q-2017/PE-aula06.pdf ·...

1

Aula 06: Laboratório - Recursão (parte 2)

MCTA028 – Programação Estruturada

Prof. Jesús P. Mena-Chalco

jesus.mena@ufabc.edu.br

3Q-20107

3

(1) Fatorial de um número inteiro

4

Fatorial de um número

Teste para num=20 a resposta deve ser 2432902008176640000

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

6

Fatorial de um número

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

7

Fatorial de um número

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

8

Fatorial de um número

$ gcc fatorial.c ­o fatorial.exe

$ ./fatorial.exe 17355687428096000

$ ./fatorial.exe 186402373705728000

$ ./fatorial.exe 19121645100408832000

$ ./fatorial.exe 202432902008176640000

9

Fatorial de um número

$ gcc ­Wall ­pg fatorial.c ­o fatorial.exe

$ ./fatorial.exe

$ gprof fatorial.exe  > fatorial.txt

Wall ← Warnings allpg ← para uso com o gprof (gera um arquivo gmoun.out)

Um arquivo fatorial.txt é gerado.

n=20

10

Fatorial de um número

11

(2) Números de Fibonacci

12

13

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)

14

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)

15

Números de Fibonacci

$ gcc ­Wall ­pg fibonacci.c ­o fibonacci.exe

$ ./fibonacci.exe

$ gprof fibonacci.exe > fibonacci.txt

n=5

n=20

16

Números de Fibonacci

17

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

fibonacciContador.c

18

Versão com memória

FibonacciComMemoria.c

0 0 1 2 3 5 8 ...

0 0 0 0 0 0 0 ...

19

(3) Palindromo

20

Vetor palindromo (Iterativo)

Crie sua versão recursiva

21

Vetor palindromo (Recursivo)

22

(4) Primorial

23

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

24

ehPrimo