Конспект лекций по программированию для начинающих. Гладков В.П. - 207 стр.

UptoLike

Составители: 

209
var a:mnogoug; { многоугольник }
n:integer; { количество вершин }
{ Длина стороны}
function dlina(x1,y1,x2,y2:real):real;
begin dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2)) end;
{ Площадь треугольника }
function treug(x1,y1,x2,y2,x3,y3:real):real;
var a,b,c:real;
p:real;
begin { вычисление длин сторон }
a:=dlina(x1,y1,x2,y2);
b:=dlina(x1,y1,x3,y3);
c:=dlina(x2,y2,x3,y3);
p:=(a+b+c)/2; { полупериметр }
{ площадь треугольника по формуле Герона }
treug:=sqrt(p*(p-a)*(p-b)*(p-c))
end;
{ Периметр многоугольника }
function perim(a:mnogoug;n:integer):real;
var i:integer; { номера вершин }
d:real; { периметр }
begin { длина стороны между вершиной 1 и вершиной n }
d:=dlina(a[1,1],a[2,1],a[1,n],a[2,n]);
{ обход сторон и вычисление суммы их длин }
for i:=1 to n-1 do
d:=d+dlina(a[1,i],a[2,i],a[1,i+1],a[2,i+1]);
perim:=d
end;
{ Площадь многоугольника }
function area(a:mnogoug;n:integer):real;
var d:real; { площадь }
i:integer; { номера вершин }
begin d:=0;
{ Разбиваем
многоугольник на треугольники диагоналями, проведенными из
вершины 1 }
for i:=2 to n-1 do
d:=d+treug(a[1,1],a[2,1],a[1,i],a[2,i],a[1,i+1],a[2,i+1]);
area:=d
end;
{ Длина наибольшей стороны многоугольника }
function stor(a:mnogoug;n:integer):real;
                                         209

   var      a:mnogoug; { многоугольник }
            n:integer; { количество вершин }

   { Длина стороны}
   function dlina(x1,y1,x2,y2:real):real;
   begin dlina:=sqrt(sqr(x1-x2)+sqr(y1-y2)) end;

   { Площадь треугольника }
   function treug(x1,y1,x2,y2,x3,y3:real):real;
   var       a,b,c:real;
             p:real;
   begin     { вычисление длин сторон }
             a:=dlina(x1,y1,x2,y2);
             b:=dlina(x1,y1,x3,y3);
             c:=dlina(x2,y2,x3,y3);
             p:=(a+b+c)/2; { полупериметр }
             { площадь треугольника по формуле Герона }
             treug:=sqrt(p*(p-a)*(p-b)*(p-c))
   end;

   { Периметр многоугольника }
   function perim(a:mnogoug;n:integer):real;
   var       i:integer; { номера вершин }
             d:real; { периметр }
   begin     { длина стороны между вершиной 1 и вершиной n }
             d:=dlina(a[1,1],a[2,1],a[1,n],a[2,n]);
             { обход сторон и вычисление суммы их длин }
             for i:=1 to n-1 do
                     d:=d+dlina(a[1,i],a[2,i],a[1,i+1],a[2,i+1]);
             perim:=d
   end;

   { Площадь многоугольника }
   function area(a:mnogoug;n:integer):real;
   var       d:real; { площадь }
             i:integer; { номера вершин }
   begin     d:=0;
   { Разбиваем многоугольник на треугольники диагоналями, проведенными из
вершины 1 }
             for i:=2 to n-1 do
                     d:=d+treug(a[1,1],a[2,1],a[1,i],a[2,i],a[1,i+1],a[2,i+1]);
             area:=d
   end;

   { Длина наибольшей стороны многоугольника }
   function stor(a:mnogoug;n:integer):real;