Программирование в программе-функции разветвляющихся алгоритмов

 

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

Пусть требуется задать функцию, задающую временную зависимость напряжения , заданного на рис. 2.6.

 

U[Е.С.1]

 

 

t1 t2

t

Рисунок 2.3.5- Временная зависимость напряжения

 


 

Видно, что алгоритм вычислений содержит три ветви и выбор зависит от значения переменной t.

Для программирования разветвляющихся алгоритмов в MathCAD имеется условная функция if и условный оператор. Используя эти конструкции можно «изменить» последовательное выполнение операторов. В этих конструкциях могут использоваться следующие новые понятия.

Выражения отношений.Эти выражения используются для сравнения двух арифметических выражений между собой. Выражение отношений записываются в виде :

< выр. А > < знак отношения > < выр. В> ,

где в качестве знака отношения выступают символы, приведенные в таблице 1.1. Если заданное отношение выполняется, то выражение отношений принимает значение равное 1 ( «истина» ), в противном случае - 0 ( «ложь»).

Логические операции.Определены две логических операции, которые ставятся между выражениями отношений.

Логическая операция ИЛИ. Обозначается знаком + и записывается в виде

< логич.выр.1 > + < логич.выр. 2>

Результат операции равен 0, если оба логических выражения равны 0 и равен 1 для всех остальных значений логических выражений.

Логическая операция И. Вводится знаком * ( в тексте это точка ) и записывается в виде

< логич.выр.1 > . < логич.выр. 2>

Результат равен 1, если оба логических выражения равны 1 и равен 0 для всех остальных значений логических выражений ( сравните с логическим оператором ИЛИ ).

Логическое выражение.Логическим выражением называется конструкция, составленная из выражений отношений, знаков логических операций и круглых скобок. Значение логического выражения вычисляется слева направо с учетом известного правила о приоритете операций. Список приоритетов ( по их убыванию ):

- круглые скобки ;

- логическая операция И;

- логическая операция ИЛИ.

Условная функция if.Эта функция записывается в виде ( символы if вводятся с клавиатуры) :

if ( < логич. выраж. > , < ариф.выраж.1> , < ариф.выраж.2 > )

Правило вычисления условной функции if : если логическое выражение равно 1, то функция принимает значение равное значению арифметического выражения 1 ; если логическое выражение равно 0, то функция принимает значение равное значению арифметического выражения 2. Условная функция используется в арифметических выражениях, стоящих в правой части локального оператора присваивания.

Условный оператор.Этот оператор используется только в теле программы-функции и для его ввода необходимо щелкнуть на кнопке if панели программирования или клавиши [ } ]. На экране появляется конструкция с двумя полями ввода, изображенная на рисунке 3.6.

 
 

Рисунок 2.3.6- Поля ввода условного оператора

 

 
 

В поле 2 вводится логическое выражение (в простейшем случае это выражение отношений ). В поле 1 вводится выражение ( как правило, арифметическое), значение которого используется, если проверяемое логическое выражение принимает значение 1. Условный оператор может находиться только внутри тела программыфункции. Например

 

Рисунок 2.3.7- Условный оператор внутри тела подпрограммы.

 

В поле 3 задается выражение, значение которого используется, если логическое выражение равно 0. Для ввода в поле 3 необходимо :

заключить это поле в выделяющую рамку;

щелкнуть на кнопке “otherwise” панели программирования;

в оставшемся поле введите соответствующее выражение.

Пример 2.3.3. Составим MathCAD- программу, реализующую вычисление функции, заданной на рис. 2.6:

 

 

 
 

Таким образом, выражение, стоящее перед словом otherwise выполняется только в том случае, если не выполнено заданное перед этим условием. В программе можно использовать несколько следующих друг за другом условных операторов с одним выражением перед словом otherwise.