Considere a expressão a = (x > y)? ((x > z)? x : z): ...
Considere a expressão a = (x > y)? ((x > z)? x : z): ((y> z)? y : z) na linguagem de programação C++.
Para obter o valor 4 para a variável a, a combinação das variáveis inteiras x, y e z é
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: Letra C - x = 3, y = 4, z = 2.
A questão envolve o entendimento da operação ternária em C++, que é uma forma concisa de escrever uma instrução if-else. A expressão (condição) ? expressão1 : expressão2
avalia a condição; se ela for verdadeira, o valor de expressão1
é retornado, caso contrário, o valor de expressão2
é retornado.
A expressão dada na questão pode ser vista como uma forma aninhada de operações ternárias que escolhem o maior entre três números x, y e z. A expressão é dividida da seguinte maneira:
- Primeiro, compara-se x com y:
(x > y)
. - Se x for maior, então compara-se x com z e escolhe-se o maior:
((x > z) ? x : z)
. - Se y for maior ou igual a x, compara-se y com z e escolhe-se o maior:
((y > z) ? y : z)
.
Para encontrar a combinação correta que torna a
igual a 4, precisamos analisar as alternativas fornecidas:
Letra C: Quando x = 3, y = 4 e z = 2, a expressão se desdobra da seguinte maneira:
- Primeiro, verifica-se se x é maior que y, o que não é, pois 3 não é maior que 4.
- Como x não é maior que y, parte-se para a segunda parte da operação ternária:
(y > z) ? y : z
. - Aqui, y (4) é maior que z (2), portanto, o valor de y é retornado e atribuído a
a
.
Portanto, com x = 3, y = 4 e z = 2, o valor de a
será 4, o que está de acordo com o enunciado da questão.
Entender operações ternárias é crucial para ler e escrever código conciso e eficiente em muitas linguagens de programação, e essa questão é um bom exemplo de como elas podem ser usadas para simplificar instruções condicionais mais complexas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Questão aborda o operador ternário:
condição ? se_verdadeiro : se_falso
A finalidade é fazer o candidato perder tempo, vamos direto a resposta:
x = 3, y = 4, z = 2.
a = (x > y)? ((x > z)? x : z): ((y> z)? y : z)
a= (x > y)? ((3>2)? 3:2) : ((4>2)?4:2)
a= (3>4) ? 3 : 4
a= 4
GABARITO ALTERNATIVA C
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo