Цель: получить алгоритм, который по длинам сторон a, b, c определяет, является ли треугольник равносторонним.
- Ввод: получить значения длин сторон a, b, c.
- Проверка корректности входных данных:
- Убедиться, что a, b, c положительны (a > 0, b > 0, c > 0). Если нет — это не треугольник.
- Проверить неявное требование: a, b, c — числа (целые или действительные). Если данные нечисловые — ошибка ввода.
- Проверка условий существования треугольника (необходима, если важно убедиться, что заданный набор образует треугольник):
- Проверить неравенства треугольника: a + b > c, a + c > b, b + c > a. Если хотя бы одно не выполняется — это не треугольник, значит и равносторонним быть не может.
- Проверка равенства сторон:
- Если a = b и b = c (то есть все три стороны равны) — треугольник равносторонний.
- Иначе — не равносторонний.
- Учет вычислительной погрешности (для действительных чисел): при работе с числами с плавающей точкой сравнение лучше делать с допуском eps (малое положительное число, например 1e-9). То есть считать a и b равными, если |a - b| < eps, и аналогично для других пар.
Краткая псевдореализация алгоритма:
- Ввести a, b, c.
- Если a <= 0 или b <= 0 или c <= 0 -> вывести "Не треугольник".
- Если не(a + b > c и a + c > b и b + c > a) -> вывести "Не треугольник".
- Если |a - b| < eps и |b - c| < eps -> вывести "Равносторонний треугольник". Иначе -> вывести "Не равносторонний".
Примеры:
- a=5, b=5, c=5: все положительны, неравенства выполняются, a=b=c -> равносторонний.
- a=5, b=5, c=8: неравенства выполняются (5+5>8), но не все три равны -> не равносторонний.
- a=1, b=2, c=3: 1+2=3 (не больше) -> это не треугольник.
- a=1.000000001, b=1.0, c=1.0 с eps=1e-9: |a-b|=1e-9 — на грани; при выбранном eps можно считать равными и получить равносторонний.