Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FORTRAN.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

3.4. Формат десятичных чисел с плавающей точкой обычной и двойной точности.

Десятичные числа с плавающей точкой содержат байт с битом знака и семибитовой экспонентой в 64-ричной системе счисления, за которым следует мантисса из 6 (для обычной точности) или из 14 (для двойной точности) двоично-десятичных цифр, упакованных по 2 в байт (если байт экспоненты нулей - число равно нулю). Запись десятичных констант с плавающей точкой производится в том же фор- мате, что и для стандартных действительных констант Фортрана обычной и двойной точности. Допустимый диапазон чисел обычной точности следующий:

от +1.0Е-64 до +9.99Е+62 (положительные числа)

от -9.99+62 до -1.0Е-64 (отрицательные числа)

0 (нуль)

Точность равна точно 6 цифрам. Допустимый диапазон чисел двойной точности следующий:

от +1.0D-64 до +9.999D+62 (положительные числа)

от -9.99D+62 до -1.0D-64 (отрицательные числа)

0 (нуль)

Точность равна точно 14 цифрам.

Метакоманда $DECMATH вызывает представление констант тексто- вого файла в виде с плавающей запятой.

3.5. Комплексные типы данных.

Тип данных COMPLEX*8 задает пару действительных чисел обыч- ной точности, второе из которых представляет мнимую часть. Число COMPLEX*8 занимает 8 байтов памяти.

Комплексная константа состоит из необязательного знака, ле- вой скобки, двух целых или действительный чисел, разделенных за- пятой, и правой скобки. Элемент данных COMPLEX*16 содержит упоря- доченную пару действительных чисел двойной точности. Элемент дан- ных COMPLEX*16 занимает 16 байтов памяти. Каждая компонента (дей- ствительная и мнимая) COMPLEX*8 - это REAL*4. Каждая компонента COMPLEX*16 - это REAL*8.

3.6. Логические типы данных.

Логический тип данных содержит две логических величины .TRUE. и .FALSE. Логическая переменная занимает два или четыре байта памяти в зависимости от установки метакоманды $STORAGE. По умолчанию это 4 байта. Значение логической переменной независит от метакоманды $STORAGE, которая соответствует требованию ANSI, чтобы логические, целые и действительные переменные обычной точ- ности занимали одинаковое место в памяти. Величины LOGICAL*2 за- нимают два байта. Младший значащий (первый) байт - либо 0(.FALSE.), либо 1(.TRUE.); старший значащий байт не определен.

Переменные LOGICAL*4 занимают два слова, младшее значащее (первое) из которых содержит величину LOGICAL*2. Старшее значащее слово не определено.

3.7. Символьный тип данных.

Символьный тип данных содержит последовательность символов ASCII. Длина символьной величины равно числу символов в последо- вательности. Длина заданной константы или переменой фиксирована и должна составлять от 1 до 127 символов. Символьная переменная за- нимает один байт памяти для каждого символа в последовательности. Предполагается, что символьная переменная занимает цепочку байтов без учета границ слов. Однако компилятор предполагает, что несим- вольные переменные, следующие за символьными, начинаются с грани- цы слова.

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

Длина символьной константы равна числу символов между оди- ночными кавычками. Пара одиночных кавычек означает один символ. Несколько примеров символьных констант:

'A'

' '

'Help!'

'A very long CHARACTER constant'

'O''Brien'

''''

Последний пример - это символьная константа содержащая один апостроф (одиночную кавычку).

Символьной переменной может быть присвоена несимвольная ве- личина, если присвоение не включено в выражение. Допустимо следу- ющее:

REAL R

CHARACTER*5 C

C=R,

но следующее недопустимо

REAL R

CHARACTER*5 C

C=R+1.0

Фортран допускает строки исходного текста длиной до 72 пози- ций. Короткие строки дополняются пробелами до 72 позиции. Когда символьная константа переходит через границу строки, ее величина такова, как если бы часть строки продолжения, начиная с 7-ой по- зиции, добавить к 72-й позиции начальной строки. Поэтому следую- щий текст Фортрана

200 СН='ABC

X DEF'

Эквивалентен:

200 CH='ABC(58 пробелов)...DEF'

С 58-ю пробелами между С и Д, равными пространству от С в 15-й позиции до 72-й позиции плюс одному пробелу в 7-ой позиции строки продолжения. Таким образом могут быть представлены очень длинные символьные константы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]