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

UptoLike

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

144
Приведем три варианта построения схемы.
Вариант 1. Здесь индекс начинает изменяться с четного числа, величина шага,
равная двум, обеспечивает сохранение четности индекса.
i:=2;
while i<=n do
begin {обработка a[i]}
i:=i+2
end.
Вариант 2. Здесь внутрь цикла перебора вложен оператор, проверяющий
четность индекса.
for i:=1 to n do
if i mod 2=0
then {обработка a[i]}.
Работает эта схема дольше предыдущей, но иногда она необходима.
Вариант 3. Здесь для получения элемента с четным индексом используется
формула четного числа. Поскольку элементов с четным индексом половина от
общего количества, то переменная цикла i изменяется от 1 до n div 2 (при
целочисленном делении дробная часть отбрасывается).
for i:=1 to n div 2 do
{обработка a[i]}
Случай 5. Перебрать элементы массива с четными индексами, двигаясь от
конца массива к его началу.
Здесь установка начального значения - не простое присваивание, а условный
оператор, позволяющий отыскать последний элемент массива с четным индексом.
if n mod 2 = 0 then i:=n else i:=n-1;
while i>0 do
begin {обработка a[i]}
i:=i-2
end.
Условный оператор, устанавливающий начальное значение индекса, можно
внести в тело цикла, тогда получим следующий вариант схемы:
i:=n;
или for i:=n downto 1 do
while i>0 do if i mod 2 = 0
begin if i mod 2 = 0 then {обработка a[i]}
then {обработка a[i]};
i:=i-1
end.
Он медленнее приведенного выше, так как предполагает проверку четности
индекса при каждом исполнении цикла.
Случай 6. Перебрать элементы массива с четным индексом, двигаясь с обоих
концов массива к его середине.
Для решения этой задачи соединим схемы перебора, рассмотренные в случах 4
и 5:
i:=2;
if n mod 2 = 0 then j:=n else j:=n-1;
while i<=j do
                                     144

    Приведем три варианта построения схемы.
    Вариант 1. Здесь индекс начинает изменяться с четного числа, величина шага,
равная двум, обеспечивает сохранение четности индекса.
    i:=2;
    while i<=n do
    begin      {обработка a[i]}
               i:=i+2
    end.
    Вариант 2. Здесь внутрь цикла перебора вложен оператор, проверяющий
четность индекса.
    for i:=1 to n do
        if i mod 2=0
        then {обработка a[i]}.
Работает эта схема дольше предыдущей, но иногда она необходима.
    Вариант 3. Здесь для получения элемента с четным индексом используется
формула четного числа. Поскольку элементов с четным индексом половина от
общего количества, то переменная цикла i изменяется от 1 до n div 2 (при
целочисленном делении дробная часть отбрасывается).
    for i:=1 to n div 2 do
        {обработка a[i]}
    Случай 5. Перебрать элементы массива с четными индексами, двигаясь от
конца массива к его началу.
    Здесь установка начального значения - не простое присваивание, а условный
оператор, позволяющий отыскать последний элемент массива с четным индексом.
    if n mod 2 = 0 then i:=n else i:=n-1;
    while i>0 do
    begin      {обработка a[i]}
               i:=i-2
    end.
    Условный оператор, устанавливающий начальное значение индекса, можно
внести в тело цикла, тогда получим следующий вариант схемы:
    i:=n;                                 или for i:=n downto 1 do
    while i>0 do                                   if i mod 2 = 0
    begin      if i mod 2 = 0               then {обработка a[i]}
               then {обработка a[i]};
               i:=i-1
    end.
Он медленнее приведенного выше, так как предполагает проверку четности
индекса при каждом исполнении цикла.
    Случай 6. Перебрать элементы массива с четным индексом, двигаясь с обоих
концов массива к его середине.
    Для решения этой задачи соединим схемы перебора, рассмотренные в случах 4
и 5:
    i:=2;
    if n mod 2 = 0 then j:=n else j:=n-1;
    while i<=j do