Pagini recente » Cod sursa (job #322745) | Cod sursa (job #2478468) | Cod sursa (job #2192291) | Cod sursa (job #1625637) | Cod sursa (job #2090352)
#include<fstream>
#include<iostream>
#include<cmath>
#define PI 3.14159265
using namespace std;
ifstream f("data.in");
ofstream g("data.out");
struct punct
{
double x,y;
};
struct vectorr
{
double i,j;
};
vectorr determina_vector(punct a, punct b)
{
vectorr X;
X.i=b.x-a.x;
X.j=b.y-a.y;
return X;
}
double modul_vector(punct a, punct b)
{
return sqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y));
}
double produs_scalar(vectorr a, vectorr b)
{
double A,B;
A=a.i*b.i;
B=a.j*b.j;
return A+B;
}
int main()
{
punct A,B,C,D;
f>>A.x>>A.y>>B.x>>B.y>>C.x>>C.y>>D.x>>D.y;
double cosB,cosD;
double unghi_B, unghi_D;
double prod_scal_1=produs_scalar(determina_vector(B,A),determina_vector(B,C));
double prod_scal_2=produs_scalar(determina_vector(D,A),determina_vector(D,C));
double produs_module1=modul_vector(B,A)*modul_vector(B,C);
double produs_module2=modul_vector(D,A)*modul_vector(D,C);
cosB=prod_scal_1/produs_module1;
cosD=prod_scal_2/produs_module2;
unghi_B=acos(cosB);
unghi_D=acos(cosD);
cout<<cosB<<" "<<cosD<<"\n";
if(abs(unghi_B+unghi_D-PI)<0.01)
{
cout<<"Punctul D apartine cercului circumscris\n";
}
else
if (unghi_B+unghi_D>PI)
{
cout<<"Punctul D se afla in interiorul cercului circumscris\n";
}
else
cout<<"Punctul D se afla in exteriorul cercului circumscris\n";
///Cerinta b
double AB,CD,AD,BC;
AB=modul_vector(A,B); g<<AB<<"\n";
CD=modul_vector(C,D); g<<CD<<"\n";
AD=modul_vector(A,D); g<<AD<<"\n";
BC=modul_vector(B,C); g<<BC<<"\n";
if(((AB+CD)-(AD+BC))<0.01)
cout<<"Patrulaterul este circumscriptibil";
else
cout<<"Patrulaterul nu este circumscriptibil";
return 0;
}