Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №1.doc
Скачиваний:
42
Добавлен:
03.05.2015
Размер:
529.41 Кб
Скачать

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

К организации данных в языке Фортран можно отнести способы объявления типов данных и способы инициализации (задания начальных значений) данных.

Каждый объект данных – константа, переменная, массив, выражение или функция – имеет тип. Объекты разных типов по-разному представляются на машинном уровне (занимают различные объемы памяти, обрабатываются разными командами и т.д.).

Типы данных разделяются на встроенные (целые, вещественные, комплексные, логические, символьные) и производные (создаваемые пользователем на базе встроенных). Типы данных задаются операторами описания типа, которые имеют вид:

имя типа[[[(KIND=значение)][,attrs]::]list

Тип– состоит изимени типа(см. табл. 2) и (необязательно4) параметра разновидностиKIND5(количество байтов, отводимых в памяти под объект данного типа); например,INTEGER(4) обозначает целую величину, занимающую в памяти 4 байта. Если разновидность не указана, то используется стандартная разновидность (задаваемая по умолчанию). Типы данныхIntelFortran– целый (INTEGER), вещественный (REAL), вещественный двойной точности (DOUBLEPRECISIONилиREAL(8)), вещественный расширенной точности (REAL(16)), комплексный (COMPLEX), комплексный двойной точности (DOUBLECOMPLEXилиCOMPLEX(8)), комплексный расширенной точности (COMPLEX(16)), логический (LOGICAL), символьный (CHARACTER). В табл. 2 перечислены встроенные типы данных Фортрана, допустимые для них значения параметра разновидности, стандартный диапазон представления величин.

attrs– один или более атрибут, описывающий представленные вlistобъекты данных. Если хотя бы один атрибут указан, то должен быть использован разделитель::. Атрибуты определяют дополнительные свойства данных. Возможные атрибуты:ALLOCATABLE(данные, динамически размещаемые в памяти6),PARAMETЕR(данные, являющиеся именованными константами),POINTER(указатель, ссылка на объект-адресат, может заменить объект-адресат),TARGET(объект-адресат),DIMENSION(массив),PRIVATE(закрытые данные, доступны только модулям, к которым они принадлежат),PUBLIC(данные, к которым возможен доступ из других модулей) и др.

list – разделенный запятыми список имен объектов данных (переменных, констант, а также внешних, внутренних, операторных и встроенных функций).

Таблица 2. Типы данных Intel Fortran

Тип

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

Диапазон представления

Integer

(целый)

integer(1) (integer*1, byte)

-128+127

integer(2) (integer*2)

-32768+32767

integer(4) (integer*4)

-2147483648+2147483647

integer(8)

-9223372036854775808

+9223372036854775807

Real

(вещественный)

real(4) (real*4)

1.175494410-38 3.402823510+38

real(8) (real*8,

double precision)

2.22507385850720110-308 1.79769313486231610+308

real(16) (real*16)

6.47517511943802511092443895822764610-49661.18973149535723176508575932662800710+4932

Complex

(комплексный)

complex(4) (complex*8)

см. тип real(4)

complex(8) (complex*16)

double complex

см. тип real(8)

complex(16) (complex*32)

см. тип real(16)

Logical

(логический)

logical(1) (logical*1)

.true. (истина, логическая единица)

.false. (ложь, логический ноль)

logical(2) (logical*2)

logical(4) (logical*4)

logical(8) (logical*8)

Character

(символьный)

character

(character(n), character*n)

n – длина текстовой строки в символах; на каждый символ отводится 1 байт; по умолчанию под символьный тип данных отводится 1 байт (1 символ). Допустимое значение длины строки 1 n 32767. Если вместо значения n стоит символ *, это означает, что длина символьной константы равна числу символов в ней

Константы, имеющие имя, называются именованными8и задаются с атрибутомPARAMETER, остальные (числа, строки) – буквальными (литеральными). Имена констант и переменных могут состоять из букв латинского алфавита, цифр, знаков подчеркивания ( _ ) и доллара ($). Имя должно начинаться с буквы или знака “$”. Регистр буквы имеет значение, т.е., например, именах1иХ1считаются различными. Длина имени не должна превышать 63 символа. Имена в пределах одной программной единицы должны быть уникальными.

Приведем примеры описания данных с комментариями:

integer, parameter:: pi !целая константа pi, занимающая 4 байта

real(16) x,y !вещественные переменные х и у расширенной точности

double precision par !вещественная переменная par двойной точности

complex*16 angle !комплексная переменная angle двойной точности

logical(1):: flag !логическая переменная flag, занимающая 1 байт

character(20) fio_1 !строка fio_1 из 20 символов

real, dimension(10):: d !массив d из 10 вещественных значений real(4)

Если в программе на Фортране встречается не описанная в начале программы переменная, то действует правило по умолчанию (определение типа по имени): данные, имена которых начинаются с букв I, J, K, L, M, N, имеют стандартный целый тип, остальные – стандартный вещественный. Этонеявный способзадания типа данных. Данные комплексного, логического и символьного типа объявляютсятолько явно(операторами объявления типа данных).

Правило по умолчанию можно отменитьс помощью оператораImplicit, который имеет вид: