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

3. Организация данных

Для каждого применяемого внутри программной единицы объекта данных должны быть определены тип, диапазон изменения (в случае числового типа), а также форма представления: скаляр или массив. Данные также должны быть разделены на изменяемые - переменные - и не подлежащие изменению - константы.

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

Термины переменная и константа распространяются на скаляры, массивы и их подобъекты, например элементы массивов, компоненты структур, сечения массивов, подстроки.

Цель настоящей главы - рассмотрение типов данных Фортрана, их свойств, способов объявления объектов данных разных типов, способов задания начальных значений переменных и других, связанных с организацией данных вопросов. Диапазон рассмотрения ограничен скалярами. Массивы, как более сложные, играющие исключительно важную роль в Фортране объекты данных, рассмотрены отдельно.

Замечание. При описании операторов Фортрана их необязательные элементы заключаются в квадратные скобки. Символ вертикальной черты

(|) используется в описании оператора для обозначения "или".

3.1. Типы данных

Типы данных разделяются на встроенные и производные, создаваемые пользователем (разд. 3.9).

Встроенные типы данных:

Целый - INTEGER, BYTE, INTEGER(1), INTEGER(2), INTEGER(4). Вещественный - REAL, REAL(4), REAL(8), DOUBLE PRECISION. Комплексный - COMPLEX, COMPLEX(4), COMPLEX(8), DOUBLE COMPLEX.

Логический - LOGICAL, LOGICAL(1), LOGICAL(2), LOGICAL(4). Объект данных логического типа может принимать значения .TRUE. (истина)

или .FALSE. (ложь).

Символьный - CHARACTER(n), где n - длина символьной строки

(1 n 32767).

В Фортране каждый встроенный тип данных характеризуется параметром разновидности (KIND). Для числовых типов данных этот параметр описывает точность и диапазон изменения. В настоящее время для символьного типа данных существует только одна разновидность

(KIND = 1).

47

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

Каждый встроенный тип данных имеет стандартную, задаваемую по умолчанию разновидность. Встроенный тип с задаваемой по умолчанию разновидностью называется стандартным типом данных.

Стандартные типы данных:

Целый - INTEGER.

Вещественный - REAL.

Комплексный - COMPLEX.

Логический - LOGICAL.

Символьный - CHARACTER.

В табл. 3.1 приведены разновидности встроенных типов данных. В графе "Число байт" указано количество байт, отводимых под объект заданного типа. При обозначении типа данных использован введенный в стандарте Фортран 90 синтаксис.

Таблица 3.1. Разновидности встроенных типов данных

Типы

Разновидность

Число

Примечание

 

 

байт

 

 

Целый тип

 

 

 

 

 

BYTE

1

1

То же, что и INTEGER(1)

 

 

 

 

INTEGER(1)

1

1

 

 

 

 

 

INTEGER(2)

2

2

 

INTEGER(4)

4

4

 

 

 

 

 

INTEGER

4

4

То же, что и INTEGER(4)

 

 

 

 

 

Вещественный тип

 

 

 

 

REAL(4)

4

4

 

REAL

4

4

То же, что и REAL(4)

 

 

 

 

REAL(8)

8

8

 

 

 

 

 

DOUBLE

8

8

То же, что и REAL(8)

PRECISION

 

 

 

 

Комплексный тип

 

 

 

 

COMPLEX(4)

4

8

4 байта под действительную

 

 

 

и столько же под мнимую часть

COMPLEX

4

8

То же, что и COMPLEX(4)

 

 

 

 

COMPLEX(8)

8

16

8 байт под действительную

 

 

 

и столько же под мнимую часть

DOUBLE

8

16

То же, что и COMPLEX(8)

COMPLEX

 

 

 

48

 

 

 

 

 

риложение3. Организация данных

 

 

 

 

 

 

 

 

 

 

Логический тип

 

 

 

 

 

 

 

 

LOGICAL(1)

1

 

1

Байт, содержащий либо 0 -

 

 

 

 

 

.FALSE., либо 1 - .TRUE.

 

 

LOGICAL(2)

2

 

2

Первый (старший) байт

 

 

 

 

 

содержит значение LOGICAL(1),

 

 

 

 

 

второй - null

 

 

LOGICAL(4)

4

 

4

Первый байт содержит значение

 

 

 

 

 

LOGICAL(1), остальные - null

 

 

LOGICAL

4

 

4

То же, что и LOGICAL(4)

 

 

 

 

 

 

 

 

 

 

Символьный тип

 

 

CHARACTER или

1

 

1

Единичный символ

 

CHARACTER(1)

 

 

 

 

 

 

CHARACTER(n)

1

 

n

n - длина строки в байтах

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Замечания:

1.Каждый числовой тип данных содержит 0, который не имеет знака.

2.Все приведенные в табл. 3.1 типы данных были доступны и в Фортране 77. Правда, синтаксис определения типа был иным, например:

Фортран 90

Фортран 77

INTEGER(1)

INTEGER*1

INTEGER

INTEGER

COMPLEX(4)

COMPLEX*8

COMPLEX(8)

COMPLEX*16

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

Помимо встроенных типов можно задать и производные типы данных (структуры), которые создаются комбинаций данных, встроенных и ранее введенных производных типов. Такие типы данных вводятся оператором

TYPE ... END TYPE.

Фортран включает большое число встроенных числовых справочных и преобразовывающих функций (разд. 6.11-6.13), позволяющих получать информацию о свойствах данных различных типов. Так, наибольшее положительное число для целого и вещественного типов определяется функцией HUGE, а наименьшее положительное число вещественного типа - функцией TINY.

49