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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы