Найти наибольший по модулю элемент матрицы

Задача

В матрице целых чисел найти наибольший (максимальный) по модулю элемент. Вывести на экран его индексы и значение.

Решение

В языке Паскаль есть функция abs(), которая возвращает абсолютное значение переданного ей числа, т. е. его модуль. Воспользуемся ей в условии оператора ветвления при сравнении элементов.

Требуется найти не только значение элемента матрицы, но и его индексы. Поэтому будем определять только последние, так как по ним всегда можно получить значение. До цикла перебора двумерного массива присвоим переменным mi и mj значение 1. Тем самым предположим, что первый элемент и есть наибольший по модулю.

В цикле будем сравнивать модуль значения каждого элемента с модулем того, что находится в позиции [mi, mj]. Если абсолютное значение текущего элемента больше, то перезапишем указанные переменные, присвоив им индексы этого элемента.

const
    N = 6; M = 5;
var
    arr: array[1..N,1..M] of integer;
    i,j,mi,mj: byte;
begin
    randomize;
    mi := 1;
    mj := 1;
    for i:=1 to N do begin
        for j:=1 to M do begin
            arr[i,j] := random(100)-50;
            write(arr[i,j]:4);
        end;
        writeln;
        if abs(arr[i,j]) > abs(arr[mi,mj]) then begin
            mi := i;
            mj := j;
        end;
    end;           
    writeln ('Item [',mi,',',mj,'] = ',arr[mi,mj]);
end.

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

 -44  46  -6  32  38
  -6 -10  -6 -38 -48
 -18   1  19  44 -36
  -8   4 -43  30  16
 -49  18  45  29  10
 -45 -32 -22  18 -36
Item [2,5] = -48

 

Тема

Матрицы

Уровень

Простые задачи

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