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.
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:
- A condição está verificando se
a/2
eb/2
são diferentes de zero, o que não é a maneira correta de verificar se um número é par. - A estrutura do
if
eelse
está mal formatada. As chaves{}
estão vazias e oscout
estão fora delas. - 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 eb
é par. A condição será verdadeira, e “Valores aceitos” será impresso. - Caso 2:
a
é par eb
é ímpar. A condição ainda será verdadeira, porque pelo menos um é par. - Caso 3:
a
é ímpar eb
é par. Novamente, a condição será verdadeira. - Caso 4:
a
é ímpar eb
é í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";
}