﻿PROGRAM MultiplyMatrix2Vector;
// произведение матрицы на вектор. 
// R[m] = A[m,n]*B[n]

const
    row = 2;
    col = 3;
type
    matrix = array[1..row, 1..col] of byte;
    vect_mul = array[1..col] of byte; // вектор на который умножаем
    vect_res = array[1..row] of byte; // вектор с произведением

var 
    A:matrix := ( (3, 7, 5), (1, 0, 4) ); //матрица
    B:vect_mul := ( 1, 2, 3 ); // вектор на который умножаем
    R:vect_res; // вектор с произведением

// m: количество рядов n: количество столбцов 
function mulMatVec(n,m:byte; var MX:matrix; var VR:vect_mul):vect_res;
var 
    i,j:byte;
    r:vect_res;
begin
  for i:=1 to m do
    for j:=1 to n do
      R[i]:=R[i] + MX[i,j] * VR[j];
      
  mulMatVec := R;
end;

BEGIN
  writeln('Матрица: ', A);
  writeln('Вектор: ', B);
 
  R := mulMatVec(3, 2, A, B);
  
  writeln('Произведение: ', R);
END.