uses crt;
const n=6;
var a:array[1..n,1..n]of integer;
i,j:integer;
function sum_row(k:integer);
var s,j:integer;
begin
s:=0;
for j:=1 to n do s:=s+m[k,j];
sun_row:=s;
end;
function sum_col(k:integer);
var s,i:integer;
begin
s:=0;
for i:=1 to n do s:=s+m[i,k];
sun_col:=s;
end;
function sum_sqr(i,j:integer);
var s:integer;
begin
s:=m[i+1,j]+m[i,j+1]+m[i-1,j]+m[i,j-1]+m[i+1,j+1]+m[i+1,j-1]+m[i-1,j+1]+m[i-1,j-1];
sum_sqr:=s;
end;
begin
clrscr;
randomize;
writeln('Исходный массив');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(100);
write(a[i,j]:3);
end;
writeln;
end;
for i:=1 to n do a[n-i+1,i]:=sum_row(i)+sum_col(i);
writeln('Преобразованный массив (после побочной диагонали)');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:3);
writeln;
end;
readln;
for i:=1 to n do
for j:=1 to n do if ((i+1)mod 3=0) and ((j+1)mod 3=0) and (i>=2) and (j>=2) and (i<=n-1) and (j<=n-1) then m[i,j]:=sum_sqr(i,j);
writeln('Преобразованный массив (разбиение на квадраты)');
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j]:3);
writeln;
end;
readln;
end.