Последний отрицательный элемент каждого столбца матрицы заменить нулем - Free Pascal
Формулировка задачи:
Дан двумерный массив. Выполнить следующее преобразование: последний отрицательный элемент каждого столбца заменить нулем.
Решение задачи: «Последний отрицательный элемент каждого столбца матрицы заменить нулем»
textual
Листинг программы
var
N, k: longint;
A: array of array of longint;
procedure InputArray;
begin
Write('‚Введите числа* M и N (Размеры матрицы MxN):');
Readln(N, k);
SetLength(A, N + 1, k + 1);
Writeln('Введите матрицу(M строк по N чисел через пробел)*:');
for n := 1 to n do for k := 1 to k do Read(A[n, k]);
end;
procedure ChangeArray ;
var
last: longint;
begin
for k := 1 to k do
begin
last := 0;
for N := 1 to N do if A[n, k] < 0 then last := N;
if last <> 0 then A[last, k] := 0;
end;
end;
procedure OutPutArray;
begin
Writeln('Новая матрица: ');
for N := 1 to N do
begin
for k := 1 to k do Write(A[n, k], ' ');
Writeln;
end;
readln;
end;
begin
InputArray;
ChangeArray;
OutputArray;
readln;
end.
Объяснение кода листинга программы
В данном коде представлена программа на языке программирования Free Pascal, которая выполняет следующие действия:
- Ввод размеров матрицы (N строк, k столбцов) и ввод матрицы (N строк, k столбцов).
- Ввод последнего отрицательного элемента каждого столбца матрицы.
- Вывод новой матрицы, в которой последний отрицательный элемент каждого столбца заменен нулем. Вот список действий, которые выполняются в коде:
- Ввод размеров матрицы (N строк, k столбцов):
- Запрос на ввод чисел N и k.
- Ввод N и k с помощью функции Readln.
- Установка длины массива A равной N + 1 и k + 1 с помощью функции SetLength.
- Ввод матрицы (N строк, k столбцов):
- Запрос на ввод матрицы (N строк, k столбцов).
- Ввод элементов матрицы с помощью двух вложенных циклов и функции Read.
- Поиск последнего отрицательного элемента каждого столбца:
- Создание переменной last типа longint и инициализация ее значением 0.
- Два вложенных цикла, которые проходят по всем элементам матрицы.
- Если элемент A[n, k] отрицательный, то его значение присваивается переменной last.
- Если значение last не равно 0, то элемент A[last, k] заменяется нулем.
- Вывод новой матрицы:
- Запрос на вывод новой матрицы.
- Два вложенных цикла, которые проходят по всем элементам матрицы.
- Вывод каждого элемента матрицы с помощью функции Write.
- Переход на новую строку с помощью функции Writeln.
- Ввод для завершения работы программы:
- Ввод для завершения работы программы с помощью функции Readln.