В двумерном массиве удвоить элементы тех столбцов, в которых нет нулевых элементов - 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).
- Отображение модифицированной матрицы:
- Выводится модифицированная матрица после удвоения элементов в столбцах.
- Конец программы.