Вывести позицию наибольшего элемента на главной диагонали матрицы - Pascal
Формулировка задачи:
Что нужно добавить, чтобы выводило позицию наибольшего элемента главной диагонали?
Наибольший элемент на главной диагонали и вывести его на экран.
Const nmax = 20;
Var A:array[1..nmax,1..nmax] of integer;
i,j,n:integer;
max:integer;
Begin
Repeat
write('N: ');
readln(n);
Until (n>0)and(n<=nmax);
For i:=1 to n do
Begin
For j:=1 to n do
Begin
A[i,j]:=random(31)-15;
write(A[i,j]:4);
End;
writeln;
End;
max:=A[1,1];
For i:=2 to n do
if A[i,i]>max then max:=A[i,i];
writeln('Max элемент лежащий на главной диагонали = ',max);
readln;
End.Решение задачи: «Вывести позицию наибольшего элемента на главной диагонали матрицы»
textual
Листинг программы
Const nmax = 20;
Var A:array[1..nmax,1..nmax] of integer;
i,j,n,max,ind:integer;
Begin
Repeat
write('Введите размер матрицы от 2 до ',nmax,' n=');
readln(n);
Until n in [1..nmax];
For i:=1 to n do
Begin
For j:=1 to n do
Begin
A[i,j]:=-15+random(31);
write(A[i,j]:4);
End;
writeln;
End;
max:=A[1,1];
ind:=1;
For i:=2 to n do
if A[i,i]>max then
begin
max:=A[i,i];
ind:=i;
end;
writeln('Max элемент лежащий на главной диагонали A[',ind,',',ind,']=',max);
readln;
End.
Объяснение кода листинга программы
- Объявляется константа
nmaxи переменныеA,i,j,n,maxиind. - Повторно запрашивается ввод размера матрицы до тех пор, пока значение не попадет в диапазон от 1 до
nmax. - Инициализируется матрица
Aслучайными целыми числами от -15 до 15 и выводится на экран. - Инициализируются переменные
maxиindзначением элемента матрицыAна главной диагонали (первый элемент). - В цикле происходит поиск наибольшего элемента на главной диагонали матрицы.
- Выводится результат:
Max элемент лежащий на главной диагонали A[индекс,индекс]=максимальное_значение. - Ожидается ввод пользователя, чтобы завершить выполнение программы.