Даны две матрицы А(nxn) и B(nxn), а также два вектора х = (x1, x2,..., xn) и y = (y1, y2, ..., yn). Написать программу нахождения скалярного произведения (Ах)*(Ву).

Даны две матрицы А(nxn) и B(nxn), а также два вектора х = (x1, x2,..., xn) и y = (y1, y2, ..., yn). Написать программу нахождения скалярного произведения (Ах)*(Ву).
Гость
Ответ(ы) на вопрос:
Гость
const   n = 5; type   tM = array[1..n, 1..n] of integer;   tV = array[1..n] of integer; procedure ProdMV(a: tM; b: tV; var c: tV); var   i, j, s: integer; begin   for i := 1 to n do   begin     s := 0;     for j := 1 to n do s := s + a[i, j] * b[j];     c[i] := s;   end end; procedure SumV(a, b: tV; var c: tV); var   i: integer; begin   for i := 1 to n do c[i] := a[i] + b[i] end; procedure InitMatrix(var a: tM; p, q: integer); { Инициализация элементов случайными числами на [p;q]} var   i, j, k: integer; begin   k := q - p + 1;   for i := 1 to n do     for j := 1 to n do       a[i, j] := Random(k) + p end; procedure InitVector(var a: tV; p, q: integer); { Инициализация элементов случайными числами на [p;q]} var   i, k: integer; begin   k := q - p + 1;   for i := 1 to n do     a[i] := Random(k) + p end; procedure DisplayMatrix(a: tM; s: string); var   i, j: integer; begin   Writeln(s);   for i := 1 to n do   begin     for j := 1 to n do Write(a[i, j]:5);     Writeln   end end; procedure DisplayVector(a: tV; s: string); var   i: integer; begin   Writeln(s);   for i := 1 to n do Write(a[i]:5);   Writeln end; var   A, B: tM;   x, y, r, r1, r2: tV; begin   Randomize;   InitMatrix(A, -50, 50);   DisplayMatrix(A, 'Матрица А');   InitMatrix(B, -20, 65);   DisplayMatrix(B, 'Матрица B');   InitVector(x, -10, 14);   DisplayVector(x, 'Вектор x');   InitVector(y, 5, 40);   DisplayVector(y, 'Вектор y');   ProdMV(A, x, r1);   ProdMV(B, y, r2);     { Для отладки раскомментарить две нижележащие строчки }   { DisplayVector(r1,'Вектор r1');     DisplayVector(r2,'Вектор r2'); }   SumV(r1, r2, r);   DisplayVector(r, 'Вектор результата') end. Тестовое решение: Матрица А   -19   27   30   25  -14    32  -35    9  -38   16   -39  -36   13   41  -37     7  -18   -8   35  -10     1  -48    1  -19   -2 Матрица B   -15   62  -18   58   62    32   58   43    3   12    15   11   39  -20  -16    47  -10   24   16   55    -8   46   10    0   45 Вектор x     2   -6   10    0   -3 Вектор y    15   14   22   14   15 Вектор результата  2131 2776 1096 2214 1725
Не нашли ответ?
Ответить на вопрос
Похожие вопросы