Последовательно вложенные циклы

Типовое использование последовательно вложенных циклов – обработка многомерных массивов (задач, в которых они используются) и преобразования одномерных массивов (сортировка элементов).

Варианты использования (функционального назначения) вложенных циклов представлены на рис. 9.2.

Последовательно вложенные циклы - student2.ru

Рис. 9.2. Функциональное назначение вложенных циклов

Обработка элементов многомерных массивов

Рассмотрим обработку многомерных массивов на конкретной задаче (9.1) о расчете элементов двумерного массива.

Постановка задачи

Имеется двумерный массив X размером (m Последовательно вложенные циклы - student2.ru n). Рассчитать аналогичный ему массив Y(m Последовательно вложенные циклы - student2.ru n), каждый элемент которого равен частному от деления соответствующего элемента массива X на два.

Формирование математической модели

Исходные данные

m – размер, определяющий число строк матрицы X ( Последовательно вложенные циклы - student2.ru );

n – размер, определяющий число столбцов матрицы X ( Последовательно вложенные циклы - student2.ru ).

Модель матрицы X(m Последовательно вложенные циклы - student2.ru n):

x11 x12 ... x1j ... x1n
x21 x22 ... x2j ... x2n
... ... ... ... ... ...
xi1 xi2 ... xij ... xin
... ... ... ... ... ...
xm1 xm2 ... xmj ... xmn

1 Последовательно вложенные циклы - student2.ru i Последовательно вложенные циклы - student2.ru m – диапазон изменения номера i строки;

1 Последовательно вложенные циклы - student2.ru j Последовательно вложенные циклы - student2.ru n – диапазон изменения номера j столбца.

Расчётные зависимости

Вычисление текущего элемента искомой матрицы Y:

Последовательно вложенные циклы - student2.ru , для всех 1 Последовательно вложенные циклы - student2.ru i Последовательно вложенные циклы - student2.ru m и 1 Последовательно вложенные циклы - student2.ru j Последовательно вложенные циклы - student2.ru n

Последовательно вложенные циклы - student2.ru Модель матрицы Y(m Последовательно вложенные циклы - student2.ru n):

y11 y12 ... y1j ... y1n
y21 y22 ... y2j ... y2n
... ... ... ... ... ...
yi1 yi2 ... yij ... yin
... ... ... ... ... ...
ym1 ym2 ... ymj ... ymn

Выбор метода решения

Решение задачи можно осуществить двумя вариантами. Первый реализуется последовательностью:

· присвоить индексу строки его начальное значение (i = 1);

· присвоить индексу столбца его начальное значение (j = 1);

· рассчитать искомое Последовательно вложенные циклы - student2.ru , сохранив его в соответствующей ячейке;

· изменить индекс столбца по закону j = j + 1;

· повторять два предыдущих пункта пока j £ n;

· изменить индекс строки по закону i = i + 1;

· повторять пять предыдущих пунктов пока i £ m;

· прекратить решение при i > m.

Второй вариант реализации:

· присвоить индексу столбца его начальное значение (j = 1);

· присвоить индексу строки его начальное значение (i = 1);

· рассчитать искомое Последовательно вложенные циклы - student2.ru , сохранив его в соответствующей ячейке;

· изменить индекс строки по закону i = i + 1;

· повторять два предыдущих пункта пока i £ m;

· изменить индекс столбца по закону j = j + 1;

· повторять пять предыдущих пунктов пока j £ n;

· прекратить решение при j > n.

С точки зрения результатов методы идентичны, поэтому, выбрав для реализации первый, детализируем его. Присвоив индексу строки начальное значение i = 1, и, изменяя индекс столбца j от 1 до n с шагом 1, выберем каждый из элементов x1j и, разделив его на 2, получим соответствующие элементы y1j первой строки искомого массива Y. Повторим вычисления для каждой из следующих строк, индексы которых изменяются от 1 до m с шагом 1.

Следовательно, анализ математической модели позволяет сделать вывод, что решение требует использования структуры с одним последовательно вложенным циклом. При этом в качестве внешнего цикла принят перебор строк (индекс i), а в качестве внутреннего – перебор столбцов (индекс j).

При вычислениях по второму варианту циклы поменяются местами.

Наши рекомендации