ВУЗ:
Составители:
Рубрика:
147
1. Сравнить схему перебора 9 со схемами перебора 4-6, установить сходства и
различия.
2. Записать схему перебора 9 для k=8 во всех вариантах (их должно быть 8).
Случай 10. Перебрать все элементы массива группами по k, двигаясь от конца
массива к его началу.
Один из возможных вариантов перебора следующий:
i:=n;
while i>=k do
begin
{обработка a[i-k+1],a[i-k+2],...,a[i]}
i:=i-k
end.
11.4. Перебор подмассивов
В программировании часто возникают задачи, в которых для заданного
элемента массива нужно перебрать оставшиеся элементы. Например, для каждого
элемента перебрать все ему предшествующие или последующие элементы,
перебрать элементы от заданного до первого элемента, удовлетворяющего
некоторому условию. Для перебора каждого подмассива можно использовать
рассмотренные ранее схемы. Это приводит к необходимости вводить
такое
количество индексов, каково количество обрабатываемых подмассивов.
Рассмотрим конкретные примеры.
Пример 11.2. Для каждого элемента массива просмотреть все его последующие
элементы. Здесь возможно несколько вариантов.
Вариант 1. Массив просматриваем по одному элементу слева направо.
Подмассив просматриваем по одному тоже слева направо. Обозначим i - индекс
массива, а j - индекс подмассива, тогда схема может быть такой:
for i:=1 to n-1 do {у последнего элемента нет последующего}
for j:=i+1 to n do {обработка a[j]}
Вариант 2. Подмассив просматриваем справа налево.
for i:=1 to n-1 do
begin
j:=n;
while j>i do
begin
{обработка a[j]}
j:=j-1
end
end.
Могут быть использованы и схемы перебора парами, соседями и т.д.
Пример 11.3. Для каждого элемента просмотреть все ему предшествующие.
Пусть i - индекс массива, а j - индекс подмассива.
Случай 1. Основной массив просматривается слева направо, подмассив
просматривается также слева направо.
for i:=2 to n do {у первого элемента нет предыдущего}
147 1. Сравнить схему перебора 9 со схемами перебора 4-6, установить сходства и различия. 2. Записать схему перебора 9 для k=8 во всех вариантах (их должно быть 8). Случай 10. Перебрать все элементы массива группами по k, двигаясь от конца массива к его началу. Один из возможных вариантов перебора следующий: i:=n; while i>=k do begin {обработка a[i-k+1],a[i-k+2],...,a[i]} i:=i-k end. 11.4. Перебор подмассивов В программировании часто возникают задачи, в которых для заданного элемента массива нужно перебрать оставшиеся элементы. Например, для каждого элемента перебрать все ему предшествующие или последующие элементы, перебрать элементы от заданного до первого элемента, удовлетворяющего некоторому условию. Для перебора каждого подмассива можно использовать рассмотренные ранее схемы. Это приводит к необходимости вводить такое количество индексов, каково количество обрабатываемых подмассивов. Рассмотрим конкретные примеры. Пример 11.2. Для каждого элемента массива просмотреть все его последующие элементы. Здесь возможно несколько вариантов. Вариант 1. Массив просматриваем по одному элементу слева направо. Подмассив просматриваем по одному тоже слева направо. Обозначим i - индекс массива, а j - индекс подмассива, тогда схема может быть такой: for i:=1 to n-1 do {у последнего элемента нет последующего} for j:=i+1 to n do {обработка a[j]} Вариант 2. Подмассив просматриваем справа налево. for i:=1 to n-1 do begin j:=n; while j>i do begin {обработка a[j]} j:=j-1 end end. Могут быть использованы и схемы перебора парами, соседями и т.д. Пример 11.3. Для каждого элемента просмотреть все ему предшествующие. Пусть i - индекс массива, а j - индекс подмассива. Случай 1. Основной массив просматривается слева направо, подмассив просматривается также слева направо. for i:=2 to n do {у первого элемента нет предыдущего}
Страницы
- « первая
- ‹ предыдущая
- …
- 143
- 144
- 145
- 146
- 147
- …
- следующая ›
- последняя »