Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы - PascalABC.NET (24720)
Формулировка задачи:
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов , расположенных в заштрихованной части матрицы.
Решение задачи: «Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы»
textual
Листинг программы
var a:array[,]of integer;
n,i,j,max:integer;
begin
randomize;
write('n=');
readln(n);
setlength(a,n,n);
for i:=0 to n-1 do
begin
for j:=0 to n-1 do
begin
a[i,j]:=random(100);
write(a[i,j]:3);
end;
writeln;
end;
max:=a[0,0];
for i:=0 to n-1 do
for j:=0 to n-1 do
if(((j<=i)and(j<=n-i-1))
or((j>=i)and(j>=n-i-1)))and(a[i,j]>max)
then max:=a[i,j];
writeln('Максимальный элемент в заштрихованной области=',max);
end.
Объяснение кода листинга программы
- Объявляются переменные: a - двумерный массив целых чисел; n - количество строк и столбцов в матрице; i, j - индексы для обхода матрицы; max - переменная для хранения максимального элемента.
- Задается размерность матрицы с помощью цикла и ввода с клавиатуры.
- Заполняется матрица случайными значениями от 1 до 100 с помощью функции random и цикла.
- Выводится на экран содержимое матрицы с помощью цикла и функции write.
- Начальное значение максимального элемента присваивается первому элементу первой строки матрицы.
- Два вложенных цикла проверяют каждый элемент матрицы на предмет того, находится ли он в заштрихованной области (условие ((j<=i)and(j<=n-i-1)) or((j>=i)and(j>=n-i-1)))). Если элемент больше текущего максимального, то он становится новым максимальным.
- Выводится на экран максимальный элемент заштрихованной области.