Pagini recente » Cod sursa (job #2650063) | Cod sursa (job #829495) | Cod sursa (job #1236957) | Cod sursa (job #2278415) | Cod sursa (job #1887595)
#include <iostream>
#include <cstdio>
using namespace std;
struct punct
{
double x,y;
}vPoligon[100005];
int n;
void citire()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%lf%lf",&vPoligon[i].x,&vPoligon[i].y);
}
}
double calculDet(punct p1, punct p2)
{
return (p1.x*p2.y-p2.x*p1.y);
}
void calculAriePrinPunct()
{
double aria=0;
for(int i=1;i<n;i++)
{
aria+=calculDet(vPoligon[i],vPoligon[i+1]);
}
aria+=calculDet(vPoligon[n],vPoligon[1]);
aria/=2;
printf("%.5lf",aria);
}
double abs(double x)
{
if(x<0)
return -x;
return x;
}
double arieTrapez(punct p1,punct p2)
{
int H=p1.x-p2.x;
return ((p1.y+p2.y)*H);
}
void calculArieCuTrapez()
{
double aria=0;
for(int i=1;i<n;i++)
{
aria+=arieTrapez(vPoligon[i],vPoligon[i+1]);
}
aria+=arieTrapez(vPoligon[n],vPoligon[1]);
aria/=2;
printf("%.5lf",abs(aria));
}
int main()
{
freopen("aria.in","r",stdin);
freopen("aria.out","w",stdout);
citire();
//calculAriePrinPunct();
calculArieCuTrapez();
return 0;
}