«Программирование в MathCad с использованием цикла WHILE. Создание программ циклической структуры»
Цель работы: изучить правила разработки циклических программ в MATHCAD с циклом WHILE
Теоретические положения
Цикл типа while управляется истинностью некоторого условия, вследствие чего нет необходимости знать заранее число выполнений цикла. Важно только, чтобы где-нибудь внутри цикла или в другом выполняемом участке программы присутствовал оператор, делающий условие цикла ложным. В противном случае цикл будет выполняться бесконечно. Если выполняемая программа зациклилась, то ее можно остановить нажатием клавиши[Esc].
Формат записи оператора While
While условие
Тело цикла
В теле цикла должен быть хотя бы один оператор, влияющий на логическое условие. В противоположном случае оператор будет работать бесконечно долго в случае истинности условия.
В качестве условия используются операторы отношения или логические операции.
x>0.5; y>x; (A>B) (C>x)
С помощью оператора While реализуют базовую структуру программирования ”цикл с предусловием”.
Оператор While вводят в программный блок нажатием на кнопку While на палитре Programming, либо нажатием клавиш Ctrl + ].
Операторы While, так же как и For, могут быть вложенными.
While условие 1
While условие 2
Тело цикла
Чтобы записать цикл типа while, нужно:
· Щёлкнуть по кнопке “while” в панели программирования.
· Напечатать условие выполнения в верхнем поле ввода. Обычно это — логическое выражение, подобное показанному.
· Записать в оставшемся поле ввода выражение, подлежащее повторяющемуся вычислению. Введение дополнительных полей ввода осуществляется путем нажатия кнопки “Add Line” на панели программирования.
На Рисунке 1 показана чуть более объемная программа, включающая цикл типа while. Обнаружив заголовок цикла типа while, Mathcad проверяет условие цикла. Если оно истинно, то Mathcad выполняет тело цикла и снова проверяет условие. Если оно ложно, то Mathcad заканчивает выполнение цикла.
Рисунок 1: Использование цикла типа “while” для отыскания первого вхождения заданного числа в матрицу.
Оператор “break”
Часто удобно выйти из цикла или остановить исполнение программы при выполнении некоторого условия. Например, для программы на Рисунке 5 существует возможность зацикливания. Если каждый элемент из v меньше, чем thresh, то условие никогда не станет ложным и поиск выйдет за пределы вектора, что приведет к сообщению об ошибке “индекс вне границ”. Чтобы это не случилось, можно использовать оператор break, как показано на Рисунке 2.
Программа на Рисунке 2 возвратит 0 в случае, если не будет найдено ни одного элемента, превосходящего thresh. В противном случае она возвращает индекс и значение первого элемента, превосходящего thresh.
Чтобы ввести оператор break, нужно щёлкнуть по кнопке “break” на панели программирования. Подчеркнем, что в примере на Рисунке 6 нужно сначала щёлкнуть по кнопке “break” и только потом по кнопке “if”.
Рисунок2: Пример из Рисунка 2, измененный таким образом, чтобы возвращались индекс и значение элемента массива. Оператор “break” использован для предотвращения ошибки в тех случаях, когда величина thresh оказывается слишком большой.
Примеры:
1) Составить программу вычисления суммы ряда S= с заданной точностью Е=0,001
Считать , что требуемая точность достигнута, если очередное слагаемое оказалось по модулю меньше, чем Е. Это значит , что все последующие слагаемые в сумме можно не учитывать.
м
2) Вычислить сумму чётных чисел в интервале1..20.
Замечание: вводить логическое = в операторе “if” с панели Boolean