Bertran_rz

Untitled

Sep 24th, 2021
867
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. //
  7. //arr[] - массив чисел который нужно заполнить
  8. //size - размер массива
  9. //max - максимальное число которое может выпасть случайным образом
  10. //
  11. void fillRandomValue(int arr[], int size, int max)
  12. {
  13.     for (int i = 0; i < size; i++)
  14.         arr[i] = rand() % max;
  15. }
  16. //
  17. //arr[] - массив чисел который нужно отобразить
  18. //size - расмер массива
  19. //
  20. void show(int arr[], int size)
  21. {
  22.     for (int i = 0; i < size; i++)
  23.         cout << arr[i] << " ";
  24.     cout << endl;
  25. }
  26.  
  27. //
  28. //Возвращает максимальное число
  29. //arr[] - массив чисел в котором нужно искать
  30. //size - размер массива
  31. //
  32. int GetMaxValue(int arr[], int size)
  33. {
  34.         int max = arr[0];
  35.        
  36.         for(int i = 0; i < size; i++)
  37.         {
  38.                 max = arr[i] > max ? arr[i] : max;
  39.         }
  40.  
  41.         return max;
  42. }
  43.  
  44. //
  45. //Возвращает миннимальное значение
  46. //arr[] - массив чисел в котором нужно найти
  47. //size - разсмер массива
  48. //
  49. int GetMinValue(int arr[], int size)
  50. {
  51.         int min = arr[0];
  52.        
  53.         for(int i = 0; i < size; i++)
  54.         {
  55.                 min = arr[i] < min ? arr[i] : min;
  56.         }
  57.  
  58.         return min;
  59. }
  60.  
  61.  
  62. void ShiftToRight(int arr[],int size)
  63. {
  64.         int tmp = arr[size - 1];
  65.  
  66.         for(int i = size - 1; i > 0; i--)
  67.         {
  68.                 arr[i] = arr[i-1];
  69.         }
  70.         arr[0] = tmp;
  71. }
  72.  
  73. void ShiftToLeft(int arr[], int size)
  74. {
  75.         int tmp = arr[0];
  76.         for(int i = 0; i < size - 1; i++)
  77.         {
  78.                 arr[i] = arr[i+1];
  79.         }
  80.         arr[size-1] = tmp;
  81. }
  82. //
  83. //сортирует массив
  84. //arr[] - массив чисел который нужно отсортировать
  85. //size - разер массива
  86. //desc - булево значение, сортировать ли массив по убыванию
  87. //
  88. void SortBy(int arr[], int size, bool desc)
  89. {
  90.     for (int i = 0; i < size; i++)
  91.         for (int j = 0; j < size - 1 - i; j++)
  92.             if (arr[j] > arr[j + 1] and desc)
  93.                 swap(arr[j], arr[j + 1]);
  94.             else if (arr[j] < arr[j + 1] and !desc)
  95.                 swap(arr[j], arr[j + 1]);
  96. }
  97.  
  98. int main()
  99. {
  100.         const int size = 10;
  101.        
  102.         int arr[size];
  103.        
  104.         //Первое задание
  105.         //Заполняем рандомными значениями
  106.         fillRandomValue(arr, size, 10);
  107.         //Второе - выводим на экран
  108.         show(arr, size);
  109.  
  110.         cout << "##################################" << endl;
  111.        
  112.         //          
  113.         //Третье - ищим максимальное и минимальное значения
  114.         //  
  115.         cout << GetMaxValue(arr, size) << endl;
  116.         cout << GetMinValue(arr, size) << endl;
  117.         cout << endl;
  118.         cout << "##################################" << endl;
  119.        
  120.         int userChoise = 0;
  121.         //
  122.         //Четвертое - Сдвиг в лево и в право
  123.         //
  124.         do
  125.         {
  126.                 cout << "Enter how you want to move element in this arr\n 1 - to Left\n 2 - to Right\n";
  127.                 cin >> userChoise;
  128.         }while(userChoise < 1 || userChoise > 2);
  129.  
  130.         if(userChoise == 1)
  131.                 ShiftToLeft(arr, size);
  132.         else
  133.                 ShiftToRight(arr, size);
  134.  
  135.         show(arr, size);
  136.         cout << "##################################" << endl;
  137.  
  138.         //
  139.         //Пятое - Сортировка с выбором направления сортировки
  140.         //
  141.         do
  142.         {
  143.                 cout << "Enter how you want to sort this array\n 1 - min -> max\n 2 - max ->min\n";
  144.                 cin >> userChoise;
  145.         } while(userChoise < 1 || userChoise > 2);
  146.  
  147.         if(userChoise == 1)
  148.                 SortBy(arr, size, true);
  149.         else
  150.                 SortBy(arr, size, false);
  151.         show(arr, size);
  152.         return 0;
  153. }
  154.  
  155.  
RAW Paste Data