Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Площадь треугольника

(Время: 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(abs((x1-x2)*(y3-y2)-(y1-y2)*(x3-x2))/2)

Заметим также, что при реализации данной задачи следует использовать вещественные типы, т.к. ответ может быть достаточно большим числом. Поэтому желательно использование больших вещественных типов (extended или double). Например, использование типа float в Си не позволит пройти все тесты.

[Обсуждение] [Все попытки] [Задача]


Красноярский краевой Дворец пионеров, (c)2006 - 2026, ИНН 246305493507, E-mail: admin@acmp.ru



Обучение с трудоустройством удаленно курсы с трудоустройством