В каждой строке заменить знак максимального по модулю элемента на противоположный - 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
.
- Выбирается максимальный по модулю элемент в строке сохраненный в переменной
- Вывод измененного массива:
- Измененный массив выводится на экран.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д