Вычислить суммы столбцов матриц - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Даны матрицы А(4,5), В(5,3), С(2,6) - вводятся с клавиатуры. Для каждой матрицы вычислить суммы столбцов. Ввод матрицы, вычисление сумм столбцов, вывод вектора оформить как отдельные подпрограммы.

Решение задачи: «Вычислить суммы столбцов матриц»

textual
Листинг программы
const
  W=8;
type
  TVector = array of Integer;
  TMatrix = array of array of Integer;
procedure mRead(var m: TMatrix);
var i, j: Integer;
begin
  for i:=0 to High(m) do for j:=0 to High(m[High(m)]) do
    {$IFDEF TEST}m[i,j]:=Random(10);{$ELSE}Read(m[i,j]);{$ENDIF}
end;
procedure mWrite(const m: TMatrix);
var i, j: Integer;
begin
  for i:=0 to High(m) do begin
    for j:=0 to High(m[High(m)]) do Write(m[i,j]:W); WriteLn;
  end;
end;
procedure vWrite(const v: TVector);
var j: Integer;
begin
  for j:=0 to High(v) do Write(v[j]:W); WriteLn;
end;
procedure mSumByCol(const m: TMatrix; var v: TVector);
var i, j: Integer;
begin
  SetLength(v,High(m[High(m)])+1);
  for j:=0 to High(m[High(m)]) do begin
    v[j]:=0; for i:=0 to High(m) do v[j]:=v[j]+m[i,j];
  end;
end;
var
  a, b, c: TMatrix;
  sa, sb, sc: TVector;
begin
  Randomize;
  SetLength(a,4,5); SetLength(b,5,3); SetLength(c,2,6);
  WriteLn('Введите матрицу A(',High(a),',',High(a[High(a)]),'):'); mRead(a);
  WriteLn('Введите матрицу B(',High(b),',',High(b[High(b)]),'):'); mRead(b);
  WriteLn('Введите матрицу C(',High(c),',',High(c[High(c)]),'):'); mRead(c);
  mSumByCol(a,sa); mSumByCol(b,sb); mSumByCol(c,sc);
  WriteLn('A='); mWrite(a); WriteLn('Сумма по столбцам:'); vWrite(sa);
  WriteLn('B='); mWrite(b); WriteLn('Сумма по столбцам:'); vWrite(sb);
  WriteLn('C='); mWrite(c); WriteLn('Сумма по столбцам:'); vWrite(sc);
end.

Объяснение кода листинга программы

  1. В начале кода определены константы и типы данных:
    • W - размерность ячейки матрицы (в данном случае 8);
    • TVector - тип вектора (массив целых чисел);
    • TMatrix - тип матрицы (массив массивов целых чисел).
  2. Далее идут процедуры для чтения и записи матрицы и вектора:
    • mRead - считывает значения ячеек матрицы из файла или с клавиатуры;
    • mWrite - записывает значения ячеек матрицы в файл или на экран;
    • vWrite - записывает значения вектора на экран.
  3. Следующая процедура mSumByCol вычисляет сумму элементов каждого столбца матрицы и сохраняет результаты в векторе:
    • Для каждого столбца создается новый вектор;
    • В цикле перебираются все элементы столбца;
    • Сумма элементов сохраняется в соответствующем элементе вектора.
  4. В основной части кода определены и инициализированы три матрицы a, b, c и три вектора sa, sb, sc для хранения сумм столбцов.
  5. В цикле запрашивается ввод трех матриц с помощью процедуры mRead и выводится на экран.
  6. Затем вызывается процедура mSumByCol для каждой матрицы, чтобы вычислить сумму элементов каждого столбца.
  7. Результаты вычислений выводятся на экран с помощью процедур mWrite и vWrite.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.333 из 5
Похожие ответы