Na tenda de um ecoponto montado na praça, voluntários registram as doações de recicláveis para a cooperativa…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar algoritmos fazendo uso da decomposição e do reúso no processo de solução de forma colaborativa e cooperativa e automatizá-los usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Na tenda de um ecoponto montado na praça, voluntários registram as doações de recicláveis para a cooperativa. O registro precisa guardar o tipo do material (PAPEL, PLÁSTICO ou METAL) e o peso informado na balança. A cada entrega, o programa deve somar o peso ao total daquele tipo e também ao total geral. O atendimento continua até a pessoa digitar FIM no campo “tipo”, quando o sistema deve mostrar um resumo final com os totais por tipo e o total geral. Para programar mais rápido, duas pessoas vão trabalhar juntas: uma escreve a parte de leitura dos registros e outra escreve a parte de cálculo e resumo. Elas combinaram evitar copiar e colar blocos parecidos, para facilitar correções e permitir reaproveitar o mesmo trecho de código em outros mutirões. A partir do texto-base, identifique o esboço de algoritmo que melhor permite dividir o trabalho em partes e reutilizar o mesmo procedimento de soma para qualquer tipo de material.
- A) Dividir em funções LerRegistro e ExibirResumo, mas somar com três blocos 'se tipo=...' repetidos no laço.
- B) Dividir em funções LerRegistro, AtualizarTotais(t,tipo,peso) e ExibirResumo, repetindo até tipo='FIM'.
- C) Dividir em funções LerRegistro, SomarPapel, SomarPlástico e SomarMetal, escolhendo a função conforme o tipo.
- D) Dividir em uma única função RegistrarEExibir que lê, soma e mostra tudo a cada entrega, sem separar etapas.
- E) Dividir em funções, mas registrar todos os pesos em uma lista e somar apenas depois, sem atualizar durante o atendimento.
✅ Resposta correta: alternativa B
Resolução passo a passo
- O problema pede um esboço que divida o trabalho em partes e reutilize o mesmo procedimento de soma para qualquer tipo de material, sem blocos repetidos de código. Passo 2: A alternativa B separa o programa em três partes: LerRegistro (lê o tipo e o peso de cada entrega), AtualizarTotais(t, tipo, peso) (um único procedimento que soma o peso ao total do tipo recebido e ao total geral) e ExibirResumo (mostra os totais ao final). Passo 3: Como AtualizarTotais recebe o tipo como parâmetro, o mesmo trecho serve para PAPEL, PLÁSTICO, METAL e qualquer outro material, o que atende ao pedido de reaproveitamento. Passo 4: O laço repetido até que o tipo seja FIM controla o atendimento, conforme o enunciado. Passo 5: A alternativa A está errada porque mantém três blocos se tipo=... repetidos, justamente o copiar e colar que o grupo quer evitar. A alternativa C está errada porque cria uma função separada para cada material, o que impede o reaproveitamento para novos tipos. A alternativa D está errada porque concentra leitura, soma e exibição em uma só função, dificultando a divisão de tarefas entre as duas pessoas. A alternativa E está errada porque guarda os pesos em lista e soma só no final, o que contraria a exigência de somar a cada entrega.
💡 Dica: Identifique funções que dividem tarefas e permitem reutilizar código para somar pesos.
Alternativa por alternativa
O aluno acha que separar em funções já basta para atender ao pedido, sem perceber que os três blocos se tipo repetidos continuam sendo copiar e colar.
Por que engana: Escolher alternativas que repetem codigo desnecessariamente ou nao dividem bem as tarefas, dificultando a reutilizacao.
Decompõe em módulos e reutiliza uma única função de atualização para PAPEL, PLÁSTICO e METAL dentro do laço.
O aluno pensa que criar uma função específica para cada material organiza melhor o código, sem notar que a lógica de soma se repete e que novos tipos exigiriam novas funções.
O aluno entende que menos funções é mais simples, sem perceber que juntar leitura, soma e exibição impede a divisão do trabalho entre as duas pessoas e o reaproveitamento do procedimento.
O aluno confunde organizar dados com processar dados e acha que guardar tudo em lista e somar no final é uma forma válida, ignorando que o enunciado pede atualizar os totais a cada entrega.
Raio-X da questão
modularizacao e reutilizacao codigo
avaliacao
conceito de funcao em programacao · estrutura de repeticao
estude como criar e usar funcoes para modularizar algoritmos
Escolher alternativas que repetem codigo desnecessariamente ou nao dividem bem as tarefas, dificultando a reutilizacao.
ciencia_tecnologia
colaboracao
cotidiano
Questões parecidas com resolução
- — Moça, já deu para encher o caminhão? — pergunta um catador, enquanto descarrega sacos na cooperativa. Na triagem, cada…
- Durante o mutirão de reciclagem do bairro, um totem digital orienta os moradores. A pessoa informa se trouxe papel…
- Na organização de uma feira de troca de livros e brinquedos do bairro, quatro estudantes ficaram responsáveis por…
- Cerca de 300 sacos de lixo foram recolhidos em um mutirão de limpeza na orla. Para registrar a coleta, cada saco recebeu…
- — Ontem eram so duas opcoes de marmita; hoje ja tem vegetariana, sem lactose e sem gluten! — reclamou a voluntaria que…
- Uma escola pretende criar um aplicativo para acompanhar a coleta seletiva. A equipe recebeu uma planilha com registros…
Todas as questões de Estratégias de solução de problemas - Reúso
🔎 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
