Программы с циклами

Цикл является частью программы, которая должна повториться несколько раз для достижения необходимого результата. Именно циклы являются самым главным достоинством программирования в Mathcad.

В программе предусмотрены два вида циклов.

Первый вид задается при помощи оператора for (англ. «для»). Для ввода оператора используется одноименная кнопка панели «Программирование» или комбинация клавиш Ctrl+Shift+’ (рядом с Enter). Этот вид цикла удобен, если известно, сколько раз необходимо повторить часть программы.

При вставке оператора for в программе появляется сам оператор и два знакоместо справа от него, разделенные знаком , а также знакоместо, обозначающее новую строку программы ниже оператора for. В знакоместо сразу после оператора вводится имя локальной переменной, которая будет использована в качестве счетчика повторений цикла (переменная цикла). В знакоместо правее знака при помощи оператора дискретной переменной вводится диапазон изменения переменной цикла.

Новая строка программы ниже оператора for представляет собой первую строку тела цикла. Тело цикла – те выражения, вычисление которых будет повторено несколько раз. Тело цикло может состоять из одной строки или нескольких строк. В первом случае основным признаком тела цикла является положение начала строки – она расположена правее, чем остальные строки программы. Если предполагается, что тело цикла состоит из нескольких строк, их добавляют при помощи кнопки «Add Line». При этом тело цикла из нескольких строк в Mathcad оформляется как подпрограмма, т.е добавляется еще одна вертикальная черта.

При желании в тело цикла можно вставить еще один оператор цикла, получив, таким образом, вложенные циклы.

Цикл for работает следующим образом. Переменной цикла присваивается первое значение диапазона. Выполняется тело цикла. Затем значение переменной цикла увеличивается на величину шага дискретной переменной (1, если не указано иное). Снова выполняется тело цикла, теперь уже с новым значением переменной цикла. И так до тех пор, пока переменная цикла не получит последнее значение диапазона. Тогда тело цикла выполняется в последний раз. Далее продолжается выполнение самой программы, начиная со строки, следующей за телом цикла.

Пример программы, использующей два вложенных цикла for (программа определяет функцию, которая генерирует квадратную матрицу, последовательно заполняя ее значениями от мин до макс шагом шаг)

Второй тип цикла задается оператором while (англ. «до тех пор»). Этот цикл контролируется условием и применяется, если необходимое число повторений цикла неизвестно.

Для ввода оператора используется одноименная кнопка панели «Программирование» или комбинация клавиш Ctrl+]. После ввода оператора справа от него появляется знакоместо для ввода условия, а ниже – строка для ввода тела цикла. Тело цикла будет повторяться раз за разом, пока условие имеет значение «Истина». Как только условие примет значение «Ложь», тело цикла будет проигнорировано, и программа продолжится со строки, следующей за телом цикла.

При создании цикла while обязательно следует проследить, чтобы условие имело возможность обратиться в «Ложь», в противном случае программа зациклится и будет выполняться бесконечно. В этом случае нажатие клавиши Esc позволит остановить вычисление документа, и программу можно будет исправить.

Примером организации цикла while может служить следующая программа, определяющая функцию для поиска заданного значения среди элементов вектора. Функция возвращает вектор из двух элементов: порядковый номер найденного элемента и собственно его значение (которое будет равно заданному):

Для еще большей гибкости в создании программ в Mathcad предусмотрены два дополнительных оператора. Оператор break (англ. «прервать», одноименная кнопка панели «Программирование» или комбинация клавиш Ctrl+Shift+[) прерывает выполнение цикла и продолжает программу с первой строчки после тела цикла – независимо от значения счетчика цикла или условия. Оператор continue (англ. «продолжить», одноименная кнопка панели «Программирование» или комбинация клавиш Ctrl+[) прерывает выполнение цикла, однако перезапускает его. В этом случае игнорируются только те строки в теле цикла, которые идут после оператора continue. Если это цикл for, то переменная цикла увеличивается на шаг цикла, и тело цикла запускается вновь. В случае цикла while пользователь должен сам позаботиться о том, чтобы цикл не стал бесконечным.

Наиболее часто операторы break и continue вставляются в оператор if, находящийся в теле цикла и проверяющий некоторое условие. Если это условие окажется истинным, срабатывает оператор break или continue, прерывая выполнение цикла.

Например, следующая программа определяет функцию для вычисления факториала числа. Сначала задается бесконечный цикл (условие – «1», оно всегда истинно), выход из цикла осуществляется оператором break.

В некоторых сложны программах бывает необходимо, чтобы результатом работы программы было не то выражение, которое вычисляется в ее последней строке, а нечто иное. Часто это необходимо, если алгоритм предполагает проверку некоего условия на промежуточном этапе работы программы. Если условие истинно, программа должна вернуть некое значение, если ложно – продолжить свое выполнение до конца. Для этого можно использовать оператор return (англ. «вернуть»). Для его вставки используется одноименная кнопка панели «Программирование» или комбинация клавиш Ctrl+Shift+\. Чаще всего оператор располагается внутри цикла или в качестве левой части оператора if. Оператор имеет одно знакоместо справа, где указывается выражение, значение которого будет возвращено программой, если оператор return будет исполнен. Как и другие операторы программирования, данный оператор нельзя вводить набором.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: