Функция в программе, процедуры, зачетная - Free Pascal
Формулировка задачи:
Ребят, вот сама программа
В ней процедуры
Нужно написать функцию
Возможно ли поменять изменить процедуры Ml и Md
На функцию, или же, если не брать из процедур, то функцию иную написать?
Спасите безумца, ибо зачетная работа и долго над ней уже безрезультатно сижу
Решение задачи: «Функция в программе, процедуры, зачетная»
textual
Листинг программы
program test;
type
matr2 = array[1..6, 1..6] of integer;
procedure CreateRandomMatrix(var A: Matr2; n, k: integer);
var
i, j: integer;
begin
for i := 1 to n do
for j := 1 to k do
A[i, j] := -1000 + random(2000);
end;
function MLD(const A: Matr2; n, k: integer; KeepPositive: boolean): Matr2;
var
i, j: integer;
R: Matr2;
begin
for i := 1 to n do
for j := 1 to k do
if (KeepPositive) xor (A[i, j] < 0) then
R[i, j] := A[i, j]
else
R[i, j] := 0;
MLD := R;
end;
procedure ShowMatrix(const A: Matr2; n, k: integer);
var
i, j: integer;
begin
for i := 1 to n do
begin
for j := 1 to k do
Write(A[i, j]: 6);
writeln;
end;
end;
var
A, B: Matr2;
n, k: integer;
begin
randomize;
n := 6;
k := 5;
CreateRandomMatrix(A, n, k);
writeln('A');
ShowMatrix(A, n, k);
B := MLD(A, n, k, True);
writeln('B positive');
ShowMatrix(B, n, k);
B := MLD(A, n, k, False);
writeln('B negative');
ShowMatrix(B, n, k);
end.
Объяснение кода листинга программы
- Объявлен тип массива
array[1..6, 1..6] of integerдля представления квадратной матрицы размером 6x6. - Создана процедура
CreateRandomMatrix, которая инициализирует элементы матрицыAслучайными числами в диапазоне от -1000 до 1000. - Создана функция
MLD, которая принимает матрицуAи три целых числаn,k,KeepPositive. ЕслиKeepPositiveравноtrue, то в новой матрицеRсохраняются только положительные числа из матрицыA. ЕслиKeepPositiveравноfalse, то в новой матрицеRсохраняются только нули. - Создана процедура
ShowMatrix, которая выводит элементы матрицы на экран. - В основной части программы объявлены и инициализированы переменные
A,B,n,k. - Вызвана процедура
CreateRandomMatrix, чтобы заполнить матрицуAслучайными числами. - Выведена матрица
Aна экран с помощьюShowMatrix. - Вычислена и выведена на экран матрица
B, в которой сохранены только положительные числа из матрицыAс помощью функцииMLDиShowMatrix. - Вычислена и выведена на экран матрица
B, в которой сохранены только отрицательные числа из матрицыAс помощью функцииMLDиShowMatrix.