max:=a[1,1];
maxx:=1;
maxy:=1;
for i:=1 to n do
begin
if max<a[i,i] then
begin
max:=a[i,i];
maxx:=i;
maxy:=i;
end;
if max<a[i,n-i+1] then
begin
max:=a[i,n-i+1];
maxx:=i;
maxy:=n-i+1;
end;
end;
a[maxx,maxy]:=a[(n div 2)+1,(n div 2)+1];
a[(n div 2)+1,(n div 2)+1]:=max;
Вариант 2
uses
crt;
const
n=3;
var
a:array [1..n,1..n] of real;
i,j,tempj,tempi:integer;
temp,max:real;
begin
clrscr;
writeln('Матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(8)-4;
write(a[i,j]:2:0,' ')
end;
writeln
end;
max:=a[1,1];
tempi:=1;
tempj:=1;
for i:=1 to n do
for j:=1 to n do
if (i=j) or (n-i+1=j) then
if a[i,j]>max then
begin
max:=a[i,j];
tempi:=i;
tempj:=j
end;
writeln('Максимальный = ',max,'. Ýòî ýëåìåíò a[',tempi,',',tempj,']');
temp:=a[(n div 2)+1,(n div 2)+1];
a[(n div 2)+1,(n div 2)+1]:=a[tempi,tempj];
a[tempi,tempj]:=temp;
writeln('Матрица:');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:2:0,' ');
writeln
end;
end.