
- •Lesson 3 Приближенные вычисления
- •Ряд Тейлора
- •Точность вычислений
- •Рекуррентная формула
- •Блок-схема алгоритма
- •Текст программы
- •Отладка программы
- •Альтернативная блок-схема
- •Bвод и вывод данных
- •Операторы open и close
- •Оператор read – ввод данных
- •Оператор write – вывод данных
- •Оператор format
- •Спецификации числовых данных
- •I -спецификация формата.
- •F -спецификация формата
- •E, d -спецификации формата
- •G-спецификация формата
- •Вывод комплексных чисел
- •Спецификации нечисловых данных a-спецификация формата
- •L-спецификация формата
- •X-спецификация формата
- •Cпецификация формата – «слэш»
- •Взаимодействие операторов write и format .
- •Оператор nameList
Оператор 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)