Просуммировать элементы каждой строки матрицы - Pascal

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

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

Дана матрица R действительных чисел размером N × М. Просуммировать элементы каждой строки. Результат получить в виде вектора размером N.

Решение задачи: «Просуммировать элементы каждой строки матрицы»

textual
Листинг программы
const N = 5;
const M = 10;
 
type item_t = double;
type line_t = array[1..M] of item_t;
type tabl_t = array[1..N] of line_t;
 
procedure printLine( const l: line_t );
var
  i: integer;
begin
  for i:= 1 to M do
    write(l[i] :5);
  writeln;  
end; 
procedure printTabl( const t: tabl_t );
var
  i: integer;
begin
  for i:= 1 to N do
    printLine(t[i]);
end; 
 
procedure init_2d( var a: tabl_t );
var
  x,y: integer;
begin
    for y:=1 to N do
      for x:=1 to M do
        a[y][x] := random(-100 , 100);
end;
 
function getSumP( const a: line_t ): double;
var  
  r: double;
  x: integer;
begin
    r := 0;
    for x:=1 to M do
      r := r +  a[x];
   getSumP := r;      
end;      
 
var
  a: tabl_t;
  y: integer;
  v: array[1..N] of item_t;
  
begin     
  init_2d(a); 
 
  printTabl(a);
    
  Writeln('-------------------------------');
  
  for y:=1 to N do 
    v[y] := getSumP( a[y] );
 
  for y:=1 to N do 
    write(v[y] :10);
  writeln;  
end.

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

  1. Объявление констант N и M и их присвоение значений: const N = 5; и const M = 10;.
  2. Объявление пользовательских типов item_t и line_t соответственно типу double и массиву из M элементов типа item_t: type item_t = double; и type line_t = array[1..M] of item_t;.
  3. Объявление пользовательского типа tabl_t - массива из N элементов типа line_t: type tabl_t = array[1..N] of line_t;.
  4. Объявление процедуры printLine, которая принимает на вход массив line_t и выводит его значения на экран с помощью цикла for: procedure printLine( const l: line_t );.
  5. Объявление процедуры printTabl, которая принимает на вход массив tabl_t и вызывает процедуру printLine для каждого элемента массива: procedure printTabl( const t: tabl_t );.
  6. Объявление процедуры init_2d, которая заполняет массив tabl_t случайными значениями от -100 до 100: procedure init_2d( var a: tabl_t );.
  7. Объявление функции getSumP, которая принимает массив line_t и вычисляет сумму его элементов: function getSumP( const a: line_t ): double;.
  8. Объявление переменных a: tabl_t, y: integer и v: массива из N элементов типа item_t: var a: tabl_t; y: integer; v: array[1..N] of item_t;.
  9. Инициализация двумерного массива a с помощью процедуры init_2d(a).
  10. Вывод массива a на экран с помощью процедуры printTabl(a).
  11. Вывод разделителя -------------------------------.
  12. Вычисление суммы элементов каждой строки массива a с использованием функции getSumP и сохранение результатов в массив v.
  13. Вывод массива v на экран.

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


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

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

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