sandra0309

Untitled

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