Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cmath>
- using namespace std;
- class Igrachka {
- public:
- virtual float getVolumen() = 0;
- virtual float getMasa() = 0;
- virtual float getPlostina() = 0;
- virtual ~Igrachka() {}
- };
- class Forma{
- protected:
- char boja[100];
- int gustina;
- public:
- Forma(const char*boja=" ",int gustina=0)
- {
- strcpy(this->boja,boja);
- this->gustina=gustina;
- }
- };
- class Kocka:public Igrachka,public Forma
- {
- private:
- int a,b,c;//a=visina, b=sirina c=dlabocina
- public:
- Kocka(const char*boja=" ",int gustina=0,int a=0,int b=0,int c=0):Forma(boja,gustina)
- {
- this->a=a;
- this->b=b;
- this->c=c;
- }
- float getPlostina()
- {
- return 2*(a*b+b*c+c*a);
- }
- float getVolumen()
- {
- return a*b*c;
- }
- float getMasa()
- {
- return getVolumen()*gustina;
- }
- };
- class Topka:public Igrachka,public Forma
- {
- private:
- int rad;
- public:
- Topka(const char*boja=" ",int gustina=0,int rad=0):Forma(boja,gustina)
- {
- this->rad=rad;
- }
- float getPlostina()
- {
- return (float) 4*3.14*rad*rad;
- }
- float getVolumen()
- {
- return (4.0/3) * 3.14 * rad * rad * rad;
- }
- float getMasa()
- {
- return getVolumen()*gustina;
- }
- };
- void proverka(float masa_petra,Igrachka **kupce,int n)
- {
- float vk=0;
- for(int i=0;i<n;i++)
- {
- vk+=kupce[i]->getMasa();
- }
- if(vk<masa_petra)
- cout<<"NE"<<endl;
- else
- cout<<"DA"<<endl;
- }
- float maxVolume(float volume_petra,Igrachka **kupce,int n)
- {
- float max=-9999.999;
- for(int i=0;i<n;i++)
- {
- if(max<kupce[i]->getVolumen())
- max=kupce[i]->getVolumen();
- }
- return max;
- }
- float minPlostina(float plostina_petra,Igrachka **kupce,int n)
- {
- float min=9999.999;
- for(int i=0;i<n;i++)
- {
- if(min>kupce[i]->getPlostina())
- min=kupce[i]->getPlostina();
- }
- return min;
- }
- int main(){
- int n;
- int control;
- int a,b,c,rad,gustina;
- char boja[30];
- cin>>n;
- Igrachka **kupche=new Igrachka*[n];
- for(int i=0;i<n;i++)
- {
- cin>>control;
- if(control==1)
- {
- cin>>boja>>gustina>>rad;
- kupche[i]=new Topka(boja,gustina,rad);
- }
- if(control==2)
- {
- cin>>boja>>gustina>>a>>b>>c;
- kupche[i]=new Kocka(boja,gustina,a,b,c);
- }
- }
- cin>>boja>>gustina>>a>>b>>c;
- Kocka petra(boja,gustina,a,b,c);
- proverka(petra.getMasa(),kupche,n);
- cout<<"Razlikata e: "<<abs(petra.getVolumen()-maxVolume(petra.getVolumen(),kupche,n))<<endl;
- cout<<"Razlikata e: "<<abs(petra.getPlostina()-minPlostina(petra.getPlostina(),kupche,n))<<endl;
- for(int i=0;i<n;i++)
- {
- delete kupche[i];
- }
- delete [] kupche;
- return 0;
- }
Add Comment
Please, Sign In to add comment