Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3549094
А
Аноним
21 января 2026 06:20 · публичный вопрос
А
Аноним

Известны длины сторон треугольника a,b,c.Напишите программу ,вычисляющую площадь этого треугольника

Ответ нейросети
21 января 2026 06:20

Задача понятна. Чтобы вычислить площадь треугольника по длинам сторон a, b, c, используется формула Герона.

План решения:

  • Проверяем условие существования треугольника: a + b > c, a + c > b и b + c > a. Если нарушение – задача некорректная.
  • Вычисляем полупериметр s = (a + b + c) / 2.
  • По формуле Герона: площадь S = sqrt( s (s - a) (s - b) (s - c) ).
  • В случае небольшого отрицательного значения под корнем из-за погрешности округления приводим его к нулю.

Ниже готовый пример кода на Python и пояснения.

Пример кода (Python):

import math

def area_of_triangle(a, b, c):
    # Проверка условий существования треугольника
    if a + b <= c or a + c <= b or b + c <= a:
        raise ValueError("Длины сторон не образуют треугольник")

    s = (a + b + c) / 2.0
    # Формула Герона
    area_sq = s * (s - a) * (s - b) * (s - c)

    # Защита от небольшого отрицательного значения из-за погрешностей вычислений
    if area_sq < 0:
        area_sq = 0.0

    return math.sqrt(area_sq)

def main():
    # Пример чтения входа: три числа (a, b, c)
    # Можно заменить на input() или другой способ получения данных
    try:
        a, b, c = map(float, input("Введите стороны a, b, c через пробел: ").split())
        area = area_of_triangle(a, b, c)
        print(area)  # можно форматировать: print(f"{area:.3f}")
    except ValueError as e:
        print("Ошибка:", e)

if __name__ == "__main__":
    main()

Пояснения к коду:

  • Сначала проверяем existance условия треугольника. Если нарушено, программа сообщает об ошибке.
  • Затем вычисляем s и площадь по формуле Герона.
  • area_sq может оказаться чуть отрицательным из-за погрешности вычислений; приводим к 0 при необходимости.
  • Вывод можно отформатировать по желанию, например: print(f"{area:.3f}") для трех знаков после запятой.

Пример:

  • Ввод: 3 4 5
  • Вывод: 6.0 (или 6.000 при форматировании до 3 знаков после запятой)

Если нужно, могу адаптировать код под другой язык программирования (C++, Java, JavaScript) или под конкретный формат ввода/вывода.