Найти наибольшую высоту треугольника, если известны координаты его вершин - PascalABC.NET
Формулировка задачи:
Найти наибольшую высоту треугольника, если известны координаты его вершин
Решение задачи: «Найти наибольшую высоту треугольника, если известны координаты его вершин»
textual
Листинг программы
type
tPoint = record
x, y : Real;
end;
function ReadPoint(msg : String := '') : tPoint;
begin
if msg.Length > 0 then WriteLn(msg);
Result.x := ReadLnReal('x ='); Result.y := ReadLnReal('y =');
end;
function l(a, b : tPoint) : Real := Sqrt((a.x-b.x)*(a.x-b.x) + (a.y-b.y)*(a.y-b.y));
begin
var a := ReadPoint('Введите координаты первой точки:');
var b := ReadPoint('Введите координаты второй точки:');
var c := ReadPoint('Введите координаты третьей точки:');
var s := abs((b.x-a.x)*(c.y-a.y) - (c.x-a.x)*(a.y-b.y));
var h := s / l(a, b); h := max(s / l(a, c), h); h := max(s / l(b, c), h);
WriteLn('Наибольшая высота треугольника = ', h);
end.
Объяснение кода листинга программы
- Объявлена структура tPoint для представления точки в пространстве с координатами (x, y).
- Функция ReadPoint() используется для ввода координат точек. Если передано сообщение, оно выводится на экран перед запросом ввода координат.
- Функция l(a, b) вычисляет расстояние между двумя точками a и b в пространстве.
- В функции main() вводятся координаты трех точек треугольника с помощью функции ReadPoint().
- Вычисляется площадь треугольника по формуле Герона, используя функции l(a, b) и l(a, c).
- Вычисляется высота треугольника как максимальное значение из двух возможных значений высоты.
- Выводится наибольшая высота треугольника на экран.