Você precisa criar um programa simples para organizar mensagens por hora de envio. Qual a combinação mais…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
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
Você precisa criar um programa simples para organizar mensagens por hora de envio. Qual a combinação mais adequada de algoritmo e estrutura de dados para ler uma lista de registros (hora, mensagem) e imprimir a saída já ordenada pela hora?
- A) Algoritmo de ordenação por comparação (ex.: bubble sort) aplicado a uma lista de registros contendo hora e mensagem; estrutura de dados: lista de registros.
- B) Usar uma fila para armazenar os registros sem ordenação, imprimindo na ordem de chegada.
- C) Usar uma pilha para armazenar os registros; imprimir do topo.
- D) Usar uma matriz fixa para armazenar registros e ordenar manualmente pela hora.
- E) Usar uma estrutura de grafo conectando registros pela hora; não é apropriado para ordenar mensagens de forma direta.
✅ Resposta correta: alternativa A
Resolução passo a passo
- O problema pede três coisas: ler registros (hora, mensagem), guardá-los e imprimir tudo ordenado pela hora. Assim, precisamos de uma estrutura que armazene pares de dados e de um algoritmo que reordene esses pares pela chave hora. Passo 2: A lista de registros é a estrutura natural, pois guarda cada mensagem junto da sua hora, permite acesso sequencial e pode ser reordenada. Passo 3: Um algoritmo de ordenação por comparação, como o bubble sort, compara a hora de um registro com a de outro e troca as posições quando necessário, até a lista ficar em ordem crescente. Ele é adequado para o objetivo e simples de implementar, embora não seja o mais eficiente para listas muito grandes; nesse caso, algoritmos como merge sort ou quicksort seriam preferíveis. Passo 4: Por que as outras estão erradas: a fila (B) preserva a ordem de chegada e não ordena pela hora; a pilha (C) inverte a ordem de entrada (LIFO) e também não ordena; a matriz fixa (D) não se adapta bem a registros de tamanho variável e a ordenação 'manual' não é um algoritmo implementável de forma geral; o grafo (E) modela relações e não é a ferramenta direta para ordenar uma sequência. Passo 5: Conclusão: a alternativa A é a única que combina uma estrutura adequada (lista de registros) com um método de ordenação real, por isso é a correta, em concordância com o gabarito oficial.
💡 Dica: Considere as estruturas de dados mais eficientes para ordenação.
Alternativa por alternativa
A ordenação por chave (hora) em uma lista de registros permite imprimir as mensagens na sequência temporal desejada, mantendo a associacao entre hora e mensagem.
Acredita que uma fila já entrega as mensagens em ordem cronológica útil, confundindo a ordem de chegada com a hora de envio declarada no registro.
Por que engana: Confundir estruturas de dados que mantêm ordem natural (fila, pilha) com algoritmos que ordenam dados, levando a escolhas inadequadas para ordenação.
Imagina que empilhar e desempilhar do topo organiza os dados por hora, sem perceber que a pilha apenas inverte a ordem de entrada (LIFO) e não ordena nada.
Supõe que uma matriz fixa com ordenação 'manual' resolve o problema, sem considerar que o número de mensagens pode variar e que ordenar exige um procedimento algorítmico explícito.
Acha que representar os registros como nós de um grafo ligados pela hora produz automaticamente uma sequência ordenada, confundindo modelagem de relações com ordenação.
Raio-X da questão
algoritmo de ordenação
avaliacao
algoritmo de ordenação · estruturas de dados básicas
Revisar algoritmos de ordenação e estruturas de dados.
Confundir estruturas de dados que mantêm ordem natural (fila, pilha) com algoritmos que ordenam dados, levando a escolhas inadequadas para ordenação.
pensamento_critico
cotidiano
Questões parecidas com resolução
- Num algoritmo que registra as horas de estudo de cada aluno durante a semana (segunda a domingo), qual estrutura de…
- Descreva como você organizaria um algoritmo para gerenciar uma lista de contatos, considerando nome, telefone e email…
- Em uma linguagem de programação baseada em eventos, qual estrutura de dados é mais adequada para armazenar uma sequência…
- Você deve projetar um algoritmo que associe cada identificador de aluno a uma sequência de carimbos de tempo…
- Um programador precisa organizar uma lista de nomes em ordem alfabética. Qual estrutura de dados é mais adequada para…
- Em um autômato orientado por eventos que registra leituras periódicas de um sensor, qual estrutura de dados é mais…
🔎 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
