Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. //Задача 3:
  2. //Найти площадь много угольника по известным координатам его
  3. //вершин. Использовать функции из первой и второй задач
  4.  
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8.  
  9. double dist (int x1, int y1, int x2, int y2) {
  10.     double d=sqrt(((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1)));
  11.     return d;
  12.     }
  13. double f_area (double d1, double d2, double d3) {
  14.     double p=(d1+d2+d3)/2;
  15.     double s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
  16.     return s;
  17.     }
  18. int main()
  19. {
  20.     int k, x1, y1, x2, y2, x3, y3, x4, y4;
  21.     scanf("%d", &k);
  22.     k=k-3;
  23.     scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
  24.     double d1=dist(x1, y1, x2, y2);
  25.     scanf("%d%d", &x3, &y3);
  26.     double d2=dist(x2, y2, x3, y3);
  27.     double d3=dist(x1, y1, x3, y3);
  28.     double sum_area=0, area;
  29.     area=f_area(d1, d2, d3);
  30.     sum_area=sum_area+area;
  31.     int i;
  32.     for (i=1; i<=k; i++) {
  33.         scanf("%d%d", &x4, &y4);
  34.         double d4=dist(x1, y1, x4, y4);
  35.         double d5=dist(x4, y4, x3, y3);
  36.         area=f_area(d3, d5, d4);
  37.         sum_area=sum_area+area;
  38.         d3=d4;
  39.         x3=x4;
  40.         y3=y4;
  41.     }
  42.     printf("%lf", sum_area);
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement