Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- #include <cmath>
- #define Pi 3.14
- using namespace std;
- class Igrachka {
- public:
- virtual float getVolumen() = 0;
- virtual float getMasa() = 0;
- };
- class Forma {
- protected:
- char boja[100];
- int gustina;
- public:
- Forma(char *boja = "", int gustina = 0) {
- strcpy(this->boja, boja);
- this->gustina = gustina;
- }
- };
- class Kocka : public Forma, public Igrachka {
- private:
- int visina;
- int sirina;
- int dlabocina;
- public:
- Kocka(char *boja = "", int gustina = 0, int visina = 0, int sirina = 0, int dlabocina = 0) : Forma(boja, gustina) {
- this->visina = visina;
- this->sirina = sirina;
- this->dlabocina = dlabocina;
- }
- float getMasa() {
- return getVolumen() * gustina;
- }
- float getVolumen() {
- return visina * sirina * dlabocina;
- }
- };
- class Topka : public Forma, public Igrachka {
- private:
- int radius;
- public:
- Topka(char *boja = "", int gustina = 0, int radius = 0) : Forma(boja, gustina) {
- this->radius = radius;
- }
- float getMasa() {
- return getVolumen() * gustina;
- }
- float getVolumen() {
- return Pi * 4/3 * pow(radius, 3);
- }
- };
- int main() {
- int n, c;
- char boja[100];
- int gustina, visina, sirina, dlabocina, radius;
- cin >> n;
- Igrachka **kupche = new Igrachka*[n];
- for(int i = 0; i < n; ++i) {
- cin >> c;
- switch(c) {
- case 1:
- cin >> boja >> gustina >> radius;
- kupche[i] = new Topka(boja, gustina, radius);
- break;
- case 2:
- cin >> boja >> gustina >> visina >> sirina >> dlabocina;
- kupche[i] = new Kocka(boja, gustina, visina, sirina, dlabocina);
- break;
- }
- }
- cin >> boja >> gustina >> visina >> sirina >> dlabocina;
- Kocka petra(boja, gustina, visina, sirina, dlabocina);
- float masa_all = 0;
- for(int i = 0; i < n; ++i) {
- masa_all += kupche[i]->getMasa();
- }
- if(masa_all > petra.getMasa())
- cout << "DA" << endl;
- else
- cout << "NE" << endl;
- float max_volumen = 0;
- for(int i = 0; i < n; ++i) {
- if(max_volumen < kupche[i]->getVolumen())
- max_volumen = kupche[i]->getVolumen();
- }
- float razlika;
- razlika = abs(max_volumen - petra.getVolumen());
- cout << "Razlikata e: " << razlika << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement