#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 położenie punktów względem prostej
bool po_tej_samej_stronie( float A, float B, float C, punkt p1, punkt p2)
{
float wart1 = A * p1.x + B * p1.y + C;
float wart2 = A * p2.x + B * p2.y + C;
if ( wart1 * wart2 > 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 << "Wczytywanie punktu P1:" << endl;
wczytaj_punkt( P1) ;
cout << "Wczytywanie punktu P2:" << endl;
wczytaj_punkt( P2) ;
float wart1 = A * P1.x + B * P1.y + C;
float wart2 = A * P2.x + B * P2.y + C;
if ( po_tej_samej_stronie( A, B, C, P1, P2) )
cout << "Punkty leza po tej samej stronie prostej." << endl;
else if ( wart1 == 0 || wart2 == 0 )
cout << "Przynajmniej jeden punkt lezy na prostej." << endl;
else
cout << "Punkty nie leza po tej samej stronie prostej." << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHB1bmt0CnsKICAgIGZsb2F0IHgsIHk7Cn07CgovLyBGdW5rY2phIHdjenl0dWrEhWNhIHdzcMOzxYJyesSZZG5lIHB1bmt0dQp2b2lkIHdjenl0YWpfcHVua3QocHVua3QgJnApCnsKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9scnplZG5hIHg6ICI7CiAgICBjaW4gPj4gcC54OwogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmEgeTogIjsKICAgIGNpbiA+PiBwLnk7Cn0KCi8vIEZ1bmtjamEgc3ByYXdkemFqxIVjYSBwb8WCb8W8ZW5pZSBwdW5rdMOzdyB3emdsxJlkZW0gcHJvc3Rlagpib29sIHBvX3Rlal9zYW1lal9zdHJvbmllKGZsb2F0IEEsIGZsb2F0IEIsIGZsb2F0IEMsIHB1bmt0IHAxLCBwdW5rdCBwMikKewogICAgZmxvYXQgd2FydDEgPSBBICogcDEueCArIEIgKiBwMS55ICsgQzsKICAgIGZsb2F0IHdhcnQyID0gQSAqIHAyLnggKyBCICogcDIueSArIEM7CgogICAgaWYgKHdhcnQxICogd2FydDIgPiAwKQogICAgICAgIHJldHVybiB0cnVlOwogICAgZWxzZQogICAgICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CiAgICBmbG9hdCBBLCBCLCBDOwogICAgcHVua3QgUDEsIFAyOwoKICAgIGNvdXQgPDwgIlBvZGFqIHdzcG9sY3p5bm5pa2kgcHJvc3RlaiAoQSBCIEMpOiAiOwogICAgY2luID4+IEEgPj4gQiA+PiBDOwoKICAgIGNvdXQgPDwgIldjenl0eXdhbmllIHB1bmt0dSBQMToiIDw8IGVuZGw7CiAgICB3Y3p5dGFqX3B1bmt0KFAxKTsKCiAgICBjb3V0IDw8ICJXY3p5dHl3YW5pZSBwdW5rdHUgUDI6IiA8PCBlbmRsOwogICAgd2N6eXRhal9wdW5rdChQMik7CgogICAgZmxvYXQgd2FydDEgPSBBICogUDEueCArIEIgKiBQMS55ICsgQzsKICAgIGZsb2F0IHdhcnQyID0gQSAqIFAyLnggKyBCICogUDIueSArIEM7CgogICAgaWYgKHBvX3Rlal9zYW1lal9zdHJvbmllKEEsIEIsIEMsIFAxLCBQMikpCiAgICAgICAgY291dCA8PCAiUHVua3R5IGxlemEgcG8gdGVqIHNhbWVqIHN0cm9uaWUgcHJvc3Rlai4iIDw8IGVuZGw7CiAgICBlbHNlIGlmICh3YXJ0MSA9PSAwIHx8IHdhcnQyID09IDApCiAgICAgICAgY291dCA8PCAiUHJ6eW5ham1uaWVqIGplZGVuIHB1bmt0IGxlenkgbmEgcHJvc3Rlai4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUHVua3R5IG5pZSBsZXphIHBvIHRlaiBzYW1laiBzdHJvbmllIHByb3N0ZWouIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9
stdin
UG9kYWogd3Nwb2xjenlubmlraSBwcm9zdGVqIChBIEIgQyk6IDEgMSAtMwpXY3p5dHl3YW5pZSBwdW5rdHUgUDE6ClBvZGFqIHdzcG9scnplZG5hIHg6IDQKUG9kYWogd3Nwb2xyemVkbmEgeTogNApXY3p5dHl3YW5pZSBwdW5rdHUgUDI6ClBvZGFqIHdzcG9scnplZG5hIHg6IDUKUG9kYWogd3Nwb2xyemVkbmEgeTogMw==
Podaj wspolczynniki prostej (A B C): 1 1 -3
Wczytywanie punktu P1:
Podaj wspolrzedna x: 4
Podaj wspolrzedna y: 4
Wczytywanie punktu P2:
Podaj wspolrzedna x: 5
Podaj wspolrzedna y: 3