Kod: Zaznacz cały
#include <iostream>
#include <cmath>
using namespace std;
int main ()
{
cout << "Witamy w programie obliczajacym, czy punkt "D" o danych wspolrzednych miesci sie w srodku trojkata."<< endl;
double xa,ya,xb,yb,xc,yc,xd,yd;
cout << "Wprowadz wartosc wspolrzednej x punktu A: "; cin>>xa;
cout << "Wprowadz wartosc wspolrzednej y punktu A: "; cin>>ya;
cout << endl <<"Wprowadz wartosc wspolrzednej x punktu B: "; cin>>xb;
cout << "Wprowadz wartosc wspolrzednej y punktu B: "; cin>>yb;
cout << endl <<"Wprowadz wartosc wspolrzednej x punktu C: "; cin>>xc;
cout << "Wprowadz wartosc wspolrzednej y punktu C: "; cin>>yc;
cout << endl << endl << "Wprowadz wartosc wspolrzednej x punktu D: "; cin>>xd;
cout << "Wprowadz wartosc wspolrzednej y punktu D: "; cin>>yd;
double AB = sqrt((pow(xb-xa, 2))+ (pow(yb-ya, 2)));
double AC = sqrt((pow(xc-xa, 2))+ (pow(yc-ya, 2)));
double CB = sqrt((pow(xb-xc, 2))+ (pow(yb-yc, 2)));
double AD=sqrt((pow(xd-xa, 2))+ (pow(yd-ya, 2)));
double BD=sqrt((pow(xd-xb, 2))+ (pow(yd-yb, 2)));
double CD=sqrt((pow(xd-xc, 2))+ (pow(yd-yc, 2)));
double obwod=AB+AC+CB;
double n=obwod/2;
double PoleABC=sqrt(n*(n-AB)*(n-AC)*(n-CB));
double obwod1=AB+AD+BD;
double n1=obwod1/2;
double PoleABD=sqrt(n1*(n-AB)*(n-AD)*(n-BD));
double obwod2=AC+CD+AD;
double n2=obwod2/2;
double PoleACD=sqrt(n2*(n-AC)*(n-CD)*(n-AD));
double obwod3=BD+CD+CB;
double n3=obwod3/2;
double PoleCBD=sqrt(n3*(n-BD)*(n-CD)*(n-CB));
if (AB+AC>CB && AB+CB>AC && CB+AC>AB)
{
if (PoleABC==PoleABD+PoleACD+PoleCBD)
{
cout << endl << "Wspolrzedna punktu D zawiera sie w trojkacie ABC." << endl;
return 0;
}
else
cout << endl << "Wspolrzedna punktu D nie zawiera sie w trojkacie ABC." << endl;
return 0;
}
else
cout << endl << "Z wprowadzonych wspolrzednych punktow A,B oraz C nie mozna zbudowac trojkata, stad dalsze operacje sa niemozliwe do wykonania.";
}