#include <iostream>
using namespace std;
struct punkt
{
float x, y;
} ;
// Funkcja wczytująca współrzędne punktu
void wczytaj_punkt( punkt & p)
{
cout << "Podaj wspolrzedna x: " ;
cin >> p.x ;
cout << "Podaj wspolrzedna y: " ;
cin >> p.y ;
}
// Funkcja sprawdzająca czy dwa punkty leżą po tej samej stronie prostej
bool po_tej_samej_stronie( float A, float B, float C, punkt p1, punkt p2)
{
float wartosc1 = A * p1.x + B * p1.y + C;
float wartosc2 = A * p2.x + B * p2.y + C;
// Punkty są po tej samej stronie, jeśli wartości mają ten sam znak
return ( wartosc1 * wartosc2 > 0 ) ;
}
int main( )
{
float A, B, C;
punkt P1, P2;
cout << "Podaj wspolczynniki prostej (A B C): " ;
cin >> A >> B >> C;
if ( A == 0 && B == 0 )
{
cout << "Bledne dane: A i B nie moga byc jednoczesnie rowne 0." << endl;
return 0 ;
}
cout << "\n Wczytywanie punktu P1:" << endl;
wczytaj_punkt( P1) ;
cout << "\n Wczytywanie punktu P2:" << endl;
wczytaj_punkt( P2) ;
if ( po_tej_samej_stronie( A, B, C, P1, P2) )
cout << "\n punkty leza po tej samej stronie prostej" << endl;
else
cout << "\n punkty nie leza po tej samej stronie prostej" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07CgovLyBGdW5rY2phIHdjenl0dWrEhWNhIHdzcMOzxYJyesSZZG5lIHB1bmt0dQp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnApCnsKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5hIHg6ICI7CiAgICBjaW4gPj4gcC54OwogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmEgeTogIjsKICAgIGNpbiA+PiBwLnk7Cn0KCi8vIEZ1bmtjamEgc3ByYXdkemFqxIVjYSBjenkgZHdhIHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlagpib29sIHBvX3Rlal9zYW1lal9zdHJvbmllKGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMsIHB1bmt0IHAxLCBwdW5rdCBwMikKewogICAgZmxvYXQgd2FydG9zYzEgPSBBICogcDEueCArIEIgKiBwMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIHAyLnggKyBCICogcDIueSArIEM7CgogICAgLy8gUHVua3R5IHPEhSBwbyB0ZWogc2FtZWogc3Ryb25pZSwgamXFm2xpIHdhcnRvxZtjaSBtYWrEhSB0ZW4gc2FtIHpuYWsKICAgIHJldHVybiAod2FydG9zYzEgKiB3YXJ0b3NjMiA+IDApOwp9CgppbnQgbWFpbigpCnsKICAgIGZsb2F0IEEsIEIsIEM7CiAgICBwdW5rdCBQMSwgUDI7CgogICAgY291dCA8PCAiUG9kYWogd3Nwb2xjenlubmlraSBwcm9zdGVqIChBIEIgQyk6ICI7CiAgICBjaW4gPj4gQSA+PiBCID4+IEM7CgogICAgaWYgKEEgPT0gMCAmJiBCID09IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiQmxlZG5lIGRhbmU6IEEgaSBCIG5pZSBtb2dhIGJ5YyBqZWRub2N6ZXNuaWUgcm93bmUgMC4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCAiXG5XY3p5dHl3YW5pZSBwdW5rdHUgUDE6IiA8PCBlbmRsOwogICAgd2N6eXRhal9wdW5rdChQMSk7CgogICAgY291dCA8PCAiXG5XY3p5dHl3YW5pZSBwdW5rdHUgUDI6IiA8PCBlbmRsOwogICAgd2N6eXRhal9wdW5rdChQMik7CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKEEsIEIsIEMsIFAxLCBQMikpCiAgICAgICAgY291dCA8PCAiXG5wdW5rdHkgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlxucHVua3R5IG5pZSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoiIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=