Num algoritmo que insere registros em uma lista, sempre aparece um registro duplicado ao final. Ao analisar o…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Analisar programas para detectar e remover erros, ampliando a confiança na sua correção.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Num algoritmo que insere registros em uma lista, sempre aparece um registro duplicado ao final. Ao analisar o código, qual problema é mais provável e deve ser corrigido primeiro?
- A) O problema é falta de desalocação de memória após cada inserção.
- B) O compilador está duplicando funções devido à otimização, causando o bug.
- C) A função de inserção ordena a lista depois de cada inserção, gerando duplicatas.
- D) O índice/ponteiro da lista não é atualizado corretamente dentro do laço, causando reinserção do mesmo registro.
- E) O laço está com condição invertida, impedindo inserir novos elementos.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O sintoma descrito é que um registro aparece duplicado ao final da lista. Isso indica que o mesmo elemento está sendo inserido mais de uma vez, o que costuma acontecer quando o laço não avança corretamente. Passo 2: A alternativa D aponta exatamente essa causa: se o índice ou ponteiro não é atualizado dentro do laço, a mesma posição ou o mesmo registro é lido e inserido novamente, e o último registro aparece repetido. Passo 3: A alternativa A está errada, pois a falta de desalocação de memória causa vazamento de memória, não duplicação de registros na lista. Passo 4: A alternativa B está errada, pois otimização do compilador não altera a lógica do algoritmo nem cria registros repetidos na estrutura de dados. Passo 5: A alternativa C está errada, pois ordenar a lista apenas reorganiza os elementos já existentes e não cria duplicatas. Passo 6: A alternativa E está errada, pois uma condição invertida impediria inserções, e o sintoma relatado é justamente a inserção excessiva de um mesmo registro, não a ausência de inserções. Passo 7: Portanto, a correção prioritária é verificar e atualizar corretamente o índice ou ponteiro dentro do laço, garantindo que cada iteração avance para o próximo registro.
💡 Dica: Analise o fluxo de inserção de registros no algoritmo.
Alternativa por alternativa
Confunde registro duplicado com vazamento de memória, achando que a falta de liberação de memória faz elementos aparecerem repetidos na lista.
Supõe que o compilador altera a lógica do programa e duplica funções, atribuindo o erro a uma otimização em vez de ao código escrito pelo programador.
Acredita que reordenar a lista após cada inserção cria cópias dos elementos, quando ordenar apenas muda a posição dos registros já existentes.
Por que engana: O aluno pode confundir a atualização do índice com a lógica de inserção, acreditando que a função de inserção está correta sem perceber o erro no ponteiro.
Quando o contador ou ponteiro não avança, a inserção ocorre na mesma posição repetidamente; ajustar o incremento ou a atualização do ponteiro resolve a duplicação.
Pensa que a condição invertida apenas impede inserções, sem perceber que ela também pode fazer o laço repetir o mesmo registro; o sintoma é excesso de inserções, não ausência.
Raio-X da questão
algoritmo de inserção
diagnostico
estrutura de dados · algoritmos de inserção
Revisar a lógica de inserção em listas e tratamento de duplicatas.
O aluno pode confundir a atualização do índice com a lógica de inserção, acreditando que a função de inserção está correta sem perceber o erro no ponteiro.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Considere um algoritmo que soma os números de uma lista. Identifique um erro comum nesse tipo de programa e explique…
- Em um cenário onde você usa listas em um programa, como garantir que a lista não contenha itens duplicados?
- Em um algoritmo que processa uma lista de alunos como dados e precisa evitar registros duplicados, qual estrutura de…
- Uma lista não vazia possui índices de 0 até n, e n é seu último índice válido. Em um laço, o índice i começa em 0…
- Um algoritmo deve verificar a presença de um item em uma lista. Qual seria uma condição para repetir a busca?
- No terminal de uma biblioteca comunitaria, o cadastro dos visitantes ficou com repeticões porque algumas pessoas…
🔎 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
