Найти наибольший и наименьший элемент заштрихованной части матрицы - Free Pascal (694)
Формулировка задачи:
Дано натуральное число n. Сформировать произвольную матрицу размерности n*n. Найти Наибольший и наименьший элемент заштрихованной части
Решение задачи: «Найти наибольший и наименьший элемент заштрихованной части матрицы»
textual
Листинг программы
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
n,i,j,mx,imx,jmx,mn,imn,jmn,k:integer;
begin
clrscr;
randomize;
repeat
write('Введите размер матрицы от 3 до ',nmax,' n=');
readln(n);
until n in [3..nmax];
k:=n div 2+1;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(100);
mx:=a[1,n];
imx:=1;
jmx:=n;
mn:=a[1,n];
imn:=1;
jmn:=n;
for i:=1 to n do
for j:=k to n do
if (j>=i)and(j>=n-i+1)then
if a[i,j]>mx then
begin
mx:=a[i,j];
imx:=i;
jmx:=j;
end
else if a[i,j]<mn then
begin
mn:=a[i,j];
imn:=i;
jmn:=j;
end;
writeln('Матрица');
for i:=1 to n do
begin
for j:=1 to n do
begin
if(i=imx)and(j=jmx)then textcolor(12)
else if(i=imn)and(j=jmn)then textcolor(9)
else if (j>=i)and(j>=n-i+1)then textcolor(10)
else textcolor(15);
write(a[i,j]:3);
end;
writeln;
end;
textcolor(9);
writeln('Минимальный элемет=',mn);
textcolor(12);
writeln('Максимальный элемет=',mx);
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
- a: массив для хранения значений матрицы
- n: размер матрицы
- i, j: индексы для обхода матрицы
- mx, imx, jmx: координаты максимального элемента
- mn, imn, jmn: координаты минимального элемента
- k: размер заштрихованной части матрицы
- mx, mn: значения для хранения максимального и минимального элементов
- Заполнение матрицы случайными значениями
- Инициализация переменных для хранения максимального и минимального элементов
- Обход заштрихованной части матрицы для поиска максимального и минимального элементов
- Вывод матрицы с использованием разных цветов для выделения заштрихованной части и максимального и минимального элементов
- Вывод координат минимального и максимального элементов
- Чтение действия пользователя для выхода из программы В данном коде реализуется алгоритм поиска максимального и минимального элементов в заштрихованной части матрицы. Алгоритм основан на обходе матрицы и сравнении элементов с текущими минимальным и максимальным значениями. При этом используются разные цвета для выделения заштрихованной части и максимального и минимального элементов в матрице.