fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. // Definicja struktury punkt
  6. struct punkt
  7. {
  8. float x;
  9. float y;
  10. };
  11.  
  12. // Funkcja wczytująca współrzędne punktu
  13. punkt wczytaj_punkt(float px, float py)
  14. {
  15. punkt p;
  16. p.x = px;
  17. p.y = py;
  18. return p;
  19. }
  20.  
  21. // Funkcja sprawdzająca, czy dwa punkty leżą po tej samej stronie prostej A*x + B*y + C = 0
  22. bool po_stronie(punkt p1, punkt p2, float A, float B, float C)
  23. {
  24. // Obliczamy wartości funkcji prostej dla obu punktów
  25. float f1 = A * p1.x + B * p1.y + C;
  26. float f2 = A * p2.x + B * p2.y + C;
  27.  
  28. // Jeśli iloczyn f1*f2 > 0, punkty leżą po tej samej stronie
  29. return (f1 * f2 > 0);
  30. }
  31.  
  32. int main()
  33. {
  34. // Dane punktów
  35. punkt P1 = wczytaj_punkt(1, 0);
  36. punkt P2 = wczytaj_punkt(1, 2);
  37. punkt P3 = wczytaj_punkt(-1, 0);
  38. punkt P4 = wczytaj_punkt(2, 2.2);
  39.  
  40. // Współczynniki prostej: A*x + B*y + C = 0
  41. float A = 1.0, B = -1.0, C = 0.0;
  42.  
  43. // Sprawdzamy pary punktów
  44. bool para1 = po_stronie(P1, P2, A, B, C);
  45. bool para2 = po_stronie(P3, P4, A, B, C);
  46.  
  47. if (para1 && para2)
  48. cout << "Punkty leżą po tej samej stronie prostej" << endl;
  49. else
  50. cout << "Punkty nie leza po tej samej stronie prostej" << endl;
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Punkty nie leza po tej samej stronie prostej