Есть ответ 👍

Ввести двумерный массив . Каждый элемент, стоящий в массиве на позиции с четной суммой индексов заменить остатком от деления этого элемента на 7. Массив вывести до и после преобразования. Решить задачу с использованием процедур пользователя.

238
480
Посмотреть ответы 2

Ответы на вопрос:


--- PascalABC.NET 3.6.2 ---

procedure MatrTransform<T>(var Matr: Array[,] of T; TransformRule: T -> T; IndicesPredicate: (integer,integer) -> boolean := nil);

begin

 if IndicesPredicate = nil then begin

   for var i:= 0 to Matr.GetLength(0)-1 do

   begin

     for var k := 0 to Matr.GetLength(1)-1 do

     begin    

       Matr[i,k] := TransformRule(Matr[i,k]);

     end;    

   end;

 end

 else

   for var i:= 0 to Matr.GetLength(0)-1 do

   begin

     for var k := 0 to Matr.GetLength(1)-1 do

     begin  

       if (IndicesPredicate(i,k)) then

       Matr[i,k] := TransformRule(Matr[i,k]);

     end;    

   end;

end;

begin

 var (n,m) := ReadInteger2('Enter dimensions of matrix: ');

 var A := ReadMatrInteger(n,m);

 A.Println;

 MatrTransform(A, x -> x mod 7, (row, col) -> (row+col) mod 2 = 0);

 println('------');

 A.Println;

end.

З.Ы Решение представлено для текстовой версии задачи, в которой говориться о трансформации двумерного массива

З.Ы 2 Generic-Процедура MatrTransform<> Может изменять элементы матрицы как обращая внимание на позицию элемента в матрице, так и нет. По этому в ней больше кода, чем вам, возможно, нужно.

З.Ы 3 MatrTransform<> Может работать с двумерными массивами любого типа данных


Алгоритм адмның күнделікті өмірде қолданатын әрекеттері. Алгоритмге мысал: 1)Есіктің тұтқасынбасу 2)Есікті ашу 3)Бөлмеге кіру 4) Есікті жабу.

Популярно: Информатика