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;
- //дополнително барање 1
- virtual float getPlostina()=0;
- };
- class Forma {
- protected:
- char boja[100];
- int gustina;
- public:
- // да се имплементираат потребните методи
- Forma (){}
- Forma (char *boja, int gustina){
- strcpy(this->boja, boja);
- this->gustina=gustina;
- }
- };
- class Topka : public Forma, public Igrachka{
- private:
- int radius;
- public:
- Topka(){}
- Topka (char *boja, int gustina, int radius):Forma (boja, gustina) {
- this->radius=radius;
- }
- float getVolumen(){
- return ((4.0/3.0)*3.14*radius*radius*radius);
- }
- float getMasa(){
- return getVolumen()*gustina;
- }
- float getPlostina(){
- return (4*3.14*radius*radius);
- }
- ~Topka (){}
- };
- class Kocka : public Forma, public Igrachka{
- private:
- int visina;
- int sirina;
- int dlabocina;
- public:
- Kocka (){}
- Kocka (char *boja, int gustina, int visina, int sirina, int dlabocina):Forma (boja, gustina) {
- this->visina=visina;
- this->sirina=sirina;
- this->dlabocina=dlabocina;
- }
- float getVolumen(){
- return (visina*sirina*dlabocina);
- }
- float getMasa(){
- return getVolumen()*gustina;
- }
- float getPlostina(){
- return (2*visina*sirina+2*dlabocina*sirina+2*dlabocina*visina);
- }
- ~Kocka (){}
- };
- void da_ne (Igrachka **igra, int n, float masa){
- int i;
- float vk=0;
- for (i=0; i<n; i++){
- vk+=igra[i]->getMasa();
- }
- if (vk>masa)
- cout<<"DA"<<endl;
- else
- cout<<"NE"<<endl;
- }
- float maks(int n, Igrachka **igra)
- {
- float max=0;
- int i;
- for(i=0; i<n; i++)
- if(igra[i]->getVolumen()>max)
- max=igra[i]->getVolumen();
- return max;
- }
- float mini(int n, Igrachka **igra){
- float min=igra[0]->getPlostina();
- int i;
- for (i=0; i<n; i++){
- if (min>igra[i]->getPlostina())
- min=igra[i]->getPlostina();
- }
- return min;
- }
- int main(){
- //vnesi informacii za kupche
- int n, tip, gustina, visina, sirina, dlabocina, radius, i;
- char boja[100];
- cin>>n;
- Igrachka **kupche;
- kupche=new Igrachka*[n];
- for (i=0; i<n; i++){
- cin>>tip;
- if (tip==1){
- cin>>boja>>gustina>>radius;
- kupche[i]=new Topka (boja, gustina, radius);
- }
- else if (tip==2){
- cin>>boja>>gustina>>visina>>sirina>>dlabocina;
- kupche[i]=new Kocka(boja, gustina, visina, sirina, dlabocina);
- }
- }
- //vnesi informacii za igrachkata na Petra
- cin>>boja>>gustina>>visina>>sirina>>dlabocina;
- Kocka petra(boja, gustina, visina, sirina, dlabocina);
- //baranje 1
- da_ne (kupche, n, petra.getMasa());
- //baranje 2
- cout<<"Razlikata e: "<<abs(petra.getVolumen()-maks(n, kupche))<<endl;
- //дополнително барање 2
- cout<<"Razlikata e: "<<abs(petra.getPlostina()-mini(n, kupche))<<endl;
- for (i=0; i<n; i++){
- delete kupche[i];
- }
- delete [] kupche;
- return 0;
- }
Add Comment
Please, Sign In to add comment