Составить программу для вычисления площади пятиугольника, заданного координатами вершин - C (СИ)
Формулировка задачи:
Ребят, помогите пожалуйста!
Составить программу для вычисления площади пятиугольника, заданного координатами вершин
Решение задачи: «Составить программу для вычисления площади пятиугольника, заданного координатами вершин»
textual
Листинг программы
#include <stdio.h> #include <assert.h> struct point { double x, y; }; double polygon_area(struct point points[], unsigned n); double deter2(struct point pt1, struct point pt2); /* заданы координаты вершин пятиугольника, посчитать площадь пятиугольника */ int main(void) { struct point points[5] = { { 0.0, 0.0 }, { 0.0, 4.0 }, { 3.0, 4.0 }, { 5.0, 1.0 }, { 2.0, 0.0 } }; printf("Area: %g\n", polygon_area(points, 5)); return 0; } /* polygon_area: по заданным точкам points в количестве n подсчитывает площадь выпуклого многоугольника */ double polygon_area(struct point points[], unsigned n) { double area; int i; assert(n > 2 && "incorrect number of points"); area = 0.0; for (i = 0; i < n - 1; i++) /* инв: в area - сумма определителей, составленных из координат пройденных левых точек и точек справа от них; текущая точка - новая левая точка */ area += deter2(points[i], points[i + 1]); area += deter2(points[i], points[0]); if (area < 0.0) area = -area; area /= 2.0; return area; } /* deter2: по заданным двум точкам p1 и p2 подсчитывает определитель второго порядка */ double deter2(struct point pt1, struct point pt2) { return pt1.x * pt2.y - pt1.y * pt2.x; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д