Разность матриц

Задача

Найти разность двух матриц по модулю, т.е. из большего элемента одной матрицы вычесть меньший элемент второй матрицы, находящийся в той же позиции.

Решение

 

Решение задачи нахождения разности двух матриц аналогично нахождению суммы матриц.

Поскольку нужно из большего элемента вычесть меньший, то можно было бы воспользоваться оператором ветвления. Однако проще использовать встроенную в Pascal функцию abs(), которая возвращает модуль переданного ей параметра. При этом не важно из большего элемента вычитается меньший (например, 5 - 3) или из меньшего больший (3 - 5), результат будет один и тот же.

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

 

const N = 2; M = 5;
type arr = array[1..N,1..M] of integer;
var
	one,two,three: arr;
	i,j: byte;
 
procedure matrix(var a: arr);
	begin
		for i:=1 to N do
			for j:=1 to M do
				a[i,j] := random(100);
	end;
 
procedure minus(var a: arr; b: arr; c: arr);
	begin
		for i:=1 to N do
			for j:=1 to M do
				a[i,j] := abs(b[i,j]-c[i,j]);
	end;
 
procedure printer(a: arr);
	begin
		for i:=1 to N do begin
			for j:=1 to M do
				write(a[i,j]:4);
			writeln;
		end;
	end;
 
begin 
	randomize;
	matrix(one);
	printer(one);
	writeln;
	matrix(two);
	printer(two);
	writeln;
	minus(three,one,two);
	printer(three);
end.

 

Выполнение программы, вычисляющей разность матриц:

  11  96  55  17  54
   9  17  15   6  59
 
  99  79  23  97  43
   5  12  57  84  32
 
  88  17  32  80  11
   4   5  42  78  27

 

Тема

Процедуры, функции, рекурсии

Уровень

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