Оригинал статьи: http://www.cyberforum.ru/pascal/thread133142.html
Благодарен всем авторам, которые внесли свой вклад в сборку кода.
Удалить все нулевые элементы из введенного пользователем массива.
var a: array[1..100] of integer; i, m, n: integer; begin writeln('Колличество элементов массива ='); readln(n); {считываем количество элементов} for i := 1 to n do a[i] := random(9); writeln('Массив'); for i := 1 to n do write(a[i], ' '); writeln; writeln('После удаления'); m := 0; for i := 1 to n do if (a[i] = 0) then inc(m) else a[i - m] := a[i]; {удаляем элементы} dec(n, m); {уменьшаем количество элементов массива на количество нулевых элементов} for i := 1 to n do write(a[i], ' '); {вывод на экран} readln end.