Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fortran 90. ANSI Standard.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
861 Кб
Скачать
☆

Дескрипторы редактора

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

  • a -число повторений

  • w -ширина поля - общее число символов

  • m -минимальное число цифр

  • d -цифры справа от десятичной точки

  • e -число цифр в экпоненте

Многие дескрипторы редактора могут предшествовать счету повторений и следовать за шириной поля, то есть общим числом цифр. Таким образом , 2I и 3F10.6 могут быть описаны как 2 целых и 3 вещественных числа с плавающей точкой. Ширина поля для целых чисел по умолчанию, 10 для вещественных определяется описанием.

В целом, если w больше чем число цифр, требуемых для представления числа, то добавляются ведущие пробелы. Если w слишком мало для представления числа , в выводе печатаются w звездочек и на вводе читаются w левых символов (число таким образом усекается)

Оператор I/O будет использоваться и как множество дескрипторов редактора, и элементов списка ввода-вывода. Процесс закончится в следующем дескрипторе редактора, который потребует значения из списка ввода-вывода.

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

Я

Целые

Дескриптор I для управления форматом целых и может иметь форму Iw или Iw.m. Несколько целых могут прочитаны (записаны) в одном и том же формате путем использования счетчика повторений - aIw или aIw.m. Например:

INTEGER :: itest=1234567 ! число для записи

...

WRITE(*,*) itest ! 1234567

WRITE(*,'(I6)') itest ! ******

WRITE(*,'(I10)') itest !    1234567

WRITE(*,'(I10.9)') itest ! 001234567

WRITE(*,'(2I7)') itest, 7654321 ! 12345677654321

WRITE(*,'(2I8)') itest, 7654321 ! 1234567 7654321

Дескриптор I10.9 специфицирует всего 10 символов (включая знак минус, если потребуется) с минимальным числом цифр 9, поэтому в выводе появятся дополнительные ведущие нули.

Я

Вещественные - форма с фиксированной точкой

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

REAL :: itest=123.4567 ! число для записи

...

WRITE(*,*) itest ! 1.2345670E+02 -формат не F

WRITE(*,'(F8.0)') itest !     123

WRITE(*,'(F10.4)') itest !   123.4567

WRITE(*,'(F10.5)') itest !  123.45670

WRITE(*,'(F10.9)') itest ! **********

WRITE(*,'(2F8.4)') itest, 7654321 ! 123.4567765.4321

WRITE(*,'(2F10.4)') itest, 7654321 !   123.4567 765.4321

Важно помнить, что десятичная точка помещается в поле вывода ширины w . В верхнем примере, несмотря на то, что они записывали 7 цифр на экран, поле должно быть из 8 символов (или более), чтобы обеспечить место для десятичной точки.

Я