— 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
- Por que avisos sobre a subida de um rio chegam tarde a alguns moradores? Para responder a esse problema, a Defesa Civil…
- Identifique a estratégia de programação que permite reutilizar um bloco de código em diferentes partes do programa.
- — A rua da ponte precisa aparecer antes das demais no mapa de vistoria — observou a agente da Defesa Civil após uma…
- — Toda vez que um sensor dispara, a central da associação de moradores precisa avisar com som e luz — reclamou Davi…
- Em uma escola pública, estudantes desenvolveram um aplicativo para catalogar livros da biblioteca. No ano seguinte…
- Uma secretaria municipal de educação está digitalizando pedidos de transporte escolar e de atendimento em contraturno…
Todas as questões de Estratégias de solução de problemas - Decomposiçã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
