• Matéria: Informática
  • Autor: cojaque2
  • Perguntado 7 anos atrás

Para atrair e fidelizar novos clientes, uma locadora de carros elaborou uma promoção. No início do dia, o contador de cupons é zerado e cada cliente recebe um número. O primeiro cliente do dia recebe o número 1, o segundo recebe o número 2 e assim por diante. Após a devolução das chaves, o cliente digita o número do seu cupom num totem de auto-acendimento. O cliente ganhará um brinde se o seu número for múltiplo de 3 ou de 7, mas não de ambos.

Sendo assim, assinale a alternativa que satisfaz essa condição?
Alternativas
Alternativa 1:
if((cupom % 3 == 0 || cupom % 7 == 0) || (cupom % 21 == 0)){}

Alternativa 2:
if((cupom % 3 == 0 || cupom % 7 == 0) || !(cupom % 21 == 0)){}

Alternativa 3:
if((cupom % 3 == 0 || cupom % 7 == 0) && (cupom % 21 == 0)){}

Alternativa 4:
if((cupom % 3 == 0 || cupom % 7 == 0) && !(cupom % 21 == 0)){}

Alternativa 5:
if((cupom % 3 == 0 && cupom % 7 == 0) && !(cupom % 21 == 0)){}

Respostas

respondido por: macaibalaura
5

Alternativa 4, vamos agora analisar o porquê das outras alternativas estarem erradas.

Na primeira alternativa, foi colocado que só poderia ser um dos três itens, entretanto isso não pode ocorrer, ela não pode ser múltipla de 7 e 3, e no código é permitida essa opção.

Na alternativa 2, é colocado um parâmetro que fala que se não for múltiplo de 7 e 3, e diferente de múltiplo de 21 também é aceito, logo quebrando os parâmetros impostos pela empresa.

Na alternativa 3, também ocorre uma quebra com os parâmetros exigidos pela locadora, até o início do código está correto, pois só pode ser ou múltiplo de 7 e 3, mas mesmo sendo esses parâmetros ele coloca que também tem que ser múltiplo de 21, quebrando o que a locadora exige.

Na alternativa 5, são colocados que se os três parâmetros forem verdadeiros ele pode ganhar o brinde, entretanto fere a ideia da loja que apenas se for múltiplo de 7 ou 3 pode ganhar um brinde.

Espero ter ajudado!

respondido por: dsccabral
3

Resposta:

Alternativa 4:

if((cupom % 3 == 0 || cupom % 7 == 0) && !(cupom % 21 == 0)){}

Explicação:

Isolando as partes:

(cupom % 3 == 0 || cupom % 7 == 0)

aqui diz que o cupom sendo dividido por 3 é igual a zero OU dividido por 7 é igual a zero

o pedaço abaixo diz que o cupom dividido por 21 é igual a zero

(cupom % 21 == 0)

ou seja, se todas as 3 condições fossem atendidas, poderíamos afirmar que o cupom é divisível pelos 3 números: 3, 7 e 21

Como a questão pede "...se o seu número for múltiplo de 3 ou de 7, mas não de ambos.", logo:

if((cupom % 3 == 0 || cupom % 7 == 0) && !(cupom % 21 == 0)){}

divisível por 3       OU divisível por 7      E     divisível por 21***

                                ||                               &&               !

*** a expressão divisível por 21 é negada através do símbolo '!', ou seja, a afirmação é invertida, ficando que "não é divisível por 21"

Dessa forma, a alternativa é satisfeita através dessa expressão

Espero ter ajudado, e não complicado mais rsrs

Perguntas similares