Размещено 3 года назад по предмету
Информатика
от salimamelikli
Площади треугольников
Даны координаты вершин двух треугольников, требуется определить их площади и вывести номер треугольника, площадь которого больше.
Входные данные
В единственной строке задается 12
чисел через пробел — координаты шести точек: Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,Ex,Ey,Fx,Fy, где точки A,B,C — вершины первого треугольника, а точки D,E,F — вершины второго.
Координаты всех точек являются вещественными числами из диапазона от −1000 до 1000, заданными с тремя знаками после запятой.
Выходные данные
Выведите «1» (без кавычек), если площадь первого треугольника больше либо равна площади второго, иначе выведите «2» (без кавычек).
Примечание
Используйте спецификатор «%f» для ввода вещественных чисел.
Гарантируется, что площади каждого из треугольников больше нуля.
Сравнивать вещественные числа требуется с погрешностью 0.001, а это значит: число A будет равно числу B с точностью до 0.001, когда abs(A−B)≤0.001, где abs(A−B) возвращает абсолютное значение (A−B), то есть max(A,B)−min(A,B)
Площадь треугольника по координатам его вершин можно найти следующим образом: S=|(Bx−Ax)⋅(Ay+By)+(Cx−Bx)⋅(Cy+By)+(Ax−Cx)⋅(Ay+Cy)|/2
Попробуйте реализовать функцию getArea(), принимающую координаты трех вершин треугольника и возвращающую его площадь.