"Por que a inscricao do doador da erro, mas a do entregador passa?" perguntou Joao, enquanto o grupo…
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
"Por que a inscricao do doador da erro, mas a do entregador passa?" perguntou Joao, enquanto o grupo cadastrava pessoas em um computador durante um mutirao de doacoes. O programa tinha tres telas: cadastrar doador, cadastrar entregador e cadastrar familia que vai receber as roupas. Em todas as telas, era preciso conferir os mesmos campos antes de salvar: nome nao pode ficar vazio; telefone deve ter 11 numeros; e-mail precisa ter "@" e um ponto. Ao revisar o codigo, Maria percebeu que os passos de conferir esses campos foram escritos tres vezes, uma em cada tela, com pequenas diferencas de nomes de variaveis. Quando uma regra mudou (passou a exigir 11 numeros no telefone), o grupo atualizou apenas uma das telas e esqueceu as outras duas, causando inconsistencias. Eles querem reorganizar o algoritmo para facilitar manutencao e permitir que todos colaborem sem repetir trabalho. Analise o problema descrito e identifique a modificacao no algoritmo que mais favorece a decomposicao e o reuso, reduzindo erros quando uma regra de validacao mudar.
- A) Escrever um comentario no inicio do programa lembrando quais sao as regras de validacao a seguir.
- B) Criar uma funcao de validacao e chama-la nas tres telas, passando os valores dos campos como entrada.
- C) Copiar o trecho de validacao da tela correta e colar nas outras duas telas, mantendo tres versoes iguais.
- D) Trocar os nomes das variaveis para que fiquem iguais nas tres telas, sem alterar os passos executados.
- E) Deixar a validacao para depois de salvar e, se der erro, pedir para a pessoa corrigir o cadastro.
✅ Resposta correta: alternativa B
Resolução passo a passo
- O problema descreve regras de validacao (nome nao vazio, telefone com 11 numeros, e-mail com @ e ponto) repetidas em tres telas, o que gera duplicacao de codigo e inconsistencias quando uma regra muda.
- A tecnica de decomposicao e reuso indicada e agrupar essas regras em uma unica funcao de validacao, que recebe os valores dos campos como entrada e devolve o resultado (valido ou os erros encontrados).
- Com isso, a regra fica escrita em um so lugar; ao mudar a exigencia do telefone, basta alterar a funcao e todas as telas passam a usar a regra nova automaticamente.
- A alternativa A esta errada porque comentarios nao executam nem reduzem a repeticao de codigo; apenas documentam. A alternativa C esta errada porque copiar e colar mantem a duplicacao, reproduzindo o mesmo risco de esquecer uma tela. A alternativa D esta errada porque trocar nomes de variaveis nao altera a estrutura repetida, e os passos continuam duplicados. A alternativa E esta errada porque mover a validacao para depois de salvar nao resolve a duplicacao e piora a experiencia do usuario, sem ganho de reuso.
- Portanto, a modificacao que mais favorece decomposicao e reuso e a criacao de uma funcao de validacao chamada nas tres telas, que corresponde ao gabarito B.
💡 Dica: Pense em como evitar repetição e facilitar manutenção do código.
Alternativa por alternativa
O aluno acredita que documentar as regras em comentarios basta para evitar inconsistencias, sem perceber que o codigo repetido continua existindo e pode ser alterado em apenas uma tela.
Uma unica funcao concentra as regras e e reutilizada nas tres partes, evitando divergencias quando a regra muda.
O aluno considera que copiar a validacao correta para as outras telas resolve o problema, sem perceber que manter tres copias identicas continua exigindo atualizar todas a cada mudanca.
O aluno pensa que deixar os nomes das variaveis iguais elimina a duplicacao, confundindo uniformizacao de nomes com reuso de codigo.
Por que engana: Confundir que apenas comentários ou nomes iguais resolvem o problema, sem criar funções reutilizáveis.
O aluno acha que adiar a validacao para depois de salvar simplifica o sistema, sem perceber que isso nao elimina a repeticao das regras e ainda obriga o usuario a corrigir o cadastro depois.
Raio-X da questão
decomposição e reuso de código
diagnostico
funções e modularização · validação de dados
Estude funções e modularização para evitar repetição de código.
Confundir que apenas comentários ou nomes iguais resolvem o problema, sem criar funções reutilizáveis.
pensamento_critico
cotidiano
Questões parecidas com resolução
- Na organização de uma feira de troca de livros e brinquedos do bairro, quatro estudantes ficaram responsáveis por…
- No fim de semana da feira de ciências do bairro, a equipe de organização percebeu um problema repetido: dezenas de…
- — Ontem eram so duas opcoes de marmita; hoje ja tem vegetariana, sem lactose e sem gluten! — reclamou a voluntaria que…
- Por que uma mesma rua pode aparecer com 12 reclamacoes de poste apagado em um dia e, no fim, serem apenas 7 postes…
- Em um teste de acessibilidade e usabilidade de um portal municipal de agendamento para emissão de documentos, os…
- Em uma página de cadastro, uma aluna criou funções separadas para validar nome, verificar idade e salvar os dados…
Todas as questões de Estratégias de solução de problemas - Reúso
🔎 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
