Составить программу для вычисления площади пятиугольника, заданного координатами вершин - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д