Даны три натуральных числа. Разработайте, отладьте и протестируйте программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний). Для проверки правильности программы используйте тест:
Стороны a b c |
Выходные данные |
|---|---|
| 1 2 1 | Не существует |
| 2 2 2 | Равносторонний |
| 20 20 30 | Равнобедренный |
| 3 4 5 | Разносторонний |
В качестве чертежа существующего треугольника возьмём проверочный случай со сторонами
По неравенству треугольника каждая сторона должна быть меньше суммы двух других. Равенство недостаточно: при
a, b, c = map(int, input('Введите три стороны: ').split())
if a + b <= c or a + c <= b or b + c <= a:
print('Не существует')
elif a == b == c:
print('Равносторонний')
elif a == b or a == c or b == c:
print('Равнобедренный')
else:
print('Разносторонний')
В первой ветви достаточно одного нарушения неравенства, поэтому условия соединены or. Если нарушений нет, три равные стороны дают равносторонний треугольник. Если равна хотя бы одна пара, но не все три стороны, треугольник равнобедренный. В остальных случаях стороны попарно различны.
| Стороны | Проверка | Вывод |
|---|---|---|
| Не существует | ||
| Равносторонний | ||
| Равнобедренный | ||
| Разносторонний |
Выводы совпадают с четырьмя проверочными примерами.
