Var
A: array [1..100] of Integer;
N, i, j, k: Integer;
begin
Write('Количество элементов массива: ');
ReadLn(N);
k := 0;
for i := 1 To N Do
begin
Write('A[', I, '] = ');
ReadLn(A[i]);
{A[i] := Random(100) - 50;
write(A[i], ' ');}
if A[i] < 0 then k := i;
end;
writeln;
{фильтр, если нет отрицательных}
if k = 0 then begin
write('Отрицательных элементов нет');
halt;
end;
writeln('Удаление отрицательных элементов');
k := 1;
while (n > 0) and (k <= n) do <br> begin
if A[k] < 0 then begin
for i := k to n - 1 do
A[i] := A[i + 1];
n := n - 1;
end
else k := k + 1;
end;
for i := 1 To N Do
write(A[i], ' ');
end.
а вообще правильнее создать еще один массив и переписать туда нужные элементы - куда меньше операций, циклов и затрат памяти. Массив не предназначен для "удаления" элементов в нем