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

0 голосов
282 просмотров

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


Информатика (135 баллов) | 282 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

//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.

(149k баллов)
0 голосов

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
точки лежат на одной прямой

(9.7k баллов)