Advertisement
pieniakoskar

MinMax

Mar 19th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template <typename T>
  6. class MinMax
  7. {
  8. T min;
  9. T max;
  10. unsigned int rozmiar;
  11. T *wartosc;
  12.  
  13. public:
  14. MinMax(const int liczba);
  15. T & operator[](const unsigned int i);
  16. T Min();
  17. T Max();
  18. void Show();
  19. ~MinMax() { delete [] wartosc;}
  20. };
  21.  
  22. template <typename T>
  23. MinMax<T>::MinMax(const int liczba):
  24. min(0), max(0), rozmiar(liczba)
  25. {
  26. wartosc = new T[liczba];
  27. for(int i=0; i<liczba; ++i)
  28. {
  29. wartosc[i] = 0;
  30. }
  31. };
  32.  
  33. template <typename T>
  34. T & MinMax<T>::operator[](const unsigned int i)
  35. {
  36. if(i>=0 && i<rozmiar) return wartosc[i];
  37. cout << "\nPrzekroczony zakres! Zwrocono ostatni element.\n";
  38. return wartosc[rozmiar-1];
  39. }
  40.  
  41. template <typename T>
  42. T MinMax<T>::Min()
  43. {
  44. min=wartosc[0];
  45. for(unsigned int i=0; i<rozmiar; ++i)
  46. {
  47. if(wartosc[i] < min) min = wartosc[i];
  48. }
  49. return min;
  50. }
  51.  
  52. template <typename T>
  53. T MinMax<T>::Max()
  54. {
  55. max=wartosc[0];
  56. for(unsigned int i=0; i<rozmiar; ++i)
  57. {
  58. if(wartosc[i] > max) max = wartosc[i];
  59. }
  60. return max;
  61. }
  62.  
  63. template <typename T>
  64. void MinMax<T>::Show()
  65. {
  66. for(unsigned int i=0; i<rozmiar; ++i)
  67. {
  68. cout << wartosc[i] << " ";
  69. }
  70. cout << "\nMaksimum: " << Max()
  71. << "\nMinimum: " << Min() << endl;
  72. }
  73.  
  74. int main()
  75. {
  76.  
  77. MinMax<int> mmi(10);
  78. MinMax<float> mmf(10);
  79. MinMax<unsigned long int> mmuli(10);
  80.  
  81. mmi.Show();
  82.  
  83. mmi[2] = 2;
  84. mmi[5] = 5;
  85. mmi[0] = -5;
  86.  
  87. mmi.Show();
  88.  
  89.  
  90.  
  91. cout << "\n================================\n\n";
  92. cout << "Dla float: "; mmf.Show();
  93.  
  94. mmf[2] = 2.2222f;
  95. mmf[5] = 5.55555f;
  96. mmf[0] = -5.44421342f;
  97.  
  98. mmf.Show();
  99.  
  100. cin.get();
  101. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement