Buscar

p10Ampli

Prévia do material em texto

Questão 10 Sem resposta
Nas linguagens de programação funcional, diz-se que é possível
evitar estouros de pilha usando "recursão de cauda". A diferença
entre recursiva normal e de cauda é justamente aonde a chamada
recursiva é chamada. Caso seja chamada na "cauda" da função, é
uma chamada de cauda recursiva. A "cauda" da função é sua
última chamada. É a última computação / cálculo feito pela
função, e logo depois dela, nenhum tratamento é feito antes de
retornar seu valor.  Neste contexto, analise as figuras 16(a) e 16(b).
  Figura 16 – (a) recursão normal e (b) recursão de cauda
  Considerando as imagens apresentadas julgue as afirmações que
se seguem. I - Na figura 16(a), cada chamada recursiva aumenta
porque o programa só pode calcular o resultado da primeira
função chamada, para depois calcular o resultado das que a
chamaram. Assim, a pilha estoura. II - Na figura 16(b), cada passo
de chamadas nem aumenta nem diminui. A partir do momento
que a função recursiva é chamada, todas são chamadas no final,
sem precisar de mais cálculos.
III - Quando um compilador pronto para isso vê uma
chamada recursiva na cauda, ele automaticamente a
transforma em um laço durante as otimizações. Desta forma
não perde as vantagens, nem a elegância da programação
funcional, mas também não corre o risco de passar por um
estouro de pilha.
É correto apenas o que se afirma em:
Prova
final
Algoritmos e Programação
Estruturada: Programação
Estruturada para Dev
Acertos 4 de 10
Nota 20 pontos
 Corretas Erradas
1 2 3 4 5
6 7 8 9 10
Anterior Concluir correção
Correção da prova
Tamanho da fonte Dúvidas ao tutor

Fe
ed
ba
ck
III.
II e III.
II.
I e II.
I.
Nenhuma alternativa assinalada
Fe
ed
ba
ck

Continue navegando