Дана действительная квадратная матрица порядка N(N-четное) все элементы которой различны.Найти элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом стоящим на пересечении этих диагоналей — Pascal(Паскаль)

const
  nmax=101;
var
  a:array[1..nmax,1..nmax] of longint;
  n,i,j,maxi,maxj,v:longint;
 
begin
 repeat
  write('Введите нечётное n < ', nmax, ': ');
  readln(n);
  if not odd(n) then
  writeln('n должно быть нечётно.');
  if n>nmax then
  writeln('n должно быть меньше ', nmax);
 until (odd(n) and (n < nmax));
 writeln('Ввод матрицы.');
 for i:=1 to n do
  for j:=1 to n do
   begin
    write('a[', i, ',', j, '] = ');
    readln(a[i, j]);
   end;
 maxi:=1;
 maxj:=1;
 for i:=1 to n do
  for j:=1 to n do 
   begin
    if (a[maxi,maxj]<a[i, j]) then
     begin
      maxi := i;
      maxj := j;
     end;
    if (a[maxi, maxj] < a[i, n - j + 1]) then 
     begin
      maxi := i;
      maxj := n - j + 1;
     end;
   end;
 v:=a[maxi,maxj];
 a[maxi,maxj]:=a[(n+1) div 2, (n+1) div 2];  
 a[(n+1) div 2, (n+1) div 2]:=v;
 writeln('После обработки матрица принела следующий вид: ');
 for i:=1 to n do
  begin
   for j:=1 to n do
   write(a[i, j], ' ');
   writeln;
  end;
end.

Leave a Comment

42 + = 52