Даны координаты вершин многоугольника (X1,Y1,X2,Y2,…,X10,Y10). Определить его периметр (вычисление расстояния между вершинами оформить подпрограммой) — Pascal(Паскаль)

program sly;
uses crt;
const n=10;
type coord=array[1..n] of integer;
function dist(x1,y1,x2,y2:integer):real;  
  begin
    dist:=sqrt(sqr(x2-x1)+sqr(y2-y1));
  end;
function perim(x,y:coord):real;
  var r,p:real;
      i:integer;
  begin
    perim:=0; p:=0;
    for i:=1 to n-1 do
      begin
        r:=dist(x[i],y[i],x[i+1],y[i+1]);
        p:=p+r;
      end;
    r:=dist(x[1],y[1],x[n],y[n]);
    p:=p+r;
    perim:=p;
  end;
var x,y:coord;
    i:byte;
begin
clrscr;
randomize;
for i:=1 to n do
  begin
    x[i]:=random(32);
    y[i]:=random(32);
  end;
for i:=1 to n do
  writeln('(',x[i],',',y[i],')');
writeln('Perimeter=',perim(x,y):6:3);
end.

Leave a Comment

2 + 6 =