fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct punkt
  6. {
  7. float x, y;
  8. };
  9.  
  10. // Funkcja wczytująca współrzędne punktu
  11. void wczytaj_punkt(punkt &p)
  12. {
  13. cout << "Podaj wspolrzedna x: ";
  14. cin >> p.x;
  15. cout << "Podaj wspolrzedna y: ";
  16. cin >> p.y;
  17. }
  18.  
  19. // Funkcja sprawdzająca, czy punkty leżą po tej samej stronie prostej
  20. bool po_tej_samej_stronie(float A, float B, float C, punkt P1, punkt P2)
  21. {
  22. // Obliczamy wartości równania ogólnego Ax + By + C
  23. float wartosc1 = A * P1.x + B * P1.y + C;
  24. float wartosc2 = A * P2.x + B * P2.y + C;
  25.  
  26. // Jeżeli iloczyn ma znak dodatni lub któryś punkt leży na prostej (==0),
  27. // uznajemy że leżą po tej samej stronie lub na prostej
  28. if (wartosc1 * wartosc2 >= 0)
  29. return true;
  30. else
  31. return false;
  32. }
  33.  
  34. int main()
  35. {
  36. float A, B, C;
  37.  
  38. cout << "Podaj wspolczynniki A, B, C prostej (Ax + By + C = 0): ";
  39. cin >> A >> B >> C;
  40.  
  41. punkt P1, P2;
  42.  
  43. cout << "Wprowadz wspolrzedne punktu P1:" << endl;
  44. wczytaj_punkt(P1);
  45.  
  46. cout << "Wprowadz wspolrzedne punktu P2:" << endl;
  47. wczytaj_punkt(P2);
  48.  
  49. if (po_tej_samej_stronie(A, B, C, P1, P2))
  50. cout << "Punkty leza po tej samej stronie lub na prostej." << endl;
  51. else
  52. cout << "Punkty nie leza po tej samej stronie ani na prostej." << endl;
  53.  
  54. return 0;
  55. }
Success #stdin #stdout 0.01s 5320KB
stdin
1 -1 0 2 2 3 5
stdout
Podaj wspolczynniki A, B, C prostej (Ax + By + C = 0): Wprowadz wspolrzedne punktu P1:
Podaj wspolrzedna x: Podaj wspolrzedna y: Wprowadz wspolrzedne punktu P2:
Podaj wspolrzedna x: Podaj wspolrzedna y: Punkty leza po tej samej stronie lub na prostej.