В двумерном массиве удвоить элементы тех столбцов, в которых нет нулевых элементов - Pascal
Формулировка задачи:
В двумерном массиве удвоить элементы тех столбцов, в которых нет нулевых элементов, помогите пожалуйста.
Решение задачи: «В двумерном массиве удвоить элементы тех столбцов, в которых нет нулевых элементов»
textual
Листинг программы
var ar: Array[Byte, Byte] Of ShortInt; i, j, n, m: Byte; haveZero: Boolean; begin repeat Write('Введите количество строк (1..255): '); ReadLn(n); until (n > 0); repeat Write('Введите количество столбцов (1..255): '); ReadLn(m); until (m > 0); Randomize; WriteLn('Сгенерированная матрица:'); for i := 0 to n - 1 do begin for j := 0 to m - 1 do begin ar[i, j] := Random(127) - 63; Write(ar[i, j]:5); end; WriteLn; end; j := 0; repeat i := 0; repeat haveZero := (ar[i, j] = 0); Inc(i); until ((haveZero) Or (i >= n)); if (Not haveZero) then for i := 0 to n - 1 do ar[i, j] := ar[i, j]*2; Inc(j); until (j >= m); WriteLn('Модифицированная матрица:'); for i := 0 to n - 1 do begin for j := 0 to m - 1 do Write(ar[i, j]:5); WriteLn; end; end.
Объяснение кода листинга программы
- Объявление переменных:
ar: Array[Byte, Byte] Of ShortInt;
- объявляется двумерный массив с именемar
, который содержит элементы типа ShortInt, размерностью n строк и m столбцов.i, j, n, m: Byte;
- объявляются переменные типа Byte: i, j, n и m.haveZero: Boolean;
- объявляется переменная типа Boolean с именемhaveZero
.
- Ввод размерности массива:
- Пользователю предлагается ввести количество строк и столбцов массива с помощью циклов repeat-until и производится проверка на валидность введенных значений.
- Генерация случайных чисел и заполнение массива:
- Генерируется случайная матрица с помощью функции Random и заполняется сгенерированными значениями в диапазоне от -63 до 63.
- Удвоение элементов тех столбцов, в которых нет нулевых элементов:
- Выполняется цикл по столбцам, в котором для каждого столбца проверяется наличие нулевого элемента.
- Если нулевого элемента в столбце нет (haveZero = False), то все элементы столбца удваиваются (ar[i, j] := ar[i, j]*2).
- Отображение модифицированной матрицы:
- Выводится модифицированная матрица после удвоения элементов в столбцах.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д