type tbl=array[1..100,1..100]of integer;
vec=array[1..10000]of integer;
(*********************)
procedure enter(var a:tbl;var n,m:integer);
var k,l:integer;
begin
writeln('enigu la nombron de linioj'); readln(n);
writeln('enigu la nombron da kolumnoj');readln(m);
writeln('enigu tabelo');
for k:=1 to n do
for l:=1 to m do readln(a[k,l]);
end;
(*********************)
procedure minus(var a:tbl; n,m:integer;var b:vec;var c:integer);
var k,l:integer;
begin
c:=0;
for k:=1 to n do
for l:=1 to m do
if a[k,l]< 0 then begin inc(c); b[c]:=a[k,l]; end;
end;
(*********************)
procedure plus(var a:tbl;n,m:integer; var b:vec;var c:integer);
var k,l:integer;
begin
c:=0;
for k:=1 to n do
for l:=1 to n do
if a[k,l] >0 then begin inc(c); b[c]:=a[k,l]; end;
end;
(*********************)
procedure outtbl(var a:tbl; n,m:integer);
var k,l:integer;
begin
for k:=1 to n do begin
for l:=1 to m do write(a[k,l]:8);
writeln; end;
end;
(*********************)
procedure outvec(var a:vec; n:integer);
var k:integer;
begin
for k:=1 to n do write(a[k]:8); writeln; end;
(*********************)
var a:tbl; b,c:vec; n,m,k,l:integer;
begin
enter(a,n,m);
plus(a,n,m,b,k);
minus(a,n,m,c,l);
writeln('matrico A');
outtbl(a,n,m);
writeln('vektoro B');
outvec(b,k);
writeln('vektoro C');
outvec(c,l);
end.
зы: про нолевые элементы речи не ведется, посему они просто выкидываются.