amarek

18.06.2019.

Jul 17th, 2020
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.28 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3.  
  4. using namespace std;
  5.  
  6. template<typename Tip>
  7. int findLongestRepetition(Tip *array, int size)
  8. {
  9.     int longestRepetition = 0;
  10.     int repetitionForElement;
  11.     for (int i = 0; i < size; i++)
  12.     {
  13.         repetitionForElement = 1;
  14.         for (int j = i + 1; j < size; j++)
  15.         {
  16.             if (array[j] == array[j - 1])
  17.             {
  18.                 if (array[i] == array[j])
  19.                     repetitionForElement++;
  20.             }
  21.             else
  22.             {
  23.                 break;
  24.             }
  25.         }
  26.         if (repetitionForElement > longestRepetition)
  27.         {
  28.             longestRepetition = repetitionForElement;
  29.         }
  30.     }
  31.     return longestRepetition;
  32. }
  33.  
  34. class FootballCard
  35. {
  36.     int mNumber;
  37.     string mName;
  38. public:
  39.     FootballCard() : mNumber(0), mName("Unknown") {};
  40.     FootballCard(int number, string name) : mNumber(number), mName(name){}
  41.     friend bool operator== (const FootballCard&, const FootballCard&);
  42. };
  43.  
  44. bool operator== (const FootballCard& f1, const FootballCard& f2) {
  45.     return f1.mNumber == f2.mNumber && f1.mName == f2.mName;
  46. }
  47.  
  48. class Cooler
  49. {
  50. protected:
  51.     double mDesiredTemperature;
  52.     double mDegreesPerHour;
  53.     double mLossFactor;
  54. public:
  55.     Cooler(double desiredTemperature, double degreesPerHour, double lossFactor) : mDesiredTemperature(desiredTemperature), mDegreesPerHour(degreesPerHour), mLossFactor(lossFactor)
  56.     {
  57.         if (mDegreesPerHour < 0)
  58.         {
  59.             mDegreesPerHour *= -1;
  60.         }
  61.         if (mLossFactor < 0 || mLossFactor > 0.2)
  62.         {
  63.             mLossFactor = 0.2;
  64.         }
  65.     }
  66.    
  67.     void setDesiredTemperature(double desiredTemperature)
  68.     {
  69.         mDesiredTemperature = desiredTemperature;
  70.     }
  71.  
  72.     friend ostream& operator<< (ostream&, Cooler&);
  73.  
  74.     double timeToCoolDown(double temperature)
  75.     {
  76.         if (temperature <= mDesiredTemperature)
  77.         {
  78.             return 0;
  79.         }
  80.         return temperature / (mDegreesPerHour * (1 - mLossFactor));
  81.     }
  82. };
  83.  
  84. ostream& operator<< (ostream& izlaz, Cooler& cooler)
  85. {
  86.     izlaz << cooler.mDesiredTemperature << ", " << cooler.mDegreesPerHour << ", " << cooler.mLossFactor << endl;
  87.     return izlaz;
  88. }
  89.  
  90. double timeToCoolDownAll(Cooler cooler, double *temperatures, int size)
  91. {
  92.     double maxTemp = temperatures[0];
  93.     for (int i = 0; i < size; i++)
  94.     {
  95.         if (temperatures[i] > maxTemp)
  96.         {
  97.             maxTemp = temperatures[i];
  98.         }
  99.     }
  100.     return cooler.timeToCoolDown(maxTemp);
  101. }
  102.  
  103. class TurboCooler : Cooler
  104. {
  105. private:
  106.     double mTurboFactor;
  107. public:
  108.     TurboCooler(double desiredTemperature, double degreesPerHour, double lossFactor, double turboFactor) : Cooler(desiredTemperature, degreesPerHour, lossFactor), mTurboFactor(turboFactor)
  109.     {
  110.         if (mTurboFactor < 1.1 || mTurboFactor > 2)
  111.         {
  112.             mTurboFactor = 1.1;
  113.         }
  114.     }
  115.  
  116.     void setTurboFactor(double turboFactor)
  117.     {
  118.         mTurboFactor = turboFactor;
  119.     }
  120.  
  121.     double timeToCoolDown(double temperature)
  122.     {
  123.         double temperatureAfterTwoHours = (mDegreesPerHour * mTurboFactor) * 2;
  124.         return timeToCoolDown(temperature - temperatureAfterTwoHours);
  125.     }
  126. };
  127.  
  128. int main()
  129. {
  130.     int array[5] = { 1,2,2,3,2};
  131.     cout << findLongestRepetition(array, 5);
  132.     cout << endl;
  133.  
  134.     FootballCard data[] = { FootballCard(), FootballCard(1, "Hart"), FootballCard(10, "Modric"), FootballCard(10, "Modric") };
  135.     cout << findLongestRepetition(data, 4) << endl;
  136.  
  137.     Cooler yeti(6.8, 1.7, 0.02);
  138.     yeti.setDesiredTemperature(5.0);
  139.     cout << "In stock: " << yeti << "3pcs" << endl;
  140.  
  141.     cout << yeti.timeToCoolDown(30) << endl;
  142.  
  143.     system("pause");
  144. }
Advertisement
Add Comment
Please, Sign In to add comment