Определить максимальный элемент матрицы и его индекс - Free Pascal
Формулировка задачи:
Постройте двумерный массив вещественных чисел с тремя столбцами. Выведите массив на экран в виде таблицы форматы выведения чисел с двумя числами после точки.Определите максимальный элемент и его индекс.
Решение задачи: «Определить максимальный элемент матрицы и его индекс»
textual
Листинг программы
uses crt;
const mmax=20;
n=3;
var a:array[1..mmax,1..n] of real;
m,i,j,imx,j
mx:integer;
mx:real;
begin
clrscr;
randomize;
repeat
write('Количество строк до ',mmax,' m=');
readln(m);
until m in [1..mmax];
writeln('Исходная матрица:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=10*random;
write(a[i,j]:6:2);
if(i=1)and(j=1) then
begin
mx:=a[1,1];
imx:=1;
jmx:=1
end
else if a[i,j]>mx then
begin
mx:=a[i,j];
imx:=i;
jmx:=j
end
end;
writeln;
end;
writeln('Максимальный элемент=',mx:0:2,' его индексы: [',imx,',',jmx,']');
readln
end.
Объяснение кода листинга программы
- Объявлены переменные:
- mmax - константа, определяет размерность матрицы (20 строк и 3 столбца);
- n - переменная, содержащая количество столбцов матрицы (3);
- a - массив, представляющий собой исходную матрицу размером mmax на n;
- m, i, j, imx, jmx - вспомогательные переменные, используемые в процессе поиска максимального элемента.
- В цикле repeat-until происходит запрос на ввод количества строк матрицы и последующее повторение этого действия до тех пор, пока число строк не будет в пределах от 1 до mmax.
- В цикле for i:=1 to m происходит вывод исходной матрицы, заполнение ее элементами и поиск максимального элемента.
- Внутри вложенного цикла for j:=1 to n происходит заполнение элементов матрицы случайными числами.
- Если это первая строка и первый столбец, то текущее значение элемента становится максимальным, а его индексы запоминаются в переменных imx и jmx.
- Если текущий элемент больше максимального, то он становится новым максимальным, а его индексы запоминаются в переменных imx и jmx.
- После завершения циклов выводится максимальный элемент и его индексы.
- В конце программы ожидается нажатие клавиши для выхода из приложения.