You are on page 1of 2

Task: Two-dim with procedure for one-dim array

Let A - be two-dim. array A of n*m elements


Create and output one-dim. array B where B[i] - the least element for i-row
in given array A.
To find the least element use:
a) function
b) procedure
Program example(f1,f2);
Const nmax=10;
mmax=20;
Type vect=array[1..mmax] of real;
Matr=array[1..nmax] of vect;
Var
B:array[1..nmax] of real;
A:matr;
f1,f2:text;
Procedure Input(var n,m:integer;var
A:matr);
Var i,j:integer;
Begin
Readln(f1,n,m);
For i:=1 to n do
begin
for j:=1 to m do
read(f1,a[i][j]);
readln(f1);
end;
end;
Procedure output(n,m:integer; A:matr);
Var i,j:integer;
Begin
writeln(f2,n,m);
For i:=1 to n do
begin
for j:=1 to m do
write(f2,a[i][j]:6:2);
writeln(f2);
end;
end;
Function Least(n:integer;X:vect):real;
Var i:integer;
Begin
Least:=X[i];
For i:=1 to n do
If X[i]<least then least:= X[i];
End;
Begin {main program starts}
Assign(f1,);
Assign(f2,.);
Reset(f1,);
Rewrite(f2,.);

Input(n,m,A);
Output(n,m,A);
For i:=1 to n do
B[i]:=least(m,a[i]);
{output array B}

Close(f1);
Close(f2);
End.
b)Variant with procedure
Program example(f1,f2);
Const nmax=10;
mmax=20;
Type vect=array[1..mmax] of real;
Matr=array[1..nmax] of vect;
Var
B:array[1..nmax] of real;
A:matr;
f1,f2:text;
Procedure Input(var n,m:integer;var
A:matr);
Var i,j:integer;
Begin
Readln(f1,n,m);
For i:=1 to n do
begin
for j:=1 to m do
read(f1,a[i][j]);
readln(f1);
end;
end;
Procedure output(n,m:integer; A:matr);
Var i,j:integer;
Begin
writeln(f2,n,m);
For i:=1 to n do
begin
for j:=1 to m do
write(f2,a[i][j]:6:2);
writeln(f2);
end;
end;

Procedure Least_calc(n:integer; X:vect; var


least:real);
Var i:integer;
Begin
Least:=X[i];
For i:=1 to n do
If X[i]<least then least:= X[i];
End;
Begin {main program starts}
Assign(f1,);
Assign(f2,.);
Reset(f1 Begin {main program starts}
Assign(f1,);
Assign(f2,.);

Reset(f1,);
Rewrite(f2,.);
Input(n,m,A);
Output(n,m,A);
For i:=1 to n do
Least_calc(m,a[i],B[i]);
{output array B}

Close(f1);
Close(f2);
End.

{modification for column}


.
Const nmax=10;
mmax=20;
Type vect=array[1..nmax] of real;
Matr=array[1..nmax,1..mmax] of real;
Var add:vect;
..
For j:=1 to m do
Begin
For i:=1 to n
Add[i]:=A[i,j];
Least(n,add,B[j]); {call procedure for several column}
End;
.

You might also like