ChameL1oN

Лаба5_Жёлудь

Dec 18th, 2015
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. //1) Сформировать массив из n элементов.Количество элементов и их значения считываются из текстового файла.
  2. //2) Распечатать полученный массив.
  3. //3) Выполнить удаление указанных элементов из массива.
  4. //4) Вывести полученный результат в текстовый файл.
  5. //5) Выполнить добавление указанных элементов в массив.
  6. //6) Вывести полученный результат в текстовый файл.
  7. //7) Выполнить перестановку элементов в массиве.
  8. //8) Вывести полученный результат в текстовый файл.
  9. //9) Выполнить поиск указанных в массиве элементов и подсчитать количество сравнений, необходимых для поиска нужного элемента.
  10. //10) Вывести полученный результат в текстовый файл.
  11. //11) Выполнить сортировку массива указанным методом.
  12. //12) Вывести полученный результат в текстовый файл.
  13. //13) Выполнить поиск указанных элементов в отсортированном массиве и подсчитать количество сравнений, необходимых для поиска нужного элемента.
  14. //14) Вывести полученный результат в текстовый файл.
  15.  
  16. #include <locale>
  17. #include <iostream>
  18. #include <fstream>
  19.  
  20. using namespace std;
  21.  
  22. int n;
  23.  
  24.  
  25. void delet(int* &mass){
  26. int min = mass[0];
  27. for (int i = 0; i < n; i++){ //Ищем минимальный эл-т
  28. if (mass[i] < min){
  29. min = mass[i];
  30. }
  31. }
  32. for (int i = n-1; i > 0; i--){ //Ищем эл-т равный минимальному, обход массива ведём с конца
  33. if (mass[i] == min){
  34. for (int j = i; j < n-1; j++){
  35. mass[j] = mass[j + 1];
  36. }
  37. n--;
  38. }
  39. }
  40. }
  41.  
  42. void add(int* &mass){
  43. int N; // Кол-во новых эл-тов
  44. cout << "N =";
  45. cin >> N;
  46. n += N; // Увеличиваем кол-во эл-тов в массиве на N
  47. for (int i = n-N; i < n; i++){
  48. cout << "mass[" << i << "] = " << endl;
  49. cin >> mass[i];
  50. }
  51. }
  52.  
  53. void perest(int* &mass){
  54. int a;
  55. for (int i = 0; i < n - 1; i += 2){ // Щагаем через эл-т и переставляем
  56. a = mass[i];
  57. mass[i] = mass[i + 1];
  58. mass[i + 1] = a;
  59. }
  60. }
  61.  
  62.  
  63. void find(int* mass){
  64. int a,j;
  65. cout << "Введите искомое значение" << endl;
  66. cin >> a;
  67. for (int i = 0; i < n; i++){
  68. if (mass[i] == a) j = i; //Ищем последний эл-т с заданным значением, если их несколько
  69. }
  70. j++;
  71. cout << "Номер эл-та с искомым значение: " << j << endl;
  72. }
  73.  
  74. void sort(int* &mass){
  75. int i, min, n_min, j;
  76. for (i = 0; i<n - 1; i++)
  77. {
  78. min = mass[i]; n_min = i;//поиск минимального
  79. for (j = i + 1; j<n; j++)
  80. if (mass[j]<min)
  81. {
  82. min = mass[j];
  83. n_min = j;
  84. }
  85. mass[n_min] = mass[i];//обмен
  86. mass[i] = min;
  87. }
  88.  
  89. }
  90.  
  91. void print(int* mass){
  92. for (int i = 0; i < n; i++){
  93. cout << " " << mass[i];
  94. }
  95. cout << endl;
  96. cout << endl;
  97. }
  98.  
  99.  
  100.  
  101.  
  102. void main(){
  103. setlocale(LC_ALL, "rus");
  104. ifstream f("Text.txt", ios::in);
  105. f >> n;
  106. int* mass = new int[n];
  107. for (int i = 0; i < n; i++){
  108. f >> mass[i];
  109. }
  110. cout << "Исходный массив :" << endl;
  111. print(mass);
  112. delet(mass);
  113. cout << "Массив после удаления :" << endl;
  114. print(mass);
  115. add(mass);
  116. cout << "Массив после добавления :" << endl;
  117. print(mass);
  118. perest(mass);
  119. cout << "Массив после перестановки :" << endl;
  120. print(mass);
  121. find(mass);
  122. cout << endl;
  123. sort(mass);
  124. cout << "Массив после сортировки :" << endl;
  125. print(mass);
  126. }
Advertisement
Add Comment
Please, Sign In to add comment