Последний элемент строки матрицы - сумма предыдущих той же строки

Задача

Преобразовать исходную матрицу A(MxN) так, чтобы последний элемент каждой строки был заменен суммой предыдущих элементов той же строки.

Решение

Алгоритм решения задачи: 

  1. Для каждой строки присвоить переменной sum значение 0.
  2. Если очередной элемент строки не последний, то добавить его значение к переменной sum.
  3. Иначе (очередной элемент строки - последний) вывести значение sum на экран.

Программа на языке Паскаль:

const n = 4; m = 6;
var
	matrix: array[1..n,1..m] of integer;
	i, j: byte;
	sum: integer;
begin
	randomize;	
	for i:=1 to n do begin // исходная матрица
		for j:=1 to m do begin
			matrix[i,j] := random(20)-10; // от -10 до 9
			write(matrix[i,j]:4);
		end;
		writeln;
	end;
	writeln;
 
	for i:=1 to n do begin  // измененная матрица
		sum := 0;
		for j:=1 to m do 
			if j <> m then begin
				write(matrix[i,j]:4);
				sum := sum + matrix[i,j];
			end
			else writeln(' |',sum:3);
	end;
 
end.

Пример выполнения кода программы:

  -9  -3   1   6  -3  -1
  -1   2  -9   2   8   4
   5  -8   6  -8   7  -1
   9  -1   1   8   9  -6
 
  -9  -3   1   6  -3 | -8
  -1   2  -9   2   8 |  2
   5  -8   6  -8   7 |  2
   9  -1   1   8   9 | 26

Примечания: 

В данном случае замены последнего элемента в строке матрицы не происходит. Происходит просто вывод суммы на экран. Если требуется все же заменить элемент в исходной матрице, то следует в ветке else добавить выражение matrix[i,j] := sum и не забыть при этом про begin-end.

Тема

Матрицы

Уровень

Комбинированные задачи

Добавить комментарий