Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

C Описываем оператор-функцию

Читайте также:
  1. МОДЕЛИ, ОПИСЫВАЕМЫЕ ПРОЦЕССАМИ РОЖДЕНИЯ И ГИБЕЛИ
  2. Сентября, за десять лет до описываемых событий

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+[А1] SIN(X)**2+COS(Y)**2).

Можно, но нежелательно использовать имена формальных параметров оператор-функции внутри текста программы. При обращении к оператор-функции в ячейку с именем формального параметра (например, Z в предыдущем примере) будет помещено значение фактического параметра. При первом и втором обращении это будет переменная А. При третьем обращении переменная D. При четвертом обращении переменная Е. При пятом обращении переменная А. При шестом обращении SIN(X), а при седьмом переменная F. Если в промежутке между этими операциями мы будем использовать переменную Z (например, W=2.5*Z), то необходимо учитывать, что она может содержать разные значения в разных местах программы.

Рекомендация: формальные параметры оператор-функций использовать только для описания оператор-функции и не использовать в других местах программы.

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

 


Подпрограмма FUNCTION

 

В общем виде подпрограмма-функция записывается:

 

[тип] FUNCTION имя подпрограммы (список формальных параметров)

REAL

INTEGER

COMPLEX

CHARACTER

Выполняемые операторы

.

.

.

имя=результат

RETURN

END

 

[тип] – REAL, INTEGER, COMPLEX, CHARACTER. Скобки [ ] означают, что содержимое этих скобок можно не записывать.

После оператора FUNCTION в подпрограмме следуют выполняемые операторы. Подпрограмма FUNCTION обязательно заканчивается операторами RETURN и END.

Имя подпрограммы должно записываться по правилам языка ФОРТРАН, то есть все подпрограммы-функции считаются вещественного типа, за исключением тех, имя которых начинается на буквы I, J, K, L, M, N.

Список формальных параметров может состоять из имён переменных, имён массивов.

Операторы. Внутри подпрограммы-функции могут быть любые операторы языка ФОРТРАН (включая DIMENSION, ввод-вывод данных, циклы: DO, IF). Подпрограмма-функция может содержать свои операторные функции, может обращаться к другим подпрограммам и подпрограммам FUNCTION.

Примечание:


Дата добавления: 2015-07-26; просмотров: 79 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
В арифметических выражениях кроме переменных, указанных в списке формальных параметров, могут присутствовать и другие переменные.| Оператор RETURN служит для выхода из подпрограммы FUNCTION и передачи результата вычисления в головную программу на то место, откуда шло обращение к подпрограмме-функции.

mybiblioteka.su - 2015-2024 год. (0.012 сек.)