Напишите функцию,вычисляющую длину отрезка по координатам его концов. с этой функции напишите программу на pascal abc,вычисляющую периметр треугольника по координатам его вершин

serovau85 serovau85    2   18.09.2019 21:00    10

Ответы
Alinwhite Alinwhite  08.10.2020 00:55
//PascalABC.NET
//Версия 3.3, сборка 1634
begin
var f: (real,real,real,real)->real:=(x1,y1,x2,y2)->sqrt((x2-x1)**2+(y2-y1)**2);
var (x1,y1):=ReadReal2('Введите координаты 1 вершины через пробел');
var (x2,y2):=ReadReal2('Введите координаты 2 вершины через пробел');
var (x3,y3):=ReadReal2('Введите координаты 3 вершины через пробел');
write('Периметр: ',f(x1,y1,x2,y2)+f(x2,y2,x3,y3)+f(x1,y1,x3,y3));
end.
ПОКАЗАТЬ ОТВЕТЫ
zukara95 zukara95  08.10.2020 00:55
Function leng(var x,y,x1,y1: real): real;
begin
  leng:=sqrt(sqr(x-x1)+sqr(y-y1));
end;

// основная программа
var x1,y1,x2,y2,x3,y3,p: real;
begin
  write('координаты вершин  x1 y1 x2 y2 x3 y3 через пробел:  ');
  readln(x1,y1,x2,y2,x3,y3);
  if (leng(x2,y2,x1,y1) + leng(x3,y3,x2,y2) = leng(x3,y3,x1,y1)) or
     (leng(x2,y2,x1,y1) + leng(x3,y3,x1,y1) = leng(x3,y3,x2,y2)) or
     (leng(x3,y3,x2,y2) + leng(x3,y3,x1,y1) = leng(x2,y2,x1,y1)) then
  writeln('точки лежат на одной прямой')
  else 
  begin
    p:=leng(x2,y2,x1,y1)+leng(x3,y3,x2,y2)+leng(x3,y3,x1,y1);
    writeln('периметр: ',p:7:3);
  end;
end.

координаты вершин  x1 y1 x2 y2 x3 y3 через пробел:  3 4 7 2 6 5
периметр:  10.797

координаты вершин  x1 y1 x2 y2 x3 y3 через пробел:  1 2 3 4 5 6
точки лежат на одной прямой
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика