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

Mais procurados

Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2Rogerio Oliveira
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
Gercélia Ramos
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
Arthur Emanuel
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
Patrick_turma10
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
Gemilson George
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
Elaine Cecília Gatto
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
Alex Camargo
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2isa_ise
 
Python
PythonPython
Fundamentos de banco de dados 04 componentes sgbd
Fundamentos de banco de dados   04 componentes sgbdFundamentos de banco de dados   04 componentes sgbd
Fundamentos de banco de dados 04 componentes sgbdRafael Pinheiro
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Gercélia Ramos
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
Mario Jorge Pereira
 
Python bge
Python bgePython bge
Python bge
Tiago
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
Gercélia Ramos
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
Professor Samuel Ribeiro
 

Mais procurados (20)

Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Aula 6 aed - registros
Aula 6   aed - registrosAula 6   aed - registros
Aula 6 aed - registros
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Introdução a python
Introdução a pythonIntrodução a python
Introdução a python
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2
 
Python
PythonPython
Python
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Fundamentos de banco de dados 04 componentes sgbd
Fundamentos de banco de dados   04 componentes sgbdFundamentos de banco de dados   04 componentes sgbd
Fundamentos de banco de dados 04 componentes sgbd
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 
Python bge
Python bgePython bge
Python bge
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Algoritmo 04 - Estruturas de decisão
 Algoritmo 04 - Estruturas de decisão Algoritmo 04 - Estruturas de decisão
Algoritmo 04 - Estruturas de decisão
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 

Destaque

Turismo.
Turismo.Turismo.
Turismo.
Jorleimy
 
Virus informaticos
Virus informaticosVirus informaticos
Virus informaticos
Nancy Aguirre Sanabria
 
Resume Richard White 2016
Resume Richard White 2016Resume Richard White 2016
Resume Richard White 2016Rick White
 
Jeffrey minor resume
Jeffrey minor resumeJeffrey minor resume
Jeffrey minor resume
Jeff Minor
 
Exemples reportages publiés
Exemples reportages publiésExemples reportages publiés
Exemples reportages publiésmariboukaboul
 
Innovacion botas.png
Innovacion botas.pngInnovacion botas.png
Innovacion botas.png
julian andres angulo arroyo
 
Shawn's - Resume 1 2016
Shawn's - Resume 1 2016Shawn's - Resume 1 2016
Shawn's - Resume 1 2016Shawn Waterman
 
Electricidad inalámbrica
Electricidad inalámbricaElectricidad inalámbrica
Electricidad inalámbrica
Jesús Ramos Oriza
 
Lelia-Wells-Resume
Lelia-Wells-ResumeLelia-Wells-Resume
Lelia-Wells-ResumeLelia Wells
 

Destaque (10)

Turismo.
Turismo.Turismo.
Turismo.
 
Virus informaticos
Virus informaticosVirus informaticos
Virus informaticos
 
Resume Richard White 2016
Resume Richard White 2016Resume Richard White 2016
Resume Richard White 2016
 
Jeffrey minor resume
Jeffrey minor resumeJeffrey minor resume
Jeffrey minor resume
 
Exemples reportages publiés
Exemples reportages publiésExemples reportages publiés
Exemples reportages publiés
 
Innovacion botas.png
Innovacion botas.pngInnovacion botas.png
Innovacion botas.png
 
Manav Sachdeva
Manav SachdevaManav Sachdeva
Manav Sachdeva
 
Shawn's - Resume 1 2016
Shawn's - Resume 1 2016Shawn's - Resume 1 2016
Shawn's - Resume 1 2016
 
Electricidad inalámbrica
Electricidad inalámbricaElectricidad inalámbrica
Electricidad inalámbrica
 
Lelia-Wells-Resume
Lelia-Wells-ResumeLelia-Wells-Resume
Lelia-Wells-Resume
 

Semelhante a Algoritmo recursivo

Recursividade
RecursividadeRecursividade
Recursividade
Raphael Leite Campos
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Recursividade
RecursividadeRecursividade
Recursividade
Rodrigo Barbosa
 
AP5_2013_2.pptx
AP5_2013_2.pptxAP5_2013_2.pptx
AP5_2013_2.pptx
MarcoAntnio469345
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
jormad
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
dasko
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
thomasdacosta
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
aronoliveira3
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimosCleide Soares
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
thomasdacosta
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
JustinoFontes
 
10-Matlab.pdf
10-Matlab.pdf10-Matlab.pdf
10-Matlab.pdf
esdrasjonathancosta
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 

Semelhante a Algoritmo recursivo (20)

Recursividade
RecursividadeRecursividade
Recursividade
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Recursividade
RecursividadeRecursividade
Recursividade
 
AP5_2013_2.pptx
AP5_2013_2.pptxAP5_2013_2.pptx
AP5_2013_2.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
Cap03
Cap03Cap03
Cap03
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
 
10-Matlab.pdf
10-Matlab.pdf10-Matlab.pdf
10-Matlab.pdf
 
Aula02
Aula02Aula02
Aula02
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 

Mais de Carlos Rodrigo de Araujo

Aulas frc 06
Aulas frc  06Aulas frc  06
Aulas frc 05
Aulas frc  05Aulas frc  05
Aulas frc 04
Aulas frc  04Aulas frc  04
Aulas frc 03
Aulas frc  03Aulas frc  03
Aulas frc 02
Aulas frc  02Aulas frc  02
Aulas frc 01
Aulas frc  01Aulas frc  01
Trabalhar com web design
Trabalhar com web designTrabalhar com web design
Trabalhar com web design
Carlos Rodrigo de Araujo
 
Border image rounded corners shadow-box
Border image rounded corners shadow-boxBorder image rounded corners shadow-box
Border image rounded corners shadow-box
Carlos Rodrigo de Araujo
 
Engenharia de-usabilidade
Engenharia de-usabilidadeEngenharia de-usabilidade
Engenharia de-usabilidade
Carlos Rodrigo de Araujo
 
Moodle - Aula introdutória
Moodle - Aula introdutóriaMoodle - Aula introdutória
Moodle - Aula introdutória
Carlos Rodrigo de Araujo
 
Css3 background - gradient - filter
Css3  background -  gradient - filterCss3  background -  gradient - filter
Css3 background - gradient - filter
Carlos Rodrigo de Araujo
 
Css3 3D transforms - transitions
Css3  3D transforms - transitionsCss3  3D transforms - transitions
Css3 3D transforms - transitions
Carlos Rodrigo de Araujo
 
Informática básica-supera-cursos
Informática básica-supera-cursosInformática básica-supera-cursos
Informática básica-supera-cursos
Carlos Rodrigo de Araujo
 
Informática básica-01
Informática básica-01Informática básica-01
Informática básica-01
Carlos Rodrigo de Araujo
 
Informática para concursos aula 00
Informática para concursos   aula 00Informática para concursos   aula 00
Informática para concursos aula 00
Carlos Rodrigo de Araujo
 
Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
Carlos Rodrigo de Araujo
 
Phonegap
PhonegapPhonegap
Ferramenta brackets
Ferramenta bracketsFerramenta brackets
Ferramenta brackets
Carlos Rodrigo de Araujo
 

Mais de Carlos Rodrigo de Araujo (20)

Aulas frc 06
Aulas frc  06Aulas frc  06
Aulas frc 06
 
Aulas frc 05
Aulas frc  05Aulas frc  05
Aulas frc 05
 
Aulas frc 04
Aulas frc  04Aulas frc  04
Aulas frc 04
 
Aulas frc 03
Aulas frc  03Aulas frc  03
Aulas frc 03
 
Aulas frc 02
Aulas frc  02Aulas frc  02
Aulas frc 02
 
Aulas frc 01
Aulas frc  01Aulas frc  01
Aulas frc 01
 
Trabalhar com web design
Trabalhar com web designTrabalhar com web design
Trabalhar com web design
 
Border image rounded corners shadow-box
Border image rounded corners shadow-boxBorder image rounded corners shadow-box
Border image rounded corners shadow-box
 
Engenharia de-usabilidade
Engenharia de-usabilidadeEngenharia de-usabilidade
Engenharia de-usabilidade
 
DNS - Domain Name System
DNS - Domain Name SystemDNS - Domain Name System
DNS - Domain Name System
 
Filtro de conteúdo Proxy
Filtro de conteúdo   ProxyFiltro de conteúdo   Proxy
Filtro de conteúdo Proxy
 
Moodle - Aula introdutória
Moodle - Aula introdutóriaMoodle - Aula introdutória
Moodle - Aula introdutória
 
Css3 background - gradient - filter
Css3  background -  gradient - filterCss3  background -  gradient - filter
Css3 background - gradient - filter
 
Css3 3D transforms - transitions
Css3  3D transforms - transitionsCss3  3D transforms - transitions
Css3 3D transforms - transitions
 
Informática básica-supera-cursos
Informática básica-supera-cursosInformática básica-supera-cursos
Informática básica-supera-cursos
 
Informática básica-01
Informática básica-01Informática básica-01
Informática básica-01
 
Informática para concursos aula 00
Informática para concursos   aula 00Informática para concursos   aula 00
Informática para concursos aula 00
 
Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
 
Phonegap
PhonegapPhonegap
Phonegap
 
Ferramenta brackets
Ferramenta bracketsFerramenta brackets
Ferramenta brackets
 

Último

O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
Aula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptxAula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptx
kdn15710
 
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdfiNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
andressacastro36
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
Luana Neres
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Bibliotecas Infante D. Henrique
 
Roteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptxRoteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptx
pamellaaraujo10
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Luana Neres
 
APOSTILA JUIZ DE PAZ capelania cristã.pdf
APOSTILA JUIZ DE PAZ capelania cristã.pdfAPOSTILA JUIZ DE PAZ capelania cristã.pdf
APOSTILA JUIZ DE PAZ capelania cristã.pdf
CarlosEduardoSola
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
NatySousa3
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Fato X Opinião (Língua Portuguesa 9º Ano).pptx
Fato X Opinião (Língua Portuguesa 9º Ano).pptxFato X Opinião (Língua Portuguesa 9º Ano).pptx
Fato X Opinião (Língua Portuguesa 9º Ano).pptx
MariaFatima425285
 
PROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.pptPROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.ppt
betokg
 
Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
MatildeBrites
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
Escola Municipal Jesus Cristo
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
IsabelPereira2010
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
CrislaineSouzaSantos
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Ligia Galvão
 
Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.
RafaelNeves651350
 

Último (20)

O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Aula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptxAula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptx
 
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdfiNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
iNTRODUÇÃO À Plantas terrestres e Plantas aquáticas. (1).pdf
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
Aula 2 - 6º HIS - Formas de registro da história e da produção do conheciment...
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
Roteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptxRoteiro para análise do Livro Didático .pptx
Roteiro para análise do Livro Didático .pptx
 
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
Aula 3- 6º HIS - As origens da humanidade, seus deslocamentos e os processos ...
 
APOSTILA JUIZ DE PAZ capelania cristã.pdf
APOSTILA JUIZ DE PAZ capelania cristã.pdfAPOSTILA JUIZ DE PAZ capelania cristã.pdf
APOSTILA JUIZ DE PAZ capelania cristã.pdf
 
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdfCADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
CADERNO DE CONCEITOS E ORIENTAÇÕES DO CENSO ESCOLAR 2024.pdf
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Fato X Opinião (Língua Portuguesa 9º Ano).pptx
Fato X Opinião (Língua Portuguesa 9º Ano).pptxFato X Opinião (Língua Portuguesa 9º Ano).pptx
Fato X Opinião (Língua Portuguesa 9º Ano).pptx
 
PROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.pptPROVA FINAL Filosofia e Educação Cristã.ppt
PROVA FINAL Filosofia e Educação Cristã.ppt
 
Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
 
Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.Manejo de feridas - Classificação e cuidados.
Manejo de feridas - Classificação e cuidados.
 

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.