Примеры процедур и функций матриц в Паскаль

prucedure pascal

Несколько примеров процедур и функций в Паскаль для работы с матрицей размерности N на M. Для работы используется динамический двухмерный массив. Размерность массива задается строкой SetLength(A,n,m), которая вводится в строке Write(‘Введите размерность n и m: ‘). Сам код компилировался в Pascal ABC.NET.

[code]
Program test_m;
Var
A: array [,] of Integer;
n,m:Integer;

procedure PrintM (const A:array [,] of Integer; const n:Byte; const m:Byte);
var i,j:Byte;
begin
for i:=0 to n-1 do begin
for j:=0 to m-1 do begin
Write(A[i,j],’ ‘);
end; WriteLn; end;
end;

procedure NewM (A:array [,] of Integer; const n:Byte; const m:Byte);
var i,j:Byte;
begin
for i:=0 to n-1 do
for j:=0 to m-1 do
A[i,j]:=Random(90)+10;
end;

function SumM (const A:array [,] of Integer; const n:Byte; const m:Byte):Integer;
var i,j:Byte;
begin
result:=0;
for i:=0 to n-1 do
for j:=0 to m-1 do
result:=result+(A[i,j]);
end;

function MaxM (const A:array [,] of Integer; const n:Byte; const m:Byte):Integer;
var i,j:Byte;
begin
Result:=0;
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
if Result<A[i,j] then Result:=A[i,j];
end;
end;
end;

function MinM (const A:array [,] of Integer; const n:Byte; const m:Byte):Integer;
var i,j:Byte;
begin
Result:=101;
for i:=0 to n-1 do
begin
for j:=0 to m-1 do
begin
if Result>A[i,j] then Result:=A[i,j];
end;
end;
end;

Begin
while((n<1) or (m<1)) do
begin
Write(‘Введите размерность n и m: ‘);
ReadLn(n,m);
end;

SetLength(A,n,m);

NewM(A,n,m);
PrintM(A,n,m);
WriteLn(‘Максимальный элемент: ‘,MaxM(A,n,m));
WriteLn(‘Минимальный элемент: ‘ ,MinM(A,n,m));
WriteLn(‘Сумма элементов: ‘ ,SumM(A,n,m));

ReadLn;
end.
[/code]

Процедура procedure PrintM выводит на экран, MinM и MaxM находит минимальное и максимальное значение, SumM — суммирует все элементы, NewM — создает новую матрицу, которая забивается случайными значениями от 10 до 100. Блок

[code]
while((n<1) or (m<1)) do
begin
Write(‘Введите размерность n и m: ‘);
ReadLn(n,m);
end;
[/code]

не дает задать в Pascal отрицательную и нулевую размерность.

1 Star2 Stars3 Stars4 Stars5 Stars (2 голосов, средний:5,00 из 5)
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.
Оставить комментарий