Code:
#include <stdio.h>
#include <math.h>
//po podaniu współrzednch punktu funkcja oblicza długość odcinka
double oblicz_dlugosc_boku(int wspolrzedna_x, int wspolrzedna_y, int wspolrzedna_x2, int wspolrzedna_y2)
{
//zastosowanie twierdzenia pitagorasa do obliczania długości boków
double dlugosc_boku = sqrt(((wspolrzedna_x - wspolrzedna_x2)*(wspolrzedna_x - wspolrzedna_x2)) + ((wspolrzedna_y - wspolrzedna_y2)*(wspolrzedna_y - wspolrzedna_y2)));
return dlugosc_boku;
}
double oblicz_pole(double a, double b, double c)
{
//obliczanie obwodu
double p = (a+b+c)/2;
//wykorzystanie wzoru Herona do obliczenia pola trĂłjkÄ…ta i zaokrÄ…glenie wyniku do 4 miejsca po przecinku
double pole = round(10000 * sqrt(p*(p-a)*(p-b)*(p-c)))/10000;
return pole;
}
int main ()
{
system("chcp 1250");
int ax,ay,bx,by,cx,cy,dx,dy;
double AC,BD,AB,BC,AD,CD,pABC,pACD,pABD,pBCD;
FILE * plik;
plik = fopen("czworokat.in", "r");
//wczytywanie kolejnych współrzednych
fscanf(plik, "(%d,%d),(%d,%d),(%d,%d),(%d,%d)", &ax,&ay,&bx,&by,&cx,&cy,&dx,&dy);
///////////////////////////////////////
printf("%d,%d,%d,%d,%d,%d,%d,%d\n", ax,ay,bx,by,cx,cy,dx,dy);// look at this values, thats what im talking about
//////////////////////////////////////
//zamknięcie strumienia
fclose(plik);
//OBLICZANIE DĹUGOŚĆI PRZEKÄ„TNYCH AC,BD
AC = oblicz_dlugosc_boku(ax,ay,cx,cy);
BD = oblicz_dlugosc_boku(dx,dy,bx,by);
//OBLICZANIE DĹUGOĹšCI BOKĂ“W AB,BC,CD,AD
AB = oblicz_dlugosc_boku(ax,ay,bx,by);
BC = oblicz_dlugosc_boku(bx,by,cx,cy);
CD = oblicz_dlugosc_boku(cx,cy,dx,dy);
AD = oblicz_dlugosc_boku(ax,ay,dx,dy);
//OBLICZANIE PĂ“L TRĂ“JKÄ„TĂ“W
pABC = oblicz_pole(AB, BC, AC);
pACD = oblicz_pole(AC, CD, AD);
pABD = oblicz_pole(AB, BD, AD);
pBCD = oblicz_pole(BC, CD, BD);
//SPRAWDZANIE CZY POLA SUMY PĂ“L TRĂ“JKÄ„TĂ“W SÄ„ RĂ“WNE
if((pABC + pACD) == (pABD + pBCD))
{
printf("TAK! Ten czworokąt jest wypukły!\n");
}
else
{
printf("NIE! To nie jest czworokąt wypukły!\n %d", ax);
}
int i;
scanf("%d", &i);
return 0;
}