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

Por que um ajuste simples vira dor de cabeça quando um programa cresce? Em uma feira de bairro, um grupo de…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO05

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

Por que um ajuste simples vira dor de cabeça quando um programa cresce? Em uma feira de bairro, um grupo de voluntários usa um app feito por eles para controlar o empréstimo de coletes refletivos. O app tem duas ações: “emprestar” e “devolver”. Em ambas, o celular pede o código do voluntário, confere se ele está cadastrado, registra a hora e salva o movimento em uma lista. Na última atualização, o grupo mudou a regra do cadastro (agora o código precisa ter 6 caracteres). Eles corrigiram essa verificação na tela “emprestar”, mas esqueceram de alterar na tela “devolver”. No sábado, várias devoluções foram recusadas por erro, mesmo com códigos válidos. Para evitar novos esquecimentos, eles querem reorganizar o algoritmo antes de automatizar tudo na linguagem de programação que estão usando. Com base no texto, identifique a forma de organizar o algoritmo que reduz esquecimentos em mudanças futuras, usando decomposição e reúso ao automatizar o app.

  1. A) Definir apenas um checklist em texto e pedir que a pessoa execute os passos, sem código.
  2. B) Definir os dois fluxos com blocos repetidos, copiando a validação e o registro em cada um.
  3. C) Definir um único fluxo gigante que trate emprestar e devolver só com testes no meio.
  4. D) Definir funções de validação e de registro e reutilizá-las nos fluxos de emprestar e devolver.
  5. E) Definir funções separadas para cada fluxo, mesmo que cada uma repita a mesma validação e o mesmo registro.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. O problema descrito nasce de duplicação. A regra de validação do código do voluntário existe em dois lugares (telas emprestar e devolver), então uma mudança feita em apenas um deles deixa o outro desatualizado.
  2. A solução indicada pelo próprio conceito de decomposição e reúso é separar o algoritmo em partes menores com responsabilidade única: uma função de validação (confere se o código tem 6 caracteres e se o voluntário está cadastrado) e uma função de registro (marca a hora e salva o movimento na lista).
  3. Com essas funções, os fluxos de emprestar e devolver apenas as chamam. Assim, a regra existe em um único lugar; ao mudá-la, o efeito vale automaticamente para as duas ações, reduzindo esquecimentos em mudanças futuras.
  4. Por que as outras estão erradas: A) abandona a automação, que é justamente o objetivo do grupo; B) repete a validação e o registro em cada fluxo, exatamente a causa do erro do sábado; C) um fluxo único e gigante mistura responsabilidades e torna a manutenção mais difícil, mesmo com testes; E) cria funções separadas, mas mantém a repetição da validação e do registro, por isso o problema continuaria.
  5. Conclusão: a alternativa D é a única que combina decomposição (dividir em funções com papéis claros) e reúso (usar as mesmas funções nos dois fluxos).

💡 Dica: Pense em como organizar o código para evitar repetição e facilitar alterações futuras.

Alternativa por alternativa

A Erradaerro: Interpretação

Acredita que um checklist escrito em texto resolve o problema de manutenção, ignorando que o grupo quer organizar o algoritmo para automatizar o app.

B Erradaerro: Conceitual

Entende que copiar o mesmo bloco de validação e registro em cada fluxo é uma forma organizada, sem perceber que a cópia é justamente o que causou a falha ao esquecer a alteração na tela devolver.

C Erradaerro: Conceitual

Imagina que testes no meio de um único fluxo grande bastam para evitar esquecimentos, sem perceber que a mistura de responsabilidades dificulta a manutenção.

D Correta

As etapas repetidas viram partes reutilizáveis; ao mudar a validação, altera-se em um só lugar e os dois fluxos usam a mesma regra.

E Erradaerro: Procedimental

Acredita que separar em funções por tela já é decomposição suficiente, sem notar que repetir a validação e o registro em cada função mantém o mesmo risco de esquecimento.

Raio-X da questão

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

decomposição e reúso de código

📌 Objetivo

diagnostico

🧱 Pré-requisitos

conceitos básicos de programação · funções e modularização

📚 Reveja

Estude como modularizar e reutilizar funções em programação para evitar erros.

⚠️ Erro mais comum

Confundir a importância da reutilização de código e não entender como a falta dela causa erros repetidos.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

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

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.