Advertisement
MeehoweCK

Untitled

Mar 20th, 2021
739
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.96 KB | None | 0 0
  1. // zadanie 1.
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. const double PI = 3.14159;
  7.  
  8. class Okrag
  9. {
  10.     double x;
  11.     double p;
  12. public:
  13.     double get_x() const;
  14.     double get_p() const;
  15.     void set_x(double);
  16.     void set_p(double);
  17.     double obwod() const;
  18. };
  19.  
  20. double Okrag::get_x() const
  21. {
  22.     return x;
  23. }
  24.  
  25. double Okrag::get_p() const
  26. {
  27.     return p;
  28. }
  29.  
  30. void Okrag::set_x(double nx)
  31. {
  32.     x = nx;
  33. }
  34.  
  35. void Okrag::set_p(double np)
  36. {
  37.     p = np;
  38. }
  39.  
  40. // funkcja obliczająca długość (obwód) okręgu
  41. double Okrag::obwod() const
  42. {
  43.     return 2 * PI * p;
  44. }
  45.  
  46. bool okregi_wewnatrz(Okrag A, Okrag B)
  47. {
  48.     double d = A.get_x() - B.get_x();
  49.     if(d < 0)
  50.         d = -d;
  51.     double roznica = A.get_p() - B.get_p();
  52.     if(roznica < 0)
  53.         roznica = -roznica;
  54.     if(d <= roznica)
  55.         return true;
  56.     return false;
  57. }
  58.  
  59. int main()
  60. {
  61.     Okrag A, B;
  62.     double x, p;
  63.     cout << "Podaj polozenie (X) pierwszego okregu: ";
  64.     cin >> x;
  65.     cout << "Podaj promien pierwszego okregu: ";
  66.     cin >> p;
  67.     A.set_x(x);
  68.     A.set_p(p);
  69.     cout << "Podaj polozenie (X) drugiego okregu: ";
  70.     cin >> x;
  71.     cout << "Podaj promien drugiego okregu: ";
  72.     cin >> p;
  73.     B.set_x(x);
  74.     B.set_p(p);
  75.     if(okregi_wewnatrz(A, B))
  76.         cout << "Wnioski: Te dwa okregi zawieraja sie w sobie\n";
  77.     else
  78.         cout << "Wnioski: Te dwa okregi nie zawieraja sie w sobie\n";
  79.     return 0;
  80. }
  81.  
  82. // zadanie 2.
  83. #include <iostream>
  84.  
  85. using namespace std;
  86.  
  87. const double PI = 3.14159;
  88.  
  89. class Okrag
  90. {
  91.     double x;
  92.     double p;
  93. public:
  94.     Okrag(double, double);
  95.     ~Okrag();
  96.     double get_x() const;
  97.     double get_p() const;
  98.     void set_x(double);
  99.     void set_p(double);
  100.     double obwod() const;
  101. };
  102.  
  103. Okrag::Okrag(double nx, double np) : x(nx), p(np)
  104. {
  105.     cout << "Jestem okregiem z punktu (" << nx << ",0) o promieniu " << np << ".\n";
  106. }
  107.  
  108. Okrag::~Okrag()
  109. {
  110.     cout << "Okrag z punktu (" << x << ",0) o dlugosci " << obwod() << " znika.\n";
  111. }
  112.  
  113. double Okrag::get_x() const
  114. {
  115.     return x;
  116. }
  117.  
  118. double Okrag::get_p() const
  119. {
  120.     return p;
  121. }
  122.  
  123. void Okrag::set_x(double nx)
  124. {
  125.     x = nx;
  126. }
  127.  
  128. void Okrag::set_p(double np)
  129. {
  130.     p = np;
  131. }
  132.  
  133. double Okrag::obwod() const
  134. {
  135.     return 2 * PI * p;
  136. }
  137.  
  138. int ile_razy(Okrag* A, Okrag* B)
  139. {
  140.     double obw_a = A->get_p();
  141.     double obw_b = B->get_p();
  142.  
  143.     if(obw_a > obw_b)
  144.         return obw_a / obw_b;
  145.     return obw_b / obw_a;
  146. }
  147.  
  148. int main()
  149. {
  150.     double x, p;
  151.     cout << "Podaj polozenie (X) pierwszego okregu: ";
  152.     cin >> x;
  153.     cout << "Podaj promien pierwszego okregu: ";
  154.     cin >> p;
  155.     Okrag* A = new Okrag(x, p);
  156.     cout << "Podaj polozenie (X) drugiego okregu: ";
  157.     cin >> x;
  158.     cout << "Podaj promien drugiego okregu: ";
  159.     cin >> p;
  160.     Okrag* B = new Okrag(x, p);
  161.  
  162.     cout << "Obwod jednego okregu miesci sie " << ile_razy(A, B) << " razy w obwodzie drugiego okregu.\n";
  163.     delete A;
  164.     delete B;
  165.     return 0;
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement