ВУЗ:
Составители:
Рубрика:
32
Алгоритм второго решения:
1. Счетчик переписанных элементов k=0.
2. Просматриваем элементы массива.
3. Если элемент A[i] не меньше 0, k увеличиваем на 1 и переписываем
элемент A[i] на k-е место.
4. После просмотра всего массива количество переписанных элементов
k заносим в n.
Фрагмент программы:
Var
K : IndexEl; {Количество переписанных элементов}
…
Begin
…
{1 – переписанных элементов пока не было}
k := 0;
{2 – в цикле просматриваем элементы массива}
for I := 1 to n do
{3 – если A[i] не <0}
if not( A[i] < 0) then
begin
Inc(k); {Увеличиваем значение k на 1}
A[k] := A[i]; {Переписываем i-й элемент в позицию k}
end;
{4 – в массиве оставляем k элементов}
n := k;
…
Пример прогона программы:
Исходный массив: -1 -2 2 -3 -4 3
Состояния массива после просмотра очередного элемента массива:
0: k=0, i=1, n=6: -1 -2 2 -3 -4 3 {не переписываем}
1: k=0, i=2, n=6; -1 -2 2 -3 -4 3 {не переписываем}
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »