Dado os lados e de um triângulo, se , o triângulo formado com estes segmentos é equilátero. Se ou ou , o triângulo é chamado isósceles. E se 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 .
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 , e do tipo .
Passo 2
Agora vamos usar o para informar que o usuário deve inserir o valor de cada lado do triângulo, e com o vamos armazenar cada valor na variável adequada.
Passo 3
Agora vamos para as condições de classificação 😎. A primeira condição que vamos construir é para o triângulo equilátero, que deve satisfazer a seguinte condição: . 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: .
Vamos construir a estrutura da seguinte forma:
- SE E E ENTÃO O triângulo é equilátero.
- MAS CASO SE OU OU ENTÃO O triângulo é isóscele.
Transcrevendo para C++ teremos: . 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 , 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: ou ou . Mas como já sabemos que um dos lados é diferentes, podemos verificar se ao menos dois lados são iguais:
.
Vamos construir a estrutura da seguinte forma:
Transcrevendo para C++ teremos:
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 está tudo resolvido:
E prontinho. Com isso finalizamos nosso código.