Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- vertex = record// Координаты вершины
- x: real;
- y: real;
- end;
- var
- a, b, c: vertex;// Координаты вершин
- ab, bc, ca: real;// Длины сторон
- ha, hb, hc: real;// Высоты
- ma, mb, mc: real;// Медианы
- // Функция определеиния длины отрезка по координатам, входные параметры - координаты
- function SegmentLength(a, b: vertex): real:=Sqrt(Sqr(a.y - b.y) + Sqr(a.x - b.x));
- // Функция проверяющая существование треугольника с заданными сторонами
- function IsExiste(a, b, c: real): boolean:=((b + c - a) > 0) and ((a + c - b) > 0) and ((a + b - c) > 0);
- // Формула Герона
- function Heron(a, b, c: real): real:=Sqrt((0.5 * (a + b + c)) * ((0.5 * (a + b + c)) - a) * ((0.5 * (a + b + c)) - b) * ((0.5 * (a + b + c)) - c));
- // Функция вычисления медианы
- function Median(a, b, c: real): real:=Sqrt((2 * Sqr(a) + 2 * Sqr(b) - Sqr(c)) / 4);
- begin
- // Ввод координат вержин треугольника
- Write('Введите координаты вершины A треугольника ABC: ');ReadLn(a.x, a.y);
- Write('Введите координаты вершины B треугольника ABC: ');ReadLn(b.x, b.y);
- Write('Введите координаты вершины C треугольника ABC: ');ReadLn(c.x, c.y);
- // Вычисляем длины сторон с помощью функции
- ab := SegmentLength(a, b);
- bc := SegmentLength(b, c);
- ca := SegmentLength(c, a);
- // Проверяем возможность существования такого треугольника
- if IsExiste(ab, bc, ca) then
- begin
- // Выведим длины сторон треугольника ABC
- WriteLn('Стороны треугольника ABC:');
- WriteLn(' -> сторона AB имеет длину: ', #9, ab:0:2);
- WriteLn(' -> сторона BC имеет длину: ', #9, bc:0:2);
- WriteLn(' -> сторона CA имеет длину: ', #9, ca:0:2);
- // Вычислим высоты
- ha := (2 * Heron(ab, bc, ca)) / bc;
- hb := (2 * Heron(ab, bc, ca)) / ca;
- hc := (2 * Heron(ab, bc, ca)) / ab;
- WriteLn('Высоты треугольника ABC:');
- WriteLn(' -> высота опущенная из вершины A имеет длину: ', #9, ha:5:2);
- WriteLn(' -> высота опущенная из вершины B имеет длину: ', #9, hb:5:2);
- WriteLn(' -> высота опущенная из вершины C имеет длину: ', #9, hc:5:2);
- // Вычислим медианы
- ma := Median(ab, ca, bc);
- mb := Median(bc, ab, ca);
- mc := Median(bc, ca, ab);
- WriteLn('Медианы треугольника ABC:');
- WriteLn(' -> медиана вершины A имеет длину: ', #9, ma:0:2);
- WriteLn(' -> медиана вершины B имеет длину: ', #9, mb:0:2);
- WriteLn(' -> медиана вершины C имеет длину: ', #9, mc:0:2);
- end
- else WriteLn('Треугольника с такими сторонами не существует');
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement