"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
- Em um jogo de aventura, há cristais em diferentes fases. Sempre que o personagem encosta em um cristal, o jogo deve…
- Na apresentação digital da biblioteca, o mesmo aviso de silêncio aparece na abertura, no intervalo, antes da leitura e…
- — Se cada sala tiver um roteiro próprio, vamos repetir muitos blocos — observou uma estudante durante a montagem de uma…
- — Se mudarmos a mensagem de acerto, teremos de procurar em todas as salas? — perguntou Caio durante a montagem de um…
- Durante a montagem de uma mostra de curtas no centro cultural do bairro, estudantes programam um painel para iniciar…
- Por que um ajuste simples vira dor de cabeça quando um programa cresce? Em uma feira de bairro, um grupo de voluntários…
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
