#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;
// Jeśli iloczyn dodatni – ten sam znak → ta sama strona
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;
// Sprawdzenie warunku A ≠ 0 lub B ≠ 0
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+PiBwLnk7Cn0KCi8vIEZ1bmtjamEgc3ByYXdkemFqxIVjYSBjenkgZHdhIHB1bmt0eSBsZcW8xIUgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlagpib29sIHBvX3Rlal9zYW1lal9zdHJvbmllKGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMsIHB1bmt0IHAxLCBwdW5rdCBwMikKewogICAgZmxvYXQgd2FydG9zYzEgPSBBICogcDEueCArIEIgKiBwMS55ICsgQzsKICAgIGZsb2F0IHdhcnRvc2MyID0gQSAqIHAyLnggKyBCICogcDIueSArIEM7CgogICAgLy8gSmXFm2xpIGlsb2N6eW4gZG9kYXRuaSDigJMgdGVuIHNhbSB6bmFrIOKGkiB0YSBzYW1hIHN0cm9uYQogICAgaWYgKHdhcnRvc2MxICogd2FydG9zYzIgPiAwKQogICAgICAgIHJldHVybiB0cnVlOwogICAgZWxzZQogICAgICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBmbG9hdCBBLCBCLCBDOwogICAgcHVua3QgUDEsIFAyOwoKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9sY3p5bm5pa2kgcHJvc3RlaiAoQSBCIEMpOiAiOwogICAgY2luID4+IEEgPj4gQiA+PiBDOwoKICAgIC8vIFNwcmF3ZHplbmllIHdhcnVua3UgQSDiiaAgMCBsdWIgQiDiiaAgMAogICAgaWYgKEEgPT0gMCAmJiBCID09IDApCiAgICB7CiAgICAgICAgY291dCA8PCAiQmxlZG5lIGRhbmU6IEEgaSBCIG5pZSBtb2dhIGJ5YyBqZWRub2N6ZXNuaWUgcm93bmUgMC4iIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgY291dCA8PCAiXG5XY3p5dHl3YW5pZSBwdW5rdHUgUDE6IiA8PCBlbmRsOwogICAgd2N6eXRhal9wdW5rdChQMSk7CgogICAgY291dCA8PCAiXG5XY3p5dHl3YW5pZSBwdW5rdHUgUDI6IiA8PCBlbmRsOwogICAgd2N6eXRhal9wdW5rdChQMik7CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKEEsIEIsIEMsIFAxLCBQMikpCiAgICAgICAgY291dCA8PCAiXG5wdW5rdHkgbGV6YSBwbyB0ZWogc2FtZWogc3Ryb25pZSBwcm9zdGVqIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgIlxucHVua3R5IG5pZSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWoiIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=