O fragmento de código a seguir deveria imprimir a mensagem Valores aceitos, caso os valores de pelo menos uma das variáveis a e b seja par. Caso contrário, o código deveria imprimir a mensagem Valores nao aceitos. Porém, o código apresenta erros e não está imprimindo as saídas corretas para todos os casos.
if ((a/2 != 0) || (b/2 != 0)){
}
cout << Valores aceitos;
else{
}
cout << Valores nao accitos;
Com base nesse código, responda os itens a seguir.
Reescreva o código para que funcione corretamente.

Passo 1

Beleza, vamos resumir o que o exercício está pedindo. A gente tem um pedaço de código que deveria imprimir “Valores aceitos” se pelo menos uma das variáveis, a ou b, for par. Se nenhuma das duas for par, ele deveria imprimir “Valores nao aceitos”. Mas o código que foi dado tem alguns erros e não está funcionando como esperado.
Pra resolver isso, a gente vai precisar entender um pouco de lógica de programação, condições (if e else) e como verificar se um número é par usando o operador modulo (%). Vamos dar uma olhada em como isso funciona passo a passo.

Passo 2

Primeiro, vamos entender como verificar se um número é par. Um número é par se, quando dividido por 2, o resto dessa divisão é zero. Em programação, a gente usa o operador % para obter o resto da divisão. Então, para verificar se a é par, fazemos a % 2 == 0. O mesmo vale para b.

Passo 3

Agora, vamos analisar o código original:
if ((a/2 != 0) || (b/2 != 0)){
}
cout << "Valores aceitos";
else{
}
cout << "Valores nao aceitos";
Tem alguns problemas aqui:
  1. A condição está verificando se a/2 e b/2 são diferentes de zero, o que não é a maneira correta de verificar se um número é par.
  2. A estrutura do if e else está mal formatada. As chaves {} estão vazias e os cout estão fora delas.
  3. Há um erro de digitação em “Valores nao accitos”.

Passo 4

Vamos corrigir a condição primeiro. Como mencionamos, para verificar se a ou b é par, usamos o operador %. Então a condição correta seria:
if ((a % 2 == 0) || (b % 2 == 0)){
    // Código para valores aceitos
} else {
    // Código para valores nao aceitos
}
Aqui, a % 2 == 0 verifica se a é par, e b % 2 == 0 verifica se b é par. O operador || significa “ou”, então a condição é verdadeira se pelo menos uma das duas for verdadeira.

Passo 5

Agora, vamos colocar os cout dentro das respectivas partes do if e else. Também vamos corrigir a mensagem de erro de digitação. O código completo fica assim:
if ((a % 2 == 0) || (b % 2 == 0)) {
    cout << "Valores aceitos";
} else {
    cout << "Valores nao aceitos";
}

Passo 6

Para garantir que o código funcione corretamente em todas as situações, vamos pensar nos possíveis casos:
  • Caso 1: a é par e b é par. A condição será verdadeira, e “Valores aceitos” será impresso.
  • Caso 2: a é par e b é ímpar. A condição ainda será verdadeira, porque pelo menos um é par.
  • Caso 3: a é ímpar e b é par. Novamente, a condição será verdadeira.
  • Caso 4: a é ímpar e b é ímpar. Agora, nenhuma das condições é verdadeira, então “Valores nao aceitos” será impresso.

Resposta

if ((a % 2 == 0) || (b % 2 == 0)) {
    cout << "Valores aceitos";
} else {
    cout << "Valores nao aceitos";
}

Exercícios relacionados