Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <utility>
- #include <string>
- using namespace std;
- class Nanobot{
- private:
- string model;
- int vijek_;
- int vrijeme_;
- public:
- static vector<Nanobot*> popis;
- static vector<pair<double,double>> sustavi;
- Nanobot(string m="",int v=0,int vr=0){
- model=m;
- vijek_=v;
- vrijeme_=vr;
- popis.push_back(this);
- }
- string ime() const{ return model; }
- int vijek() const {return vijek_; }
- int vrijeme() const{return vrijeme_;}
- static int ukupnoStvorenih() {
- return popis.size();
- }
- void umanji_vijek() {vijek_--;}
- void uvecaj_vrijeme(){vrijeme_++;}
- };
- vector<Nanobot*> Nanobot::popis;
- vector<pair<double,double>> Nanobot::sustavi;
- class X5 : public Nanobot {
- private:
- int brzina_;
- public:
- X5(string m="", int v=0, int vr= 0, int b=0) : Nanobot(m,v,vr) { brzina_= b; }
- int brzina() { return brzina_;}
- };
- class X51: public X5 {
- public:
- X51(string m = "X51", int v=17, int vr= 0, int b=6) : X5(m,v,vr,b) {}
- };
- class X52 : public X5{
- public:
- X52(string m="X52", int v=18, int vr= 0, int b=7) : X5(m,v,vr,b) {}
- };
- void simulirajSustav(int dana, int brojSustava, int x51=1, int x52=1)
- {
- int temp1=0, temp2=0;
- vector<X51> jedinice(x51); //mogao umanjiti dupliciranje koda
- vector<X52> dvice(x52); // da si stavio vector<X5> ?
- while(dana && x51< 0.8*(x51+x52) && x51 < 0.8*(x51+x52))
- {
- dana--;
- temp1 ++;
- temp2 ++;
- // smanjiti trajanje svim cipovima za dan
- // uvecaj vrijeme
- for(int i=0; i<jedinice.size();++i)
- {
- jedinice[i].umanji_vijek();
- jedinice[i].uvecaj_vrijeme(); //mozda samo uvecavati vrijeme i usporedivati sa vijekom?
- }
- for(int i=0; i<jedinice.size();++i)
- {
- jedinice[i].umanji_vijek(); //isto kao gore
- jedinice[i].uvecaj_vrijeme();
- }
- if (temp1==6) {
- //prodi kroz jedinice i stvori jos X51
- int duljina=jedinice.size();
- for(int i = 0; i< duljina; ++i)
- {
- if (jedinice[i].vijek()>=0)
- {
- X51 privremeni_x51;
- jedinice.push_back(privremeni_x51);
- }
- }
- temp1=0;
- }
- else if(temp2==7){
- //prodi dvice i stvori jos X52
- int duljina=dvice.size();
- for(int i = 0; i< duljina; ++i)
- {
- if (dvice[i].vijek()>=0)
- {
- X52 privremeni_x52;
- dvice.push_back(privremeni_x52);
- }
- }
- temp2=0;
- }
- x51=0;
- x52=0;
- for(int i=0; i<jedinice.size();++i)
- {
- if (jedinice[i].vrijeme()>=0) ++ x51;
- }
- for(int i=0; i<dvice.size();++i)
- {
- if (dvice[i].vrijeme()>=0) ++ x52;
- }
- }
- Nanobot::sustavi.push_back(make_pair((double) x51/(x52+x51),(double) x52/(x51+x52)));
- }
- void distribucijaSustava(int brojSustava)
- {
- cout << Nanobot::sustavi[brojSustava-1].first << " " << Nanobot::sustavi[brojSustava-1].second << endl;
- }
- int main(){
- simulirajSustav(100,1);
- simulirajSustav(100,2,1,2);
- distribucijaSustava(1);
- distribucijaSustava(2);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement