Azdws

k1

Dec 17th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <string>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. /* Function: Array's elements - Заполнение массива */
  9. void array_elements(int *a, int length) {
  10.     cout << "Enter elements of array:\n";
  11.         for (int i=0; i < length; i++)
  12.         {
  13.         cin >> a[i];
  14.         }
  15. }
  16.  
  17. /* Function: Show sorted elements - Выдача обработанных элементов */
  18. void array_out(int *a, int length) {
  19.         for (int i=0; i < length; i++)
  20.                         {
  21.                         cout << a[i] <<  " ";
  22.                         }
  23.                         cout << endl;
  24. }
  25.  
  26. /* Function: Bubble sort - Сортировка элементов массива методом "пузырька" */
  27. void bubble_sort(int *a, int length) {
  28.     for (int i = 0; i < length-1; i++) {
  29.         for (int j = 0; j < (length-i)-1; j++) {
  30.              if (a[j] > a[j+1]) {
  31.                                 swap(a[j], a[j+1]);
  32.              }
  33.          }
  34.      }
  35.  }
  36.  
  37. /* Function: Paste sort - Сортировка элементов массива методом "вставки" */
  38. void paste_sort(int *a, int length) {
  39.         for(int i = 1; i < length; i++)    
  40.                 for(int j=i; j>0 && a[j-1] > a[j]; j--)
  41.                         swap(a[j-1],a[j]);
  42. }
  43.  
  44. /* Function: Individual task - Замена элементов массива, кратных 11 на их среднее значение*/
  45. void ind(int *a, int length) {
  46.     int avg, sum = 0;
  47.     for (int i = 0; i < length-1; i++) {
  48.         for (int j = 0; j < length; j++) {
  49.                         sum += a[j];
  50.                         }
  51.                         avg = sum/length;
  52.                                 for (int j = 0; j < length; j++) {
  53.                                                 if (a[j] % 11 == 0)
  54.                                                         {
  55.                                                         a[j] = avg;
  56.                                                         }
  57.                                         }
  58.                                 }
  59.         }
  60.  
  61. /* Function: Sorting - Функция выбора метода сортировки/обработки */
  62. void sort_proc (int *a, int length) {
  63.     int select;
  64.     cout << "Select the methode of sorting: (1 - Bubble; 2 - Paste; 3 - Ind. task)\n";     // Сообщение-подсказка
  65.         do {
  66.         cin >> select;
  67.        
  68.         switch(select)
  69.         {
  70.         case 1: // Сортировка методом пузырька
  71.         bubble_sort(a, length); // Функция обработки массива
  72.         cout << "[Bubble] Sorted array:\n";
  73.         array_out(a, length); // Функция выдачи обработанных элементов    
  74.                         break;
  75.  
  76.         case 2: // Сортировка методом вставки
  77.         paste_sort(a, length); // Функция обработки массива
  78.         cout << "[Paste] Sorted array:\n";
  79.         array_out(a, length); // Функция выдачи обработанных элементов            
  80.                         break;
  81.  
  82.         case 3: // Индивидуальное задание
  83.         ind(a, length); // Функция обработки массива
  84.         cout << "[Individual] Sorted array:\n";
  85.         array_out(a, length); // Функция выдачи обработанных элементов    
  86.                         break;
  87.        
  88.         default: // В случае, если было введено некорректное значение
  89.         cout << "Select correct value (1 - Bubble, 2 - Paste, 3 - Ind. task)\n";    
  90.         }
  91.         } while(select <=3 || select < 1); // Условие выполнения
  92. }
  93.  
  94.  
  95. /* Program body - Тело программы */
  96. int main() {    
  97.  
  98. int i, length;
  99. int select;
  100.  
  101. cout << "Enter array's size:\n";
  102. cin >> length; // Размерность массива
  103.  
  104. int *a = new int[length];
  105. array_elements(a, length); // Вызов функции: ввод элементов массива
  106.    
  107. sort_proc(a, length); // Вызов функции: сортировка элементов массива
  108.                          
  109. /* End program body - Конец тела программы */
  110. delete [] a;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment