В каждой строке заменить знак максимального по модулю элемента на противоположный - Pascal
Формулировка задачи:
Дан двумерный массив целых чисел a из n строк и m столбцов. Требуется в каждой строке заменить знак максимального по модулю элемента на противоположный. Если таких элементов несколько, требуется изменить все.
Решение задачи: «В каждой строке заменить знак максимального по модулю элемента на противоположный»
textual
Листинг программы
var a: Array[Byte, Byte] Of ShortInt; i, j, n, m, jMax: Byte; max: ShortInt; begin Randomize; repeat Write('n(>0)='); ReadLn(n); until (n > 0); repeat Write('m(>0)='); ReadLn(m); until (m > 0); WriteLn('Original array:'); for i := 0 to n - 1 do begin jMax := 0; for j := 0 to m - 1 do begin a[i, j] := Random(199) - 99; Write(a[i, j]:4); if (Abs(a[i, j]) > Abs(a[i, jMax])) then jMax := j; end; WriteLn; max := Abs(a[i, jMax]); for j := 0 to m - 1 do if (Abs(a[i, j]) = max) then a[i, j] := -a[i, j]; end; WriteLn('Modified array:'); for i := 0 to n - 1 do begin for j := 0 to m - 1 do Write(a[i, j]:4); WriteLn; end; end.
Объяснение кода листинга программы
- Объявление переменных:
a
- двумерный массив с элементами типа ShortInti
- переменная типа Byte для использования в циклахj
- переменная типа Byte для использования в циклахn
- переменная типа Byte для хранения количества строк в массивеm
- переменная типа Byte для хранения количества столбцов в массивеjMax
- переменная типа Byte для хранения индекса максимального элемента в строкеmax
- переменная типа ShortInt для хранения максимального по модулю элемента в строке
- Генерация случайных значений для массива:
- Цикл, в котором пользователю предлагается ввести значение
n
, повторяется до тех пор, покаn
не будет больше 0. - Цикл, в котором пользователю предлагается ввести значение
m
, повторяется до тех пор, покаm
не будет больше 0. - Генерируются случайные значения для элементов массива
a[i, j]
и выводятся на экран.
- Цикл, в котором пользователю предлагается ввести значение
- Поиск максимального элемента в строке:
- Для каждой строки определяется индекс максимального по модулю элемента и сохраняется в переменной
jMax
.
- Для каждой строки определяется индекс максимального по модулю элемента и сохраняется в переменной
- Замена знака максимального по модулю элемента на противоположный:
- Выбирается максимальный по модулю элемент в строке сохраненный в переменной
max
. - Для каждого элемента в строке, если значение по модулю равно
max
, то знак этого элемента меняется на противоположный путем умножения на-1
.
- Выбирается максимальный по модулю элемент в строке сохраненный в переменной
- Вывод измененного массива:
- Измененный массив выводится на экран.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д