uses
Crt;
const
N = 4;
M = 4;
var
a: array [1..N, 1..2*M] of integer;
i,j,k,Mmax,cR: integer;
fl: boolean;
begin
ClrScr;
Mmax := M;
cR := 2;
WriteLn('Matrix A:');
for i := 1 to N do
begin
for j := 1 to M do
begin
a[i, j] := Random(8) - 4;
Write(a[i, j]:2, ' ');
end;
WriteLn;
end;
j := M;
while j > 0 do
begin
fl := true;
for i := 1 to N do
if a[i, j] < 0 then
begin
fl := false;
break;
end;
if fl then
begin
Inc(Mmax);
for i := 1 to N do
for k := Mmax downto j + 1 do
a[i, k] := a[i, k - 1];
if j < 2 then
Inc(cR);
if j <> 2 then
for i := 1 to N do
a[i, j] := a[i, cR];
end;
Dec(j);
end;
WriteLn('Result:');
for i := 1 to N do
begin
for j := 1 to Mmax do
Write(a[i,j]:2, ' ');
WriteLn;
end;
end.