Recursividade
Recursividade
Recursividade
br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
RECURSIVIDADE
Olá!
APRESENTAÇÃO
Bons estudos.
DESAFIO
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 1/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
Somatorio(X)
se X = 1, o somatorio é o primeiro elemento do vetor (vetor[1])
se X > 1, o somatório é o elemento atual (vetor[X]) + Somatorio(X-1)
INFOGRÁFICO
Subalgoritmos recursivos.
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 2/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
CONTEÚDO DO LIVRO
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 3/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 4/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 5/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 6/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 7/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 8/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 9/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 10/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 11/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 12/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 13/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 14/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
DICA DO PROFESSOR
Assis ndo ao vídeo preparado para esta Unidade, compreenderemos como funcionam os
subprogramas recursivos!
EXERCÍCIOS
algoritmo "oquefaz"
var
valor : inteiro
procedimento faz(N : inteiro)
inicio
se (N=0) entao
escreval(N)
senao
faz(N-1)
escreval(N)
fimse
fimprocedimento
inicio
repita
escreva("Digite: ")
leia(valor)
ate valor >= 0
faz(valor)
fimalgoritmo
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 15/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
e) Se o valor digitado for menor que zero, o programa solicitará que seja digitado
um novo valor.
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 16/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
inicio
se X = 1 entao
retorne (1)
senao
retorne(X - Y(X-1))
fimse
fimfuncao
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 17/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
retorne(M(X-1)+M(X-2))
fimse
fimfuncao
algoritmo "oquefaz"
var
valor : inteiro
funcao calcula(N : inteiro):real
inicio
se (N= entao
retorne(1)
senao
retorne( (N / (N-1)) + calcula(N-1))
fimse
fimfuncao
inicio
escreva("Digite Valor: ")
leia(valor)
escreval("Serie= ",serie(valor))
fimalgoritmo
Considere que foi digitado 10 para a variável valor. Selecione a alterna va que representa
corretamente a série implementada pela função calcula(valor).
a) Série = (1/1) + (1/2) + (2/3) + (3/4) + (4/5) + (5/6) + (6/7) + (7/8) + (8/9) + (9/10).
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 18/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
b) Série = 1 + (1/1) + (2/1) + (3/2) + (4/3) + (5/4) + (6/5) + (7/6) + (8/7) + (9/8).
c) Série = (1/1) + (2/1) + (3/2) + (4/3) + (5/4) + (6/5) + (7/6) + (8/7) + (9/8) + (10/9).
d) Série = (1/1) - (1/2) + (2/3) - (3/4) + (4/5) - (5/6) + (6/7) - (7/8) + (8/9) - (9/10).
e) Série = (1/1) - (2/1) + (3/2) - (4/3) + (5/4) - (6/5) + (7/6) - (8/7) + (9/8) - (10/9).
NA PRÁTICA
José trabalha como estagiário em uma fábrica de so ware, em meio de suas atribuições ele
se deparou com uma dúvida referente a recursividade em um dos projetos que lhe foi dado,
a dúvida dele foi:
"Uso recursão ou iteração (ouvi dizer que se pode fazer das duas formas) para resolver um
dado problema algorítmico?"
"José, acho que quase todos que desenvolvem programas usam métodos itera vos para a
criação de programas, vejo que você está ligado e foi ó mo a sua curiosidade. Vou dar uma
nova ferramenta para modificar um pouco seu código e explicar as diferenças."
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 19/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
Vejamos duas funções que fazem exatamente a mesma coisa, o produto fatorial de um
número, entretanto uma usa um processo itera vo e a outra um processo recursivo.
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 20/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
//método itera vo
int fatorial(int x){
int i,result;
result=1;
for (i=0; i uso do comando for
result= result*(x-i);
}
return result;
}
//método recursivo
int fat(int x)
{
if (x < 2) return 1;>ecursivo uso de uma condição para o fim
else return fat(x-1) * x;
}
Note que no método itera vo é criado um loop (for), já o recursivo a função é chamada
dentro de si mesma com uma condição de parada.
SAIBA +
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 21/22
22/04/2020 https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do
professor:
Recursividade
Neste vídeo, o autor dá uma aula sobre recursividade u lizando slides e dando exemplos.
Conteúdo disponível na plataforma virtual de ensino. Con ra!
https://sagahcm.sagah.com.br/sagahcm/sagah_ua_dinamica/impressao_ua/16349860 22/22