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

Em uma atividade de sala de aula, você precisa descrever com precisão a solucao de um problema: construir o…

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

Em uma atividade de sala de aula, você precisa descrever com precisão a solucao de um problema: construir o programa que ordena uma lista de alunos por nota. Qual algoritmo de ordenação e qual estrutura de dados (registros, listas, matrizes ou grafos) é mais adequada para armazenar os dados de cada aluno (matrícula, nome e nota) e por quê? Explique usando uma linguagem de programação simples (por exemplo Python).

  1. A) Usar uma árvore binária de busca para armazenar os registros e ordenar pela nota durante as inserções.
  2. B) Usar uma lista de registros (matrícula, nome e nota) e aplicar um algoritmo de ordenação estável, como inserção, para obter a lista ordenada pela nota.
  3. C) Usar uma matriz de registros e ordenar apenas pela posição da linha, sem levar em conta a nota.
  4. D) Armazenar os dados em uma fila (queue) e imprimir na ordem de entrada sem ordenar.
  5. E) Usar um conjunto (set) de registros para ordenar automaticamente pela nota.

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. Os dados de cada aluno (matrícula, nome e nota) são campos relacionados que descrevem uma mesma entidade, por isso a estrutura adequada é um registro. Em Python, isso pode ser feito com um dicionário, por exemplo {'matricula': 1, 'nome': 'Ana', 'nota': 8.5}. Passo 2: como precisamos manter uma sequência de alunos para depois reorganizá-la, guardamos os registros em uma lista, que é linear, dinâmica e permite percorrer e trocar elementos facilmente. Passo 3: para ordenar pela nota, um algoritmo simples como o de inserção funciona bem para listas de tamanho moderado. Em Python: def ordenar(alunos): for i in range(1, len(alunos)): atual = alunos[i]; j = i - 1; while j >= 0 and alunos[j]['nota'] < atual['nota']: alunos[j+1] = alunos[j]; j -= 1; alunos[j+1] = atual; return alunos. Passo 4: o método de inserção é estável, ou seja, alunos com a mesma nota mantêm entre si a ordem original, o que é desejável em relatórios. Passo 5: por que as outras alternativas estão erradas. A) Uma árvore binária de busca é válida, mas é uma complexidade desnecessária para apenas ordenar uma lista, e a chave de busca seria a nota, o que exige tratar notas repetidas. C) Uma matriz organiza dados em linhas e colunas, e ordenar pela posição da linha ignora a nota, que é justamente o critério pedido. D) Uma fila mantém a ordem de chegada e não atende ao objetivo de ordenar pela nota. E) Um conjunto não guarda ordem nem ordena automaticamente por um campo, e em Python dicionários nem podem ser colocados em um set por não serem hashable. Observação: o gabarito B está correto e não há divergência a registrar.

💡 Dica: Considere as características dos dados e a eficiência do algoritmo.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que uma árvore de busca é sempre a melhor escolha para manter dados ordenados, sem perceber que o problema pede apenas ordenar uma lista já existente.

Por que engana: Confundir estruturas de dados que mantêm ordem automaticamente com aquelas que precisam de ordenação explícita, ou escolher algoritmos ineficientes para o contexto.

B Correta

Descrição alinhada com a descrição da solucao: registros bem definidos, uso de lista e um algoritmo de ordenacao simples e estável para ordenar pela nota.

C Erradaerro: Interpretação

Imagina que a posição do dado na matriz define a ordem final, ignorando que a nota deve ser a chave de ordenação.

D Erradaerro: Interpretação

Lê a fila como uma forma adequada de organizar os dados e não percebe que o enunciado exige ordenação pela nota, não apenas armazenamento na ordem de entrada.

E Erradaerro: Conceitual

Supõe que um conjunto organiza seus elementos automaticamente por algum campo, sem saber que conjuntos não têm ordem definida nem critério de ordenação.

Raio-X da questão

Dificuldade Fá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✍️ situacional🧩 desafio
🎯 Conceito central

algoritmos de ordenação

📌 Objetivo

fixacao

🧱 Pré-requisitos

algoritmos de ordenacao · estruturas de dados basicas

📚 Reveja

Revisar algoritmos de ordenação e estruturas de dados.

⚠️ Erro mais comum

Confundir estruturas de dados que mantêm ordem automaticamente com aquelas que precisam de ordenação explícita, ou escolher algoritmos ineficientes para o contexto.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

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.