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

Projete uma função recursiva em pseudocódigo flatten(L) que recebe uma lista L que pode conter inteiros e…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO04

Construir soluções de problemas usando a técnica de decomposição e automatizar tais soluções usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete uma função recursiva em pseudocódigo flatten(L) que recebe uma lista L que pode conter inteiros e sublistas aninhadas arbitrariamente e retorna uma nova lista com todos os inteiros na ordem de aparecimento. Especifique caso base, passo recursivo, assinatura e analise complexidade temporal e espacial.

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

Resposta esperada

Pseudocódigo: flatten(L): result <- [] definir helper(x): se tipo(x) == inteiro então result.append(x) senao para cada y em x faça helper(y) helper(L) retorne result Caso base: item inteiro -> append em result. Passo recursivo: para cada sublista, percorrer chamando helper. Complexidade: tempo O(N) (N = total de elementos inteiros e listas visitadas); espaço: O(N) para o resultado + O(d) para a pilha de chamadas (d = profundidade de aninhamento).

Explicação

A função recursiva proposta utiliza um helper para percorrer a lista e suas sublistas, garantindo que todos os inteiros sejam coletados na ordem em que aparecem. O caso base trata diretamente os inteiros, enquanto o passo recursivo lida com sublistas, permitindo a exploração completa da estrutura aninhada. A análise de complexidade demonstra que o tempo e o espaço utilizados são proporcionais ao número total de elementos, refletindo a eficiência do algoritmo.

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

função recursiva

📌 Objetivo

avaliacao

🧱 Pré-requisitos

funções recursivas · estruturas de dados

📚 Reveja

Revisar conceitos de recursão e análise de complexidade.

⚠️ Erro mais comum

O aluno pode confundir a lógica de recursão, não implementando corretamente o caso base ou o passo recursivo.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Estratégias de solução de problemas - Decomposição

🔎 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.