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