Просуммировать элементы каждой строки матрицы - 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на экран.