ML 24

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

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

Тесты :

[latex]a[/latex] [latex]b[/latex] [latex]c[/latex] [latex]r[/latex] [latex]R[/latex]
3 4 5 1 2.5
7.5 10 13 2.45012 6.52361
1 3 4 0 inf
1 1 3 Не существует! Не существует!

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

Алгоритм :

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

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

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

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

Ideone.com

Почитать про треугольник можно здесь :

Треугольник — Википедия

5 thoughts on “ML 24

  1. — Если бы Вы не решили зачем-то перепроверять условие задачи, то работа уже была бы сделана. Но теперь нужно исправить ошибку — правильно записать неравенство треугольника.
    — Добавьте ключевые слова на языке публикации.

    • Спасибо, теги исправил. Не могу понять, где ошибка в неравенстве треугольника? Протестировал еще на Ideaone, работает исправно. Заменить знаки > на >= ? Но в этом не смысла, в этом случае будет 0 и бесконечность соответственно?

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