Программирование циклических алгоритмов
Циклическим алгоритмом (или просто циклом) называется алгоритм, содержащий вычисления, повторяющиеся при различных значениях некоторой переменной, названной параметром цикла, а сами повторяющиеся вычисления составляют тело цикла.
Типы циклов. По способам организации цикла можно выделить:
а) цикл типа арифметической прогрессии;
б) итерационный цикл.
Особенностью цикла типа арифметической прогрессии является изменение параметра цикла по закону арифметической прогрессии, и поэтому можно, не выполняя цикла, определить количество повторений цикла.
Пример 3.3.1. Сформировать вектор z из n элементов, определяемых соотношением:
, i = 1, …, n; n = 10.
В этом примере i – параметр цикла, а тело цикла (вычисление элементов
) будет повторено n= 10 раз, т.е. алгоритм является циклом типа арифметической прогрессии. ¨
В итерационном цикле невозможно «априори», т.е. не выполняя вычислений, определить число повторений тела цикла из-за разнообразных условий завершения цикла.
Пример 3.3.2. Вычислить приближенное значение
, используя итерационную процедуру:(3.3.1)
В качестве приближенного значения
принимается , удовлетворяющее условию:, (3.3.2)
где
– заданная точность вычисления корня квадратного. Даже задав конкретные значения (например, а = 9, ), невозможно априори определить количество повторений цикла. ¦Программирование цикла типа арифметической прогрессии. Параметр такого цикла задается дискретной переменной (называемой также ранжированной переменной), и тогда конструкции, входящие в тело цикла, располагаются начиная от этого описания и до конца документа MathCAD или до конструкции, переопределяющей дискретную переменную – параметр цикла.
Фрагмент документа, в котором реализован алгоритм решения задачи примера 3.3.1 приведен на рис. 3.3.1.
Рис. 3.3.1. Формирование вектора z
примера 3.3.1
На рис. 3.3.2 приведен фрагмент документа, формирующий матрицу (двумерный массив) по следующему правилу:
. (3.3.3)
Очевидно, что этот цикл имеет уже два параметра: i
– параметр, определяющий номер строки; j – параметр, определяющий номер столбца матрицы. Напомним, что такой цикл называется двойным циклом.