Найти максимальный элемент на главной диагонали матрицы и на побочной - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите исправить код, чтобы программа находила максимальный элемент на главной диагонале матрицы и на побочной.
 Var
  a: array [1..99,1..99] of integer;
  m,n,i,j,max,p,c: integer;
  b: array [1..99] of integer;
Begin
 Randomize;
 write('m = ');
 readln(m);
 write('n = ');
 readln(n);
 writeln('Ishodnyi massiv:');
  for i:=1 to m do
    begin
     for j:=1 to n do
       begin
        a[i,j]:=random(100);
        write(a[i,j]:4);
       end;
    writeln;
    end;
  for i:=1 to m do
   begin
   b[i]:=a[i,i];
    for j:=2 to m do
     begin
     if (b[i] < a[j,j]) then
      begin
      b[i]:=a[j,j];
      max:=b[i];
      end
     end;
   if (i=1) then
    max:=b[i];
    end;
   writeln(max:4);
    p:=1;
     for i:=m downto 1 do
   begin
   b[i]:=a[i,p];
    for j:=m downto 2 do
     begin
     if (b[i] < a[i-1,p+1]) then
      begin
      b[i]:=a[i-1,p+1];
      max:=b[i];
      end
     end;
   if (i=m) then
    begin
    max:=b[i];
    end;
    p:=p+1;
    end;
   write(max:4);
End.

Решение задачи: «Найти максимальный элемент на главной диагонали матрицы и на побочной»

textual
Листинг программы
var a: array [1..20,1..20] of integer;
    n,i,j,maxg,maxp: integer;
begin
randomize;
write('n = ');
readln(n);
writeln('Ishodnyi massiv:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(100);
    write(a[i,j]:4);
   end;
  writeln;
 end;
maxg:=a[1,1];
maxp:=a[1,n];
for i:=1 to n do
 begin
  if a[i,i]>maxg then maxg:=a[i,i];
  if a[i,n-i+1]>maxp then maxp:=a[i,n-i+1];
 end;
writeln('max gl.diagonali=',maxg);
writeln('max pb.diagonali=',maxp);
readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • a: двумерный массив (20x20) целых чисел;
    • n: количество заполненных элементов массива;
    • i, j: индексы для обхода массива;
    • maxg, maxp: для хранения максимальных значений главной и побочной диагоналей соответственно.
  2. Задается количество заполненных элементов массива (n).
  3. Заполняется массив случайными целыми числами от 0 до 99.
  4. Выводится заполненный массив.
  5. Инициализируются переменные maxg и maxp первым элементом главной и побочной диагоналей соответственно.
  6. Происходит обход массива по диагонали, сравнивая текущий элемент с текущим maxg и maxp и обновляя их при необходимости.
  7. Выводятся значения maxg и maxp.
  8. Программа ожидает нажатия клавиши для завершения работы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы