Alternativa A - if(x>0) x++; if(x<0) x--;
A questão solicita a tradução de uma lógica condicional específica para código, utilizando exclusivamente estruturas if simples (sem else). É fundamental analisar cada caso descrito no enunciado para identificar qual bloco de código corresponde a cada situação.
A lógica apresentada divide-se em três cenários mutuamente exclusivos baseados no valor de x:
- **Se x > 0$**: Deve-se somar 1 ao valor de $x (x++).
- **Se x < 0$**: Deve-se subtrair 1 do valor de $x (x--).
- Se $x = 0$: O valor deve permanecer inalterado (nenhuma ação).
Análise das Opções
Para encontrar a resposta correta, devemos verificar qual alternativa respeita rigorosamente essas três regras:
- Opção A:
- Verifica
if(x>0) e incrementa (x++). Correto para o primeiro caso. - Verifica
if(x<0) e decrementa (x--). Correto para o segundo caso. - Se x for igual a zero, nenhuma das duas condições é verdadeira, portanto, nenhuma linha é executada. Isso mantém o valor de x inalterado, atendendo ao terceiro caso.
- Resultado: Correta.
- Opção B: Inverte a lógica de operação (subtrai quando positivo e soma quando negativo).
- Opção C: Soma 1 em ambos os casos positivos e negativos, ignorando a regra de subtração para valores menores que zero.
- Opção D: Subtrai 1 em ambos os casos, ignorando a regra de adição para valores maiores que zero.
- Opção E: Utiliza condições de desigualdade inclusiva (\geq e \leq). Se x fosse igual a 0, a primeira linha
if(x>=0) seria executada, alterando o valor de x para 1, o que viola a regra de manutenção do zero.
Conclusão
A alternativa A é a única que traduz fielmente a lógica descrita, aplicando as operações corretas nas condições corretas e garantindo que o valor zero seja preservado, pois nenhuma das instruções if será ativada nesse cenário específico.