Facebook
From Sweltering Goat, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 115
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #define PI 3,141592
  5.  
  6. using namespace std;
  7.  
  8. class Prostokat;
  9.  
  10. class Punkt
  11. {
  12. public:
  13.         Punkt();
  14.         ~Punkt();
  15.         void wyswietl();
  16.         bool czyWspolne(Prostokat *prostokat);
  17.         void setX(double);
  18.         void setY(double);
  19.         double getX();
  20.         double getY();
  21.         friend void ustawXY(Punkt*, double, double);
  22.  
  23. private:
  24.         double x;
  25.         double y;
  26. };
  27.  
  28. class Prostokat
  29. {
  30. public:
  31.         Prostokat();
  32.         Prostokat(double, double, double, double);
  33.         ~Prostokat();
  34.         double getSzer();
  35.         double getWys();
  36.         void setSzer(double);
  37.         void setWys(double);
  38.  
  39. private:
  40.         Punkt lewy_dolny;
  41.         double szerokosc;
  42.         double wysokosc;
  43. };
  44.  
  45. class Kolo
  46. {
  47. public:
  48.         Kolo();
  49.         ~Kolo();
  50.         bool czyStyczne(Kolo*);
  51.         void setR(int);
  52.         int getR();
  53.  
  54. private:
  55.         Punkt srodek;
  56.         int promien;
  57. };
  58.  
  59. void ustawXY(Punkt*, double, double);
  60. void pokazInfo(Prostokat*);
  61. void pokazInfo(Kolo*);
  62. double odlegloscPunktow(Punkt*, Punkt*);
  63.  
  64. int main()
  65. {
  66.         Punkt p1;
  67.         Punkt p2;
  68.         Punkt p3;
  69.         ustawXY(&p1, 5, 2);
  70.         ustawXY(&p2, -7, -7);
  71.         ustawXY(&p3, 1.25, 2.5);
  72.         p1.wyswietl();
  73.         p2.wyswietl();
  74.         p3.wyswietl();
  75.  
  76.         Prostokat prost1(13, 10, -8, -6);
  77.  
  78.         system("pause");
  79.         return 0;
  80. }
  81.  
  82. Kolo::Kolo()
  83. {
  84.         srodek.setX(0);
  85.         srodek.setY(0);
  86.         setR(2);
  87. }
  88.  
  89. Kolo::~Kolo()
  90. {
  91. }
  92.  
  93. bool Kolo::czyStyczne(Kolo* kolo)
  94. {       //styczne wewnetrznie
  95.         if (odlegloscPunktow(&this->srodek, &kolo->srodek) == abs(this->getR - kolo->getR))
  96.                 return true;
  97.         //styczne zewnetrznie
  98.         else if (odlegloscPunktow(&this->srodek, &kolo->srodek) == (this->getR + kolo->getR()))
  99.                 return true;
  100.         else
  101.                 return false;
  102. }
  103.  
  104. void Kolo::setR(int promien)
  105. {
  106.         this->promien = promien;
  107. }
  108.  
  109. int Kolo::getR()
  110. {
  111.         return promien;
  112. }
  113.  
  114. Prostokat::Prostokat()
  115. {
  116.         lewy_dolny.setX(0);
  117.         lewy_dolny.setY(0);
  118.         setSzer(5.0);
  119.         setWys(5.0);
  120. }
  121.  
  122. Prostokat::Prostokat(double szer, double wys, double x, double y)
  123. {
  124.         this->lewy_dolny.setX(x);
  125.         this->lewy_dolny.setY(y);
  126.         setSzer(szer);
  127.         setWys(wys);
  128. }
  129.  
  130. Prostokat::~Prostokat()
  131. {
  132. }
  133.  
  134. double Prostokat::getSzer()
  135. {
  136.         return szerokosc;
  137. }
  138.  
  139. double Prostokat::getWys()
  140. {
  141.         return wysokosc;
  142. }
  143.  
  144. void Prostokat::setSzer(double szerokosc)
  145. {
  146.         this->szerokosc = szerokosc;
  147. }
  148.  
  149. void Prostokat::setWys(double wysokosc)
  150. {
  151.         this->wysokosc = wysokosc;
  152. }
  153.  
  154. Punkt::Punkt()
  155. {
  156.         setX(0);
  157.         setY(0);
  158. }
  159.  
  160. Punkt::~Punkt()
  161. {
  162. }
  163.  
  164. void Punkt::wyswietl()
  165. {
  166.         cout << "X: " << getX() << endl;
  167.         cout << "Y: " << getY() << endl;
  168. }
  169.  
  170. bool Punkt::czyWspolne(Prostokat *prostokat)
  171. {
  172.         return false;
  173. }
  174.  
  175. void Punkt::setX(double x)
  176. {
  177.         this->x = x;
  178. }
  179.  
  180. void Punkt::setY(double y)
  181. {
  182.         this->y = y;
  183. }
  184.  
  185. double Punkt::getX()
  186. {
  187.         return x;
  188. }
  189.  
  190. double Punkt::getY()
  191. {
  192.         return y;
  193. }
  194.  
  195. void ustawXY(Punkt* punkt, double x, double y)
  196. {
  197.         punkt->setX(x);
  198.         punkt->setY(y);
  199. }
  200.  
  201. void pokazInfo(Prostokat* prostokat)
  202. {
  203.         cout << "X: ";
  204.         cout << "Y: ";
  205.         cout << "Pole: " << prostokat->getSzer() * prostokat->getWys() << endl;
  206. }
  207.  
  208. void pokazInfo(Kolo* kolo)
  209. {
  210.         cout << "X :";
  211.         cout << "Y: ";
  212.         cout << "R: " << kolo->getR() << endl;
  213.         cout << "Pole: " << PI * (kolo->getR() * kolo->getR());
  214.         cout << endl;
  215. }
  216.  
  217. double odlegloscPunktow(Punkt* p1, Punkt* p2)
  218. {
  219.         double d;
  220.         double x1 = p2->getX() - p1->getX();
  221.         double y1 = p2->getY() - p1->getY();
  222.         d = sqrt((x1 * x1) + (y1 * y1));
  223.  
  224.         return d;
  225. }