Программирование циклических алгоритмов
Цикл - это последовательность операторов, которая может выполняться один или более раз. Циклический алгоритм - это алгоритм, содержащий один или несколько циклов. Последовательность операторов, которые выполняются в цикле, называется телом цикла. Параметр цикла – переменная, управляющая работой цикла. Параметр цикла изменяет свое значение при каждом проходе тела цикла. Каждый "проход" цикла называется итерацией. В Mathcad’e применяются два типа циклических алгоритмов: цикл с параметром for и цикл с предусловием while.
Цикл с параметром FOR
Оператор цикла for служит для организации циклов с заданным числом повторений. Параметр такого цикла задается дискретной переменной (называемой также ранжированной переменной).
Рис. 5.1. Блок-схема цикла for
Последовательность действий для вставки оператора цикла for:
- ввести имя программы-функции, список формальных параметров и символ “:”;
- щелкнуть на кнопке for панели Программирование. На экране появятся поля для ввода, изображенные на рис. 5.2:
Рис. 5.2. Вставка оператора цикла for
- в первое поле ввести имя параметра цикла, например i;
- во второе поле диапазон значений параметра цикла, например: i1.. i2 (двоеточие между i1 и i2 набирается клавишей точка с запятой);
- в нижнее третье поле вводятся операторы тела цикла. Для добавления дополнительных операторов в тело цикла щелкните на кнопке Add line.
Операторы тела цикла, будут выполняться столько раз, сколько переменная i изменяет своё значение от i1 до i2 с шагом step. Если значение i1+step не задано, то шаг изменения переменной, по умолчанию равен +1:
Пример 5.1.Вычислить:
Блок-схема алгоритма решения примера:
Описание и вызов программы-функции:
Пример 5.2. Вычислить:
Описание и вызов программы-функции:
Пример 5.3. Дана последовательность где i=1, 2, ..., n. Подсчитать число четных элементов и число отрицательных элементов последовательности.
Пример 5.4. Вычислить значения функции при изменении аргумента х от -1 до 2 с шагом 0.5 и сформировать из этих значений вектор y.
Блок-схема алгоритма решения примера:
Описание программы-функции и обращение к ней имеет вид:
Формальные параметры программы-функции Func используются для задания диапазона и шага изменения переменной x. Переменная i определяет текущее значение индекса элемента вектора y.
Цикл с предусловием WHILE
Цикл while называется с предусловием, т. к. проверка условия осуществляется перед каждым выполнением тела цикла. Используется, если число повторений цикла заранее неизвестно.
Выполнение оператора цикла while начинается с проверки условия. Если оно истинно, то выполняются операторы тела цикла, затем вновь проверятся условие и т. д. Как только на очередном шаге окажется, что условие ложное, то выполнение цикла завершится. Цикл while может ни разу не выполниться, если условие в самом начале ложное.
В блок-схеме цикл while изображается так, как показано на рис. 5.3.
Рис. 5.3. Блок-схема цикла while
Ввод оператора цикла while осуществляется аналогично вводу цикла for, после нажатия кнопки while панели Программирование на экране появляются элементы, показанные на рис. 5.4. В первое поле введите условие выполнения цикла, и в нижнее поле операторы тела цикла. Если в теле цикла более одного оператора, то нужно воспользоваться кнопкой Add Line для добавления дополнительных операторов в тело цикла.
Рис. 5.4. Вставка оператора цикла while
В теле цикла должен присутствовать хотя бы один оператор, изменяющий условие цикла так, чтобы цикл через некоторое число итераций завершился, иначе цикл будет выполняться бесконечно.
Пример 5.4. Найти первый отрицательный член последовательности
Блок-схема алгоритма решения примера:
Описание и вызов программы-функции:
Пример 5.5. Вычислить значения функции при изменении аргумента х от -1 до 3 с шагом 0.5 и сформировать из этих значений вектор y.
Эта задача уже была рассмотрена, но с использованием цикла For, решим ее с циклом While.
Описание и вызов программы-функции:
Пример 5.6.Найти количество и сумму цифр заданного натурального числа.Описание и вызов программы-функции:
В данной программе используются две функции:
· mod – выдаёт остаток при делении x на y.
· trunc – выдает целую часть z, удаляя дробную часть.
Пример 5.7. Составить программу для вычисления суммы членов бесконечного ряда с точностью до члена ряда .
При этом вычисление текущего члена ряда выполнить по формуле: -текущий член ряда, - предыдущий член ряда.
Итерационным называется вычислительный процесс, в котором для определения последующего значения переменной используется её предыдущее значение. При использовании итерационных процессов реализуется метод последовательных приближений. Циклом управляет заданная погрешность вычислений e. Если на очередной итерации погрешность ≥e, то цикл продолжается для вычисления последующего приближённого значения результата, иначе происходит выход из цикла.
Описание и вызов программы-функции:
Вложенные циклы
Если телом цикла является циклическая структура, то такой цикл называется вложенным или сложным. Алгоритм со структурой вложенных циклов – это алгоритм, содержащий цикл, внутри которого размещены один или несколько других циклов.
Цикл, содержащий в себе другой цикл, называют внешним. Цикл, содержащийся в теле другого цикла, называют внутренним. Параметры внешнего и внутреннего циклов изменяются не одновременно и обозначаются различными переменными.
Простейший случай вложенных циклов – двойной. В этом случае один цикл помещается внутри другого. Различные варианты вложенных циклов:
Пример 6.1. Вычислить .
Описание и вызов программы-функции:
Работа вложенного цикла заключается в следующем: сначала задаётся первое значение параметра внешнего цикла i, затем управление передаётся внутреннему циклу и параметр внутреннего цикла j принимает по очереди все значения. Когда выполнение внутреннего цикла окончено, задаётся второе значение параметра внешнего цикла и вновь полностью выполняется внутренний цикл. Процесс повторяется до тех пор, пока параметр внешнего цикла не примет все значения.