
- •Лабораторная работа №6 Использование структур на примере решения задач аналитической геометрии
- •Пример выполнения лабораторной работы
- •1. Математическая постановка задачи.
- •2. Описание методов решения.
- •3. Геометрическое решение.
- •4. Анализ структур данных, выбранных для реализации алгоритма.
- •5. Постановка задачи для алгоритма.
- •Теоретический материал по теме «Аналитическая геометрия»
Лабораторная работа №6 Использование структур на примере решения задач аналитической геометрии
Цель работы:
Получить навыки выбора и обоснования выбора структур данных при написании программ на примере решения задач аналитической геометрии.
Получить навыки работы со структурами.
Задание:
Согласно заданному варианту описать методы решения задачи.
На основе описанных методов разработать математическую модель.
Привести обоснование выбора структур данных, использованных при разработке программы.
Разработать алгоритм решения задачи и закодировать его на языке программирования.
Содержание отчета:
Математическая постановка задачи.
Описание и анализ методов решения (если приведено более одного метода).
Анализ структур данных, выбранных для реализации алгоритма.
Постановка задачи (описание входных, выходных, дополнительных данных, ограничения на входные данные).
Алгоритм.
Листинг программы
Тестовые примеры (несколько вариантов исходных данных и результаты работы программы для указанных данных).
Пример выполнения лабораторной работы
Формулировка задачи:
На плоскости задано множество точек. Подсчитать количество остроугольных треугольников, которые можно построить на этом множестве.
1. Математическая постановка задачи.
Точка на плоскости задается парой координат (х,у).
Треугольником является плоская фигура, состоящая из отрезков, соединяющих три точки на плоскости, при условии, что эти точки не лежат на одной прямой.
Остроугольным называется треугольник, у которого каждый из углов при вершине треугольника не превышает 90.
Обозначим через a, b, c стороны треугольника, построенного по произвольным трем точкам множества; А, В, С – углы треугольника при соответствующих сторонах (см. рис.1); р – полупериметр треугольника.
2. Описание методов решения.
Решить данную задачу можно несколькими способами
а) используя теорему косинусов:
;
;
;
находим значения углов через функцию arccos;
б) используя формулы половинных углов:
пример для угла А:
, либо
,
либо
,
находим значение половинного угла через соответствующую обратную функцию и умножаем полученное значение на 2.
Углы рассчитаем по формулам:
;
;
,
где р – полупериметр текущего треугольника со сторонами, длины которых равны а, b и c.
.
Длины сторон вычисляются по формулам:
;
;
,
где
-
координаты текущей тройки точек, по
которым строится треугольник, причем
точки не лежат на одной прямой.
Уравнение прямой, проходящей через две
точки с координатами
:
,
или, по свойству пропорции:
.
Чтобы определить, лежит ли третья точка
на
прямой, необходимо подставить ее
координаты в уравнение:
.
При переборе точек множества необходимо избегать дублирования комбинаций трех точек, поэтому индексы должны изменяться следующим образом:
3. Геометрическое решение.
Вариант задачи для множества из четырех точек представлен на рис. 2.
Возможные комбинации точек и решения:
{(х1, у1), (х2, у2), (х3, у3)} – точки лежат на одной прямой и не образуют треугольник.
{(х1, у1), (х2, у2), (х4, у4)} – точки образуют остроугольный треугольник.
{(х1, у1), (х3, у3), (х4, у4)} – точки образуют тупоугольный треугольник.
{(х2, у2), (х3, у3), (х4, у4)} – точки образуют тупоугольный треугольник.
Итого: количество остроугольных треугольников, которые можно построить на данном множестве – 1.