Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функции пользователя вводятся самим пользователем, если в программе неоднократно повторяются одни и те же математические формулы, или формулы одной структуры.
Это уменьшает громоздкость программы, т.к. можно один раз вычислить, например, часто повторяющуюся формулу, а затем подставлять её обозначение в места программы, где она встречается для новых вычислений.
Такие функции могут определяться в любом месте программы с помощью оператора DEF (define – определить).
Формат оператора:
DEF FN Имя [% $] (аргументы, до 5) = выражение
где
FN Имя – обозначение функции или указатель функции;
Имя - любая латинская буква;
% - для целочисленных функций;
$ - для символьных функций.
(данные в квадратных скобках могут отсутствовать)
Если значение выражения вещественного типа, а функция целого
(или наоборот), то значение выражения приводится к типу функции.
Аргументы, употребляемые в описании функции (в операторе
DEF), называются формальными параметрами функции. Параметры обозначаются так же, как и переменные, и разделяются запятыми.
Выражение, записываемое в правой части определения функции, может быть произвольным арифметическим или символьным выражением, зависящим, как правило, от формальных параметров. Однако оно необязательно должно зависеть от всех формальных параметров-аргументов и может содер-
жать и другие переменные, которых нет среди аргументов, но они были определены в программе
Пример 1: DEF FNL (X,Y)=(X-C)^3+SIN(A+B/X)
В функции пользователя L аргументами являются X и Y, а в выражении используются также величины С, А, В, определённые в программе ранее.
Если в программе введено описание функции, то можно обращаться к нему, т.е. употреблять обозначение этой функции (указатель функции) в различных выражениях. В указателе все формальные параметры должны быть заменены на фактические.
Пример 2: DEF FNC(X)=SQR(X^7+SIN(X)) – ABS(LOG(2*X)
.........................
M=FNC(1)+2*FNC(4.5)
.........................
Z=X+4
L=FNC(Z)
Функция С(Х), определённая в операторе DEF FNC(X) будет вычисляться в строке с выражением М=… для Х=1 и Х=4.5 и в строке с выражением L=…, где вместо Х используется новая переменная Z=X+4.
Фактические аргументы могут быть любым допустимым в языке выражением. При обращении к функции сначала вычисляют значения всех фактических параметров, далее их подставляют вместо соответствующих формальных параметров в описании функции и вычисляют значение выражения, записанного в правой части определения функции. Это значение является значением указателя функции при данных фактических параметрах.
Пример 3: DEF FNZ(X)=(5*X+2)*X+1
A=1:B=4
? FNZ(A+B/2)
Здесь фактический параметр Х вычисляется как А+В/2, а потом его значение подставляется в FNZ(X) и функция Z(X) вычисляется по выражению в правой части.
Тип и количество используемых переменных должны соответствовать переменным из списка аргументов в операторе DEF. Нельзя употреблять числовые аргументы вместо символьных и наоборот. При определении функции или в указателе функции ее можно писать или с пустыми скобками () или без них, если функция не зависит от аргументов.
DEF - неисполняемый оператор, его рекомендуют помещать с другими неисполняемыми операторами либо в конце, либо в начале программы.
Задача 1 Написать программу для вычисления значения функции:
при заданных значениях R,A,B
и функции
при заданных значениях S, Q, M, X.
В правой части обеих формул можно выделить арифметическое
выражение
Определим это выражение как функцию пользователя с формаль-
ными аргументами X,Y,Z:
DEF FNC(X,Y,Z)=(X*(SIN(Z)^3+Y*(COS(X+Z)))/SQR(X^2+Y^2+Z^2).
Тогда значение функции Т можно определить так:
T=FNC(R+A,7,B^2),
где (R+A), 7, B^2 - фактические значения формальных аргументов X,Y,Z.
а значение функции U можно определить по формуле:
U = S^2+FNC(Q,M,X)*FNC(3,M+S,X) при фактических параметрах Х=Q, Y=M, Z=X и Х=3, Y=M+S, Z=X.
Дата публикования: 2014-11-19; Прочитано: 287 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!