ivana_andreevska

Untitled

May 8th, 2021
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. class Igracka {
  7. public:
  8.     virtual double getVolumen() = 0;
  9.     virtual double getMasa() = 0;
  10. };
  11.  
  12. class Forma {
  13. protected:
  14.     char* boja;
  15.     int gustina;
  16. public:
  17.     Forma(char* b = "", int g = 0)
  18.     {
  19.         boja = new char[strlen(b) + 1];
  20.         strcpy(boja, b);
  21.         gustina = g;
  22.     }
  23.     ~Forma(){
  24.         delete[]boja;
  25.     }
  26. };
  27.  
  28.  
  29. class Kocka :public Forma, public Igracka
  30. {
  31. private:
  32.     int visina;
  33.     int sirina;
  34.     int dlabocina;
  35. public:
  36.     Kocka(char* b = "", int g = 0, int v = 0, int s = 0, int d = 0) :Forma(b, g)
  37.     {
  38.         visina = v;
  39.         sirina = s;
  40.         dlabocina = d;
  41.     }
  42.     double getVolumen()
  43.     {
  44.         return visina * sirina * dlabocina;
  45.     }
  46.     double getMasa()
  47.     {
  48.         return getVolumen() * gustina;
  49.     }
  50. };
  51.  
  52. class Topka :public Forma, public Igracka
  53. {
  54. private:
  55.     int radius;
  56. public:
  57.     Topka(char* b = "", int g = 0, int v = 0, int s = 0, int d = 0,int r=0):Forma(b,g)
  58.     {
  59.         radius=r;
  60.     }
  61.     double getVolumen()
  62.     {
  63.         return 3.14 * 4 / 3 * radius * radius * radius;
  64.     }
  65.     double getMasa()
  66.     {
  67.         return getVolumen() * gustina;
  68.     }
  69.  
  70. };
  71. int main()
  72. {
  73.     int n;
  74.     int p;
  75.     cin >> n;
  76.     char boja[50];
  77.     int gustina, radius, visina, sirina, dlabocina;
  78.  
  79.     Igracka** kupce = new Igracka * [n];
  80.     for (int i = 0; i < n; i++)
  81.     {
  82.         cin >> p;
  83.         if (p == 1)
  84.         {
  85.             cin >> boja >> gustina >> radius;
  86.             kupce[i] = new Topka(boja, gustina, radius);
  87.         }
  88.         if (p == 2)
  89.         {
  90.             cin >> boja >> visina >> sirina >> dlabocina;
  91.             kupce[i] = new Kocka(boja, visina, sirina, dlabocina);
  92.         }
  93.     }
  94.         cin >> boja >> gustina >> visina >> sirina >> dlabocina;
  95.         Kocka petra(boja, gustina, visina, sirina, dlabocina);
  96.  
  97.         double vkp = 0;
  98.         for (int i = 0; i < n; i++)
  99.         {
  100.             vkp = vkp + kupce[i]->getMasa();
  101.         }
  102.  
  103.         if (vkp > petra.getMasa())
  104.             cout << "DA" << endl;
  105.         else
  106.             cout << "NE" << endl;
  107.  
  108.         double maxvolumen = kupce[0]->getVolumen();
  109.         for (int i = 0; i < n; i++)
  110.         {
  111.             if (maxvolumen < kupce[i]->getVolumen())
  112.             {
  113.                 maxvolumen = kupce[i]->getVolumen();
  114.             }
  115.         }
  116.  
  117.         cout << "Razlikata e :" << abs(maxvolumen - petra.getVolumen());
  118.     return 0;
  119. }
  120.  
Advertisement
Add Comment
Please, Sign In to add comment