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

Projete um algoritmo em pseudocódigo que, dada uma árvore de decisão codificada como nós com condição 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 um algoritmo em pseudocódigo que, dada uma árvore de decisão codificada como nós com condição e referências a filhos, gere todas as regras (caminhos da raiz às folhas). Descreva as variáveis-chave, a estrutura de dado usada para armazenar as regras e como o algoritmo trata variáveis de condição repetidas.

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

Resposta esperada

Representação: cada nó tem campos condicion (string), filho_esq, filho_dir, e valor_folha opcional. Variáveis-chave: stack caminho (lista de pares condição?valor), lista_regras (vetor de strings). Algoritmo (DFS recursivo): func gerar_regras(no, caminho): if no == null: return if no.valor_folha != null: regra = concatenar(caminho) + ' => ' + str(no.valor_folha) adicionar lista_regras, regra return // nó interno com condição; ao descer, anotar condição com valor true/false conforme ramo // Exemplo para árvore binária de condição booleana: adicionar fim(caminho, no.condicao + ' = true') gerar_regras(no.filho_esq, caminho) remover_ultimo(caminho) adicionar fim(caminho, no.condicao + ' = false') gerar_regras(no.filho_dir, caminho) remover_ultimo(caminho) Início: lista_regras = [] ; gerar_regras(raiz, []) ; retornar lista_regras. Tratamento de variáveis repetidas: ao concatenar caminho, manter condições na ordem de visita e, se uma mesma variável aparecer múltiplas vezes com valores compatíveis, manter ambas; se conflitantes, priorizar a condição mais próxima da folha ou detectar inconsistência e marcar regra inválida. Armazenamento das regras: lista de strings estruturadas ou registros {condicoes: lista, resultado: valor}. Complexidade: percorre cada nó uma vez, O(n) tempo e O(h) espaço de pilha (h = altura). Observações de implementação: usar estruturas mutáveis para caminho (push/pop) para eficiência; ao serializar regras, normalizar nomes de variáveis para evitar duplicação semântica.

Explicação

A explicação aborda a representação adequada da árvore de decisão e define claramente as variáveis e estruturas de dados necessárias para armazenar as regras geradas. O algoritmo utiliza uma abordagem de busca em profundidade, que é eficiente para percorrer todos os caminhos da raiz às folhas, garantindo que todas as condições sejam consideradas. Além disso, o tratamento de variáveis repetidas é bem fundamentado, assegurando que as regras sejam geradas de forma consistente e válida.

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

árvore de decisão

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · algoritmos em pseudocódigo

📚 Reveja

Revisar conceitos de árvores de decisão e algoritmos de percurso.

⚠️ Erro mais comum

O aluno pode falhar ao não considerar como lidar com variáveis de condição repetidas, resultando em regras duplicadas.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

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.