Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Функции пользователя



Функции пользователя вводятся самим пользователем, если в программе неоднократно повторяются одни и те же математические формулы, или формулы одной структуры.

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

Такие функции могут определяться в любом месте программы с помощью оператора 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...