#include <iostream>
using namespace std;
struct punkt
{
float x, y;
} ;
void wczytaj_punkt( punkt & p)
{
cout << "Podaj wspolrzedna x: " ;
cin >> p.x ;
cout << "Podaj wspolrzedna y: " ;
cin >> p.y ;
}
bool po_tej_samej_stronie( float A, float B, float C, punkt P1, punkt P2)
{
// Obliczamy wartosci wyrazenia Ax + By + C dla obu punktow
float wartosc1 = A * P1.x + B * P1.y + C;
float wartosc2 = A * P2.x + B * P2.y + C;
// Punkty sa po tej samej stronie prostej,
// gdy iloczyn wartosci ma znak dodatni
if ( wartosc1 * wartosc2 > 0 )
return true ;
else
return false ;
}
int main( )
{
float A, B, C;
punkt P1, P2;
cout << "Podaj wspolczynniki prostej (A B C): " ;
cin >> A >> B >> C;
cout << "\n Wczytywanie punktu P1:\n " ;
wczytaj_punkt( P1) ;
cout << "\n Wczytywanie punktu P2:\n " ;
wczytaj_punkt( P2) ;
if ( po_tej_samej_stronie( A, B, C, P1, P2) )
cout << "\n Pkt leza po tej samej stronie prostej.\n " ;
else
cout << "\n Pkt nie leza po tej samej stronie prostej.\n " ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07Cgp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnApCnsKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5hIHg6ICI7CiAgICBjaW4gPj4gcC54OwogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmEgeTogIjsKICAgIGNpbiA+PiBwLnk7Cn0KCmJvb2wgcG9fdGVqX3NhbWVqX3N0cm9uaWUoZmxvYXQgQSwgZmxvYXQgQiwgZmxvYXQgQywgcHVua3QgUDEsIHB1bmt0IFAyKQp7CiAgICAvLyBPYmxpY3phbXkgd2FydG9zY2kgd3lyYXplbmlhIEF4ICsgQnkgKyBDIGRsYSBvYnUgcHVua3RvdwogICAgZmxvYXQgd2FydG9zYzEgPSBBICogUDEueCArIEIgKiBQMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIFAyLnggKyBCICogUDIueSArIEM7CgogICAgLy8gUHVua3R5IHNhIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWosCiAgICAvLyBnZHkgaWxvY3p5biB3YXJ0b3NjaSBtYSB6bmFrIGRvZGF0bmkKICAgIGlmICh3YXJ0b3NjMSAqIHdhcnRvc2MyID4gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIGVsc2UKICAgICAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkKewogICAgZmxvYXQgQSwgQiwgQzsKICAgIHB1bmt0IFAxLCBQMjsKCiAgICBjb3V0IDw8ICJQb2RhaiB3c3BvbGN6eW5uaWtpIHByb3N0ZWogKEEgQiBDKTogIjsKICAgIGNpbiA+PiBBID4+IEIgPj4gQzsKCiAgICBjb3V0IDw8ICJcbldjenl0eXdhbmllIHB1bmt0dSBQMTpcbiI7CiAgICB3Y3p5dGFqX3B1bmt0KFAxKTsKCiAgICBjb3V0IDw8ICJcbldjenl0eXdhbmllIHB1bmt0dSBQMjpcbiI7CiAgICB3Y3p5dGFqX3B1bmt0KFAyKTsKCiAgICBpZiAocG9fdGVqX3NhbWVqX3N0cm9uaWUoQSwgQiwgQywgUDEsIFAyKSkKICAgICAgICBjb3V0IDw8ICJcblBrdCBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWouXG4iOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlxuUGt0IG5pZSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWouXG4iOwoKICAgIHJldHVybiAwOwp9