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

Интерактивный ввод-вывод

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

Когда данные читаются в программу, сиволы конвертируются в машинную бинарную форму. Просто данные, запомненные в бинарной форме, когда пишутся на экран. Просмотр и форматирование данных специфицируются программистом или берется формат по умолчанию, используемый в Fortran 90. Подмножество спецификаций форматирования представлено далее, полное множество is rarely used.

Может использоваться международное шестнадцатиричное представление вещественных чисел:

 

BE1D7DBF

Которое трудно для понимания (ограничено использованием во время записи на экран), но связано с вещественным значением 0.00045. Оно может быть записано по разному

 

0.45E-03

4.5E-04

0.000450

где E## стоит на месте экспоненты и эквивалентно умножению на 10 в степени x10##.

 

Конвертация внутреннего представления в читаемую пользователем форму известна как форматированный ввод-вывод и заменяющая внешнюю форму символов ссылками на форматирование.

Простой Input и Output

Пользователь может присвоить значения переменным, используя оператор READ. Пользователь , желая знать результат работы программы, обычно выводит на экран, используя операто WRITE.

Чтобы читать значение в переменную, называемую radius, скажем, следующий оператор будет подходящим.

READ(*,*) radius

И значение переменной area будет выдано на экран оператором:

WRITE(*,*) area

Общий вид операторов READ и WRITE :

READ( [UNIT=]unit, [FMT=]format ) список переменных

WRITE( [UNIT=]unit, [FMT=]format ) список переменных

где unit это целое, ассоциированное с экраном или файлом и format описывает, как данные будут выглядеть. Когда читается с клавиатуры, unit может быть равно 5 или *; когда пишется на экран, unit может быть равно 6 или *:

READ(5,*) length, breadth

WRITE(UNIT=6,*) temperature, pressure, mass

WRITE(*,*) pi*radius**2, 2.0

Некоторые переменные (или выражения) могут быть специфицированы в операторе READ или WRITE.

READ(5,*) length, breadth

WRITE(6,*) temperature, pressure, mass

WRITE(*,*) pi*radius**2, 2.0

Форматирование по умолчанию

Когда читается или пишется на экран или с клавиатуры, Fortran-программа автоматически преобразует данные в требуемую форму; символы для экрана, битовые данные для компьютера.

INTEGER :: i, j

REAL :: data(3)

...

READ(*,*) i

WRITE(*,*) i, j, data

Символ * позволяет программе использовать ввод-вывод по умолчанию. Первая * указывает стандартное устройство, вторая * представляет по умолчанию формат переменных, которые преобразуются из одного типа данных в другой. Эта форма вывода данных быстрая, простая.

Форматированный ввод-вывод I/o

Оператор FORMAT может быть использован для чтения или записи данных в форме, отличной от формы по умолчанию.Оператор FORMAT это помеченный оператор, указываемый с помощью числовой метки операторами WRITE или READ в том же программном модуле:

READ(*,100) i, j

WRITE(*,100) i, j

READ(*,FMT=200) x, y

WRITE(*,200) x, y

...

100 FORMAT (2I8) ! 2I8 дескриптор редактора

200 FORMAT (2F10.6) ! 2F10.6 дескриптор редактора

 

Форматирование - это знание о том, как надо редактировать ввод-вывод. Ввод-вывод это управляемое использование дескрипторов редактора. Общая форма оператора FORMAT такова:

 метка FORMAT (список_форматов)

где метка - это идентифицирующее число (уникальное в данной части программы), список_форматов - это список дескрипторов редактора, который включает одно или несколько:

I, F, E, ES, EN, D, G, L, A, H, T, TL, TR,

X, P, BN, BZ, SP, SS, S, /, :, ', и ,(запятая)

В данных заметках только следующие дескрипторы будут рассмотрены:

I, F, E, ES, EN, A, X, /, :, ', и ,(запятая)

поскольку многие дескрипторы редактора включают особые средства, такие как вывод бинарных чисел, и т.п и. имеют ограниченное применение.

Помеченный оператор FORMAT может быть заменен указывающим формат списком дескрипторов в виде символьной строки прямо в операторах WRITE или READ, как например:

INTEGER :: i, j

REAL :: x, y, z

...

READ (*,'(2I8)') i, j

WRITE (*,'(3F12.6)') x, y, z

Это имеет преимущество в лучшей ясности для читателя, которому не нужно смотреть два оператора.

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