Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.48 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <utility>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. class Nanobot{
  9. private:
  10.     string model;
  11.     int vijek_;
  12.     int vrijeme_;
  13. public:
  14.     static vector<Nanobot*> popis;
  15.     static vector<pair<double,double>> sustavi;
  16.     Nanobot(string m="",int v=0,int vr=0){
  17.         model=m;
  18.         vijek_=v;
  19.         vrijeme_=vr;
  20.         popis.push_back(this);
  21.     }
  22.     string ime() const{ return model; }
  23.     int vijek() const {return vijek_; }
  24.     int vrijeme() const{return vrijeme_;}
  25.     static int ukupnoStvorenih() {
  26.         return popis.size();
  27.     }
  28.     void umanji_vijek() {vijek_--;}    
  29.     void uvecaj_vrijeme(){vrijeme_++;}
  30.  
  31. };
  32.  
  33. vector<Nanobot*> Nanobot::popis;
  34. vector<pair<double,double>> Nanobot::sustavi;
  35.  
  36. class X5 : public Nanobot {
  37. private:
  38.     int brzina_;
  39. public:
  40.     X5(string m="", int v=0, int vr= 0, int b=0) : Nanobot(m,v,vr) { brzina_= b; }
  41.     int brzina() { return brzina_;}
  42.  
  43.  
  44. };
  45.  
  46. class X51: public X5 {
  47.  
  48. public:
  49.     X51(string m = "X51", int v=17, int vr= 0, int b=6) : X5(m,v,vr,b) {}
  50.  
  51. };
  52.  
  53.  
  54. class X52 : public X5{
  55.  
  56. public:
  57.     X52(string m="X52", int v=18, int vr= 0, int b=7) : X5(m,v,vr,b) {}
  58.  
  59. };
  60.  
  61. void simulirajSustav(int dana, int brojSustava, int x51=1, int x52=1)
  62. {
  63.     int temp1=0, temp2=0;
  64.     vector<X51> jedinice(x51);   //mogao umanjiti dupliciranje koda
  65.     vector<X52> dvice(x52);      // da si stavio vector<X5> ?
  66.    
  67.     while(dana && x51< 0.8*(x51+x52) && x51 < 0.8*(x51+x52))
  68.     {
  69.         dana--;
  70.         temp1 ++;
  71.         temp2 ++;
  72.         // smanjiti trajanje svim cipovima za dan
  73.         // uvecaj vrijeme
  74.        
  75.         for(int i=0; i<jedinice.size();++i)
  76.         {
  77.             jedinice[i].umanji_vijek();
  78.             jedinice[i].uvecaj_vrijeme();       //mozda samo uvecavati vrijeme i usporedivati sa vijekom?
  79.         }
  80.        
  81.         for(int i=0; i<jedinice.size();++i)
  82.         {
  83.             jedinice[i].umanji_vijek();     //isto kao gore
  84.             jedinice[i].uvecaj_vrijeme();
  85.         }
  86.        
  87.         if (temp1==6) {
  88.             //prodi kroz jedinice i stvori jos X51
  89.             int duljina=jedinice.size();
  90.             for(int i = 0; i< duljina; ++i)
  91.             {
  92.                 if (jedinice[i].vijek()>=0)
  93.                 {
  94.                     X51 privremeni_x51;
  95.                     jedinice.push_back(privremeni_x51);
  96.                 }
  97.             }
  98.             temp1=0;
  99.         }
  100.         else if(temp2==7){
  101.             //prodi dvice i stvori jos X52
  102.             int duljina=dvice.size();
  103.             for(int i = 0; i< duljina; ++i)
  104.             {
  105.                 if (dvice[i].vijek()>=0)
  106.                 {
  107.                     X52 privremeni_x52;
  108.                     dvice.push_back(privremeni_x52);
  109.                 }
  110.             }
  111.             temp2=0;
  112.         }
  113.         x51=0;
  114.         x52=0;
  115.         for(int i=0; i<jedinice.size();++i)
  116.         {
  117.             if (jedinice[i].vrijeme()>=0) ++ x51;
  118.         }
  119.         for(int i=0; i<dvice.size();++i)
  120.         {
  121.             if (dvice[i].vrijeme()>=0) ++ x52;
  122.         }
  123.     }
  124.     Nanobot::sustavi.push_back(make_pair((double) x51/(x52+x51),(double) x52/(x51+x52)));
  125. }
  126.  
  127. void distribucijaSustava(int brojSustava)
  128. {
  129.     cout << Nanobot::sustavi[brojSustava-1].first << " " << Nanobot::sustavi[brojSustava-1].second << endl;
  130. }
  131.  
  132. int main(){
  133.  
  134.     simulirajSustav(100,1);
  135.     simulirajSustav(100,2,1,2);
  136.  
  137.     distribucijaSustava(1);
  138.     distribucijaSustava(2);
  139.     return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement