SóProvas


ID
1820632
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Um programa pode ser estruturado em módulos denominados funções ou procedimentos. Considerando esse assunto, julgue o próximo item, acerca dos tipos de módulos.

Uma função recursiva pela cauda sempre possui um equivalente iterativo direto.


Alternativas
Comentários
  • Quando você lê a questão a primeira expressão é "whaaat?"

    No meu ponto de vista (depois de umas 5 releituras), o que o examinador questiona é: Funções recursivas são otimizações de código?

    Ou seja, é possível obter os mesmos resultados da recursividade por outros modos.

    Lembrando, foi o que eu entendi da questão.

     

  • Um Do... While é uma funções recursivas pela cauda e ele fala que sempre terá um equivalente iterativo direto, ou seja, o controlador das iterações.

  • Gab. Certo

  • Desculpe-me, caro 0x50657269746f 00, mas você falou uma big m*r*a. Funções recursivas não tem absolutamente nada a ver com while. Funções recurvisas são funções que se-chamam - seja diretamente, seja chamando alguma função que a chame novamente. As recusivas pela cauda são funções recursivas que não cria uma variável a cada chamada recursiva. No pdf a seguir explica muito bem a diferença.

    https://www.ic.unicamp.br/~oliveira/doc/mc102_2s2004/Aula19.pdf

  • Dizemos que uma função usa recursão de cauda quando as chamadas recursivas que ela executa são a última instrução executada antes de retornar. Quando uma função recursiva usa recursão de cauda, alguns compiladores e interpretadores são capazes de otimizar a função, transformando-a em uma função iterativa.

    fonte: http://rodrigorgs.github.io/mata56-20152/lisp-recursao#:~:text=Dizemos%20que%20uma%20fun%C3%A7%C3%A3o%20usa,a%20em%20uma%20fun%C3%A7%C3%A3o%20iterativa.