ВУЗ:
Составители:
Рубрика:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 140
- 141
- 142
- 143
- 144
- …
- следующая ›
- последняя »