Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Estruturas Condicionais: Identificador de Tipo de Triângulo

Oi pessoal!
Segue a minha resolução para identificarmos o tipo de triângulo. Além da verificação de a soma de dois lados ser maior que o terceiro, adicionei uma verificação para não permitir números negativos, e adicionei a condição de ser um float.

print("--- Identificação de Tipo de Triângulo ---\n")
l1 = float(input("Digite o primeiro lado do triângulo: "))
l2 = float(input("Digite o segundo lado do triângulo: "))
l3 = float(input("Digite o terceiro lado do triângulo: "))

if l1 <= 0 or l2 <= 0 or l3 <= 0:
    print("Lados são negativos, não será possível prosseguir\n")

# Existe a regra de que a soma de dois lados deve ser sempre maior que o terceiro lado, isso pode ser resolvido com:
elif l1 + l2 <= l3 or l1 + l3 <= l2 or l2 + l3 <= l1:
    print("O triângulo não obedece as regras de existência do mesmo, a soma de dois lados não pode ser menor do que o terceiro lado.")

else:
    print("Condições verificadas, seguindo com identificação...\n")
    if l1 == l2 == l3:
        print("Triângulo Equilátero (três lados iguais)")
    elif l1 == l2 or l1 == l3 or l2 == l3:
        print("Triângulo Isósceles (quaisquer dois lados iguais)")
    else:
        print("Triângulo Escaleno (três lados diferentes)")
1 resposta
solução!

Olá, Gustavo! Tudo bem?

Sua resolução para o projeto de Identificação de Tipo de Triângulo está excelente e demonstra uma preocupação muito importante em programação: a validação de dados. Ao antecipar cenários de erro antes de processar a lógica principal, você torna seu código muito mais robusto.

Aqui estão os pontos de destaque do seu trabalho:

1. Tratamento de Erros e Exceções

  • Validação de Números Negativos: Adicionar a verificação l1 <= 0 or l2 <= 0 or l3 <= 0 é fundamental. Em geometria, lados nulos ou negativos não existem, e tratar isso logo no início evita resultados logicamente impossíveis.
  • Conversão para Float: O uso do float(input()) permite que o programa aceite medidas precisas (como 5.5 cm), aumentando a utilidade da ferramenta para casos reais.

2. Lógica de Existência de um Triângulo

  • Sua condição elif l1 + l2 <= l3 or l1 + l3 <= l2 or l2 + l3 <= l1 aplica corretamente a desigualdade triangular. Frequentemente, iniciantes esquecem que nem toda combinação de números forma um triângulo, e sua implementação resolveu isso com maestria.

3. Classificação com Estruturas Aninhadas

  • O uso de um else contendo um novo bloco de if/elif/else (condicionais aninhadas) foi uma ótima escolha. Isso garante que a classificação só ocorra se os dados forem válidos, economizando processamento e mantendo a saída limpa para o usuário.

Dica de Experiência do Usuário (UX)

Uma pequena sugestão para seus próximos projetos é o uso do método .strip() ao receber entradas de texto, ou até mesmo um tratamento de erro caso o usuário digite uma letra em vez de um número (o que causaria o erro ValueError).

Desafio para você: Como você faria para que o programa perguntasse os valores novamente caso o usuário digitasse um número negativo, em vez de apenas encerrar o programa?

Parabéns pelo projeto e pela organização do código! Você está construindo uma base lógica muito sólida.