Обработка массивов. Власенко О.Ф - 20 стр.

UptoLike

1 3 9 3 2 7 2
^ ^ ^
a[k] a[z] a[n]
После удаления n стало меньше на d (в нашем примере на 3).
Общий алгоритм решения:
1 . Сдвинуть элементы вперед на d элементов, начиная с z-го.
2 . Уменьшить n на d.
Фрагмент программы:
Var {дополнительные переменные}
k: integer; {индекс элемента, после которого удаляем}
z: integer; {индекс элемента, до которого удаляем}
d: integer; {количество удаляемых элементов}
Begin
{вычисляем количество удаляемых элементов}
d:=z-k-1;
{1 - сдвигаем элементы}
for i:=z to n do
A[i-d]:=A[i];
{2 - уменьшаем n на d}
Dec(n,d);
Задача 13: Из массива удалить все элементы, которые меньше 0.
Рассмотрим два решения этой задачи.
Алгоритм первого решения:
1. Просматриваем массив .
2. Если элемент<0, то удаляем его и n уменьшаем.
3. Если элемент>=0, то переходим к следующему.
Фрагмент программы:
{в цикле просматриваем элементы массива}
i:=1;
while i<=n do
begin
{проверяем ,не нужно ли i-ый элемент удалять}
if A[i]<0 then
begin
{если нужноудаляем i-ый элемент}