Задать вопрос
9 октября, 04:53

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

+4
Ответы (1)
  1. 9 октября, 05:23
    0
    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
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Даны две матрицы А (nxn) и B (nxn), а также два вектора х = (x1, x2, ..., xn) и y = (y1, y2, ..., yn). Написать программу нахождения ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Дана матрица размерностью nxn найти Дана матрица размерностью nxn найти минимальный элемент среди элементов расположенных над главной диагональю матрицы.
Ответы (1)
1) Даны квадратная матрицы А размером 3 х3 и число t. Требуется найти С=t*А. 2) Дана вещественная матрица А (N, M). Составить программу нахождения максимального отрицательного элемента матрицы и нахождения его местоположения.
Ответы (1)
Для матрицы размером в n строк и m столбцов составить алгоритм и программу вычисления: 1) Сумм элементов каждой нечетной строки матрицы 2) Суммы произведений тангенсов элементов четных строк матрицы.
Ответы (1)
Даны два вектора b = (b1, b2, ..., bn), x = (x1, x2, ..., xn) и матрица А (nxn). Написать программу вычисления длины вектора Ах + b.
Ответы (1)
Даны две квадратные матрицы А и В размером 3 х3. Требуется найти С=А х В. Составить программу нахождения числа строк матрицы А (N, N), сумма элементов у которых отрицательна. pascal abc
Ответы (1)