В прямоугольной таблице указать строку, содержащую минимальный положительный элемент - Pascal ABC
Формулировка задачи:
Пожалуйста помогите с задачей!
Тема:массивы.
В прямоугольной таблице указать строку, содержащую минимальный положительный элемент.
Решение задачи: «В прямоугольной таблице указать строку, содержащую минимальный положительный элемент»
textual
Листинг программы
const nmax=15; type mas=array[1..nmax,1..nmax] of integer; procedure vvod(var a:mas;var m,n:byte); var i,j:byte; begin repeat write('Количество строк до ',nmax,' m='); readln(m); until m in [1..nmax]; repeat write('Количество столбцов до ',nmax,' n='); readln(n); until n in [1..nmax]; writeln('Исходная матрица:'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=-10+random(21); write(a[i,j]:4); end; writeln; end; end; procedure min(a:mas;m,n:byte); var i,j,k,mn,imn:byte; begin k:=0; for i:=1 to m do for j:=1 to n do if a[i,j]>0 then begin if k=0 then begin mn:=a[i,j]; imn:=1; k:=1; end else if a[i,j]<mn then begin mn:=a[i,j]; imn:=i; end; end; if k=0 then write('В матрице нет положительных элементов') else write('Минимальный положительный=',mn,' в строке ',imn); end; var a:mas; m,n:byte; begin randomize; vvod(a,m,n); min(a,m,n); end.
Объяснение кода листинга программы
- В первой строке кода объявляется константа nmax, которая определяет максимальное количество строк и столбцов в матрице.
- Затем объявляется тип данных mas, который представляет собой массив целых чисел размером до nmax на nmax.
- Далее объявляются две переменные-переключателя m и n, которые будут использоваться для чтения количества строк и столбцов соответственно.
- После этого начинается цикл repeat, который будет выполняться до тех пор, пока m и n не будут равны 1 до nmax.
- Внутри цикла m читается количество строк, а затем выводится сообщение с запросом ввода количества столбцов.
- После того, как количество столбцов было введено, выводится исходная матрица.
- Для каждой строки в матрице (от 1 до m) начинается новый внутренний цикл, в котором для каждой ячейки (от 1 до n) выводится значение этой ячейки.
- Если значение ячейки положительное, то проверяется, является ли оно минимальным среди всех положительных значений в матрице. Если это так, то выводится сообщение с номером строки и номером столбца, где находится минимальное значение.
- Если после завершения внутреннего цикла значение переменной k равно 0, то выводится сообщение о том, что в матрице нет положительных элементов.
- В конце кода сбрасывается генератор случайных чисел и вызывается функция min, передавая ей матрицу и значения m и n.
- После выполнения функции min выводится минимальный положительный элемент в матрице.