Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
102
Добавлен:
14.04.2015
Размер:
678.91 Кб
Скачать

Оператор write – вывод данных

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

Каждый оператор writeначинает вывод данныхс новой строки.

Вывод под управлением списка не всегда удобен по ряду причин. Далеко не всегда формат вывода, определенный компилятором, оптимален для оформления результатов. Вследствие своей простоты такой вывод удобен при отладке программ, но для создания привлекательного программного продукта лучше пользоваться форматным выводом.

Оператор format

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

Общая форма оператора formatимеет вид:

меткаformat(список спецификаций)

Меткаявляется обязательной частью оператораformat.На нее ссылается хотя бы один оператор ввода или вывода в программе.

Список спецификаций(дескрипторов) состоит из ряда спецификаций (дескрипторов) формата, заключенных в скобки. Разделителями между ними служат запятые или символ «/» – признак перехода к новой строке при выводе.

Пример:

real radius = 1

open (2, file=’Out.txt’)

write(2,55) 2*3.14*radius

55 format ('длина окружности'/2x,'с=',F5.2)

Здесь оператор write, используя операторformat с меткой 55, выводит в файлOut.txtдве строки (символ «_» означает пробел):

длина окружности

__c=_6.28

Спецификации, использованные в операторе format:

  • 'длина окружности'и'с='– символьные константы, используемые как пояснительный текст;

  • 2x– два пробела;

  • F5.2– формат для вывода вещественного числа; число занимает в строке вывода пять позиций, из которых две отводятся под дробную часть.

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

Пример:

write (2, "(1x,'c=',F5.2)") c

Внимание! Синтаксис символьного выражения в операторе вывода не контролируется компилятором, и ошибки в его написании будут выявлены только на этапе выполнения, в отличие от оператораformatс меткой. Поэтому в операторе выводаwrite не рекомендуется писать длинные списки спецификаций.

Спецификации числовых данных

Спецификации числовых данных: rIw,rFw.d,rEw.d,rDw.d,rGw.d

Во всех спецификациях задается ширина поля вывода w– целое число без знака, задающее количество символьных позиций для вывода числа. Число «прижимается» к правому краю поля вывода и при необходимости дополняется слева пробелами. Если ширина поля вывода недостаточна для размещения числа, то выводятся символы «*», их количество равно ширине поля.

Для положительных чисел знак «+» обычно не выводится.

Целое число без знака rназывается повторителем спецификации; оно указывает, сколько раз должна быть повторена спецификация. Если повторитель отсутствует, то по умолчанию спецификация повторяется один раз.

Необходимо строго согласовывать спецификации для выводимых данных с их типом. Например, попытка вывести значение вещественной переменной по I-спецификации для целых чисел приведет к ошибке вывода, которая будет зафиксирована на экране монитора (ошибка выполнения):Run-time error F6102: WRITE(out.txt) – E, F, D or G edit descriptor expected for REAL (Перевод: Ошибка выполнения в операторе WRITE(out.txt) – для вещественных значений ожидаются спецификации (дескрипторы) E, F, D или G)

Соседние файлы в папке Фортран_Лекции