ChameL1oN

Лаба4

Dec 8th, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.28 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <locale>
  4.  
  5.  
  6. using namespace std;
  7.  
  8. // Удалить все элементы из последовательности , равные максимальному
  9. // Добавить К элементов в начале последовательности
  10. // Перевернуть последовательность
  11. // Найти первый чётный
  12. // Отсортировать методом простого обмена по возрастанию
  13.  
  14. int DeleteMaxim(int w){
  15. ofstream f;
  16. ifstream F;
  17. F.open("Vvod.txt", ios::in);
  18. f.open("Function1.txt");
  19. int i = 0, k = 0, max = 0;
  20. cout << endl;
  21. cout << "ФУНКЦИЯ УДАЛЕНИЯ ИЗ МАССИВА :" << endl;
  22. int* mass = new int[w];
  23. while (i < w){
  24. F >> mass[i];
  25. if (mass[i] > max){
  26. max = mass[i];
  27. }
  28. i++;
  29. }
  30. i = 0;
  31. cout << "Массив , после удаления максимальных элементов : " << endl;
  32. while (k < w){
  33. if (mass[k] != max){
  34. cout <<"mass[" << i << "] = " << mass[k] << endl; // ЗАМЕНИТЬ endl на " " , если необходимо в строчку
  35. f << mass[k] << endl;
  36. i++;
  37. }
  38. k++;
  39. }
  40. cout << "Результат операции так же записан в файл Func1.txt" << endl;
  41. f.close();
  42. return i; //Возвращаем оставшееся кол-во элементов
  43. }
  44. int Dobavit(int k){
  45.  
  46. // К элементов в начало массива(что вставлять запрашивать у пользователя)
  47.  
  48. int K, a = -1,i=0;
  49. ifstream F;
  50. ofstream f;
  51. f.open("Function2.txt");
  52. F.open("Function1.txt", ios::in);
  53. cout << endl;
  54. cout << "ФУНКЦИЯ ДОБАВЛЕНИЯ ЭЛЕМЕНТОВ В МАССИВ :" << endl;
  55. cout << "Введите кол-во добавляемых элементов" << endl;
  56. cin >> K;
  57. int *Dobavmass = new int[k + K];
  58. while(i < K) {
  59. cout << "Введите элемент " << i << endl;
  60. cin >> Dobavmass[i];
  61. i++;
  62. }
  63. while (i < k + K){
  64. F >> Dobavmass[i];
  65. i++;
  66. }
  67. i = 0;
  68. cout << "Массив после добавления К элементов :" << endl;
  69. while (i < k + K){
  70. cout << "mass[" << i << "] = " << Dobavmass[i] << endl;
  71. f << Dobavmass[i] << endl;
  72. i++;
  73. }
  74. cout << "Результат операции так же записан в файл Func2.txt" << endl;
  75. f.close();
  76. F.close();
  77. return k + K; //Возвращаем новое кол-во элементов
  78. }
  79. void Perevorot(int k){
  80. int a;
  81. ifstream F;
  82. ofstream f;
  83. f.open("Function3.txt");
  84. F.open("Function2.txt", ios::in);
  85. int *mass = new int[k];
  86. cout << endl;
  87. cout << "ФУНКЦИЯ ПЕРЕВОРАЧИВАНИЯ МАССИВА :" << endl;
  88. for (int i = 0; i < k; i++) {
  89. // Заполнение массива и вывод значений его элементов
  90. F >> mass[i];
  91.  
  92. }
  93. a = 0;
  94. while (a < k/2){ // Переворачиваем
  95. int r;
  96. r = mass[a];
  97. mass[a] = mass[k- 1 - a];
  98. mass[k - 1 - a] = r;
  99. a++;
  100.  
  101. }
  102. cout << endl;
  103. a = 0;
  104. while (a < k){ //Выводим
  105. cout << "mass[" << a << "] = " << mass[a] << endl; // ЗАМЕНИТЬ endl на " " , если необходимо в строчку
  106. f << mass[a] << endl;
  107. a++;
  108. }
  109. cout << "Результат операции так же записан в файл Func3.txt" << endl;
  110. F.close();
  111. f.close();
  112. }
  113. void Find(int k){
  114. int a = -1, num=0, b; // Кол-во сравнений будет равно a+1
  115. ifstream F;
  116. ofstream f;
  117. f.open("Function4.txt");
  118. F.open("Function3.txt", ios::in);
  119. cout << endl;
  120. cout << "ФУНКЦИЯ ПОИСКА ПЕРВОГО ЧЁТНОГО ЭЛЕМЕНТА В МАССИВЕ :" << endl;
  121. while (a<k && num == 0){
  122. F >> b;
  123. a++;
  124. if (b % 2 == 0){
  125. num = b;
  126. }
  127. }
  128. F.close();
  129. cout << "Первый чётный элемент равен " << num << " Его порядковый номер " << a << endl;
  130. cout << "Кол-во сравнений равно порядковому номеру+1 : " << a+1 << endl;
  131. cout << "Результат операции так же записан в файл Func4.txt" << endl;
  132. f << "Первый чётный элемент равен " << num << " Его порядковый номер " << a << endl;
  133. f << "Кол-во сравнений равно порядковому номеру+1(0-ой элемент) : " << a + 1 << endl;
  134. f.close();
  135. }
  136. void Obmen(int k){
  137. int a = -1;
  138. ifstream F;
  139. ofstream f;
  140. f.open("Function5.txt");
  141. F.open("Function3.txt", ios::in);
  142. cout << endl;
  143. cout << "ФУНКЦИЯ СОРТИРОВКИ МАССИВА :" << endl;
  144. int *mass = new int[k];
  145. for (int i = 0; i < k; i++){
  146. F >> mass[i];
  147. }
  148. for (int i = 1; i<k; i++)
  149. for (int a = k - 1; a >= i; a--)
  150. if (mass[a]<mass[a - 1])
  151. {
  152. int r = mass[a];
  153. mass[a] = mass[a-1];
  154. mass[a-1] = r;
  155. }
  156. a = 0;
  157. while (a < k){
  158. cout << "mass[" << a << "] = " << mass[a] << endl; // ЗАМЕНИТЬ endl на " " , если необходимо в строчку
  159. f << mass[a] << endl;
  160. a++;
  161. }
  162. cout << "Результат операции так же записан в файл Func5.txt" << endl;
  163. F.close();
  164. f.close();
  165. }
  166. void form_matr(int n)
  167. {
  168. ifstream F;
  169. F.open("Vvod.txt", ios::in);
  170.  
  171. int* massive = new int[n]; // Выделение памяти для массива
  172. for (int i = 0; i < n; i++) {
  173. // Заполнение массива и вывод значений его элементов
  174. F >> massive[i];
  175. cout << "Value of " << i << " element is " << massive[i] << endl;
  176. }
  177. F.close();
  178. }
  179. void main()
  180. {
  181. setlocale(LC_ALL, "rus");
  182. int num,max = 0; // num - размер массива
  183. cout << "Введите кол-во элементов в массиве :" << endl;
  184. cin >> num;
  185. form_matr(num);
  186. num = DeleteMaxim(num); // Удаляем максимальные и получаем новое кол-во элементов
  187. num = Dobavit(num); // Добавить К элементов в начало массива и получить новое кол-во элементов
  188. Perevorot(num); // Перевернуть массив
  189. Find(num); // Найти первый чётный
  190. Obmen(num); // Простой обмен по возрастанию
  191. }
Advertisement
Add Comment
Please, Sign In to add comment