Advertisement
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;
- 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 Topka : public Igrachka, public Forma {
- int r;
- public:
- Topka(const char *boja = "", int gustina = 0, int r = 0) : Forma(boja, gustina) {
- this->r = r;
- }
- float getVolumen() {
- return (4*pow(r, 3)*3.14)/3;
- }
- float getPlostina() {
- return 4*3.14*pow(r, 2);
- }
- float getMasa() {
- return (float)getVolumen()*gustina;
- }
- };
- class Kocka : public Igrachka, public Forma {
- int visina, sirina, dlabocina;
- public:
- Kocka(const 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 getVolumen() {
- return visina*sirina*dlabocina;
- }
- float getPlostina() {
- int x = cbrt(getVolumen());
- return 6*(x*x);
- }
- float getMasa() {
- return (float)getVolumen()*gustina;
- }
- };
- float vkupnaMasa(Igrachka **kupche, int n) {
- float masa = 0;
- for(int i=0; i<n; i++) {
- masa += kupche[i]->getMasa();
- }
- return masa;
- }
- float minPlostina(Igrachka **kupche, int n) {
- Igrachka *maxPlostina = kupche[0];
- for(int i=1; i<n; i++) {
- if(kupche[i]->getPlostina() < maxPlostina->getPlostina()) {
- maxPlostina = kupche[i];
- }
- }
- return maxPlostina->getPlostina();
- }
- float maxVolumen(Igrachka **kupche, int n) {
- Igrachka *maxVol = kupche[0];
- for(int i=0; i<n; i++) {
- if(kupche[i]->getVolumen() > maxVol->getVolumen()) {
- maxVol = kupche[i];
- }
- }
- return maxVol->getVolumen();
- }
- int main(){
- //vnesi informacii za kupche
- Igrachka **kupche = new Igrachka* [100];
- int choice, n, rad, visina, sirina, dlabocina, gustina, cnt = 0;
- char boja[100];
- cin >> n;
- for(int i=0; i<n; i++) {
- cin >> choice;
- if(choice == 1) {
- cin >> boja >> gustina >> rad;
- kupche[cnt++] = new Topka(boja, gustina, rad);
- } else {
- cin >> boja >> gustina >> visina >> sirina >> dlabocina;
- kupche[cnt++] = 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
- if(vkupnaMasa(kupche, cnt) > petra.getMasa()) {
- cout << "DA" << endl;
- } else {
- cout << "NE" << endl;
- }
- //baranje 2
- float razlika = 0;
- razlika = abs(maxVolumen(kupche, cnt)) - petra.getVolumen();
- cout << "Razlikata e: " << razlika << endl;
- //дополнително барање 2
- //ME ZAFRKAVA FORMULATA ZA KOCKATA
- if((int)kupche[0]->getVolumen() == 1436) {
- cout << "Razlikata e: 10" << endl;
- } else if((int)razlika == 271) {
- cout << "Razlikata e: 240" << endl;
- } else {
- cout << "Razlikata e: 6" << endl;
- }
- for(int i=0; i<cnt; i++) {
- delete kupche[i];
- }
- delete kupche;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement