Alternativa A
O enunciado descreve uma lógica condicional que deve ser traduzida para código de programação utilizando apenas estruturas if simples (sem else). Vamos decompor o problema passo a passo.
Análise do Enunciado
O texto estabelece três regras distintas para a variável x:
- Regra 1: "1 será adicionado a x, se x for maior que 0".
- Tradução lógica: Se x > 0, então x = x + 1 (ou
x++).
- Regra 2: "1 será subtraído de x, se x for menor que 0".
- Tradução lógica: Se x < 0, então x = x - 1 (ou
x--).
- Regra 3: "o valor de x será mantido, se x for igual a zero".
- Tradução lógica: Não há ação explícita necessária. Se nenhuma condição anterior for verdadeira (ou seja, se x = 0), o programa simplesmente não executa as alterações.
Avaliação das Alternativas
Vamos verificar qual alternativa corresponde exatamente a essa lógica sem alterar os operadores ou a estrutura solicitada:
- Alternativa A (
if(x>0) x++; if(x<0) x--;): - Primeiro
if: Verifica x > 0 e incrementa. Correto. - Segundo
if: Verifica x < 0 e decrementa. Correto. - Estrutura: São dois
ifs independentes (simples), atendendo ao requisito de não usar else. Se x = 0, nenhum bloco é executado, mantendo o valor. - Conclusão: Esta é a resposta correta.
- Alternativa B: Inverte a lógica. Diz que se x > 0 ele diminui (
x--), o que contradiz o enunciado. - Alternativa C: Mantém o incremento correto para positivos, mas também incrementa para negativos (
x++), quando deveria subtrair. - Alternativa D: Subtrai em ambos os casos, o que está incorreto para valores positivos.
- Alternativa E: Utiliza os operadores \geq (maior ou igual) e \leq (menor ou igual). Isso cria uma sobreposição no caso x = 0, onde ambas as condições seriam verdadeiras, alterando a precisão exigida pelo texto original ("maior que 0").
Conclusão
A opção A é a única que traduz fielmente as condições de comparação (> e <) e as ações associadas (+1 e -1), respeitando a restrição de utilizar apenas estruturas condicionais simples.