Определить длины биссектрис треугольника, заданного координатами вершин - Pascal
Формулировка задачи:
Комбинированные типы данных.
Напишите программу, которая определяет длины биссектрис треугольника, заданного координатами его вершин.
Заранее спасибо)
Решение задачи: «Определить длины биссектрис треугольника, заданного координатами вершин»
textual
Листинг программы
type point=record
x,y:real;
end;
function dlina(a,b:point):real;
begin
dlina:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y))
end;
function biss(a,b,c:point):real;
var ab,bc,ac:real;
begin
ab:=dlina(a,b);
bc:=dlina(b,c);
ac:=dlina(a,c);
biss:=sqrt(ab*bc*(ab+bc+ac)*(ab+bc-ac))/(ab+bc);
end;
var a,b,c:point;
begin
writeln('Введите координаты вершин треугольника');
readln(a.x,a.y,b.x,b.y,c.x,c.y);
writeln('Длины биссектрис: ',biss(a,b,c):0:2,' ',biss(b,c,a):0:2,' ',biss(c,a,b):0:2);
end.
Объяснение кода листинга программы
- Объявляется пользовательский тип
pointдля хранения координат точек:type point=record x,y:real; end; - Объявляется функция
dlinaдля вычисления расстояния между двумя точками по формуле расстояния между двумя точками:function dlina(a,b:point):real; begin dlina:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y)) end; - Объявляется функция
bissдля вычисления длины биссектрисы треугольника:function biss(a,b,c:point):real; var ab,bc,ac:real; begin ab:=dlina(a,b); bc:=dlina(b,c); ac:=dlina(a,c); biss:=sqrt(ab*bc*(ab+bc+ac)*(ab+bc-ac))/(ab+bc); end; - Определение трех переменных типа
point:var a, b, c:point; - Пользователю предлагается ввести координаты вершин треугольника:
writeln('Введите координаты вершин треугольника'); readln(a.x,a.y,b.x,b.y,c.x,c.y); - Вычисляются длины биссектрис треугольника с использованием функции
biss:writeln('Длины биссектрис: ',biss(a,b,c):0:2,' ',biss(b,c,a):0:2,' ',biss(c,a,b):0:2); - Программа завершается. Этот код использует структуры данных и функции для вычисления длин биссектрис треугольника по его вершинам, вводимым пользователем.