Функции. Найти периметр - Pascal ABC
Формулировка задачи:
Добрый вечер! Помогите, пожалуйста
Найти периметр n-угольника, заданного координатами вершин (массивы не использовать). Описать функцию определения расстояния между двумя точками.
Решение задачи: «Функции. Найти периметр»
textual
Листинг программы
function rasst(x1,y1,x2,y2:real):real;
begin
rasst:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
var x1,y1,x2,y2,x,y:real;
n,i:byte;
r,p:real;
begin
repeat
write('Введите количество вершин n>2 n=');
readln(n);
until n>2;
writeln('Введите координаты первой вершины');
readln(x1,y1);
x2:=x1;
y2:=y1;
p:=0;
writeln('Введите координаты остальных вершин');
for i:=2 to n do
begin
readln(x,y);
p:=p+rasst(x,y,x2,y2);
x2:=x;
y2:=y;
end;
p:=p+rasst(x1,y1,x2,y2);
writeln('Периметр=',p:0:2);
end.
Объяснение кода листинга программы
В данном коде объявлены следующие переменные:
- x1, y1, x2, y2 - переменные для хранения координат вершин.
- n, i - переменные для контроля ввода данных.
- r, p - переменные для хранения результата вычисления периметра. Функция rasst(x1,y1,x2,y2:real) вычисляет периметр треугольника по формуле sqr(x1-x2)+sqr(y1-y2), где sqr() - квадратный оператор. Цикл repeat-until используется для проверки ввода числа n. Затем вводятся координаты первой вершины. Переменная x2 и y2 присваиваются значение координат этой вершины. Далее идет цикл for, в котором читаются координаты остальных вершин. Переменная p иглается суммой периметров треугольников, образованных каждой парой вершин. Переменные x2 и y2 обновляются после каждой итерации цикла. После этого суммируется периметр треугольника, образованного первой вершиной. В конце выводится значение переменной p, представляющее собой периметр треугольника.