ЛАБОРАТОРНАЯ РАБОТА 8
В системе Mathcad можно реализовать расчеты по сложным разветвленным алгоритмам или с циклическими процессами. Это реализуется использованием встроенных программных операторов, похожих на используемые в различных языках программирования (рис. 1.17). Как видно на рис. 1.18 и 1.19, где вычисляется факториал, программный модуль в системе Malhcad превратился в самостоятельный блок, причем при необходимости выполнить несколько операторов, их объединяют жирной вертикальной чертой.
Рис. 1.17 | Рис. 1.18 | Рис. 1.19 |
Модуль может вести себя как безымянная функция без параметров, но возвращающая результат – первый пример. Программный модуль может выполнять и роль тела функции пользователя с именем и параметрами – второй пример.
Набор программных операторов для создания программных модулей ограничен и содержит следующие элементы:
· Add Line – создает и при необходимости расширяет жирную вертикальную линию, справа от которой в шаблонах задается запись программного блока;
· – символ локального присваивания (в теле модуля);
· if – условный оператор;
· for – оператор задания цикла с фиксированным числом повторений;
· while – оператор задания цикла, действующего до тех пор, пока выполняется некоторое условие;
· otherwise – оператор иного выбора (обычно применяется с if);
· break – оператор прерывания;
· continue – оператор продолжения;
· return – оператор возврата;
· on error – оператор обработки ошибок.
Оператор добавления линии Add Line выполняет функции расширения программного блока. Расширение фиксируется удлинением вертикальной черты программных блоков или их древовидным расширением. Благодаря этому, в принципе, можно создавать сколь угодно большие программы.
Оператор внутреннего присваивания выполняет функции внутреннего, локального присваивания. Например, выражение присваивает переменной x значение 123. Локальный характер присваивания означает, что такое значение х сохраняет только в теле программы. За пределами тела программы значение переменной х может быть неопределенным, либо равно значению, которое задается вне программного блока операторами локального:= или глобального присваивания.
Условный оператор if является оператором для создания условных выражений. Он задается в виде:
Если условие выполняется, то возвращается значение выражения. Совместно с этим оператором часто используются операторы прерывания break и иного выбора otherwise.
Оператор цикла for служит для организации циклов с заданным числом повторений. Он записывается в виде:
Эта запись означает, что выражение, помешенное в расположенный ниже заменитель, будет выполняться для значений переменной Var, меняющихся от Nmin до Nmax с шагом +1. Переменную счетчика Var можно использовать в исполняемом выражении.
Оператор цикла while служит для организации циклов, действующих до тех пор, пока выполняется некоторое условие. Этот оператор записывается в виде:
Выполняемое выражение записывается на место расположенного ниже заполнителя.
Оператор иного выбора otherwise обычно используется совместно с оператором if. Это поясняет следующая программная конструкция:
Здесь f(x) получает значение 1, если х>0, и –1 во всех остальных случаях.
Оператор прерывания break вызывает прерывание работы программы всякий раз, как он встречается. Чаще всего он используется совместно с оператором условного выражения if и операторами циклов while и for, обеспечивая переход в конец тела цикла.
Оператор продолжения continue используется для продолжения работы после прерывания программы. Он также чаще всего используется совместно с операторами задания циклов while и for, обеспечивая возвращение в точку прерывания и продолжение вычислений.
Оператор возвращения return прерывает выполнение программы и возвращает значение операнда, стоящего следом за ним. Например, конструкция
будет возвращать значение 0 при любом х < 0.
Оператор и функция обработки ошибок позволяет создавать конструкции обработчиков ошибок. Этот оператор задается в виде:
Здесь если при выполнении Выражения_1 возникает ошибка, то выполняется Выражение_2. Для обработки ошибок полезна также функция error(S), которая, будучи помешенной в программный модуль, при возникновении ошибки выводит всплывающую подсказку с надписью, хранящейся в символьной переменной S.
Программный модуль, в сущности, является функцией, но описанной с применением упомянутых программных средств. Она возвращает значение, определяемое последним оператором (если не предусмотрено иное с помощью оператора return). Это значит, что после такого модуля, выделенного как целый блок, можно поставить знак равенства для вывода результата его работы (см. рис. 1.18). В блоке могут содержаться любые операторы и функции входного языка системы.
Задача 1. Составить программу вычисления и печати указанных величин при произвольных значениях исходных данных.
Указание. Программу составить двумя способами:
а) с помощью условного оператора;
б) с помощью оператора безусловного перехода.
Задача 2. Составить программу вычисления и печати указанной величины при произвольных значениях исходных величин.