Основы программирования на языке Turbo Pascal. Беляева И.В. - 31 стр.

UptoLike

Составители: 

31
Алгоритм первого решения:
1. Просматриваем массив.
2. Если элемент <0, то удаляем его и n уменьшаем.
3. Если элемент >=0, то переходим к следующему.
Фрагмент программы:
{В цикле просматриваем элементы массива}
I := 1;
while I <= n do
begin
{Проверяем, не нужно ли i-й элемент удалять}
if A[i] < 0 then
begin
{Если нужноудаляем i-й элемент}
for j := i to n - 1 do {Сдвигаем}
A[j] := A[j+1];
Dec(n); {Уменьшаем количество элементов}
end
else Inc(i); {Если удалять не нужно, то переходим
к следующему элементу}
end;
Пример прогона алгоритма:
Исходный массив:
0: i=1, n=6: -1 -2 2 -3 -4 3
Состояния массива после обработки очередного элемента массива:
1: i=1, n=5: -2 2 -3 -4 3 (удален –1)
2: i=1, n=4: 2 -3 -4 3 (удален –2)
3: i=2, n=4: 2 -1 -2 3 (перешли на следующий)
4: i=2, n=3: 2 -4 3 (удален –3)
5: i=2, n=2: 2 3 (удален –4)
6: i=3, n=2: 2 3 (перешли на следующий)