Advertisement
Guest User

Untitled

a guest
Dec 17th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. // oop5.cpp : Defines the entry point for the console application.
  2. /*Создать массив, размерность указать в качестве параметра (инициализация случайными числами). Создать шаблонные функции:
  3. ­ для сортировки массива по возрастанию
  4. ­ для вывода информации на экран.
  5. Явно перегрузить функцию сортировкидля типа double – сортировать по убыванию. Продемонстрировать работу с типами данных:int, double, char*/
  6.  
  7. #include "stdafx.h"
  8. #include <iostream>
  9. #include <cstdio>
  10. #include <algorithm>
  11. #include "time.h"
  12. #include <vector>
  13. using namespace std;
  14.  
  15. template <typename T>
  16. void std::swap(T &left, T &right)
  17. {
  18. T k=vec[j];
  19. vec[j]=vec[j+1];
  20. vec[j+1]=k;
  21. }
  22.  
  23. template <class SortMass>
  24. void Sort(SortMass vec, int Size)
  25. {
  26. SortMass::value_type k;
  27. for(int i=0;i<(Size-1);i++)
  28. {
  29. for(int j=0;j<(Size-1);j++)
  30. {
  31. if (vec[j]>vec[j+1])
  32. {
  33. k=vec[j];
  34. vec[j]=vec[j+1];
  35. vec[j+1]=k;
  36. }
  37. }
  38. }
  39. show(vec,Size);
  40. }
  41. void Sort(vector<double> vec1, int Size)
  42. {
  43. double k;
  44. for (int i=0;i<vec1.size();i++)
  45. {
  46. for(int j=0;j<(vec1.size()-1);j++)
  47. {
  48. if (vec1[j]<vec1[j+1])
  49. {
  50. k=vec1[j];
  51. vec1[j]=vec1[j+1];
  52. vec1[j+1]=k;
  53. }
  54. }
  55. }
  56.  
  57. cout<<"Sort massive:(min)"<<endl;
  58. for (int i=0;i<vec1.size();i++)
  59. {
  60. cout<<vec1[i]<<" ";
  61. }
  62. cout<<endl;
  63. }
  64. template <class ShowMass>
  65. void show(ShowMass &vec,int Size)
  66. {cout<<"Sort massive:"<<endl;
  67. for (int i=0;i<Size;i++)
  68. {
  69. cout<<vec[i]<<" ";
  70. }
  71. cout<<endl;
  72. }
  73.  
  74. int main()
  75. {
  76. setlocale(0,"Russian");
  77. int Size=10;
  78. vector<int> vec(Size);
  79. vector<double> vec1(Size);
  80. vector<char> vec2(Size);
  81.  
  82. #pragma region int
  83. cout<<"Исходный массив"<<endl;
  84. for (int i=0;i<vec.size();i++)
  85. {
  86. vec[i]=rand()%10;
  87. cout<<vec[i]<<" ";
  88. }
  89. cout<<endl;
  90. Sort(vec,Size);
  91. #pragma endregion
  92. #pragma region double
  93. cout<<"Для типа double"<<endl;
  94. cout<<"Исходный массив"<<endl;
  95. for (int i=0;i<vec1.size();i++)
  96. {
  97. vec1[i]=rand()%17;
  98. vec1[i]=vec1[i]/3;
  99. cout<<vec1[i]<<" ";
  100. }
  101. cout<<endl;
  102. Sort(vec1,Size);
  103. #pragma endregion
  104. #pragma region char
  105. cout<<"Для типа char"<<endl;
  106. cout<<"Исходный массив"<<endl;
  107. vec2[0]='a';vec2[1]='n';vec2[2]='b';vec2[3]='j';vec2[4]='u';vec2[5]='h';vec2[6]='y';vec2[7]='t';vec2[8]='w';vec2[9]='c';
  108. for (int i=0;i<vec2.size();i++)
  109. {
  110. cout<<vec2[i]<<" ";
  111. }
  112. cout<<endl;
  113. #pragma endregion
  114.  
  115. Sort(vec2,Size);
  116. system("pause");
  117. return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement