Exercícios Resolvidos de Estruturas de seleção: if-else

Ver Teoria

Enunciado

Dado os lados a ,   b e c   de um triângulo, se a = b = c , o triângulo formado com estes segmentos é equilátero. Se a = b ≠ c   ou a ≠ b = c ou b ≠ a = c , o triângulo é chamado isósceles. E se a ≠ b ≠ c o triângulo é chamado escaleno.

Faça um programa que recebe os três lados de um triângulo e classifique o triângulo.

Passo 1

A questão está pedindo pra gente verificar qual é a categoria de um triângulo de acordo com o tamanho dos lados. Pra isso a gente vai ter que testar as condições de cada classificação. E se é pra testar condições, então já sabemos vamos usar um i f - e l s e .

Mas antes disso, temos que receber três valores reais do usuário, que representam os lados do triângulo. Então vamos criar as variáveis a , b e c do tipo f l o a t .

Passo 2

Agora vamos usar o c o u t para informar que o usuário deve inserir o valor de cada lado do triângulo, e com o c i n vamos armazenar cada valor na variável adequada.

Passo 3

Agora vamos para as condições de classificação 😎. A primeira condição i f que vamos construir é para o triângulo equilátero, que deve satisfazer a seguinte condição: a = b = c . Porém no C++ não da pra comparar as três variáveis de uma vez só. O que podemos fazer é repartir essa igualdade da seguinte forma: a = b   E b = c E a = c .

Vamos construir a estrutura da seguinte forma:

  • SE a = b E b = c E a = c ENTÃO O triângulo é equilátero.
  • Transcrevendo para C++ teremos: i f   (   a = = b   & & b = = c & & a = = c   ) . Pelas regras de associatividade e precedência, sabemos que os operadores de igualdade = = serão executados primeiro, e só depois são executadas as operações lógicas E & & .

    Passo 4

    Agora vamos testar se o triângulo é isóscele.

    Importante: a gente só vai testar se o triângulo é isóscele no caso de ele não ser equilátero! A gente vai usar uma condição e l s e   i f , pois caso o triângulo seja equilátero, ele não será testado como isósceles. Assim, só vamos testar triângulos que já sabemos que ao menos um dos lados é diferente.

    Um triângulo é isóscele se só dois dos seus lados forem iguais: a = b ≠ c   ou a ≠ b = c ou b ≠ a = c . Mas como já sabemos que um dos lados é diferentes, podemos verificar se ao menos dois lados são iguais:

    a = b   O U b = c O U a = c .

    Vamos construir a estrutura da seguinte forma:

  • MAS CASO SE a = b OU b = c OU a = c ENTÃO O triângulo é isóscele.

Transcrevendo para C++ teremos: e l s e   i f   (   a = = b   | | b = = c | | a = = c   )

Passo 4

E o último caso é quando todos os lados são diferentes entre si. Porém esse é o último caso possível. Então só precisamos utilizar uma estrutura e l s e e está tudo resolvido:

E prontinho. Com isso finalizamos nosso código.

Resposta