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