Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 44

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 38 39 40 41 42 43 < 44 > 45 46 47 48 49 50 .. 168 >> Следующая

Меткой 10 помечен оператор, на который передается управление в случае ошибки, меткой 20 — оператор, которому передается управление, если обнаружен конец файла.
Если ввод осуществляется из бесформатного файла, то простейшая форма оператора READ (без контроля ошибок ввода и конца файла) может быть такой:
READ (5) А
Здесь 5—логический номер устройства, с которого будет считана очередная запись для элемента А.
При бесформатном вводе—выводе экономится время выполнения этих операций за счет отказа от преобразования данных, обеспечивается большая точность в выведении данных и, как правило, экономится место, требующееся для хранения файла. Бесформатный ввод—вывод обычно используется, когда вывод данных из некоторой программы впоследствии должен быть вводом в эту или другую программу.
3.5.4. Операторы OPEN, CLOSE. Прежде чем файл окажется доступным для операторов ввода—вывода (READ, WRITE) на логическом устройстве, файл должен быть создан и связан с этим устройством. Обычно это можно сделать вне фортран-программ, в рамках операционной системы: устройство 5 связывается с вводом—выводом на дисплее, 6—с АЦПУ. Поэтому операторы READ, WRITE будут передавать данные по этим каналам (5, 6) без каких-либо усилий со стороны пользователя.
Однако если требуется несколько каналов ввода — вывода в программе, то необходимо уметь управлять связью файлов из самой программы. Это, например, делают, чтобы сохранить промежуточные результаты программы в файле данных для дальнейшего продолжения вычислений.
Оператор OPEN (открыть) создает новый файл и связывает его с устройством либо связывает с устройством уже существующий файл. В любой момент один файл должен быть связан только с одним каналом.
К концу выполнения программы все открытые файлы программа должна сама закрыть (хотя закрыть может и операционная система, но это плохой стиль программирования).
Оператор OPEN имеет следующий вид:
OPEN «список открытия))
5 Ю. П. Боглаев
129
Список открытия может состоять из элементов
UNIT =, FILE = , STATUS = , FORM = , BLANK = , ERR = , IOSTAT;
здесь в правой части равенств помещаются элементы согласно приложению 2, определяющие список открытия. Например,
UNIT = 8
FILE = 'INTEGRAL'
— номер устройства,
— имя файла, который должен быть связан с устройством 8; если файла не существует, то он создается;
— файл существует; если не существует— указать «NEW»; если создается временный с удалением после закрытия — указать «SCRATCH»;
— файл последовательного доступа; если прямого — указать «DIRECT»;
— доступ с форматным вводом— выводом; если с бесформатным — указать «UNFORMATTED»;
— длина записи в символах для файлов прямого доступа, для последовательного доступа описатель опустить;
— все пробелы в числовых полях будут интерпретироваться нулями; если нужно, чтобы пробелы игнорировались, указать «NULL»
— имеют тот же смысл, что в п. 3.5.3.
Этот файл может быть прочитан с помощью форматных операторов ввода—вывода, например таких:
READ (8, 1) (A,(J), J=l, 16)
1 FORMAT (F5.3)
Файл отсоединяется от устройства с помощью оператора CLOSE. Оператор имеет следующий вид:
CLOSE (<список закрытия»
Список закрытия может содержать следующие элементы:
UNIT =, IOSTAT = , ERR = , STATUS =
Все элементы, кроме последнего, уже были определены.
130
STATUS = 'OLDj
ACCESS = SEQUENTIAL'
FORM = FORMATTED'
RECL = 80
BLANK = ZERO'
ERR =10, IOSTAT=I
\ 4
STATUS ='KEEP' — файл сохраняется после закрытия;
«DELETE», если файл должен быть удален; если этот элемент опущен, то будет использован «КЕЕР».
Например, закрытие файла (без контроля ошибок) с сохранением на устройстве 8 можно выполнить оператором CLOSE (8)
3.5.5. Вычисления с двойной точностью. Для оценки вычислительной погрешности бывает необходимо преобразовать программу, выполняющую вычисления с одинарной точностью, в программу, вычисляющую с двойной точностью. Для этого следует:
1) преобразовать все вещественные константы в константы с двойной точностью, например
1.Е —6-»l.D —6
2) Описать все вещественные переменные, массивы как переменные двойной точности, например
REAL А, X(8)-»DOUBLE PRECISION А, Х(8)
3) преобразовать спецификации форматов ввода—вывода к двойной точности; данные двойной точности вводятся и выводятся с помощью спецификации формата
Dm.n
где т — общее число позиций, п — число цифр после десятичной точки. Эта спецификация аналогична формату Ет.п с учетом того, что теперь увеличивается возможное количество знаков после десятичной точки до 17; например, возможно задать такой формат
D20.13
4) Использовать во всей программе функции двойной точности, для этого библиотечцые функции необходимо заменить на стандартные функции двойной точности, такие, как
DSQRT, DEXP, DCOS
а функции-подпрограммы употреблять с описанием типа, например
DOUBLE PRECISION SMALL (А, В)
3.5.6. Обобщение описания размерности. В фортране 77 размерность можно описывать задавая верхнюю и нижнюю границы. Например, для одномерного массива А можно описать размерность в форме
DIMENSION А(лх: п2)
где п19 п2 могут быть целыми арифметическими выражениями. Если пг опускается, то, как и в фортране 66, нижней границей считается 1.
Предыдущая << 1 .. 38 39 40 41 42 43 < 44 > 45 46 47 48 49 50 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed