Advertisement
Alex_Fomin

Untitled

Jan 11th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.71 KB | None | 0 0
  1. const
  2.   size = 4;//размер квадратной матрицы
  3.  
  4. type
  5.   myarr = array[1..size, 1..size] of integer;// Опшем тип для двумерного массива
  6.  
  7. var
  8.   a, b, c, d, e, f: myarr;
  9.  
  10. // Процедура заполнения матрицы псевдослучайными числами
  11. procedure GenerateMatrix(var arr: myarr; size: byte);
  12. var
  13.   i, j: byte;
  14. begin
  15.   for i := 1 to size do
  16.     for j := 1 to size do arr[i, j] := Random(21) - 10;
  17. end;
  18.  
  19. // Процедура вывода матрицы на экран
  20. procedure OutPutMatrix(arr: myarr; size: byte; arrname: string);
  21. var
  22.   i, j: byte;
  23. begin
  24.   WriteLn(arrname);
  25.   for i := 1 to size do
  26.   begin
  27.     for j := 1 to size do Write(arr[i, j]:4, #9);
  28.     WriteLn;
  29.   end;
  30. end;
  31.  
  32. // Процедура умножения матриц
  33. procedure MultiplicationMatrix(arr1, arr2: myarr; size: byte; var arr: myarr);
  34. var
  35.   i, j, k: byte;
  36. begin
  37.   for k := 1 to size do
  38.     for j := 1 to size do
  39.     begin
  40.       arr[k, j] := 0;
  41.       for i := 1 to size do arr[k, j] := arr[k, j] + arr1[k, i] * arr2[i, j];
  42.     end;
  43. end;
  44.  
  45. // Процедура сложения матриц
  46. procedure AdditionMatrix(arr1, arr2: myarr; size: byte; var arr: myarr);
  47. var
  48.   i, j: byte;
  49. begin
  50.   for i := 1 to size do
  51.     for j := 1 to size do arr[i, j] := arr1[i, j] + arr2[i, j];
  52. end;
  53.  
  54. // Процедура вычитания матриц
  55. procedure SubtractionMatrix(arr1, arr2: myarr; size: byte; var arr: myarr);
  56. var
  57.   i, j: byte;
  58. begin
  59.   for i := 1 to size do
  60.     for j := 1 to size do arr[i, j] := arr1[i, j] - arr2[i, j];
  61. end;
  62.  
  63. begin// Основная программа
  64.   GenerateMatrix(a, size);// Формируем матрицу A
  65.   OutPutMatrix(a, size, 'Матрица A:');// Выводим матрицу A
  66.   GenerateMatrix(b, size);// Формируем матрицу B
  67.   OutPutMatrix(b, size, 'Матрица B:');// Выводим матрицу B
  68.   MultiplicationMatrix(a, b, size, c);// Умножаем матрицу A на B
  69.   MultiplicationMatrix(b, a, size, d);// Умножаем матрицу B на A
  70.   //OutPutMatrix(c, size, 'Матрица C (A*B):');// Выводим матрицу С (для отладки)
  71.   //OutPutMatrix(d, size, 'Матрица D (B*A):');// Выводим матрицу D (для отладки)
  72.   SubtractionMatrix(c, d, size, e);// Получаем коммутатор
  73.   AdditionMatrix(c, d, size, f);// Получаем антикоммутатор
  74.   OutPutMatrix(e, size, 'Коммутатор (А*В-В*А):');// Выводим коммутатор
  75.   OutPutMatrix(f, size, 'Антикоммутатор (А*В+В*А):');// Выводим антикоммутатор
  76. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement