Faça um Programa que peça os 3 lados de um triângulo. O programa deverá informar se os valores podem ser um triângulo. Indique, caso os lados formem um triângulo, se o mesmo é: equilátero, isósceles ou escaleno.
- Sabemos que:
- Três lados formam um triângulo quando a soma de quaisquer dois lados for maior que o terceiro;
- Triângulo Equilátero: três lados iguais;
- Triângulo Isósceles: quaisquer dois lados iguais;
- Triângulo Escaleno: três lados diferentes;
Código comentado - Curso de Python
Vamos receber os três lados do triângulo e armazenar nas variáveis a, b e c.O primeiro teste que fazemos é para saber se a soma de quaisquer dois lados é menor que o terceiro lado. Se for, esses três valores não formam um triângulo e acabou o programa aí, precisa nem testar se é equilátero, isósceles e escaleno.
Se a soma de dois lados quaisquer for maior que o terceiro lado, ok, é triângulo e vamos pro elif.
Agora, vamos testar se é equilátero, para isso comparamos o lado a com o b e depois o lado a com o lado c.
Note que não precisamos comparar os lados b e c, pois se a é igual a b E TAMBÉM (operador lógico and) a é igual a c, então o lado b vai ser automaticamente igual ao lado c.
Se forem todos iguais, diz que é equilátero e acabou aí.
Se não for equilátero, cai no próximo elif.
Lá vamos testar se ele tem dois lados iguais: a==b ou a==c ou b==c (notem o OU, que é o operador lógico or).
Se alguma dessas comparações retornar verdadeiro, o triângulo é isósceles e acaba aí.
Porém, se não for isósceles, cai no else final.
Pois se não é equilátero nem isósceles, e é um triângulo, tem de ser escaleno.
a = float(input('Primeiro lado: ')) b = float(input('Segundo lado: ')) c = float(input('Terceiro lado: ')) # Testando se é triângulo if (a + b < c) or (a + c < b) or (b + c < a): print('Nao é um triangulo') elif (a == b) and (a == c) : print('Equilatero') elif (a==b) or (a==c) or (b==c): print('Isósceles') else: print('Escaleno')
Demais!
ResponderExcluir