fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Funkcja wczytująca punkt
  6. void wczytaj_punkt(double &x, double &y) {
  7. cin >> x >> y;
  8. }
  9.  
  10. // Funkcja sprawdzająca czy dwa punkty leżą po tej samej stronie prostej
  11. bool po_tej_samej_stronie(double x1, double y1, double x2, double y2) {
  12. // Współczynniki prostej A*x + B*y + C = 0
  13. double A = 1;
  14. double B = -1;
  15. double C = 0;
  16.  
  17. // Obliczenie wartości równania dla obu punktów
  18. double W1 = A * x1 + B * y1 + C;
  19. double W2 = A * x2 + B * y2 + C;
  20.  
  21. // Punkty są po tej samej stronie, jeśli iloczyn wartości ma znak dodatni
  22. return (W1 * W2 > 0);
  23. }
  24.  
  25. int main() {
  26. double xP1, yP1, xP2, yP2;
  27.  
  28. cout << "Podaj wspolrzedne pierwszego punktu (x y): ";
  29. wczytaj_punkt(xP1, yP1);
  30.  
  31. cout << "Podaj wspolrzedne drugiego punktu (x y): ";
  32. wczytaj_punkt(xP2, yP2);
  33.  
  34. if (po_tej_samej_stronie(xP1, yP1, xP2, yP2)) {
  35. cout << "punkty leza po tej samej stronie prostej" << endl;
  36. } else {
  37. cout << "punkty nie leza po tej samej stronie prostej" << endl;
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
Podaj wspolrzedne pierwszego punktu (x y): Podaj wspolrzedne drugiego punktu (x y): punkty nie leza po tej samej stronie prostej