Mif 7. Тип треугольника

Тип треугольника.

Постановка задачи

Даны действительные числа [latex]x[/latex], [latex]y[/latex], [latex]z[/latex], задающие длины сторон некоторого треугольника. Будет ли треугольник остроугольным, тупоугольным или прямоугольным? Какой из трёх случаев самый маловероятный?

Алгоритм решения

По теореме косинусов
[latex]a^2 = b^2 + c^2 — 2 \cdot b \cdot c \cdot \cos\alpha[/latex],
где [latex]a[/latex], [latex]b[/latex], [latex]c[/latex] — стороны треугольника, а [latex]\alpha[/latex] — угол между [latex]a[/latex] и [latex]b[/latex], тогда
[latex]\alpha = \arccos\frac{b^2 + c^2 — a^2}{2 \cdot b \cdot c}[/latex],
[latex]\beta = \arccos\frac{c^2 + a^2 — b^2}{2 \cdot a \cdot c}[/latex],
[latex]\gamma = \arccos\frac{a^2 + b^2 — c^2}{2 \cdot a \cdot b}[/latex],
где [latex]\alpha[/latex], [latex]\beta[/latex], [latex]\gamma[/latex] — углы треугольника.
Если самый большой угол больше [latex]\frac{\pi}{2}[/latex], то треугольник тупоугольный, если самый большой угол равен [latex]\frac{\pi}{2}[/latex], то треугольник прямоугольный, если самый большой угол меньше [latex]\frac{\pi}{2}[/latex], то треугольник остроугольный. Так как треугольник является прямоугольным только в том случае, когда самый большой угол равен [latex]\frac{\pi}{2}[/latex], этот случай является самым маловероятным.

Тесты

Входные данные Выходные данные
[latex]a[/latex] [latex]b[/latex] [latex]c[/latex]
2 2 3 Тупоугольный
3 4 5 Прямоугольный
1 1 1 Остроугольный

Реализация

ideone: ссылка

Related Images:

Ю2.3

Задача: Треугольник задан координатами своих вершин на плоскости:   [latex]A(x_{a}, y_{a})[/latex], [latex]B(x_{b}, y_{b})[/latex], [latex]C(x_{c}, y_{c})[/latex]. Определить, является он прямо-, остро-, или тупоугольным.

Замечание: Не следует отбрасывать экстремальные случаи, когда вершины треугольников совпадают или лежат на одной прямой. Например, треугольник с нулевой стороной обладает свойством прямоугольника и имеет два прямых угла!

Тесты:

[latex]x_{A}[/latex] [latex]y_{A}[/latex] [latex]x_{B}[/latex] [latex]y_{B}[/latex] [latex]x_{C}[/latex] [latex]y_{C}[/latex] Результат комментарий
0 1 0 2 0 3 тупоугольный пройден
1 4 3 2 6 2 тупоугольный пройден
6 2 6 2 6 4 прямоугольный пройден
 2 1 2 3 5 3 прямоугольный пройден
5 5 5 5 5 5 невозможно определить  тип треугольника пройден
 2 1 3 4 4 1 остроугольный пройден
 2 1 1 3 4 4 остроугольный пройден

Ссылка на С++ :  http://ideone.com/LfWkbB

Ссылка на Java: http://ideone.com/yrS444

Код:

 

Решение : 

Для начала проверяем такое условие при котором мы не можем определить тип треугольника, если же оно не выполняется , то треугольник прямоугольный

Если не одно из этих условий не выполняется, то мы ищем стороны треугольника и по теореме косинусов находим косинус угла. Далее выполняем три таких условия, при которых определяется какой треугольник : остро- тупо- или прямоугольный

 

 

Related Images: