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.
Soluções para a tarefa
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.