#include <iostream>
using namespace std;
double det(double xA, double yA, double xB, double yB, double xP, double yP) {
return (xB - xA) * (yP - yA) - (yB - yA) * (xP - xA);
}
void czytaj_punkt(double &x, double &y, char nazwa) {
cout << "Podaj wspolrzedne punktu " << nazwa << " (x y): ";
cin >> x >> y;
}
bool punkt_w_odcinku(double xA, double yA, double xB, double yB, double xP, double yP) {
if (det(xA, yA, xB, yB, xP, yP) != 0)
return false;
if (xP >= min(xA, xB) && xP <= max(xA, xB) &&
yP >= min(yA, yB) && yP <= max(yA, yB))
return true;
return false;
}
int main() {
double xA, yA, xB, yB, xP, yP;
czytaj_punkt(xA, yA, 'A');
czytaj_punkt(xB, yB, 'B');
czytaj_punkt(xP, yP, 'P');
if (punkt_w_odcinku(xA, yA, xB, yB, xP, yP))
cout << "Punkt P nalezy do odcinka AB." << endl;
else
cout << "Punkt P nie nalezy do odcinka AB." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZG91YmxlIGRldChkb3VibGUgeEEsIGRvdWJsZSB5QSwgZG91YmxlIHhCLCBkb3VibGUgeUIsIGRvdWJsZSB4UCwgZG91YmxlIHlQKSB7CiAgICByZXR1cm4gKHhCIC0geEEpICogKHlQIC0geUEpIC0gKHlCIC0geUEpICogKHhQIC0geEEpOwp9Cgp2b2lkIGN6eXRhal9wdW5rdChkb3VibGUgJngsIGRvdWJsZSAmeSwgY2hhciBuYXp3YSkgewogICAgY291dCA8PCAiUG9kYWogd3Nwb2xyemVkbmUgcHVua3R1ICIgPDwgbmF6d2EgPDwgIiAoeCB5KTogIjsKICAgIGNpbiA+PiB4ID4+IHk7Cn0KCmJvb2wgcHVua3Rfd19vZGNpbmt1KGRvdWJsZSB4QSwgZG91YmxlIHlBLCBkb3VibGUgeEIsIGRvdWJsZSB5QiwgZG91YmxlIHhQLCBkb3VibGUgeVApIHsKCiAgICBpZiAoZGV0KHhBLCB5QSwgeEIsIHlCLCB4UCwgeVApICE9IDApCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIGlmICh4UCA+PSBtaW4oeEEsIHhCKSAmJiB4UCA8PSBtYXgoeEEsIHhCKSAmJgogICAgICAgIHlQID49IG1pbih5QSwgeUIpICYmIHlQIDw9IG1heCh5QSwgeUIpKQogICAgICAgIHJldHVybiB0cnVlOwoKICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CgogICAgZG91YmxlIHhBLCB5QSwgeEIsIHlCLCB4UCwgeVA7CgogICAgY3p5dGFqX3B1bmt0KHhBLCB5QSwgJ0EnKTsKICAgIGN6eXRhal9wdW5rdCh4QiwgeUIsICdCJyk7CiAgICBjenl0YWpfcHVua3QoeFAsIHlQLCAnUCcpOwoKICAgIGlmIChwdW5rdF93X29kY2lua3UoeEEsIHlBLCB4QiwgeUIsIHhQLCB5UCkpCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBuYWxlenkgZG8gb2RjaW5rYSBBQi4iIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiUHVua3QgUCBuaWUgbmFsZXp5IGRvIG9kY2lua2EgQUIuIiA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9