C Описываем оператор-функцию
FOP(Z,T)=SQRT(Z*Z+T*T)
C Ввод исходных данных
WRITE(6,*)'Введите исходные данные'
READ(5,*) A,B,X,Y
D=FOP(A,B) Обращаемся к оператор-функции FOP. Фактические параметры А и В при обращении подставляются вместо формальных Z и T и с ними производится вычисление. Результат вычислений в виде вещественного числа возвращается на место обращения к оператор-функции и затем присваивается переменной D.
E=FOP(A,D)+FOP(D,B)*2.
F=FOP(A,3.5*FOP(E,D))
Q= FOP(F,FOP(SIN(X),COS(Y)))При первом обращении к оператор-функции фактическими параметрами являются выражения SIN(X) и COS(Y). При втором обращении фактическими параметрами будут F и результат первого обращения к оператор-функции.
WRITE(6,*)'D=',D,' E=',E,' F=',F,' Q=',Q
PAUSE
STOP
END
В строке F=FOP(A,3.5*FOP(E,D)) первое обращение к оператор-функции происходит для FOP(E,D), затем второе обращение для вычисления FOP(A,3.5*результатFOP(E,D)) и затем результат присваивается переменной F.
В данной задаче можно использовать оператор-функцию для вычисления
FOP(F,FOP(SIN(X),COS(Y))), но при реальном программировании в таком случае проще обойтись без оператор-функции Q=SQRT(F*F+SIN(X)**2+COS(Y)**2).
Можно, но нежелательно использовать имена формальных параметров оператор-функции внутри текста программы. При обращении к оператор-функции в ячейку с именем формального параметра (например, Z в предыдущем примере) будет помещено значение фактического параметра. При первом и втором обращении это будет переменная А. При третьем обращении переменная D. При четвертом обращении переменная Е. При пятом обращении переменная А. При шестом обращении SIN(X), а при седьмом переменная F. Если в промежутке между этими операциями мы будем использовать переменную Z (например, W=2.5*Z), то необходимо учитывать, что она может содержать разные значения в разных местах программы.
Рекомендация: формальные параметры оператор-функций использовать только для описания оператор-функции и не использовать в других местах программы.
Оператор-функцию располагать только в начале программы. Если поставить ее в середине или другой части программы, транслятор может не найти ошибку, и результат работы программы будет непредсказуем.
Дата добавления: 2015-06-10; просмотров: 1079;