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

Объекты допустимого образа

Логические выражения | Массивы и производные типы | Оператор и конструкция IF | Конструкция SELECT CASE | Упорядочение операторов | Уровни доступа | Спецификация входных-выходных параметров | Использование модуля | Внутренние процедуры | Родовые подпрограммы |


Читайте также:
  1. В которой молодой человек узнает о ценности образа своего Я
  2. Введение в систему программирования VBA. Объектная модель Excel, основные объекты Е. Краткая их характеристика.
  3. Визуальное объектно-ориентирование программирование. Инкапсуляция, наследование, полиморфизм. Основные объекты и их свойства, методы и события
  4. Вопрос 12. Общие задачи и объекты стратегического маркетинга.
  5. Вспомогательные объекты на поле боя.
  6. Глава 2. Объекты изучения, цели и задачи исследований в сейсмической томографии.
  7. Глава 20. Объекты пользователя

 

Одно из мощнейших как в использовании процедур так и представлении задачи сделать так, чтобы однажды написанная и протестированная процедура могла быть использованной и повторно использованой как только потребуется. (даже в другой программе).

Поскольку часто имеет место случай, когда программа может хотеть рассматривать массивы или символьные строки различного размера в одной и той же процедуре, Fortran 90 позволяет формальным параметры иметь размер переменных. Такие объекты могут вызывать объекты допустимого образа. Например:

 

SUBROUTINE sub2(data1, data3, str)

REAL, DIMENSION(:):: data1

INTEGER, DIMENSION(:,:,:):: data3

CHARACTER(len=*):: str

...

 

Формальные параметры data1 и data3 это массивы, которые могут быть объявлены с рангом, но без размера - задан двоеточием ':', использованным внутри спецификации размера по каждому измерению. Подобным образом, str имеет не явное задание длины и заимствует длину строки фактического параметра. Когда вызывается подпрограмма sub2, все три формальных параметра принимают размер им соответствующих фактических параметров; все три формальных параметра объекты допустимого образа.

Я

Вид параметра (атрибут INTENT)

 

Хорошим стилем программирования считается использование

указания компилятору, будет параметр входным или выходным с помощью атрибута INTENT

•только входным (вызываемым) -- INTENT(IN), означает, что формальный параметр ожидает значение при вызове процедуры, но не изменяется процедурой;

•выходным (присваиваемым после использования) -- INTENT(OUT), означает, что формальный параметр не имеет значения при вызове процедуры, но значение будет дано прежде, чем процедура будет завершена;

•и входным и выходным -- INTENT(INOUT) означает, что формальный параметр имеет начальное значение при вызове процедуры, и значение будет изменено процедурой.

 

SUBROUTINE example(arg1,arg2,arg3)

REAL, INTENT(IN):: arg1

INTEGER, INTENT(OUT):: arg2

CHARACTER, INTENT(INOUT):: arg3

REAL:: r

r = arg1*ICHAR(arg3)

arg2 = ANINT(r)

arg3 = CHAR(MOD(127,arg2))

END SUBROUTINE example

 

Другой пример:

 

SUBROUTINE invert(a, inverse, count)

REAL, INTENT(IN):: a

REAL, INTENT(OUT):: inverse

INTEGER, INTENT(INOUT):: count

inverse = 1/a

count = count+1

END SUBROUTINE invert

 

Подпрограмма invert имеет три формальных параметра: а используется в процедуре, но не меняется в ней, имеет атрибут INTENT(IN); inverse вычисляется в процедуре, имеет атрибут INTENT(OUT), и count (счетчик вызовов) увеличивается процедурой и требует атрибута INTENT (INOUT).

 

Использование атрибута INTENT рекомендуется, чтобы:

•позволить хорошему компилятору проверить ошибки кодирования,

•выполнить эффективно компиляцию и оптимизацию.

 


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


<== предыдущая страница | следующая страница ==>
Связь с хозяином (Host) - глобальные данные| Процедуры в качестве параметров

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