ChameL1oN

Лаба6

Mar 23rd, 2016
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. #include <time.h>
  2. #include <iostream>
  3. #include <locale>
  4. #include <fstream>
  5. #include <iomanip>
  6.  
  7. using namespace std;
  8.  
  9. int n2; // Кол-во эл-ов в одномерном массиве
  10. int n; // Кол-во строк в матрице
  11. int m; //Кол-во столбцов в матрицу
  12. bool flag = false; //Определяет существует ли одномерный массив
  13. bool flag2 = false; //Определяет существует ли матрица
  14.  
  15.  
  16. void form_mas(int* &mas){
  17. for (int i = 0; i < n2; i++){
  18. mas[i] = rand()%20; //Рандом от -10 до 9()
  19. }
  20. flag = true;
  21. cout << endl;
  22. cout << endl;
  23. }
  24.  
  25. void print_mas(int* mas){
  26. if (flag){
  27. for (int i = 0; i < n2; i++){
  28. cout << mas[i] << " ";
  29. }
  30. }
  31. else cout << "Массив пуст" << endl;
  32. cout << endl;
  33. cout << endl;
  34. cout << endl;
  35. }
  36.  
  37. int Prime(int a)
  38. {
  39. int i;
  40. if (a == 2)
  41. return 1;
  42. if (a == 0 || a == 1 || a % 2 == 0)
  43. return 0;
  44. for (i = 3; i*i <= a && a % i; i += 2)
  45. ;
  46. return i*i > a;
  47. }
  48.  
  49. void del_mas(int* &mas){
  50. for (int j = n2 - 1; j > 0; j--){
  51. if (Prime(mas[j])){
  52. for (int i = j; i < n2 - 1; i++){
  53. mas[i] = mas[i + 1];
  54. }
  55. n2--;
  56. }
  57. }
  58. }
  59.  
  60. void form_matr(int** &matr){
  61.  
  62. for (int i = 0; i < n; i++){
  63. matr[i] = new int[m];
  64. for (int j = 0; j < m; j++){
  65. matr[i][j] = rand() % 20 - 10; //Рандом от -10 до 9()
  66. }
  67. }
  68. flag2 = true;
  69. }
  70.  
  71. void sort_matr(int** matr){
  72. for (int i = 0; i < n; i++){
  73. for (int j = 0; j < m-1; j++){
  74. int t;
  75. if (matr[i][j] < matr[i][j + 1]){
  76. t = matr[i][j];
  77. matr[i][j] = matr[i][j + 1];
  78. matr[i][j + 1] = t;
  79. j--;
  80. }
  81. }
  82. }
  83. }
  84.  
  85. void print_matr(int** matr){
  86. if (flag2){
  87. for (int i = 0; i < n; i++){
  88. for (int j = 0; j < m; j++){
  89. cout << setw(5) << matr[i][j];
  90. }
  91. cout << endl;
  92. }
  93. }
  94. else
  95. cout << "Матрица не создана" << endl;
  96. cout << endl;
  97. }
  98.  
  99. void add_matr(int** matr){
  100. int* vector = new int[m];
  101. int t=0;
  102. cout << "Формирование вектор-строки :" << endl;
  103. for (int i = 0; i < m; i++){
  104. cout << "Введи значение " << i << "-го эл-та" << endl;
  105. cin >> vector[i];
  106. }
  107. for (int i = 0; i < n - t; i++){
  108. int min = matr[i][0];
  109. for (int j = 0; j < m; j++){
  110. if (matr[i][j] < min) min = matr[i][j];
  111. }
  112. if (min == matr[i][0]){
  113. t++;
  114. n++;
  115. for (int j = n - 1; j > i; j--){
  116. matr[j] = matr[j - 1];
  117. }
  118. matr[i] = vector;
  119. i++;
  120. }
  121. }
  122. }
  123.  
  124. void main(){
  125. srand(time(0)); // рандомизация генератора случайных чисел
  126. setlocale(LC_ALL, "rus");
  127. int k;
  128. int* mas = new int[0];
  129. int** matr = new int*[0];
  130. do
  131. {
  132. cout << "1.Формирование одномерного массива\n";
  133. cout << "2.Печать массива\n";
  134. cout << "3.Удаление из одномерного массива\n";
  135. cout << "4.Формирование двумерного массива\n";
  136. cout << "5.Вывод матрицы на экран\n";
  137. cout << "6.Сортировка двумерного массива\n";
  138. cout << "7.Добавление вектор-строки в двумерный массив\n";
  139. cout << "8.Выход\n";
  140. cin >> k;
  141. switch (k)
  142. {
  143. case 1: cout << "Введите кол-во эл-ов в массиве" << endl;
  144. cin >> n2; mas = new int[n2]; form_mas(mas); break;//выделение памяти и заполнение
  145. case 2: print_mas(mas); break;//печать
  146. case 3: del_mas(mas); break;//удаление
  147. case 4: cout << "Кол-во строк?" << endl;
  148. cin >> n;
  149. cout << "Кол-во столбцов?" << endl;
  150. cin >> m; matr = new int*[n]; form_matr(matr); break;//заполнение матрицы
  151. case 5: print_matr(matr); break; //печать матрицы
  152. case 6: sort_matr(matr); break;//сортировка матрицы
  153. case 7: add_matr(matr); break;//добавление в матрицу
  154. }
  155. } while (k != 8);//выход
  156. }
Advertisement
Add Comment
Please, Sign In to add comment