05-14 | Desafio da Classificação dos Triângulos
ATENÇÃO: Essa é apenas uma sugestão de programação. Há inúmeras maneiras de resolver o desafio. Aqui, optei pelo uso de alguns métodos matemáticos presentes no Java que serão explicados após a programação.
import java.util.Scanner;
public class ClassificacaoTriangulo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Digite o lado a: ");
double ladoA = sc.nextDouble();
System.out.print("Digite o lado b: ");
double ladoB = sc.nextDouble();
System.out.print("Digite o lado c: ");
double ladoC = sc.nextDouble();
String classificacao;
if (ladoA <= 0 || ladoB <= 0 || ladoC <= 0) {
classificacao = "Triângulo não válido";
} else if (ladoA + ladoB <= ladoC || ladoA + ladoC <= ladoB || ladoB + ladoC <= ladoA) {
classificacao = "Triângulo não válido";
} else {
if (ladoA == ladoB && ladoB == ladoC) {
classificacao = "Triângulo Equilátero";
} else if (ladoA == ladoB || ladoA == ladoC || ladoB == ladoC) {
classificacao = "Triângulo Isósceles";
} else if (Math.pow(ladoA, 2) + Math.pow(ladoB, 2) == Math.pow(ladoC, 2) ||
Math.pow(ladoA, 2) + Math.pow(ladoC, 2) == Math.pow(ladoB, 2) ||
Math.pow(ladoB, 2) + Math.pow(ladoC, 2) == Math.pow(ladoA, 2)) {
classificacao = "Triângulo Retângulo";
} else {
classificacao = "Triângulo Escaleno";
}
}
System.out.println("Classificação do triângulo: " + classificacao);
}
}
- Validação de entrada: Verifica se os valores dos lados fornecidos são válidos (maiores que zero) e se a soma de quaisquer dois lados é menor que o terceiro, descartando triângulos impossíveis.
- Identificação de tipos de triângulos: A solução utiliza uma série de instruções
if
aninhadas para identificar corretamente os diferentes tipos de triângulos: equilátero, isósceles, retângulo e escaleno. - Uso de operadores matemáticos: O código utiliza o método matemático
Math.pow(base, expoente)
para verificar se os lados formam um triângulo retângulo usando o Teorema de Pitágoras. Opcionalmente poderia ser utilizado também o métodoMath.round()
, que arredonda qualquer valor para o inteiro mais próximo. - Mensagens informativas: Impressão dos tipos de triângulo classificados ou se o triângulo é inválido.