Advertisement
deko96

Игротека

May 4th, 2015
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cmath>
  4. #define Pi 3.14
  5.  
  6. using namespace std;
  7.  
  8.  
  9. class Igrachka {
  10. public:
  11.     virtual float getVolumen() = 0;
  12.     virtual float getMasa() = 0;
  13. };
  14.  
  15. class Forma {
  16. protected:
  17.     char boja[100];
  18.     int gustina;
  19. public:
  20.     Forma(char *boja = "", int gustina = 0) {
  21.         strcpy(this->boja, boja);
  22.         this->gustina = gustina;
  23.     }
  24.  
  25. };
  26. class Kocka : public Forma, public Igrachka {
  27. private:
  28.     int visina;
  29.     int sirina;
  30.     int dlabocina;
  31. public:
  32.     Kocka(char *boja = "", int gustina = 0, int visina = 0, int sirina = 0, int dlabocina = 0) : Forma(boja, gustina) {
  33.         this->visina = visina;
  34.         this->sirina = sirina;
  35.         this->dlabocina = dlabocina;
  36.     }
  37.     float getMasa() {
  38.         return getVolumen() * gustina;
  39.     }
  40.     float getVolumen() {
  41.         return visina * sirina * dlabocina;
  42.     }
  43. };
  44. class Topka : public Forma, public Igrachka {
  45. private:
  46.     int radius;
  47. public:
  48.     Topka(char *boja = "", int gustina = 0, int radius = 0) : Forma(boja, gustina) {
  49.         this->radius = radius;
  50.     }
  51.     float getMasa() {
  52.         return getVolumen() * gustina;
  53.     }
  54.     float getVolumen() {
  55.         return Pi * 4/3 * pow(radius, 3);
  56.     }
  57. };
  58.  
  59.  
  60.  
  61. int main() {
  62.     int n, c;
  63.     char boja[100];
  64.     int gustina, visina, sirina, dlabocina, radius;
  65.     cin >> n;
  66.     Igrachka **kupche = new Igrachka*[n];
  67.  
  68.     for(int i = 0; i < n; ++i) {
  69.         cin >> c;
  70.         switch(c) {
  71.         case 1:
  72.             cin >> boja >> gustina >> radius;
  73.             kupche[i] = new Topka(boja, gustina, radius);
  74.             break;
  75.         case 2:
  76.             cin >> boja >> gustina >> visina >> sirina >> dlabocina;
  77.             kupche[i] = new Kocka(boja, gustina, visina, sirina, dlabocina);
  78.             break;
  79.         }
  80.     }
  81.     cin >> boja >> gustina >> visina >> sirina >> dlabocina;
  82.     Kocka petra(boja, gustina, visina, sirina, dlabocina);
  83.     float masa_all = 0;
  84.     for(int i = 0; i < n; ++i) {
  85.         masa_all += kupche[i]->getMasa();
  86.     }
  87.     if(masa_all > petra.getMasa())
  88.         cout << "DA" << endl;
  89.     else
  90.         cout << "NE" << endl;
  91.     float max_volumen = 0;
  92.     for(int i = 0; i < n; ++i) {
  93.         if(max_volumen < kupche[i]->getVolumen())
  94.             max_volumen = kupche[i]->getVolumen();
  95.     }
  96.     float razlika;
  97.     razlika = abs(max_volumen - petra.getVolumen());
  98.     cout << "Razlikata e: " << razlika << endl;
  99.  
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement