Конспект лекций по программированию для начинающих. Гладков В.П. - 146 стр.

UptoLike

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

148
for j:=1 to i-1 do
{обработка a[j]}
Случай 2. Основной массив просматривается слева направо, а подмассив -
справа налево.
for i:=2 to n do
begin
j:=i-1;
while j>0 do
begin
{обработка a[j]}
j:=j-1
end
end.
Случай 3. Основной массив просматривается справа налево, а подмассив -
слева направо.
i:=n;
while i>1 do
begin
for j:=1 to i-1 do {обработка a[j]};
i:=i-1
end.
Случай 4. Основной массив просматривается справа налево, а подмассив -
справа налево.
i:=1;
while i>1 do
begin
j:=i-1;
while j>0 do
begin
{обработка a[j]}
j:=j-1
end;
i:=i-1
end.
11.5. Нелинейные схемы перебора элементов массива
Нетрудно заметить, что все рассмотренные ранее схемы перебора
основывались на линейном изменении индекса массива, т.е. один шаг цикла
отличался от другого шага цикла на величину постоянную и неизменную. Если
величина шага цикла будет величиной переменной, то имеем случай нелинейной
схемы перебора.
Пример 11.4. Нужно обработать элементы массива с индексами 2, 4, 8, 16,
32, ... Получаем нелинейную схему перебора:
i:=2;
while i<=n do
                                   148

      for j:=1 to i-1 do
              {обработка a[j]}
   Случай 2. Основной массив просматривается слева направо, а подмассив -
справа налево.
   for i:=2 to n do
   begin
      j:=i-1;
      while j>0 do
      begin
              {обработка a[j]}
              j:=j-1
      end
   end.
   Случай 3. Основной массив просматривается справа налево, а подмассив -
слева направо.
   i:=n;
   while i>1 do
   begin
      for j:=1 to i-1 do {обработка a[j]};
      i:=i-1
   end.
   Случай 4. Основной массив просматривается справа налево, а подмассив -
справа налево.
   i:=1;
   while i>1 do
   begin
      j:=i-1;
      while j>0 do
      begin
              {обработка a[j]}
              j:=j-1
      end;
      i:=i-1
   end.

          11.5. Нелинейные схемы перебора элементов массива
    Нетрудно заметить, что все рассмотренные ранее схемы перебора
основывались на линейном изменении индекса массива, т.е. один шаг цикла
отличался от другого шага цикла на величину постоянную и неизменную. Если
величина шага цикла будет величиной переменной, то имеем случай нелинейной
схемы перебора.
    Пример 11.4. Нужно обработать элементы массива с индексами 2, 4, 8, 16,
32, ... Получаем нелинейную схему перебора:
    i:=2;
    while i<=n do