Considere a expressão a = (x > y)? ((x > z)? x : z): ...

Próximas questões
Com base no mesmo assunto
Q1394228 Programação

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 é

Alternativas

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