SlideShare une entreprise Scribd logo
1  sur  24
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.

Contenu connexe

Tendances

Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++profjr
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoaldoirjava
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaMessias Batista
 
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasAdriano Teixeira de Souza
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem Cprofjr
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidosEdvan Mateó
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoWesley R. Bezerra
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 

Tendances (20)

Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++Conceitos básicos de Matrizes em C++
Conceitos básicos de Matrizes em C++
 
Haskell
HaskellHaskell
Haskell
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programação
 
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e FluxogramaAula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
Aula 03.2 - Algoritmos, Diagramas de Blocos e Fluxograma
 
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e Heterogêneas
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos50978145 algoritmos-exercicios-resolvidos
50978145 algoritmos-exercicios-resolvidos
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Lógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetiçãoLógica de Programação - Estrutura de repetição
Lógica de Programação - Estrutura de repetição
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 

En vedette (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
 

Similaire à Algoritmo recursivo

Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
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 04thomasdacosta
 
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.pptxaronoliveira3
 
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 06thomasdacosta
 
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.pdfJustinoFontes
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - SubalgoritmosCarlos Santos
 

Similaire à 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
 

Plus 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
 

Dernier

Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Ilda Bicacro
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...AndreaCavalcante14
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosLucianoPrado15
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaPaula Duarte
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxIlda Bicacro
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 

Dernier (20)

Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
Nós Propomos! Autocarros Elétricos - Trabalho desenvolvido no âmbito de Cidad...
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 

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.