Informática, perguntado por masonaryworldwide, 10 meses atrás

Dados A = 10 e B = 3, e as seguintes linhas de código:
if (A-B)%2 == 0 {
cout<<"Par";
}
else {
cout<<"Impar";
}
Qual mensagem será mostrada ao usuário? Justifique.


Usuário anônimo: tem erro de sintaxe

Soluções para a tarefa

Respondido por Usuário anônimo
1

Resposta:

Ímpar

Explicação:

O código correto, sem erro de sintaxe é este, creio eu:

if ((A-B) % 2 == 0) {

  cout<<"Par";

}

else {

  cout<<"Impar";

}

Se você executar esse código, a saída será impar, pois:

1. Explicação teórica

A instrução IF faz o seguinte:

1. Ele subtrai A por B, por que eles estão dentro dos parênteses

2. O resultado dessa subtração é divido por 2, o que resulta no resto dessa divisão, por que estamos usando o operador "%", e então ele compara se esse resto da divisão é igual a 0

3. Se for igual a zero, então quer dizer que é par, se não, é impar

2. Uma explicação mais simples:

A instrução IF faz o seguinte:

1. Primeiro subtrai o que está dentro dos parênteses 10 - 3 = 7

2. Ok, agora que resolvemos os parênteses, vamos para o operador de resto da divisão:

if(7 % 2 == 1)

Para encontrar o módulo da divisão de 7 por 2 vamos fazer isso:

  7 |_2

- 6    3

  1

3. É este resto de divisão (1) que o operador % vai pegar

4. E agora, por fim, pegamos esse resultado, e comparamos ele à 0

1 == 0 (1 é igual à zero? Falso)

Como deu falso, ele vai na instrução else, que por fim, mostra "impar" no console.


masonaryworldwide: teria como me explicar por que deu impar?
Usuário anônimo: pronto
Usuário anônimo: melhorei a resposta
Perguntas interessantes