В каждой строке заменить знак максимального по модулю элемента на противоположный - 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.

Объяснение кода листинга программы

  1. Объявление переменных:
    • a - двумерный массив с элементами типа ShortInt
    • i - переменная типа Byte для использования в циклах
    • j - переменная типа Byte для использования в циклах
    • n - переменная типа Byte для хранения количества строк в массиве
    • m - переменная типа Byte для хранения количества столбцов в массиве
    • jMax - переменная типа Byte для хранения индекса максимального элемента в строке
    • max - переменная типа ShortInt для хранения максимального по модулю элемента в строке
  2. Генерация случайных значений для массива:
    • Цикл, в котором пользователю предлагается ввести значение n, повторяется до тех пор, пока n не будет больше 0.
    • Цикл, в котором пользователю предлагается ввести значение m, повторяется до тех пор, пока m не будет больше 0.
    • Генерируются случайные значения для элементов массива a[i, j] и выводятся на экран.
  3. Поиск максимального элемента в строке:
    • Для каждой строки определяется индекс максимального по модулю элемента и сохраняется в переменной jMax.
  4. Замена знака максимального по модулю элемента на противоположный:
    • Выбирается максимальный по модулю элемент в строке сохраненный в переменной max.
    • Для каждого элемента в строке, если значение по модулю равно max, то знак этого элемента меняется на противоположный путем умножения на -1.
  5. Вывод измененного массива:
    • Измененный массив выводится на экран.
  6. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы