Enviar um café pro programador

Curso de Python - Triângulo Equilatero, Isósceles e Escaleno

"
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')



16 comentários:

  1. lado1 = int(input("Digite : "))
    lado2 = int(input("Digite : "))
    lado3 = int(input("Digite : "))

    if lado1 == lado2 and lado3 < lado1:
    print("É um Triângulo Isósceles")
    print("Existe dois lados iguais e um menor.")
    elif lado2 == lado3 and lado1 < lado2:
    print("É um Triângulo Isósceles")
    print("Existe dois lados iguais e um menor.")
    elif lado3 == lado1 and lado2 < lado1:
    print("É um Triângulo Isósceles")
    print("Existe dois lados iguais e um menor.")
    elif lado1 == lado2 and lado3:
    print("É um triângulo Equilátero")
    print("Todos os lados são iguais")
    else:
    print("É um triangulo Escaleno")
    print("Todos os lados são diferentes")

    ResponderExcluir
  2. r1 = float(input('\033[1;31mPrimeira reta:\033[m '))
    r2 = float(input('\033[1;31mSegunda reta:\033[m '))
    r3 = float(input('\033[1;31mTerceira reta:\033[m '))
    if r1 < r2 + r3 and r2 < r1 + r3 and r3 < r1 + r2:
    print('Os segmentos acima formam um triângulo ',end='')
    if r1 == r2 == r3:
    print('EQUILÁTERO')
    elif r1 != r2 != r3 != r1:
    print('ESCALENO')
    else:
    print('ISÓSCELES')
    else:
    print('Os segmentos acima não podem formar um triângulo.')

    ResponderExcluir
  3. a = float(input('Digite o primeiro lado: '))
    b = float(input('Digite o segundo lado: '))
    c = float(input('Digite o segundo lado: '))
    positivo = True
    if a <= 0 or b <= 0 or c <= 0:
    positivo = False
    cond_exist = False
    if positivo:
    if abs(b - c) <= a <= b + c:
    if abs(c - a) <= b <= c + a:
    if abs(a - b) <= c <= a + b:
    cond_exist = True
    if not positivo:
    print('Digite apenas valores positivos!')
    if positivo and not cond_exist:
    print('Os lados informados não podem formar um triângulo!')
    triangulo_correto = False
    equilatero = False
    isosceles = False
    escaleno = False
    if positivo and cond_exist:
    triangulo_correto = True
    if triangulo_correto:
    if a == b == c:
    equilatero = True
    elif a == b != c or a == c != b or b == c != a:
    isosceles = True
    elif a != b != c:
    escaleno = True
    triangulo = 'Equilátero'
    if triangulo_correto:
    if isosceles:
    triangulo = 'Isósceles'
    elif escaleno:
    triangulo = 'Escaleno'
    if triangulo_correto:
    print('\nOs lados podem formar um triângulo.')
    print('O triângulo é: ' + triangulo + '.')

    ResponderExcluir
  4. Minha lógica! Acho que sempre utilizo muito codigo, não? :(

    lado1=float(input("Informe o primeiro lado: "))
    lado2=float(input("Informe o segundo lado: "))
    lado3=float(input("Informe o terceiro lado: "))

    if lado1 + lado2 < lado3 or lado1 + lado3 < lado2 or lado2 + lado3 < lado2:
    print("Não é um triângulo!")
    elif lado1 == lado2 and lado1 == lado3:
    print("Este triangulo é Equilátero!")
    elif lado1 == lado2 or lado1 == lado3:
    print("Este triangulo é Isósceles")
    else:
    print("Este triangulo é Escaleno")

    ResponderExcluir
  5. print('-=-'*20)
    print ('Analisador de triangulo')
    print('-=-'*20)
    a = int(input('digite o primeiro valor para a primeira reta: '))
    b = int(input('digite o segundo valor para a segunda reta: '))
    c = int(input('digite o terceiro valor para a terceira reta: '))

    if a > (b+c) or b > (a+c) or c > (a+b):
    print ('Não é um triangulo')
    elif (a==b) and (a==c):
    print('Equilatero')
    elif (a==b) or (a==c) or (b==c):
    print('Isoceles ')
    else:
    print('escaleno')

    ResponderExcluir
  6. O meu código é assim e não está dando certo por algum motivo que desconheço, estou usando python 3.10.

    a = float(input("\nValor A:\t"))
    b = float(input("Valor B:\t"))
    c = float(input("Valor C:\t"))

    if (a + b > c) or (a + c > b) or (b + c > a):
    if a == b == c:
    print("Os valores podem ser dos lados de um triângulo equilátero")
    elif a == b or a == c or b == c:
    print("Os valores podem ser dos lados de um triângulo isósceles")
    elif a != b != c != a:
    print("Os valores podem ser dos lados de um triângulo escaleno")
    else:
    print("Os valores não podem ser dos lados de um triângulo")

    ResponderExcluir
  7. la = float(input('Digite o valor do lado A do triângulo: '))
    lb = float(input('Digite o valor do lado B do triângulo: '))
    lc = float(input('Digite o valor do lado C do triângulo: '))
    if la + lb <= lc or la + lc <= lb or lb + lc <= la:
    print('Não é um triângulo')
    else:
    print('Forma geométrica: triângulo')
    if la == lb == lc:
    tipo ='equilátero'
    elif la != lb != lc:
    tipo = 'escaleno'
    else:
    tipo = 'isósceles'
    print('Tipo de triângulo: {}'.format(tipo))

    ResponderExcluir
  8. r1 = float(input('Valor da primeira reta: '))
    r2 = float(input('Valor da segunda reta: '))
    r3 = float(input('Valor da terceira reta: '))

    if r1 < r2 + r3 and r2 < r1 + r3 and r3 < r1 + r2:
    if r1 == r2 and r2 == r3:
    print('Triângulo equilátero. Todos os lados são iguais.')
    elif r1 == r2 or r2 == r3 or r1 == r3:
    print('Triângulo isósceles. Dois lados iguais.')
    elif r1 != r2 and r1 != r3 and r2 != r3:
    print('Triângulo escaleno. Todos os lados são diferentes.')
    else:
    print('Estes segmentos não podem formar um triângulo!')

    ResponderExcluir
  9. Porque as varaiaveis estão declradas como float?

    ResponderExcluir
  10. #Exercício do triângulo
    #r = segmento do triangulo
    print('-='* 20,'\nAnalisando triângulos\n','-='* 20, sep='')

    try:
    r1 = int(input('Primeiro segmento: '))
    r2 = int(input('Segundo segmento: '))
    r3 = int(input('Terceiro segmento: '))

    if r1 <= 0 or r2 <= 0 or r3 <= 0:
    sys.exit()

    if r1 + r2 > r3 and r1 + r3 > r2 and r2 + r3 > r1:
    print('Os segmentos acima formam um triângulo',end='')
    if r1 == r2 == r3:
    print(' equilátero.')
    elif r2 != r3 != r1:
    print(' escaleno.')
    else:
    print(' isósceles.')
    else:
    print('Os segmentos acimas NÃO podem formar um triângulo.')
    except:
    print('Houve um erro. Digite as medidas em caracteres decimais inteiros positivos.')

    ResponderExcluir
  11. Como é esse código usando linguagem C#??

    ResponderExcluir
  12. 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')

    ESSE CODIGO TA ERRADO VIU, NÃO É OR!

    ResponderExcluir
  13. a = float(input('Digite o valor do primeiro lado: '))
    b = float(input('Valor do segundo lado: '))
    c = float(input('Valor terceiro lado: '))

    if (a + b < c ) or (b + c < a) or (c + a < b):
    print('Não pode ser um triângulo')

    elif (a == b) and (a == c) and (b == c):
    print('Esse é um triângulo EQUILÁTERO')

    elif (a == b and c < a) or (b == c and a < b) or (c == a and b < c):
    print('Esse é um triângulo ISÓCELES')

    else:
    print('Esse é um triângulo ESCALENO')

    ResponderExcluir