Вычислите площадь произвольного выпуклого n-угольника, заданного координатами своих вершин на плоскости (x, y) - Pascal ABC
Формулировка задачи:
Вычислите площадь произвольного выпуклого n-угольника, заданного координатами своих вершин на плоскости (x, y)
x: array [1..n] of real
y: array [1..n] of real
Указание. Вычислять площадь многоугольника как сумму площадей треугольников.
Решение задачи: «Вычислите площадь произвольного выпуклого n-угольника, заданного координатами своих вершин на плоскости (x, y)»
textual
Листинг программы
uses crt; function plos(x1,y1,x2,y2,x3,y3:real):real; begin //формула через тангенс половинного угла plos:=abs((x1-x3)*(y2-y3)-(x2-x3)*(y1-y3))/2; end; const nmax=100; var x,y:array[1..nmax] of real; n,i:byte; s:real; begin repeat write('Количество вершин от 3 до ',nmax,' n='); read(n); until n in [3..nmax]; writeln('Введите координаты вершин в порядке обхода:'); for i:=1 to n do begin write('x[',i,']='); read(x[i]); write('y[',i,']='); read(y[i]); end; s:=plos(x[1],y[1],x[2],y[2],x[3],y[3]); writeln('S1=',s:0:2); for i:=3 to n do s:=s+plos(x[1],y[1],x[i],y[i],x[i+1],y[i+1]); write('S=',s:0:2); end.
Объяснение кода листинга программы
- Программа вычисляет площадь произвольного выпуклого n-угольника, заданного координатами своих вершин на плоскости (x, y).
- Используется функция plos, которая вычисляет площадь треугольника по формуле через тангенс половинного угла.
- Объявлены следующие константы и переменные:
- nmax - максимальное количество вершин n-угольника (100).
- x, y - массивы для хранения координат вершин (реальное число).
- n, i - переменные для подсчета количества вершин и итерации по массивам (byte).
- s - переменная для хранения суммы площадей треугольников (реальное число).
- Пользователю предлагается ввести количество вершин от 3 до nmax и ввести координаты вершин в порядке обхода.
- С помощью цикла repeat-until осуществляется проверка корректности введенного количества вершин.
- С помощью цикла for i:=1 to n осуществляется ввод координат вершин.
- Вычисляется площадь треугольника по формуле plos(x[1],y[1],x[2],y[2],x[3],y[3]) и выводится на экран.
- С помощью цикла for i:=3 to n осуществляется подсчет площади каждого треугольника, добавляя ее к переменной s.
- Вычисляется и выводится на экран общая площадь S.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д