GeraProva GeraProva Provas com IA para professores do Brasil
Computação3º anoBNCC EF15CO02Difícil⏱ longo

Projete em pseudocódigo um algoritmo recursivo map_recursive(L,f) que recebe uma lista L e uma função f e…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO02

Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete em pseudocódigo um algoritmo recursivo map_recursive(L,f) que recebe uma lista L e uma função f e retorna uma nova lista aplicando f a cada elemento, sem modificar L. Explique a complexidade temporal e o uso de memória.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Exemplo de solução: funcao map_recursive(L,f): se L == [] entao retorne [] senao head := L[0] tail := L[1:] return concatenar([ f(head) ], map_recursive(tail,f)) Correção e complexidade: a função cria uma nova lista com n elementos; tempo O(n) (uma aplicação de f por elemento) e memória adicional O(n) pela nova lista e O(n) de profundidade de pilha. Alternativa de cauda: usar acumulador e inverter no final para reduzir custos de concatenação em algumas implementações.

Explicação

O algoritmo utiliza recursão para percorrer a lista, aplicando a função a cada elemento e construindo uma nova lista. A complexidade temporal é O(n) devido à necessidade de aplicar a função a cada elemento da lista, enquanto a complexidade de memória é O(n) por causa da nova lista e da profundidade da pilha de chamadas recursivas. A sugestão de usar um acumulador e inverter a lista no final visa otimizar a operação de concatenação, que pode ser custosa em algumas implementações.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmo recursivo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

funções recursivas · estruturas de dados

📚 Reveja

Revisar conceitos de recursão e complexidade de algoritmos.

⚠️ Erro mais comum

O aluno pode confundir a implementação de uma função recursiva com uma função iterativa, resultando em um código que não respeita a recursão.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.