Площадь треугольника
(Время: 1 сек. Память: 16 Мб Сложность: 15%)
Решение №1
Данную задачу возможно решить, используя формулу Герона:
Здесь a,b и c – длины сторон треугольника. Для вычисления длин сторон можно использовать формулу для вычисления расстояния между точками с координатами (x1,y1) и (x2,y2):
Таким образом, мы получаем следующий алгоритм решения данной задачи:
read(x1,y1,x2,y2,x3,y3)
c=sqrt(sqr(y1-y2)+sqr(x1-x2))
a=sqrt(sqr(y2-y3)+sqr(x2-x3))
b=sqrt(sqr(y1-y3)+sqr(x1-x3))
p=(a+b+c)/2
s=sqrt(p*(p-a)*(p-b)*(p-c))
write(s)
Решение №2
Существует и более простое решение данной задачи, если использовать менее знакомую, но более практичную формулу для вычисления площади треугольника по координатам его вершин:
В данном случае получаем простое алгоритмическое решение:
read(x1,y1,x2,y2,x3,y3)
write((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2)
Заметим также, что при реализации данной задачи следует использовать вещественные типы, т.к. ответ может быть достаточно большим числом. Поэтому желательно использование больших вещественных типов (extended или double). Например, использование типа float в Си не позволит пройти все тесты.
|