ML23

Условие

Найти длины биссектрис [latex]a_1[/latex], [latex]b_1[/latex], [latex]c_1[/latex] треугольника, если известны длины противоположных сторон [latex]a[/latex], [latex]b[/latex], [latex]c[/latex].

Тестирование

Входные данные Выходные данные
1 6, 7, 9 7.35803, 6.49923, 4.67652
2 3.5, 4.5, 5.5 4.66027, 3.79967, 2.88195
3 100000, 100000, 100000 86602.5, 86602.5, 86602.5
4 1, 1.118034, 1.118034 1, 0.898056, 0.898056

Код

Решение

Для вычисления длины биссектрисы через три стороны произвольного треугольника воспользуемся формулой [latex]l_c = \frac{\sqrt{ab(a+b+c)(a+b-c)}}{a+b}[/latex], где:

  • [latex]l_c[/latex] — длина биссектрисы, проведенной к стороне [latex]c[/latex];
  • [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] — стороны треугольника.

Формула достаточно громоздкая, а так как использовать мы ее будем трижды — для вычисления длины каждой из биссектрис, — имеет смысл написать функцию, которая бы получала длины трех сторон треугольника и возвращала длину биссектрисы, проведенной к первой из указанных сторон:

Можно заметить, что сумма [latex]a+b[/latex] встречается в формуле три раза. Для лучшей читаемости и компактности кода заменим a + b  на s :

Наконец, в главной функции после получения длин сторон треугольника остается вывести длины самих биссектрис. Для этого используем вышеописанную функцию getL , каждый раз меняя первый параметр (при этом порядок двух других не имеет значения):

Ссылки

Код программы на Ideone.com;

Формулы длины биссектрис в треугольнике;

Список задач на линейные вычисления.

Молоканов Юрий
Молоканов Юрий

Latest posts by Молоканов Юрий (see all)

One thought on “ML23

  1. Зачтено.
    Есть несколько моментов на которые следует обратить внимание. А может и доделать.
    — Если Вы не выводите формулу сами, то нужно дать ссылку на то место, где её выводят.
    — Желательно определить порядок в котором выводятся результаты. Например, по возрастанию значений или в порядке следования сторон противолежащих углов.

Добавить комментарий