// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
procedure MasPrint(a:array[,] of integer; k:integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Write(a[i,j]:k);
Writeln
end
end;
begin
var n:=ReadInteger('Задайте число строк/столбцов в массиве:');
var a:=MatrixRandom(n,n,-99,99);
Writeln('Исходный массив');
MasPrint(a,4);
for var i:=0 to n-1 do
for var j:=0 to n-1 do
if i=j then a[i,j]:=1 else a[i,j]:=0;
Writeln('Результирующий массив');
MasPrint(a,2)
end.
Тестовое решение
Задайте число строк/столбцов в массиве: 8
Исходный массив
42 94 45 -22 -15 -19 -43 68
-55 -52 -81 62 -16 -11 40 -2
-95 -94 -1 -83 63 -9 29 -15
-82 53 -26 24 -47 -74 45 48
55 -50 -23 30 -95 77 -47 -55
96 40 32 11 -14 -41 -36 -11
88 37 -81 -59 -83 -27 -19 -49
-35 -39 -39 32 -93 33 16 -80
Результирующий массив
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1