Buscar

Aula_04-_Recursividade_

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CCT0083 - Algoritmo Avançado
Aula 04 - Recursividade
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Algoritmo Avançado
Algoritmo Avançado
Aula 04 - Recursividade
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Agenda
Algoritmo Avançado
Objetivo da aula
Introdução
Conceitos
Regras da Recursividade
Tipos de recursividade
- Direta ou simples
- Indireta ou composta
Exemplos.
4
Objetivo da aula
O aluno deverá ser capaz de:
• Compreender o conceito de Recursividade;
• Entender como implementar recursividade;
• Entender quando não usar recursividade;
5
Introdução
A recursividade nos permite obter a solução de um problema a
partir do próprio problema, ou seja, encontrar a solução dentro
do próprio problema.
6
Conceito
• A recursividade é uma técnica que define um problema em termos
de uma ou mais versões menores deste mesmo problema.
• Em linhas gerais, a recursividade pode ser considerada como um
processo de repetição de uma rotina que pode acontecer direta ou
indiretamente.
7
Recursividade
• Recursividade é a capacidade de um programa (função ou
procedimento) fazer uma ou mais chamadas a si mesmo ou de
outros.
• Na execução de um programa recursivo, uma pilha é responsável
pelo armazenamento das variáveis recursivas.
8
Regras de Recursividade
• Uma função recursiva tem que seguir duas regras básicas:
– Ter uma condição de parada (para garantir que uma chamada
recursiva não criará um loop infinito).
– E, tornar o problema mais simples a partir de uma solução
elegante.
9
• Genericamente um módulo recursivo segue o algoritmo abaixo:
SE <condição de parada satisfeita> Retornar
senão Divida o problema num caso mais simples utilizando
recursão
Recursividade
10
• Recursividade Direta ou simples
• Recursividade Indireta ou composta
Tipos de Recursividades
11
• Recursividade Direta ou simples uma rotina que é formada
por um conjunto de comandos e uma chamada a ela mesma.
Tipos de Recursividades
12
• Recursividade Direta ou simples
• Exemplo:
Tipos de Recursividades
A função fatorial chama 
a si mesma.
13
• Recursão Indireta ou composta uma rotina que contém uma
chamada a outra rotina que, por sua vez, tem uma chamada a
outra rotina e assim sucessivamente, portanto, rotinas
diferentes.
Tipos de Recursividades
14
• Recursividade Indireta ou composta
• Exemplo:
Tipos de Recursividades
A função que retorna 
outra função.
15
• Um programa recursivo é mais elegante.
• Exibir mais clareza do código.
• Possibilita o programador ganhar mais experiência na
programação.
• Alto índice de fragmentação do código.
Vantagens da Recursividades
16
• Alto consumo de memória.
• Possiblidade de ocorrências de lentidão.
• Aumenta o número de linhas de código.
• Exige mais conhecimento lógico de programação.
Desvantagens da Recursividades
17
Próxima aula explicação sobre o trabalho 
complementar a prova AV1
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia básica
Ascencio, Ana Fernanda Gomes; Araújo, Graziela Santos de. Estruturas de Dados.
Algoritmos, Análise da Complexidade e Implementações em Java e C/C++ [BV:PE].
1. ed. São Paulo: Pearson, 2013.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Drozdek, Adam. Estrutura de dados e algoritmos em C++ [BV:MB].. 4. ed. São
Paulo,: Cengage Learning,, 2016..
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.
00:0.00
Manzano, Jose´ Augusto N. G. Algoritmos - Lógica para Desenvolvimento de
Programação de Computadores [BV:MB].. 28. ed. -. Sa~o Paulo: E´rica,, 2016..
Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536518657/cfi/0!/4/4@0.
00:0.00
Algoritmo Avançado
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia complementar
Projeto e Otimização em D
ANDRADE, Mairum Ceoldo. Algoritmos [BV:RE]. 1. ed. Rio de Janeiro: SESES, 2014. Disponível em:
http://repositorio.savaestacio.com.br/site/index.html#/objeto/detalhes/377757CE-7C5A-
438D-A742-482DDDC54D12
Ascencio, Ana Fernanda Gomes. Estrutura de Dados: Algoritmos, Análise da
complexidade e implementações em Java e C/C++[BV:PE]. 1ª ed. São Paulo: Pearson
Pentice Hall, 2010. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/1995/pdf
Damas, Luís. Linguagem C / Luís Damas ; tradução João Araújo Ribeiro, Orlando
Bernardo Filho.[BV:MB]. 10.ed. - [Reimpr.].. Rio de Janeiro: LTC,, 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788521632474/cfi/6/2!/4/2/2@0:0
Drozdek, Adam. Estrutura de dados e algoritmos em C++ / Adam Drozdek ;
tradução: Roberto Enrique Romero Torrejon; revisão técnica: Flávio Soares
Corrêa da Silva. [BV:MB]. 4a ed. São Paulo,: Cengage Learning., 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4@0.00:0.00
MELO,Ana. Silva,Flavio. Princípios de linguagem de programação[BV:PE]. 1ª
Edição. Rio de Janeiro: Blucher, 2019.
Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/172605/pdf
Algoritmo Avançado

Outros materiais