Основы программирования в Maple
Задание функций пользователя. Условные выражения Задание функций пользователя 1) Один из наиболее простых способов задания функции пользователя - присвоение введенной функции (в виде выражения) некоторой переменной: > m:=sqrt(x^2+y^2); 2 2 1/2 m:= (x + y)
> x:=3:y:=4: > m; 1/2 25
> evalf(m); 5.000000000 Заданный таким образом объект все же не является полноценной функцией пользователя. Прежде всего потому, что в нем используются только глобальные переменные (х и у). Их значения приходится определять заведомо, используя операцию присваивания. Подобные "функции" нальзя ввести в библиотеки Maple. 2)Более гибкий способ задания полноценных функций пользователя - использование функционального оператора ->.Его синтаксис: name:=(x,y,...)->Выражение, Вызов функции осуществляется в виде name (x,y,...). Переменные, указанные в списке формальных параметров являются локальными. При подстановке на их место фактических параметров они сохраняют их значения только в теле функции Выражение. За пределами этой функции переменные с этими именами оказываются либо неопределенными, либо сохраняют ранее присвоенное значение. > restart; > x:=0;y:=0; x:= 0 y:= 0 > m:=(x,y)->sqrt(x^2+y^2); 2 2 m:= (x, y) -> sqrt(x + y) > m(3,4); 5 > m(3.,4.); 5.000000000 > x;y; 0 0 3) Еще один способ задания функции пользователя базируется на применении функции unapplay. Её синтаксис:
> restart; > x:=1;y:=1; x:= 1 y:= 1
> fm:=unapply(sqrt(x^2+y^2),x,y); 2 2 1/2 fm:= (x, y) -> (x + y)
> evalf(fm(3,4)); 5.000000000
> fm(sin(x),cos(x)); 2 2 1/2 (sin(x) + cos(x))
> simplify(%); 1
> x:=x;y:=y; x:= 1 y:= 1
Замечание. Для задания сложных выражений можно использовать последовательное определение частей выражения с помощью простого присваивания (1) (при этом переменным не должно быть присвоено никакое значение), а затем, используя (2) или (3), определить сложную функцию, представляющую выражение от ранее определенных (в пункте(1)) выражений. > a:=x^2+1; 2 a:= x + 1 > b:=y^2+3; 2 b:= y + 3 > fl:=unapply(a,x); 2 fl:= x -> x + 1 > ff:=unapply(a+b,x,y); 2 2 ff:= (x, z) -> x + 4 + y > f2:=unapply(a^2/b,x,y); 2 2 (x + 1) f2:= (x, y) -> --------- 2 y + 3 > f2(x,1); 2 2 1/4 (x + 1) Условные выражения Обычно программы реализуют некоторый алгоритм решения задачи. В любом алгоритме возникает необходимость выполнения определенной последовательности операторов в зависимости от истинности или ложности того или иного выражения. Для подготовки разветвляющихся программ в Maple-язык программирования включен оператор if, позволяющий создавать следующую конструкцию: if булево выражение then последовательность операторов
В вертикальных черточках | | указаны необязательные элементы. Этот оператор работает следующим образом: если истинно булево выражение после ключевого слова if, то выполняется последовательность операторов после ключевого слова then до первого встретившегося elif, else или end if; если значение булева выражения равно false или FAIL, то проверяется на истинность выражение после ключевого слова elif, если оно задано, и в случае истинности выполняются операторы после второго ключевого слова then.
Оператор if в предыдущих версиях Maple завершался ключевым словом fi. Для совместимости с предыдущими версиями его можно использовать и в Maple 6, однако при написании новых программ рекомендуется для завершения конструкции ветвления использовать ключевое слово end if.
Синтаксис Maple позволяет использовать вложенные конструкии if, т.е. последовательности операторов в блоках then и else могут содержать операторы ветвления. На практике чаще всего используются следующие конструкции оператора if:
if (условие сравнения) then (элементы) fi; if (условие сравнения) then (элементы) else (элементы) fi; В условиях используются любые логические конструкции со знаками сравнения (<,<=,>,>=,=,<>) и логические операторы and, or, not, конструкции с которыми возвращают логические значения true и false. Для организации ветвлений в программах и отдельно в виде команды может быть использована операция `if` (в ОБРАТНЫХ кавычках). Она имеет следующий синтаксис: `if `(Условие, Выражение1, Выражение2) Если Условие истинно, то будет выполнено Выражение1, в противном случае выполняется Выражение2.
Ввиду компактности записи последняя форма условного выражения бывает предпочтительна, хотя она и менее наглядна.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|