|
Условные выражения
Для подготовки разветвляющихся программ
в Maple-язык программирования включен оператор if, позволяющий
создавать следующую конструкцию:
if
<Условие сравнения? then <Элементы>
|elif
«Условие сравнения> then <Элементы>|
|e1se
<Элементы>|
fi:
В вертикальных чертах | | указаны
необязательные элементы данной конструкции. Следующих два вида условных выражений
чаще всего используются на практике:
- if
<Условие>
then <Элементы
1> fi — если Условие выполняется, то исполняются
Элементы 1, иначе ничего не выполняется;
- if <Условие>
then <Элененты
1> else <Элененты
2> fi — если Условие выполняется, то исполняются
Элементы 1, иначе исполняются Элементы 2.
В задании условий используются любые
логические конструкции со знаками сравнения (<,
<=, >, >=, =, <>)
и логические операторы and, or
и not, конструкции с которыми возвращают логические значения
true и false. Рассмотрим следующий
простой пример:
>
х:-5:
> if x<0 then print('Negative') fi;
Negative
> x:-l: > if x<0 then print('Negative') fi;
В этом примере анализируется значение
х. Если оно отрицательно, то с помощью функции вывода
print на экран выводится сообщение «Negative».
А вот если х неотрицательно, то не выводится никакого
сообщения. В другом примере если х неотрицательно, то выводится сообщение «Positive»:
>
х.— 5:
> if x<0 then print('Negative') else print('Positive') fi;
Negative
> x:-l:
> if x<0 then printСNegative") else printC'Positive') fi;
Positive
Приведем еще один пример, показывающий
особую форму задания конструкции if-then-else-fi:
>
х:=-5:
> 'if (x<0, printCNegative').print('Positive'));
Negative
> х:=1:
> *1f (х<0. print("Negative'),printrPositive'));
Positive
В этой конструкции вида
'if '(Условие. Выражение1, Выражение2)
если Условие выполнятся, то
будет исполнено Выражение!, в противном случае будет исполнено Выражение2. Ввиду
компактности записи такая форма условного выражения нередко бывает предпочтительна,
хотя она и менее наглядна. На рис. 7.3 представлено применение данной конструкции
для моделирования трех типов сигналов.

а

б
в
Рис. 7.3. Применение
конструкции с функцией if для моделирования сигналов
К сожалению, функции на базе конструкции
if не всегда корректно обрабатываются функциями символьной
математики. Поэтому надо тщательно контролировать полученные в этом случае результаты.
|