#include <iostream>
using namespace std;
void czytaj_punkt( double & x, double & y)
{
cout << "Podaj x: 1" ;
cin >> x;
cout << "Podaj y:2 " ;
cin >> y;
}
double det( double xA, double yA, double xB, double yB, double xP, double yP)
{
return ( xB - xA) * ( yP - yA) - ( yB - yA) * ( xP - xA) ;
}
bool punkty_po_stronie( double xA, double yA, double xB, double yB, double xP, double yP)
{
double d = det( xA, yA, xB, yB, xP, yP) ;
if ( d > 0 )
return true ; // punkt po lewej stronie
else
return false ; // punkt po prawej stronie lub na prostej
}
int main( )
{
double xA, yA, xB, yB, xP, yP;
cout << "Podaj wspolrzedne punktu A:" << endl;
czytaj_punkt( xA, yA) ;
cout << "Podaj wspolrzedne punktu B:" << endl;
czytaj_punkt( xB, yB) ;
cout << "Podaj wspolrzedne punktu P:" << endl;
czytaj_punkt( xP, yP) ;
if ( punkty_po_stronie( xA, yA, xB, yB, xP, yP) )
cout << "Punkt P lezy po lewej stronie" << endl;
else
cout << "Punkt P lezy po prawej stronie" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBjenl0YWpfcHVua3QoZG91YmxlICZ4LCBkb3VibGUgJnkpCnsKICAgIGNvdXQgPDwgIlBvZGFqIHg6IDEiOwogICAgY2luID4+IHg7CiAgICBjb3V0IDw8ICJQb2RhaiB5OjIgIjsKICAgIGNpbiA+PiB5Owp9Cgpkb3VibGUgZGV0KGRvdWJsZSB4QSwgZG91YmxlIHlBLCBkb3VibGUgeEIsIGRvdWJsZSB5QiwgZG91YmxlIHhQLCBkb3VibGUgeVApCnsKICAgIHJldHVybiAoeEIgLSB4QSkgKiAoeVAgLSB5QSkgLSAoeUIgLSB5QSkgKiAoeFAgLSB4QSk7Cn0KCmJvb2wgcHVua3R5X3BvX3N0cm9uaWUoZG91YmxlIHhBLCBkb3VibGUgeUEsIGRvdWJsZSB4QiwgZG91YmxlIHlCLCBkb3VibGUgeFAsIGRvdWJsZSB5UCkKewogICAgZG91YmxlIGQgPSBkZXQoeEEsIHlBLCB4QiwgeUIsIHhQLCB5UCk7CgogICAgaWYgKGQgPiAwKQogICAgICAgIHJldHVybiB0cnVlOyAgIC8vIHB1bmt0IHBvIGxld2VqIHN0cm9uaWUKICAgIGVsc2UKICAgICAgICByZXR1cm4gZmFsc2U7ICAvLyBwdW5rdCBwbyBwcmF3ZWogc3Ryb25pZSBsdWIgbmEgcHJvc3Rlagp9CgppbnQgbWFpbigpCnsKICAgIGRvdWJsZSB4QSwgeUEsIHhCLCB5QiwgeFAsIHlQOwoKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5lIHB1bmt0dSBBOiIgPDwgZW5kbDsKICAgIGN6eXRhal9wdW5rdCh4QSwgeUEpOwoKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5lIHB1bmt0dSBCOiIgPDwgZW5kbDsKICAgIGN6eXRhal9wdW5rdCh4QiwgeUIpOwoKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5lIHB1bmt0dSBQOiIgPDwgZW5kbDsKICAgIGN6eXRhal9wdW5rdCh4UCwgeVApOwoKICAgIGlmIChwdW5rdHlfcG9fc3Ryb25pZSh4QSwgeUEsIHhCLCB5QiwgeFAsIHlQKSkKICAgICAgICBjb3V0IDw8ICJQdW5rdCBQIGxlenkgcG8gbGV3ZWogc3Ryb25pZSIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJQdW5rdCBQIGxlenkgcG8gcHJhd2VqIHN0cm9uaWUiIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=