Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
современный фортран , Бортеньев.pdf
Скачиваний:
242
Добавлен:
26.03.2015
Размер:
2.34 Mб
Скачать

О. В. Бартеньев. Современный ФОРТРАН

должны иметь одинаковый размер. Аналогом содержащей объединения структуры, например в Паскале, является запись с вариантными полями.

Пример:

structure sam union

map

character*20 string end map

map

integer*2 number(10) end map

end union end structure

3.9.8. Итоговые замечания

Производный тип данных (структуру), если не нужно создавать объединения, следует вводить оператором TYPE ... END TYPE, используя затем для объявления записи (переменной производного типа) оператор TYPE. Компонентом записи, наряду с простыми переменными, могут быть и массивы и другие записи.

Записи, наряду со строками и массивами, относятся к составным переменным. Имеющие ранг 0 записи являются скалярами. Можно так же, как и в случае данных встроенных типов, объявить записи-массивы.

Запись считается неопределенной, если

не определен хотя бы один

ее компонент.

Инициализация

записи,

создание

записи-константы,

присваивание записи значения выполняются посредством конструктора структуры, который позволяет определить или изменить значение всех компонентов записи. Кроме этого, используя селектор компонента, можно менять значение одного элемента записи. Отдельные компоненты записи могут быть использованы в выражениях так же, как и другие объекты встроенных типов.

Записи можно присвоить результат выражения того же типа.

Запись может быть "целиком" записана как в двоичный, так и в текстовой (форматный) файл (или считана из таких файлов).

Запись или массив записей могут быть использованы в качестве параметра процедуры, но при этом тип, к которому принадлежит запись, должен быть объявлен как в вызывающей программной единице, так и в вызываемой процедуре. При объявлении типа записи-параметра используется атрибут SEQUENCE. Такой же атрибут используется и при размещении записи в common-блоке.

Можно создать функцию, результатом которой является запись. Используя оператор INTERFACE OPERATOR, можно перегрузить

встроенную или создать новую операцию (унарную или бинарную),

92