#include <iostream>
using namespace std;
struct punkt
{
float x, y;
} ;
// Funkcja wczytująca współrzędne punktu
void wczytaj_punkt( punkt & p)
{
cin >> p.x >> p.y ;
}
// Funkcja sprawdzająca czy 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;
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 << "Blad: A i B nie moga byc jednoczesnie rowne 0." << endl;
return 1 ;
}
cout << "Podaj wspolrzedne punktu P1 (xP1 yP1): " ;
wczytaj_punkt( P1) ;
cout << "Podaj wspolrzedne punktu P2 (xP2 yP2): " ;
wczytaj_punkt( P2) ;
if ( po_tej_samej_stronie( A, B, C, P1, P2) )
cout << "punkty leza po tej samej stronie lub prostej" << endl;
else
cout << "Punkty nie leza po tej samej stronie lub prostej" << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07CgovLyBGdW5rY2phIHdjenl0dWrEhWNhIHdzcMOzxYJyesSZZG5lIHB1bmt0dQp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnApCnsKICAgIGNpbiA+PiBwLnggPj4gcC55Owp9CgovLyBGdW5rY2phIHNwcmF3ZHphasSFY2EgY3p5IHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlagpib29sIHBvX3Rlal9zYW1lal9zdHJvbmllKGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMsIHB1bmt0IFAxLCBwdW5rdCBQMikKewogICAgZmxvYXQgd2FydG9zYzEgPSBBICogUDEueCArIEIgKiBQMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIFAyLnggKyBCICogUDIueSArIEM7CgogICAgcmV0dXJuICh3YXJ0b3NjMSAqIHdhcnRvc2MyID49IDApOwp9CgppbnQgbWFpbigpCnsKICAgIGZsb2F0IEEsIEIsIEM7CiAgICBwdW5rdCBQMSwgUDI7CgogICAgY291dCA8PCAiUG9kYWogd3Nwb2xjenlubmlraSBwcm9zdGVqIChBIEIgQyk6ICI7CiAgICBjaW4gPj4gQSA+PiBCID4+IEM7CgogICAgaWYgKEEgPT0gMCAmJiBCID09IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiQmxhZDogQSBpIEIgbmllIG1vZ2EgYnljIGplZG5vY3plc25pZSByb3duZSAwLiIgPDwgZW5kbDsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbHJ6ZWRuZSBwdW5rdHUgUDEgKHhQMSB5UDEpOiAiOwogICAgd2N6eXRhal9wdW5rdChQMSk7CgogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmUgcHVua3R1IFAyICh4UDIgeVAyKTogIjsKICAgIHdjenl0YWpfcHVua3QoUDIpOwoKICAgIGlmIChwb190ZWpfc2FtZWpfc3Ryb25pZShBLCBCLCBDLCBQMSwgUDIpKQogICAgICAgIGNvdXQgPDwgInB1bmt0eSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIGx1YiBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlB1bmt0eSBuaWUgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBsdWIgcHJvc3RlaiIgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==