EP0

EP0

por Leandro Rodrigues da Silva -
Número de respostas: 1

Boa noite. Cheguei em alguns casos no programa em que o programa pediria ao usuário a divisão por 2 de um número ímpar (mais especificamente na terceira pergunta), porém com as perguntas já respondidas anteriormente é possível já concluir o número pensado. Posso "pular" essa pergunta para que não seja preciso fazer a divisão do número ímpar, ou a correção automática será prejudicada?

Em resposta à Leandro Rodrigues da Silva

Re: EP0

por Marcelo Queiroz -

Boa noite, Leandro!

Essa estratégia de adivinhação (que não está explicitada no enunciado, mas apenas sugerida através de exemplos) com base naquelas 3 interações com o usuário (perguntar se é par/ímpar, às vezes pedir para subtrair 1 e depois pedir para dividir por 2) corresponde a um mecanismo bastante genérico (do jeito que está colocado no EP0 ela serviria em princípio, sem alterações no código, para adivinhar números de 0 a 15). Esse mecanismo genérico pressupõe que todas as divisões por 2 serão inteiras, o que sempre pode ser garantido através de um possível decremento (essa foi a dica que eu dei na aula de 5a-feira: a instrução de subtrair 1 não acontece sempre, mas sempre que acontece é para viabilizar uma divisão inteira em seguida).

Voltando à sua dúvida, ela tem relação também com uma outra pergunta que fizeram em sala, se sempre era necessário fazer 4 perguntas do tipo "par/ímpar": isso porque foi observado que, para alguns casos particulares (números 3,4,5 e 6), era possível adivinhar a resposta após a 3a pergunta. Minha resposta foi para fazerem sempre as 4 perguntas do tipo par/ímpar, repetindo sempre o mesmo padrão identificado, em particular usando os decrementos para não exigir do usuário divisões inexatas.

A motivação pra minha sugestão é a seguinte: tratar os casos particulares do problema com códigos específicos, diferentes da solução geral, costuma afetar a legibilidade do programa, então é mais interessante quando conseguimos encaixar todos os casos dentro de uma mesma regra ou padrão geral.

Abraço,

Marcelo