Размещено 3 года назад по предмету
Информатика
от fantom5431
Площади треугольников
Даны координаты вершин двух треугольников, требуется определить их площади и вывести номер треугольника, площадь которого больше.
Входные данные
В единственной строке задается 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(), принимающую координаты трех вершин треугольника и возвращающую его площадь.