Дана прямоугольная матрица A(nxm). Заменить наименьший элемент каждой строк - Pascal ABC
Формулировка задачи:
Дана прямоугольная матрица A(nxm). Заменить наименьший элемент каждой строк, начиная со второй, наибольшим элементом предыдущей строки.
Нашел такой код, не получилось его подправить, постоянно выдает ошибки(нужно было добавить заполнение и оформление, по словам автора, что и не вышло)
Решение задачи: «Дана прямоугольная матрица A(nxm). Заменить наименьший элемент каждой строк»
textual
Листинг программы
const n=4;m=9; type mas=array[1..m] of integer; matr=array[1..n] of mas; var a:matr;i,j,tmp:integer; procedure vv_mas(var x:matr;s:string;f:boolean); var i,j:integer; begin writeln(s); for i:=1 to n do begin for j:=1 to m do begin if f then x[i,j]:=random(11); write(x[i,j]:3) end; writeln end end; function maxmin_s(x:mas;f:boolean):integer; var i,mm:integer; begin mm:=x[1]; for i:=2 to m do if (x[i]>mm)=f then mm:=x[i]; maxmin_s:=mm end; begin randomize; vv_mas(a,'исходная:',true); for i:=n downto 2 do begin tmp:=maxmin_s(a[i],false); for j:=1 to m do if tmp=a[i,j] then a[i,j]:=maxmin_s(a[i-1],true) end; vv_mas(a,'полученная:',false) end.
Объяснение кода листинга программы
В данном коде происходит замена наименьшего элемента каждой строки в прямоугольной матрице.
- В начале кода определяются переменные n и m, которые задают количество строк и столбцов в матрице соответственно.
- Затем определяется тип данных mas, который представляет собой массив целых чисел.
- Далее определяется переменная matr, которая представляет собой матрицу размером n на m.
- В процедуре vv_mas происходит вывод исходной матрицы с помощью функции writeln. Затем происходит итерация по каждой строке матрицы. Для каждого элемента строки происходит проверка условия f, если которое выполняется, то элемент заменяется на случайное число, сгенерированное функцией random(11). После этого выводится значение элемента.
- Функция maxmin_s принимает массив целых чисел x и параметр f, который указывает, должен ли наибольший элемент быть найден или нет. Функция инициализирует переменную mm значением первого элемента массива x. Затем происходит итерация по каждому элементу массива x, начиная со второго. Если текущий элемент больше мм, то значение мм обновляется. В конце функция возвращает максимальное значение.
- В основной части кода происходит итерация по каждой строке матрицы, начиная со второй. Для каждой строки вызывается функция maxmin_s, которая заменяет наименьший элемент на максимальное значение из предыдущей строки или из самой первой строки. Выводится полученная матрица.