Recursividade Programação II.

Slides:



Advertisements
Apresentações semelhantes
Assinaturas e técnicas de esconderijo vírus
Advertisements

Marco Antonio Montebello Júnior
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Linguagem II – Visual Basic
Departamento de Informática Universidade Federal do Espírito Santo
Potenciação.
Introdução a Algoritmos Seqüenciais
Exemplos de recursividade no mundo
Programação de Computadores - 3
Algoritmos e Programação Estruturada Conceitos básicos
PROCEDIMENTOS COM RECURSIVIDADE
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
BCC101 – Matemática Discreta
BCC101 – Matemática Discreta
Recursividade Conceitos e Aplicações.
THOBER CORADI DETOFENO, MSC. Aula 07
Análise Combinatória Slides Fatorial Princípio fundamental da contagem
Decomposição em fatores primos
Transformação de Imagens
Computer Vision Transformação de Imagens Paulo Sérgio Rodrigues PEL205.
Rodrigo de Toledo (original: Claudio Esperança)
Exemplos de seqüências definidas por recorrência
Linguagem C Funções.
Projeto Jogo da Velha Maria Aparecida Amorim Sibaldo Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva Universidade Federal de Alagoas Mestrado em.
Prof. Roberto Cristóvão
Matemática II aula 14 Profª Débora Bastos.
Introdução à Programação
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
TRABALHO MATEMÁTICA DISCRETA
1º Período Fundamentos de Matemática Prof. Marco Marins
Linguagem de Programação I Parte II
Linguagem de Programação I Parte III
Princípio de Prova por Indução
Aula 06 Comandos de Repetição for
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
UNIDADE 6 - complemento Funções recursivas
Leonardo Pisano Bogollo
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
MEU/ MINHA.
Recursão.
Indução Matemática Recursão
Algoritmos e Estruturas de Dados I – Recursão
Linguagem de Programação JAVA
PLANNING POKER Lílian Simão Oliveira. Estimativas de Tempo usando Planning Poker  Quando planejamos normalmente não sabendo quem vai executar  Estórias.
Algoritmos e Estruturas de Dados I – Recursão
Recursão Uma função é dita recursiva quando dentro do seu código existe uma chamada para si mesma Exemplo Cálculo do fatorial de um número:
Análise e Projeto Orientado a Objetos
BCC 101 – Matemática Discreta I
NÚMEROS: A LINGUAGEM DO UNIVERSO
BCC 101 – Matemática Discreta I
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
Para Computação Enumerabilidade, Indução Matemática Aula de Monitoria – Miniprova
Programação Dinâmica.
Fundamentos de linguagens de programação
INE Fundamentos de Matemática Discreta para a Computação
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Informática e Computação Aula Estrutura de Repetição
Séries e Sequências 1. Sequências
Ciência da Computação 1 PROGRAMAÇÃO ESTRUTURADA II Profª. Noeli.
Árvores de Busca Binária
Professor Luiz José Hoffmann Filho
Laço ou loop e repetição
Dept. de Ciência da Computação do IME
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia.
Princípio Fundamental da Contagem (Regra do Produto) Exemplo
O uso do software educativo tem como objetivo introduzir o computador na vida das crianças, se tornando uma maneira diferente, agradável e adequada ao.
Esta é a sequência dos números naturais.
Histología del aparato respiratorio.
Transcrição da apresentação:

Recursividade Programação II

Recursividade

Recursividade O objeto é definido a partir dele mesmo Uma computação pode ser definida a partir dela mesma Uma função pode ser definida a partir dela mesma. Recursividade pode repetir uma mesma computação sobre um conjunto de dados menor

O objeto é definido a partir dele mesmo Exemplo - Números Naturais: 0 está em N; Se n está em N, então n + 1 está em N.

Uma computação pode ser definida a partir dela mesma Seqüência de Fibonacci: F(1) = F(0) = 1 F(n) = F(n − 1) + F(n − 2).

Uma função pode ser definida a partir dela mesma função fatorial(n){ se (n <= 1) retorne 1; senão retorne n * fatorial(n-1); }

Recursividade pode repetir uma mesma computação sobre um conjunto de dados menor A função chama a si mesma recursivamente em uma versão menor da entrada (n - 1): funcao procura(x, v, n) { se (v[n] == x) retorne n senao retorne procura (x,v,n-1) }

Recursividade Toda função recursiva pode ser construída de maneira não recursiva; Não melhora o desempenha de programas Uma ativação de uma função tem custo computacional mais alto que uma interação de um laço equivalente (por exemplo). Ocupa mais espaço que soluções não recursivas Quando uma função chama a si mesmo, cada ativação recebe um conjunto novo de todos os dados locais, incluindo os parâmetros, independente do conjunto anterior. Geralmente as soluções recursivas são algoritmos menores, mais elegantes e mais fáceis de entender;

Mais exemplos Número de Fibonacci de ordem n int fibRec(int n) {if (n == 0) return 0; if (n == 1) return 1; return fibRec(n - 1) + fibRec(n - 2); }

Imprimir um número como uma cadeia de caracteres imprdecRecursivo(n) int n; { int i; printf("%d\n",n); if (n<0) { putchar('-'); n = -n; } if ((i=n/10)!=0) { imprdecRecursivo(i); putchar(n%10 + '0');

Exercícios Construa uma versão não recursiva para as funções fibRec e imprdecRecursivo. Adapte a idéia da função imprdecRecursivo para escrever uma versão recursiva da função itoa(n), que converte um inteiro para uma cadeia de caracteres. Escreva uma versão recursiva da função inverte(s), que inverte a cadeia de caracteres s.