На побочной диагонали разместить суммы элементов, которые лежат на той же строке и столбце. Розбить матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата — Pascal(Паскаль)

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.

Leave a Comment

− 1 = 1