program mas;
uses crt;
const n=5; m=10;
var a: array[1..n,1..m] of integer;
i,j,k,p,q: integer;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(100)-50;
write(a[i,j]:5);
end;
writeln;
end;
q:=m;{запомним количество столбцов, m-константа, ее уменьшать нельзя}
p:=0;{номер первого столбца из положительных}
for j:=m downto 1 do{идем от последнего столбца, чтобы найти первый}
begin
k:=0;
for i:=1 to n do
if a[i,j]>0 then k:=k+1;{считаем в столбце положительные}
if k=n then p:=j;{если все, то запоминаем}
end;
if p=0 then write('В матрице нет столбцов, содержащих только положительные элементы')
else
begin
writeln('Номер первого столбца, содержащего только положительные элементы=',p);
if p=q then q:=q-1{если он последний, просто отрезаем столбец}
else{иначе}
begin
for j:=p to q-1 do{сдвигаем к этому столбцу}
for i:=1 to n do{ысе элементы строк на 1 влево}
a[i,j]:=a[i,j+1];
q:=q-1;{уменьшаем ширину матрицы}
writeln('Удаление столбца ',p);
for i:=1 to n do
begin
for j:=1 to q do
write(a[i,j]:5);
writeln;
end;
end;
end;
readln
end.