fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct Punkt {
  5. double x, y;
  6. };
  7.  
  8. // funkcja obliczająca wyznacznik
  9. double det(Punkt A, Punkt B, Punkt P) {
  10. return (B.x - A.x) * (P.y - A.y) - (B.y - A.y) * (P.x - A.x);
  11. }
  12.  
  13. // funkcja wczytująca punkt
  14. Punkt czytaj_punkt(string nazwa) {
  15. Punkt p;
  16. cout << "Podaj wspolrzedne punktu " << nazwa << " (x y): ";
  17. cin >> p.x >> p.y;
  18. return p;
  19. }
  20.  
  21. // funkcja sprawdzająca po której stronie leży punkt
  22. void punkt_po_stronie(Punkt A, Punkt B, Punkt P) {
  23. double wynik = det(A, B, P);
  24.  
  25. if (wynik > 0)
  26. cout << "Punkt P lezy po lewej stronie" << endl;
  27. else if (wynik < 0)
  28. cout << "Punkt P lezy po prawej stronie" << endl;
  29. else
  30. cout << "Punkt P lezy na prostej AB" << endl;
  31. }
  32.  
  33. int main() {
  34. Punkt A, B, P;
  35.  
  36. A = czytaj_punkt("A");
  37. B = czytaj_punkt("B");
  38. P = czytaj_punkt("P");
  39.  
  40. punkt_po_stronie(A, B, P);
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0.01s 5312KB
stdin
Standard input is empty
stdout
Podaj wspolrzedne punktu A (x y): Podaj wspolrzedne punktu B (x y): Podaj wspolrzedne punktu P (x y): Punkt P lezy na prostej AB