ML 24

Условие задачи :

Треугольник задан длинами сторон. Найти радиус вписанной r и описанной R окружностей.

Тесты :

a b c r R
3 4 5 1 2.5
7.5 10 13 2.450117 6.5236096
1 3 4 0 inf
1 1 3 Не существует! Не существует!

Код программы :

Алгоритм :

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

Если треугольник существует, проводим следующие вычисления (порядок сохранен) :

  1. Вычисляем полупериметр p треугольника: p\frac{a + b + c}{2}
  2. Находим площадь S по формуле Герона: S = \sqrt{p(p-a)(p-b)(p-c)}
  3. Вычисляем радиус r вписанной окружности по формуле: r\frac{S}{p}
  4. Вычисляем радиус R описанной окружности по формуле: R\frac{abc}{4S}

Работающая версия программы на Ideone.com :
Ideone.com

One thought on “ML 24

  1. Я зачёл, но Вы написали консольную программу, которая ведёт диалог (довольно бессмысленный) с пользователем. Такие программы практически никогда не используются. Может только в заданиях для школьников конца прошлого века. Лучше этого избегать, если нет прямого задания. И зачем проверять получится ли треугольник, если в задании сказано «Треугольник задан»? Представьте, что так начнёт работать функция извлечения квадратного корня, которую Вы используете.

    Понимаю, что вопрос спорный. Поэтому и зачёл.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *