GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO03Fácil⏱ medio

"Tem livro que aparece como emprestado duas vezes e ninguem sabe com quem esta", reclamou uma voluntaria do…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO03

Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

"Tem livro que aparece como emprestado duas vezes e ninguem sabe com quem esta", reclamou uma voluntaria do Ponto de Leitura do bairro. O acervo tem livros com um codigo curto colado na contracapa (ex.: L042). No atendimento, cada voluntario registra no tablet os codigos dos livros que saem. Nos dias de maior movimento, acontece de duas pessoas digitarem o mesmo codigo sem perceber. A lista de emprestimos fica com repeticoes e o sistema simples da biblioteca passa a achar que existem duas copias do mesmo livro fora do acervo, bloqueando novas reservas. O grupo decidiu refazer o programa para que: (1) cada codigo de livro emprestado apareca no registro no maximo uma vez; (2) seja rapido verificar se um codigo ja esta emprestado; (3) ao devolver, o codigo deixe de constar no registro. A ordem dos codigos nao importa. Com base no texto, identifique a estrutura de dados mais adequada para armazenar os codigos dos livros emprestados, evitando repeticoes e facilitando a verificacao de presenca.

  1. A) Usar uma tabela de codigos com linhas repetidas, somando quantas vezes o mesmo codigo foi digitado
  2. B) Usar um conjunto de codigos, que nao aceita duplicados e permite testar se um codigo esta presente
  3. C) Usar uma fila de codigos, enfileirando no emprestimo e desenfileirando na devolucao do livro
  4. D) Usar uma lista de codigos, mantendo a ordem de digitacao para descobrir se um codigo ja apareceu
  5. E) Usar uma pilha de codigos, empilhando no emprestimo e desempilhando no retorno do livro

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. O problema exige três coisas: cada código aparece no máximo uma vez (sem repetições), verificar rapidamente se um código já está emprestado e remover o código na devolução. A ordem dos códigos não importa.
  2. Um conjunto (set) é a estrutura que não aceita elementos duplicados por definição. Assim, se o mesmo código for digitado duas vezes, ele continua aparecendo apenas uma vez, resolvendo o problema da lista com repetições.
  3. Conjuntos permitem testar a presença de um elemento de forma rápida, em tempo médio constante, por meio de tabela de dispersão (hash). Isso atende ao requisito de verificação rápida.
  4. Na devolução, basta remover o código do conjunto, o que também é uma operação direta. Portanto, a alternativa B atende aos três requisitos.
  5. Por que as outras estão erradas: A) uma tabela com linhas repetidas mantém duplicidades, justamente o problema que se quer eliminar; C) uma fila é voltada à ordem de chegada e não evita repetições nem facilita a busca por presença; D) uma lista permite duplicados e exige percorrê-la inteira para verificar presença, o que é lento; E) uma pilha só dá acesso ao topo, não serve para testar rapidamente se um código existe e também permite repetições.
  6. Conclusão: a estrutura mais adequada é o conjunto de códigos, alternativa B, que coincide com o gabarito oficial.

💡 Dica: Pense em estruturas que evitam duplicatas e facilitam buscas.

Alternativa por alternativa

A Erradaerro: Interpretação

O aluno pensa que registrar cada digitação em uma linha separada e contar as repetições resolve o problema, sem perceber que a exigência é que o código apareça no máximo uma vez.

B Correta

Conjunto garante unicidade e permite checar rapidamente se um codigo ja foi registrado como emprestado.

C Erradaerro: Conceitual

O aluno associa o empréstimo e a devolução à ideia de fila (primeiro a entrar, primeiro a sair) e não considera que o problema exige evitar repetições e testar presença.

D Erradaerro: Conceituala que mais engana

O aluno acredita que, por ser uma lista organizada pela ordem de digitação, ela já serve para evitar repetições, ignorando que a lista aceita duplicados e exige percorrê-la inteira para achar um código.

Por que engana: Confundir estruturas que permitem duplicatas com as que evitam, como listas ou filas.

E Erradaerro: Conceitual

O aluno imagina que a pilha, por guardar os itens em uma ordem de empilhar e desempilhar, resolve o controle de empréstimos, sem notar que ela só acessa o topo e não impede repetições.

Raio-X da questão

Dificuldade Fácil
Bloom Aplicar
Leitura medio
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 consolidacao
🎯 Conceito central

estrutura de dados conjunto

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceito de estrutura de dados · propriedades de conjuntos

📚 Reveja

estude estruturas de dados e propriedades de conjuntos

⚠️ Erro mais comum

Confundir estruturas que permitem duplicatas com as que evitam, como listas ou filas.

🤝 Socioemocional

tomada_decisao

🏫 Contexto

cotidiano

Questões parecidas com resolução

🔎 Resolver outra questão

Cole o enunciado e veja a resolução passo a passo, a alternativa correta e por que as outras estão erradas.

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.