MeehoweCK

Untitled

May 3rd, 2021
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Punkt
  6. {
  7.     friend ostream& operator<<(ostream&, const Punkt&);
  8.     double X;
  9.     double Y;
  10. public:
  11.     Punkt(double, double);
  12. };
  13.  
  14. class Kwadrat
  15. {
  16.     friend Kwadrat operator+(const Kwadrat, const Kwadrat);
  17.     friend Kwadrat operator-(const Kwadrat, const Kwadrat);
  18.     friend ostream& operator<<(ostream&, const Kwadrat&);
  19.     Punkt LewoGora;
  20.     double Bok;
  21. public:
  22.     Kwadrat(Punkt, double);
  23. };
  24.  
  25. Punkt::Punkt(double x, double y) : X(x), Y(y) {}
  26.  
  27. Kwadrat operator+(const Kwadrat A, const Kwadrat B)
  28. {
  29.     return Kwadrat(A.LewoGora, A.Bok + B.Bok);
  30. }
  31.  
  32. Kwadrat operator-(const Kwadrat A, const Kwadrat B)
  33. {
  34.     double roznica = A.Bok - B.Bok;
  35.     if(roznica < 0)
  36.         roznica *= -1;
  37.     return Kwadrat(B.LewoGora, roznica);
  38. }
  39.  
  40. ostream& operator<<(ostream& os, const Punkt& p)
  41. {
  42.     os << '(' << p.X << ',' << p.Y << ')';
  43.     return os;
  44. }
  45.  
  46. ostream& operator<<(ostream& os, const Kwadrat& kw)
  47. {
  48.     os << "Kwadrat o lewym gornym boku " << kw.LewoGora << " i boku o dlugosci " << kw.Bok;
  49.     return os;
  50. }
  51.  
  52. Kwadrat::Kwadrat(Punkt p, double b) : LewoGora(p), Bok(b) {}
  53.  
  54. int main()
  55. {
  56.     Punkt A(3.2, 7.5);
  57.     Punkt B(-1.2, .5);
  58.     Kwadrat k1(A, 10.9);
  59.     Kwadrat k2(B, 1.7);
  60.     Kwadrat ks1 = k1 + k2;
  61.     cout << ks1 << endl;
  62.     Kwadrat ks2 = k2 + k1;
  63.     cout << ks2 << endl;
  64.     Kwadrat kr1 = k1 - k2;
  65.     cout << kr1 << endl;
  66.     Kwadrat kr2 = k2 - k1;
  67.     cout << kr2 << endl;
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment