Advertisement
Guest User

Untitled

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