SlideShare uma empresa Scribd logo
Algoritmo Recursivo
Professor: Daniel Lobão
Estagiário: Carlos Rodrigo
Roteiro
Retomar conteúdo anterior;
Conceito de Recursão;
Objetivos da Função Recursiva;
Ligação com a Matemática;
Algoritmo Recursivo;
Como fazer um Algoritmo Recursivo;
Função e Procedimento
funcao <nome-de-função> [(<seqüência-de-
declarações-de-parâmetros>)]: <tipo-de-
dado>
// Seção de Declarações Internas
inicio
//precisa de um retorno
// Seção de Comandos
fimfuncao
Função e Procedimento
procedimento <nome-de-procedimento>
[(<seqüência-de-declarações-de-
parâmetros>)]
// Seção de Declarações Internas
inicio
// Seção de Comandos
fimprocedimento
O que é Recursão?
 É um método de programação no qual uma
função pode chamar a si mesma. O termo é
usado de maneira mais geral para descrever
o processo de repetição de um objeto de
um jeito similar ao que já fora mostrado.
Definição pelo dicionário
RECURSIVIDADE Qualidade do que é
recursivo.
RECURSIVO  Relativo a recursividade.
Objetivos da Função Recursiva
Ter uma condição de Parada;
Tornar o problema mais Simples;
Caso não tenha esses Objetivos?
Sem condição de Parada
Com Procedimento
enquanto (VERDADEIRO) faca
escreval("INFINITO")
fimenquanto
procedimento escrever(quantidade:inteiro;
texto:caractere)
var
inicio
escreval(texto)
escrever(quantidade - 1, texto)
fimprocedimento
Solução
algoritmo “teste"
procedimento escrever(quantidade:inteiro;
texto:caractere)
var
inicio
se (quantidade <> 0) entao
escreval(texto)
escrever(quantidade - 1, texto)
fimse
fimprocedimento
Var
Inicio
// Seção de Comandos
escrever(5, "Olá")
Fimalgoritmo
Fatorial
Representação n!;
n pertence ao conj. dos naturais;
n=0  0!=1;
n=5  5! = 5 x 4 x 3 x 2 x 1 = 120;
Fatorial
https://olamundo0.files.wordpress.com/2010/04/fatorial.jpg
No VisualG como seria a Função?
funcao fat (n:Inteiro):Inteiro
var i, resultado : inteiro
inicio
resultado <- 1
para i de n ate 1 passo -1 faca
resultado <- resultado * i
fimpara
retorne resultado
fimfuncao
No VisualG: Fatorial Recursivo
funcao fat (n:Inteiro):Inteiro
inicio
se n=0 entao
retorne 1
senao
retorne n * fat (n-1)
fimse
fimfuncao
Inicio
escreva("Digite um número: ")
leia (numero)
escreval("O fatorial de ",
numero, " é ", fat(numero))
fimalgoritmo
Atividade Prática
Criar um algoritmo recursivo que
digite um numero e faça a soma
dos números anteriores.
Resposta sem Recursividade
var
n, cont, soma, i: inteiro
inicio
escreval("Informe um número inteiro:")
leia(n)
se n <= 0 entao
repita
senao
cont <- 0
soma <- 0
para i de 1 ate n faca
soma <- soma + cont
cont <- cont + 1
fimpara
fimse
escreval ("Soma:", soma)
Somatório Recursivo
funcao somatorio (n:Inteiro):Inteiro
inicio
se n=1 entao
retorne 1
senao
retorne n + somatorio (n-1)
fimse
fimfuncao
Inicio
escreva("Digite um número: ")
leia (numero)
escreval("O Somatório de ",
numero, " é ",
somatorio(numero))
fimalgoritmo
Algoritmos Recursivos x Iterativos
Todo algoritmo recursivo possui um
algoritmo iterativo;
QUASE...
Vantagens
Simplifica a solução de alguns
problemas
Recursividades são mais compactas
para alguns tipos de algoritmo, mais
legíveis e mais fáceis de ser
compreendidas e implementadas.
Desvantagens
 Por usarem intensivamente a memória ou poder de
processamento, os algoritmos recursivos tendem a
ser mais lentos e a consumir mais memória que os
iterativos, porém pode valer a pena sacrificar a
eficiência em benefício da clareza.
 Erros de implementação podem levar a estouro de
pilha. Isto é, caso não seja indicada uma condição
de parada, ou se esta condição nunca for satisfeita,
entre outros.
Fibonacci
Fibonacci
funcao Iterativo(n : inteiro) : inteiro
var
fib, n1, n2, indice: inteiro
inicio
se (n = 0) ou (n = 1) entao
retorne n
senao
n1 <- 0
n2 <- 1
para indice de 2 ate n passo 1 faca
fib <- n2+n1
n1 <- n2
n2 <- fib
fimpara
retorne fib
fimse
fimfuncao
Fibonacci
funcao Recursivo(n : inteiro) :
inteiro
var
inicio
contadorRecursivo <-
contadorRecursivo + 1
se (n = 1) ou (n = 0) entao
retorne n
senao
retorne (Recursivo(n - 2) +
Recursivo(n - 1))
fimse
fimfuncao
Fibonacci
funcao RecursivoMemorizado(n :
inteiro) : inteiro
var
inicio
contadorRecursivoMemorizado <-
contadorRecursivoMemorizado +
1
se (n = 0) ou (n = 1) ou
(memorizado[n] <> 0) entao
retorne memorizado[n]
senao
memorizado[n] <-
(RecursivoMemorizado(n - 2) +
RecursivoMemorizado(n - 1))
retorne memorizado[n]
fimse
fimfuncao
Referências
 MEDINA, Marco; FERTIG, Cristina. Algoritmos e Programação - Teoria e
Prática. 2ª Edição. Editora Novatec, 2006.
 MAGALHÃES, Regis Pires. Lógica Algoritmo - Recursividade. 2009. Disponível
em: <http://pt.slideshare.net/regispires/logica-algoritmo-08-
recursividade-presentation>. Acesso em: 06 mar. 2015.
 RECURSIVIDADE. Disponível em:
<http://www.di.ufpe.br/~if096/recursao/sld001.htm>. Acesso em: 06 mar.
2015.

Mais conteúdo relacionado

TXT
Exercicios resolvidos visuAlg
PDF
Algoritmos em portugol
PPT
Material de Apoio de Algoritmo e Lógica de Programação
PDF
Lista de exercícios resolvidos
PDF
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
PDF
Lista de exercicios algoritmos resolvida-
PPT
Aula 5 encapsulamento, associação, polimorfismo, interfaces
PDF
Programação Orientação a Objetos - Herança
Exercicios resolvidos visuAlg
Algoritmos em portugol
Material de Apoio de Algoritmo e Lógica de Programação
Lista de exercícios resolvidos
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Lista de exercicios algoritmos resolvida-
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Programação Orientação a Objetos - Herança

Mais procurados (20)

PDF
Lista de exercicios algoritmos com pseudocodigo
ODP
Algoritmo aula 01-f
PPTX
Algoritmos: Tipos de Dados
PDF
Manual de portugol
PPT
Aula 3 algoritmos
PDF
Algoritmos resolvidos lista 2
PDF
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
TXT
Exercicios resolvidos visu alg vetores
PDF
Aula Lógica de Programação - cap1
PDF
Descritiva Narrativa (Lógica de Programação)
PPTX
Algoritmos - Vetores
PPTX
Introdução à Lógica de Programação
PDF
Lógica de programação em ppt
PPT
Introdução a Linguagem C
PPT
Algoritmo - tipos de dados
PDF
Algoritmos e lp parte3-pseudocódigo
PPTX
Logica de Programacao
PPT
Logica Algoritmo 02 Algoritmo
PDF
POO - 16 - Polimorfismo
PDF
Lista de exercicios algoritmos com pseudocodigo
Algoritmo aula 01-f
Algoritmos: Tipos de Dados
Manual de portugol
Aula 3 algoritmos
Algoritmos resolvidos lista 2
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Exercicios resolvidos visu alg vetores
Aula Lógica de Programação - cap1
Descritiva Narrativa (Lógica de Programação)
Algoritmos - Vetores
Introdução à Lógica de Programação
Lógica de programação em ppt
Introdução a Linguagem C
Algoritmo - tipos de dados
Algoritmos e lp parte3-pseudocódigo
Logica de Programacao
Logica Algoritmo 02 Algoritmo
POO - 16 - Polimorfismo
Anúncio

Destaque (10)

PPTX
Turismo.
PPTX
Virus informaticos
DOCX
Resume Richard White 2016
DOCX
Jeffrey minor resume
ODP
Exemples reportages publiés
DOCX
Innovacion botas.png
DOCX
Manav Sachdeva
PDF
Shawn's - Resume 1 2016
PPTX
Electricidad inalámbrica
PDF
Lelia-Wells-Resume
Turismo.
Virus informaticos
Resume Richard White 2016
Jeffrey minor resume
Exemples reportages publiés
Innovacion botas.png
Manav Sachdeva
Shawn's - Resume 1 2016
Electricidad inalámbrica
Lelia-Wells-Resume
Anúncio

Semelhante a Algoritmo recursivo (20)

PPTX
PPSX
Recursividade
PPTX
Recursividade
PPT
Recursividade
PPT
Pesquisa e ordenação recursividade
PDF
Recursividade
PPT
Logica Algoritmo 08 Recursividade
PDF
Pged 07
PDF
Recursividade em linguagem C
PDF
12 algoritmos e funcoes recursivas
PPTX
AP5_2013_2.pptx
PPTX
Apresentação recursividade rev2
PPTX
PDF
Programando em python recursao
PDF
Linguagem C - Recursão [exercícios]
PPTX
Estrutura de dados em Java - Recursividade
PDF
aula de cálculo pdf atualizado 2023 funções
PDF
08 programando em python - recursao
PDF
Estrutura de Dados Aula 08 - Recursão (conceito, utilização, exemplos)
PPTX
Aula 15 recursao-organizacao-arquivos - Programação 1
Recursividade
Recursividade
Recursividade
Pesquisa e ordenação recursividade
Recursividade
Logica Algoritmo 08 Recursividade
Pged 07
Recursividade em linguagem C
12 algoritmos e funcoes recursivas
AP5_2013_2.pptx
Apresentação recursividade rev2
Programando em python recursao
Linguagem C - Recursão [exercícios]
Estrutura de dados em Java - Recursividade
aula de cálculo pdf atualizado 2023 funções
08 programando em python - recursao
Estrutura de Dados Aula 08 - Recursão (conceito, utilização, exemplos)
Aula 15 recursao-organizacao-arquivos - Programação 1

Mais de Carlos Rodrigo de Araujo (20)

PDF
PDF
PDF
PDF
PDF
PDF
PPTX
Trabalhar com web design
PPTX
Border image rounded corners shadow-box
PPTX
Engenharia de-usabilidade
PPTX
DNS - Domain Name System
PPTX
Filtro de conteúdo Proxy
PPTX
Moodle - Aula introdutória
PPTX
Css3 background - gradient - filter
PPTX
Css3 3D transforms - transitions
PPTX
Informática básica-supera-cursos
PPTX
Informática básica-01
PPTX
Informática para concursos aula 00
PDF
Mini curso html5 slides
PPTX
Ferramenta brackets
Trabalhar com web design
Border image rounded corners shadow-box
Engenharia de-usabilidade
DNS - Domain Name System
Filtro de conteúdo Proxy
Moodle - Aula introdutória
Css3 background - gradient - filter
Css3 3D transforms - transitions
Informática básica-supera-cursos
Informática básica-01
Informática para concursos aula 00
Mini curso html5 slides
Ferramenta brackets

Último (20)

PPTX
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
PDF
Metabolismo_energético_3ano_pre_vest_2026.pdf
PDF
Formação politica brasil_2017.pptx.pdf
PPTX
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PPTX
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
PPTX
Aula 13 - Tópico Frasal - Argumentação.pptx
PPTX
biossegurança e segurança no trabalho (6).pptx
PDF
O retorno a origem (islã Islamismo)
PDF
Extintores e Acessórios por Francisco Borges.pdf
PPTX
norma regulamentadora numero vinte nr 20
PPTX
Ocupação e transformação dos territórios.pptx
PPT
História e Evolução dos Computadores domésticos
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PDF
RELATÓRIO DE ESTÁGIO SURVISIONADO: NEUROPSICOPEDAGOGIA INSTITUCIONAL, CLÍNIC...
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PDF
Fiqh da adoração (islamismo)
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
Metabolismo_energético_3ano_pre_vest_2026.pdf
Formação politica brasil_2017.pptx.pdf
16. MODERNISMO - PRIMEIRA GERAÇÃO - EDIÇÃO 2021 (1).pptx
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
Aula 13 - Tópico Frasal - Argumentação.pptx
biossegurança e segurança no trabalho (6).pptx
O retorno a origem (islã Islamismo)
Extintores e Acessórios por Francisco Borges.pdf
norma regulamentadora numero vinte nr 20
Ocupação e transformação dos territórios.pptx
História e Evolução dos Computadores domésticos
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
RELATÓRIO DE ESTÁGIO SURVISIONADO: NEUROPSICOPEDAGOGIA INSTITUCIONAL, CLÍNIC...
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
Organizador Curricular da Educação em Tempo Integral.pdf
Fiqh da adoração (islamismo)
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf

Algoritmo recursivo

  • 1. Algoritmo Recursivo Professor: Daniel Lobão Estagiário: Carlos Rodrigo
  • 2. Roteiro Retomar conteúdo anterior; Conceito de Recursão; Objetivos da Função Recursiva; Ligação com a Matemática; Algoritmo Recursivo; Como fazer um Algoritmo Recursivo;
  • 3. Função e Procedimento funcao <nome-de-função> [(<seqüência-de- declarações-de-parâmetros>)]: <tipo-de- dado> // Seção de Declarações Internas inicio //precisa de um retorno // Seção de Comandos fimfuncao
  • 4. Função e Procedimento procedimento <nome-de-procedimento> [(<seqüência-de-declarações-de- parâmetros>)] // Seção de Declarações Internas inicio // Seção de Comandos fimprocedimento
  • 5. O que é Recursão?  É um método de programação no qual uma função pode chamar a si mesma. O termo é usado de maneira mais geral para descrever o processo de repetição de um objeto de um jeito similar ao que já fora mostrado.
  • 6. Definição pelo dicionário RECURSIVIDADE Qualidade do que é recursivo. RECURSIVO  Relativo a recursividade.
  • 7. Objetivos da Função Recursiva Ter uma condição de Parada; Tornar o problema mais Simples;
  • 8. Caso não tenha esses Objetivos? Sem condição de Parada Com Procedimento enquanto (VERDADEIRO) faca escreval("INFINITO") fimenquanto procedimento escrever(quantidade:inteiro; texto:caractere) var inicio escreval(texto) escrever(quantidade - 1, texto) fimprocedimento
  • 9. Solução algoritmo “teste" procedimento escrever(quantidade:inteiro; texto:caractere) var inicio se (quantidade <> 0) entao escreval(texto) escrever(quantidade - 1, texto) fimse fimprocedimento Var Inicio // Seção de Comandos escrever(5, "Olá") Fimalgoritmo
  • 10. Fatorial Representação n!; n pertence ao conj. dos naturais; n=0  0!=1; n=5  5! = 5 x 4 x 3 x 2 x 1 = 120;
  • 12. No VisualG como seria a Função? funcao fat (n:Inteiro):Inteiro var i, resultado : inteiro inicio resultado <- 1 para i de n ate 1 passo -1 faca resultado <- resultado * i fimpara retorne resultado fimfuncao
  • 13. No VisualG: Fatorial Recursivo funcao fat (n:Inteiro):Inteiro inicio se n=0 entao retorne 1 senao retorne n * fat (n-1) fimse fimfuncao Inicio escreva("Digite um número: ") leia (numero) escreval("O fatorial de ", numero, " é ", fat(numero)) fimalgoritmo
  • 14. Atividade Prática Criar um algoritmo recursivo que digite um numero e faça a soma dos números anteriores.
  • 15. Resposta sem Recursividade var n, cont, soma, i: inteiro inicio escreval("Informe um número inteiro:") leia(n) se n <= 0 entao repita senao cont <- 0 soma <- 0 para i de 1 ate n faca soma <- soma + cont cont <- cont + 1 fimpara fimse escreval ("Soma:", soma)
  • 16. Somatório Recursivo funcao somatorio (n:Inteiro):Inteiro inicio se n=1 entao retorne 1 senao retorne n + somatorio (n-1) fimse fimfuncao Inicio escreva("Digite um número: ") leia (numero) escreval("O Somatório de ", numero, " é ", somatorio(numero)) fimalgoritmo
  • 17. Algoritmos Recursivos x Iterativos Todo algoritmo recursivo possui um algoritmo iterativo; QUASE...
  • 18. Vantagens Simplifica a solução de alguns problemas Recursividades são mais compactas para alguns tipos de algoritmo, mais legíveis e mais fáceis de ser compreendidas e implementadas.
  • 19. Desvantagens  Por usarem intensivamente a memória ou poder de processamento, os algoritmos recursivos tendem a ser mais lentos e a consumir mais memória que os iterativos, porém pode valer a pena sacrificar a eficiência em benefício da clareza.  Erros de implementação podem levar a estouro de pilha. Isto é, caso não seja indicada uma condição de parada, ou se esta condição nunca for satisfeita, entre outros.
  • 21. Fibonacci funcao Iterativo(n : inteiro) : inteiro var fib, n1, n2, indice: inteiro inicio se (n = 0) ou (n = 1) entao retorne n senao n1 <- 0 n2 <- 1 para indice de 2 ate n passo 1 faca fib <- n2+n1 n1 <- n2 n2 <- fib fimpara retorne fib fimse fimfuncao
  • 22. Fibonacci funcao Recursivo(n : inteiro) : inteiro var inicio contadorRecursivo <- contadorRecursivo + 1 se (n = 1) ou (n = 0) entao retorne n senao retorne (Recursivo(n - 2) + Recursivo(n - 1)) fimse fimfuncao
  • 23. Fibonacci funcao RecursivoMemorizado(n : inteiro) : inteiro var inicio contadorRecursivoMemorizado <- contadorRecursivoMemorizado + 1 se (n = 0) ou (n = 1) ou (memorizado[n] <> 0) entao retorne memorizado[n] senao memorizado[n] <- (RecursivoMemorizado(n - 2) + RecursivoMemorizado(n - 1)) retorne memorizado[n] fimse fimfuncao
  • 24. Referências  MEDINA, Marco; FERTIG, Cristina. Algoritmos e Programação - Teoria e Prática. 2ª Edição. Editora Novatec, 2006.  MAGALHÃES, Regis Pires. Lógica Algoritmo - Recursividade. 2009. Disponível em: <http://pt.slideshare.net/regispires/logica-algoritmo-08- recursividade-presentation>. Acesso em: 06 mar. 2015.  RECURSIVIDADE. Disponível em: <http://www.di.ufpe.br/~if096/recursao/sld001.htm>. Acesso em: 06 mar. 2015.