— Se chegarem novos tipos de objetos, vou precisar copiar tudo outra vez? — perguntou Joana, que ajuda no…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções de problemas usando a técnica de decomposição e automatizar tais soluções usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
— Se chegarem novos tipos de objetos, vou precisar copiar tudo outra vez? — perguntou Joana, que ajuda no ponto de empréstimo de livros, jogos e ferramentas do bairro. O programa usado no local possui três blocos: um para cada tipo de objeto. Em todos eles, o sistema lê o nome de quem pegou o item e a data combinada, monta um aviso de devolução, envia a mensagem e registra o envio. Quando a data já passou, o sistema também inclui o nome em uma lista para a equipe entrar em contato. Os três blocos têm as mesmas etapas; mudam apenas os dados de cada empréstimo. Como o ponto receberá outros tipos de objetos, o grupo quer reorganizar o programa sem deixar de tratar os atrasos. Identifique a reorganização do programa que permite automatizar as etapas comuns e atender a novos tipos de objetos sem copiar blocos completos.
- A) Organizar um procedimento apenas para salvar o registro, deixando a montagem e o envio do aviso em cada categoria.
- B) Organizar blocos por categoria e copiar as etapas completas quando surgir um novo tipo de item.
- C) Organizar um procedimento separado para cada tipo de item, repetindo nele todas as etapas de aviso e registro.
- D) Organizar um procedimento único com nome, item e data como entradas, incluindo a verificação de atraso em todos os empréstimos.
- E) Organizar um procedimento sem a verificação de atraso para que todos os avisos sigam o mesmo caminho.
✅ Resposta correta: alternativa D
Resolução passo a passo
- Identifique o problema. Os três blocos repetem as mesmas etapas (ler nome e data, montar aviso, enviar, registrar envio e, se a data passou, incluir na lista de atrasos). Só mudam os dados de cada empréstimo. Para atender novos tipos de objetos sem copiar blocos, a etapa comum precisa ficar em um único lugar.
- Analise a reorganização correta. A alternativa D cria um procedimento único que recebe nome, item e data como entradas. Assim, qualquer novo tipo de objeto apenas fornece seus dados ao mesmo procedimento, sem nova cópia do código. Além disso, a verificação de atraso fica dentro do procedimento, então todos os empréstimos continuam tratando os atrasos, como exige o enunciado.
- Por que as outras estão erradas.
- A: deixar a montagem e o envio em cada categoria mantém a repetição que se quer eliminar.
- B: copiar as etapas completas a cada novo tipo é exatamente o problema apontado por Joana.
- C: um procedimento por tipo de item repete todas as etapas, criando o mesmo retrabalho.
- E: retirar a verificação de atraso elimina um requisito explícito do enunciado, que o grupo quer manter.
- Conclusão. A reorganização que automatiza as etapas comuns, aceita novos tipos apenas com novos dados e preserva o tratamento de atrasos é a alternativa D, que coincide com o gabarito oficial.
💡 Dica: Identifique a parte comum do programa e pense em como automatizá-la para novos tipos de objetos.
Alternativa por alternativa
O aluno entendeu que basta centralizar apenas o registro, deixando o aviso e o envio separados por categoria, o que mantém a duplicação das etapas comuns.
O aluno aceitou organizar por categoria e copiar as etapas completas a cada novo tipo, sem perceber que a cópia é justamente o problema a ser resolvido.
O aluno imaginou que separar um procedimento por tipo de item já organiza o programa, sem notar que todas as etapas continuam repetidas em cada um.
O procedimento reúne as etapas repetidas e usa dados de entrada diferentes. Assim, serve aos itens atuais e aos novos, mantendo o tratamento dos atrasos.
O aluno pensou que simplificar o fluxo removendo a checagem de atraso tornaria o programa mais genérico, ignorando que o enunciado exige manter o tratamento dos atrasos.
Raio-X da questão
reuso de código e abstração
diagnostico
conceitos básicos de programação · estrutura de controle e funções
estude conceitos de modularização e reutilização de código em programação
confundir a necessidade de copiar código com a possibilidade de reutilização por meio de funções ou módulos.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Se dois voluntários entregarem o mesmo aparelho, como saberemos onde ele está? — perguntou uma visitante ao chegar à…
- Monitores de um centro esportivo estão testando um placar digital para partidas de futsal, vôlei e basquete. Antes de…
- Por que duas pessoas que leem uma história na tela podem chegar a trechos diferentes? Para uma mostra comunitária…
- Caminhões recolhem livros em uma campanha fictícia para renovar bibliotecas de bairro. Em cada ponto de coleta…
- — Se enviarmos as caixas sem organização, um abrigo poderá receber itens que não pediu e outro ficará sem produtos…
- — Hoje a lista de entregas mudou de novo — reclamou Davi, que ajuda a associação do bairro a distribuir kits de higiene…
Todas as questões de Estratégias de solução de problemas - Decomposição
🔎 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
