Выполните программу на компьютере. Подумайте, каким образом можно модифицировать программу, чтобы вычислять с её помощью периметр n-угольника. Каким образом при решении этой задачи можно использовать массивы?
Программа примера otrezok, передаёт длину через параметр var d и прибавляет её к периметру p. Для многоугольника повторим такое же действие для каждой пары соседних вершин. Координаты вершин удобно хранить в двух массивах: x[i] и y[i] — координаты вершины с номером i.
Введём вершины по порядку обхода границы. При i и i+. Затем отдельно добавим замыкающую сторону от вершины n к вершине
program PolygonPerimeter;
var
x, y: array[ .. ] of real;
n, i: integer;
d, p: real;
procedure Otrezok(x , y , x , y : real; var length: real);
begin
length := sqrt(sqr(x - x ) + sqr(y - y ));
end;
begin
readln(n);
if (n < ) or (n > ) then
writeln('Неверное число вершин')
else
begin
for i := to n do
readln(x[i], y[i]);
p := ;
for i := to n - do
begin
Otrezok(x[i], y[i], x[i + ], y[i + ], d);
p := p + d;
end;
Otrezok(x[n], y[n], x[ ], y[ ], d);
p := p + d;
writeln('P = ', p: : );
end;
end.
Формула в процедуре — формула длины отрезка по координатам концов из примера n = и вершинами
Первый вызов процедуры даёт p = .
Второй вызов даёт
Замыкающий вызов даёт
Программа выводит P = . В среде Pascal вводят текст программы, запускают её и сравнивают вывод с этим контрольным примером.
Координаты вершин хранятся в массивах x и y; процедура Otrezok вызывается для каждой пары соседних вершин и для пары
