Положительные элементы матрицы переписать подряд в одномерный массив (блок схема) - PascalABC.NET
Формулировка задачи:
Дано матрицу размерности N на M. Положительные элементы матрицы переписать подряд в одномерный массив В.
Решение задачи: «Положительные элементы матрицы переписать подряд в одномерный массив (блок схема)»
textual
Листинг программы
uses Arrays;
begin
Randomize;
var a := CreateRandomIntegerMatrix(ReadLnInteger('N ='), ReadLnInteger('M ='), -9, +9);
WriteLn('Создана матрица случайных чисел a:');
WriteMatrix(a, 3);
var b : array of Integer;
var count := 0;
for var Row := 0 to a.GetLength(0)-1 do
for var Col := 0 to a.GetLength(1)-1 do
if a[Row, Col] > 0 then
begin
count += 1;
SetLength(b, count);
b[count-1] := a[Row, Col];
end;
WriteLn('Создан одномерный массив b положительных элементов матрицы a:', NewLine, b);
end.
Объяснение кода листинга программы
- Используется пространство имен Arrays.
- Задаются размеры матрицы с помощью функции ReadLnInteger.
- Создается случайная матрица с помощью функции CreateRandomIntegerMatrix.
- Выводится размер матрицы и её содержимое с помощью функции WriteMatrix.
- Создается одномерный массив b для хранения положительных элементов матрицы a.
- Инициализируется счётчик count для подсчёта положительных элементов.
- Происходит перебор элементов матрицы a с помощью двух вложенных циклов.
- Если элемент матрицы a[Row, Col] больше нуля, то он копируется в массив b с помощью функции SetLength, а счётчик count увеличивается.
- Выводится одномерный массив b с помощью функции WriteLn.