fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct punkt
  5. {
  6. float x, y;
  7. };
  8.  
  9. // Funkcja wczytująca współrzędne punktu
  10. punkt wczytaj_punkt()
  11. {
  12. punkt p;
  13. cout << "Podaj wspolrzedna x: ";
  14. cin >> p.x;
  15. cout << "Podaj wspolrzedna y: ";
  16. cin >> p.y;
  17. return p;
  18. }
  19.  
  20. // Funkcja sprawdzająca czy punkty leżą po tej samej stronie prostej
  21. bool po_tej_samej_stronie(float A, float B, float C, punkt P1, punkt P2)
  22. {
  23. float wart1 = A * P1.x + B * P1.y + C;
  24. float wart2 = A * P2.x + B * P2.y + C;
  25.  
  26. // Jeżeli iloczyn ma znak dodatni lub 0 – punkty są po tej samej stronie lub na prostej
  27. if (wart1 * wart2 >= 0)
  28. return true;
  29. else
  30. return false;
  31. }
  32.  
  33. int main()
  34. {
  35. float A, B, C;
  36.  
  37. cout << "Podaj wspolczynniki prostej (A B C): ";
  38. cin >> A >> B >> C;
  39.  
  40. if (A == 0 && B == 0)
  41. {
  42. cout << "To nie jest poprawne rownanie prostej." << endl;
  43. return 0;
  44. }
  45.  
  46. cout << "Wczytaj punkt P1:" << endl;
  47. punkt P1 = wczytaj_punkt();
  48.  
  49. cout << "Wczytaj punkt P2:" << endl;
  50. punkt P2 = wczytaj_punkt();
  51.  
  52. if (po_tej_samej_stronie(A, B, C, P1, P2))
  53. cout << "Punkty leza po tej samej stronie lub na prostej." << endl;
  54. else
  55. cout << "Punkty nie leza po tej samej stronie." << endl;
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Podaj wspolczynniki prostej (A B C): Wczytaj punkt P1:
Podaj wspolrzedna x: Podaj wspolrzedna y: Wczytaj punkt P2:
Podaj wspolrzedna x: Podaj wspolrzedna y: Punkty leza po tej samej stronie lub na prostej.