Advertisement
Norvager

Untitled

Dec 11th, 2017
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. program n_1;
  2. type
  3. TM = array of array of integer;
  4. var a, b, c:TM;
  5. i, j, L1, S1, L2, S2: integer;
  6.  
  7. Procedure dsdjl(ar:TM);
  8. Var i, j : integer;
  9. Begin
  10. For i:=0 to (Length(ar)-1) do
  11. Begin
  12. for j:=0 to (Length(ar[0])-1) do
  13. write(ar[i,j],' ');
  14. writeln;
  15. end;
  16. End;
  17.  
  18. Procedure radome(ar:TM; var arr:TM);
  19. Var i, j : integer;
  20. Begin
  21. For i:=0 to (Length(ar)-1) do
  22. Begin
  23. for j:=0 to (Length(ar[0])-1) do
  24. ar[i,j]:=random(10);
  25. writeln;
  26. end;
  27. End;
  28.  
  29. Function SumArr(ar,br:TM):TM;
  30. Var i, j : integer;
  31. Sum :TM;
  32. Begin
  33. SetLength(Sum, Length(ar));
  34. for i:=0 to (Length(ar)-1) do
  35. SetLength(Sum[i], (Length(ar[1])));
  36. If ((Length(ar))<>(Length(br))) and ((Length(ar[1]))<>(Length(br[1]))) then
  37. Writeln('Сложение невозможно')
  38. Else
  39. begin
  40. For i:=0 to Length(ar) - 1 do
  41. for j:=0 to Length(ar[i]) - 1 do
  42. Sum[i,j]:=ar[i,j] + br[i,j];
  43. Writeln('Сумма матриц >> ');
  44. dsdjl(Sum);
  45. end;
  46. SumArr:=Sum;
  47. End;
  48.  
  49. Function MultiArr(ar,br:TM):TM;
  50. Var i, j, k:integer;
  51. Multip:TM;
  52. Begin
  53. SetLength(Multip, Length(ar));
  54. for i:=0 to (Length(ar)-1) do
  55. SetLength(Multip[i], (Length(br[0])));
  56. If (Length(ar))<>(Length(br[0])) then
  57. Writeln('Умножение невозможно')
  58. Else
  59. begin
  60. For i:=0 to Length(ar)-1 do
  61. begin
  62. k:=0;
  63. for j:=0 to Length(br[0])-1 do
  64. k:=k+a[i,j]*b[j,i];
  65. Multip[j,i]:=k;
  66. end;
  67. end;
  68. MultiArr:=Multip;
  69. End;
  70.  
  71.  
  72. Begin
  73. Randomize;
  74. Write('Введите кол-во строк в первой матрице >> ');
  75. read(L1);
  76. Write('Введите кол-во столбцов в первой матрице >> ');
  77. read(S1);
  78. SetLength(a, L1);
  79. for i:=0 to (L1-1) do
  80. SetLength(a[i], S1);
  81. radome(a, a);
  82. writeln('Первая матрица:');
  83. dsdjl(a);
  84. writeln;
  85.  
  86. Write('Введите кол-во строк во второй матрице >> ');
  87. read(L2);
  88. Write('Введите кол-во столбцов во второй матрице >> ');
  89. read(S2);
  90. SetLength(b, L2);
  91. for i:=0 to (L2-1) do
  92. SetLength(b[i], S2);
  93. radome(b, b);
  94. writeln('Вторая матрица:');
  95. dsdjl(b);
  96. writeln;
  97.  
  98. SumArr(a,b);
  99. writeln;
  100.  
  101. c:=MultiArr(a,b);
  102. SetLength(c, Length(a));
  103. for i:=0 to (Length(a)-1) do
  104. SetLength(c[i], (Length(b[0])));
  105. dsdjl(c);
  106. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement