Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. #include <iostream> //библиотека
  2.  
  3. #include <ctime> //библиотека
  4.  
  5. using namespace std; // использованное пространство имен, первые три строчки по дефолту
  6.  
  7. void Set(double **x, int N) //начало процедуры Set, в нее передается квадратный массив x размерности N и заполняется случайными числами от 1 до 9
  8.  
  9. {
  10.  
  11. for (int i = 0; i < N; i++) //цикл для смещения первого индекса (по строкам)
  12.  
  13. for (int j = 0; j < N; j++) //цикл для смещения первого индекса (по столбцам)
  14.  
  15. x[i][j] = rand() % 9 + 1; //генерируется случайное число, от него берётся остаток деления на 9 и добавляется 1. Таким образом получается случайное число в диапазоне от 1 до 9. Полученное число присваивается переменной x.
  16.  
  17. }
  18.  
  19. void Print(double **x, int N) //процедура для вывода массива на экран
  20.  
  21. {
  22.  
  23. for (int i = 0; i < N; i++) //цикл для смещения первого индекса (по строкам)
  24.  
  25. {
  26.  
  27. for (int j = 0; j < N; j++) //цикл для смещения первого индекса (по столбцам)
  28.  
  29. cout << x[i][j] << " "; //значение элемента i-той строки j-того столбца выводятся на экран
  30.  
  31. cout << endl; //перенос на следующую строку
  32.  
  33. }
  34.  
  35. }
  36.  
  37. int main() //начало программы
  38.  
  39. {
  40.  
  41. srand((int)time(0));
  42.  
  43. int n; //размерность массива
  44.  
  45. cout << "n=";
  46.  
  47. cin >> n; //ввод размерности с клавиатуры
  48.  
  49. double **a = new double*[n]; // объявление массива a с размерностью n и каждым элементом которого является одномерный массив, в итоге получается двумерный массив (матрица)
  50.  
  51. for (int i = 0; i < n; i++) //цикл
  52.  
  53. a[i] = new double[n]; //объявление каждого элемента a (инициализация)
  54.  
  55. double **b = new double*[n]; //то же самое для b
  56.  
  57. for (int i = 0; i < n; i++) // цикл
  58.  
  59. b[i] = new double[n]; //инициализация b
  60.  
  61. double **x = new double*[n]; // новая матрица, у которой будет в два раза больше столбцов
  62.  
  63. for (int i = 0; i < n; i++) //цикл
  64.  
  65. x[i] = new double[2 * n]; // инициализация x
  66.  
  67. Set(a, n); //заполнение массива a случайными числами через вызов процедуры Set
  68.  
  69. cout << "Matrix a" << endl;
  70.  
  71. Print(a, n); //вывод матрицы a на экран через процедуру Print
  72.  
  73. Set(b, n); //заполнение массива b случайными числами через вызов процедуры Set
  74.  
  75. cout << "Matrix b" << endl;
  76.  
  77. Print(b, n); //вывод матрицы b на экран через процедуру Print
  78.  
  79. for (int i = 0; i < n; i++) //два цикла для перебора индексов массива x
  80.  
  81. for (int j = 0; j < n; j++)
  82.  
  83. {
  84.  
  85. x[i][j] = a[i][j]; //заполнение массива x элементами матрицы a
  86.  
  87. x[i][j + n] = b[i][j]; //заполнение массива x элементами матрицы b
  88.  
  89. }
  90.  
  91. cout << "Matrix x" << endl;
  92.  
  93. Print(x, 2 * n); //вывод матрицы x через процедуру Print
  94.  
  95. system("pause"); //ожидание, чтобы программа не закрылась раньше времени после выполнения
  96.  
  97. return 0; //конец
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement