Найти максимальный элемент диагонали

Задача

Найти максимальный диагональный элемент и указать его координаты в главной диагонали матрицы.

Также решить задачу для побочной диагонали матрицы.

Решение

Элементы главной диагонали имеют одинаковые индексы. Поэтому перебрать эту диагональ и найти максимальный элемент проще. Поскольку надо вывести еще и индексы наибольшего элемента, то в переменной-максимуме следует запоминать индекс (один, так как второй такой же).

Для побочной диагонали индексация немного сложнее, однако второй индекс зависит от первого и в Паскале определяется по формуле N-i+1, где i - первый индекс, N - номер последнего элемента массива. Принцип поиска максимума будет тот же. Сначала предполагаем, что первый элемент диагонали и есть наибольший. Затем перебираем диагональ, начиная с ее второго элемента. Если очередной элемент больше, чей индекс хранится в переменной-максимуме, то записываем туда его первый индекс (второй всегда можно вычислить по формуле).

const N = 10;
var 
    m: array[1..N,1..N] of integer;
    i, j: byte;
    max: integer;
begin
    randomize;
    for i:=1 to N do begin
        for j:=1 to N do begin
            m[i,j] := random(50);
            write(m[i,j]:3);
        end;
        writeln;
    end;
    max := i;
    for i:=2 to N do
        if m[i,i] > m[max,max] then
            max := i;
    writeln(max,',',max, ' = ', m[max,max]);
    max := 1;
    for i:=2 to N do
        if m[i,N-i+1] > m[max,N-max+1] then
            max := i;
    writeln(max,',',N-max+1, ' = ', m[max,N-max+1]);
end.

Пример выполнения программы:

  0 35  5  8 31 42  1  2 24 16
 13 19 16 43 39 27 42 24 29 12
 18 20  6  9 36 44 12 23 11 32
 49  6 29 42 19  2  8 41 34 21
 20 32 40 37 26 45 38 28 12 32
  6  4 26 13 35 26 26 27 13 29
 45 47 40 20 16 36 17  1 33 28
 16 40 16  5 36 42 13 10 28 20
 33 30 22 21 33 49  7 10  6 38
 29 18 27 36  2  0 16 49 31 37
4,4 = 42
5,6 = 45

Тема

Матрицы

Уровень

Комбинированные задачи

Последняя редакция