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

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

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

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

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

textual
Листинг программы
  1. const N = 5;
  2. const M = 10;
  3.  
  4. type item_t = double;
  5. type line_t = array[1..M] of item_t;
  6. type tabl_t = array[1..N] of line_t;
  7.  
  8. procedure printLine( const l: line_t );
  9. var
  10.   i: integer;
  11. begin
  12.   for i:= 1 to M do
  13.     write(l[i] :5);
  14.   writeln;  
  15. end;
  16. procedure printTabl( const t: tabl_t );
  17. var
  18.   i: integer;
  19. begin
  20.   for i:= 1 to N do
  21.     printLine(t[i]);
  22. end;
  23.  
  24. procedure init_2d( var a: tabl_t );
  25. var
  26.   x,y: integer;
  27. begin
  28.     for y:=1 to N do
  29.       for x:=1 to M do
  30.         a[y][x] := random(-100 , 100);
  31. end;
  32.  
  33. function getSumP( const a: line_t ): double;
  34. var  
  35.   r: double;
  36.   x: integer;
  37. begin
  38.     r := 0;
  39.     for x:=1 to M do
  40.       r := r +  a[x];
  41.    getSumP := r;      
  42. end;      
  43.  
  44. var
  45.   a: tabl_t;
  46.   y: integer;
  47.   v: array[1..N] of item_t;
  48.  
  49. begin    
  50.   init_2d(a);
  51.  
  52.   printTabl(a);
  53.    
  54.   Writeln('-------------------------------');
  55.  
  56.   for y:=1 to N do
  57.     v[y] := getSumP( a[y] );
  58.  
  59.   for y:=1 to N do
  60.     write(v[y] :10);
  61.   writeln;  
  62. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы