Заменить максимальный элемент каждой строки матрицы нулем - Pascal

Узнай цену своей работы

Формулировка задачи:

Дан двумерный массив размером n*m, заполненный случайным образом. 1. Заменить максимальный элемент каждой строки нулем 2. Вставить перед всеми строками, первый элемент которых делится на 3, строку из нулей. 3. Удалить самый левый столбец, в котором встретиться четный отрицательный элемент. 4. Поменять местами второй и предпоследний столбцы.

Решение задачи: «Заменить максимальный элемент каждой строки матрицы нулем»

textual
Листинг программы
  1. var
  2.     ar: Array[Byte, Byte] Of ShortInt;
  3.     i, j, k, n, m, jMax: Byte;
  4.     temp: ShortInt;
  5.     flag: Boolean;
  6. begin
  7.     repeat
  8.         Write('n(1..128)=');
  9.         ReadLn(n);
  10.     until (n in [1..128]);
  11.     repeat
  12.         Write('m=');
  13.         ReadLn(m);
  14.     until (m > 0);
  15.     Randomize; WriteLn('Original array:');
  16.     for i := 0 to n - 1 do
  17.     begin
  18.         jMax := 0;
  19.         for j := 0 to m - 1 do
  20.         begin
  21.             ar[i, j] := Random(199) - 99;
  22.             Write(ar[i, j]:4);
  23.             if (ar[i, j] > ar[i, jMax])
  24.             then
  25.                 jMax := j;
  26.         end;
  27.         ar[i, jMax] := 0;
  28.         WriteLn;
  29.     end;
  30.     WriteLn('Task 1:');
  31.     for i := 0 to n - 1 do
  32.     begin
  33.         for j := 0 to m - 1 do
  34.             Write(ar[i, j]:4);
  35.         WriteLn;
  36.     end;
  37.     i := 0;
  38.     while (i < n) do
  39.     begin
  40.         if (ar[i, 0] mod 3 = 0)
  41.         then
  42.         begin
  43.             for k := n downto i + 1 do
  44.                 for j := 0 to m - 1 do
  45.                     ar[k, j] := ar[k - 1, j];
  46.             Inc(n);
  47.             for j := 0 to m - 1 do
  48.                 ar[i, j] := 0;
  49.             Inc(i);
  50.         end;
  51.         Inc(i);
  52.     end;
  53.     WriteLn('Task 2:');
  54.     for i := 0 to n - 1 do
  55.     begin
  56.         for j := 0 to m - 1 do
  57.             Write(ar[i, j]:4);
  58.         WriteLn;
  59.     end;
  60.     j := 0; flag := False;
  61.     while ((j < m) And (Not flag)) do
  62.     begin
  63.         i := 0;
  64.         while ((i < n) And (Not flag)) do
  65.         begin
  66.             flag := (ar[i, j] < 0) And (Not Odd(ar[i, j]));
  67.             Inc(i);
  68.         end;
  69.         Inc(j);
  70.     end;
  71.     if flag
  72.     then
  73.     begin
  74.         for k := j - 1 to m - 2 do
  75.             for i := 0 to n - 1 do
  76.                 ar[i, k] := ar[i, k + 1];
  77.         Dec(m);
  78.     end;
  79.     WriteLn('Task 3:');
  80.     for i := 0 to n - 1 do
  81.     begin
  82.         for j := 0 to m - 1 do
  83.             Write(ar[i, j]:4);
  84.         WriteLn;
  85.     end;
  86.     if (m > 1)
  87.     then
  88.         for i := 0 to n - 1 do
  89.         begin
  90.             temp := ar[i, 1];
  91.             ar[i, 1] := ar[i, m - 2];
  92.             ar[i, m - 2] := temp;
  93.         end;
  94.     WriteLn('Task 4:');
  95.     for i := 0 to n - 1 do
  96.     begin
  97.         for j := 0 to m - 1 do
  98.             Write(ar[i, j]:4);
  99.         WriteLn;
  100.     end;
  101. end.

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

  1. Объявление переменных:
    • ar: двумерный массив байтов, используется для хранения данных;
    • i, j, k, n, m, jMax: переменные для итерации и хранения чисел;
    • temp: переменная для временного хранения значения элемента массива;
    • flag: логическая переменная для проверки условий.
  2. Ввод размеров массива:
    • Цикл повторяется, пока пользователь не введет корректное значение для n (количество строк) от 1 до 128;
    • Цикл повторяется, пока пользователь не введет корректное значение для m (количество столбцов), большее 0.
  3. Заполнение массива случайными числами и замена максимального элемента в каждой строке на 0:
    • Заполнение массива ar случайными числами от -99 до 99;
    • Определение максимального элемента в каждой строке и замена его на 0.
  4. Вывод исходного массива.
  5. Задача 1:
    • Вывод измененного массива после замены максимальных элементов на 0.
  6. Задача 2:
    • Перемещение строк с числами, делящимися на 3 без остатка, вниз и вставка нулей вверху;
    • Вывод измененного массива.
  7. Задача 3:
    • Удаление столбцов, содержащих отрицательные и четные числа;
    • Вывод измененного массива.
  8. Задача 4:
    • Поменять местами значения второго и предпоследнего столбца в каждой строке;
    • Вывод конечного массива.

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


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

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

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы