fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct punkt
  6. {
  7. float x, y;
  8. };
  9.  
  10. // Funkcja wczytująca punkt (tu przypisanie na stałe)
  11. void wczytaj_punkt(punkt &p, float x, float y)
  12. {
  13. p.x = x;
  14. p.y = y;
  15. }
  16.  
  17. // Funkcja sprawdzająca, czy punkty leżą po tej samej stronie prostej
  18. bool po_tej_samej_stronie(float A, float B, float C, punkt P1, punkt P2)
  19. {
  20. // Obliczamy wartości równania ogólnego dla obu punktów
  21. float wartosc1 = A * P1.x + B * P1.y + C; // A*xP1 + B*yP1 + C
  22. float wartosc2 = A * P2.x + B * P2.y + C; // A*xP2 + B*yP2 + C
  23.  
  24. // Jeżeli iloczyn >= 0, punkty są po tej samej stronie lub na prostej
  25. if (wartosc1 * wartosc2 >= 0)
  26. return true;
  27. else
  28. return false;
  29. }
  30.  
  31. int main()
  32. {
  33. // Współczynniki prostej Ax + By + C = 0
  34. float A = 1;
  35. float B = 1;
  36. float C = 0;
  37.  
  38. punkt P1, P2;
  39.  
  40. // Współrzędne punktów wpisane na stałe
  41. wczytaj_punkt(P1, 1, 1);
  42. wczytaj_punkt(P2, -1, -1);
  43.  
  44. if (po_tej_samej_stronie(A, B, C, P1, P2))
  45. cout << "Punkty leza po tej samej stronie lub na prostej." << endl;
  46. else
  47. cout << "Punkty nie leza po tej samej stronie ani na prostej." << endl;
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
Punkty nie leza po tej samej stronie ani na prostej.