- •«Информатика»
- •21. Оператор format
- •Спецификация X
- •Спецификация I
- •Правило:
- •Разделители
- •Спецификация f
- •Особенности набора числовых данных при вводе информации
- •Использование повторителей в операторе format
- •Примечание
- •Вывод по спецификации Fw.D
- •Ввод по спецификации Ew.D
- •Вывод информации по спецификации Еw.D
- •Примечание: При бесформатном выводе данные автоматически выводятся по спецификации е15.7. Ввод и вывод информации по спецификации Gw.D
- •22. Подпрограммы
- •23. Оператор-функция
- •24. Подпрограмма function
- •Правило:
- •Правило:
- •Мини задача 1:
- •If(y1(1).Gt.Y1(2)) write(*,*)'Максимум на левой границе
- •If(y1(100).Gt.Y1(99)) write(*,*)'Максимум на правой границе
- •25. Подпрограмма subroutine.
- •Примечания:
- •26. Способы передачи данных в подпрограмму.
- •If (логическое выражение 1) return 1
- •If (логическое выражение 2) return 2
- •Примечание:
- •27. Передача данных посредством оператора common
- •Правило:
- •28. Использование библиотек стандартных программ (бсп)
- •If(ier.Eq.1) write (6,*)’Нет решения. Проверьте исходные данные’
- •If(ier.Eq.2) write (6,*)’Неверное количество уравнений’
- •29. Графическое моделирование функции
Вывод по спецификации Fw.D
При выводе по этому формату обязательно выводятся: знак ”–” (знак + опускается) и целая часть числа, десятичная точка и количество позиций d с дробной частью числа (выводится с округлением).
Пример:
WRITE(5,4)A
4 FORMAT(2X,’A=’,F6.3)
Врезультате на экран будет выведено:А=_ 0.123
d
w
На некоторых версиях ФОРТРАНа может быть установлено (пользователем) гашение незначащего нуля, в этом случае будет выведено:А= .123.
При выводе по формату F6.3 максимальное число, которое можно вывести это 99.999 ( для примера: А=99.999492 – выведет по этому формату; А=99.999823 – не выведет по этому формату, так как d=3, то оставшуюся дробную часть округлит и все число округлится до 100, а число 100 вывести по этому формату нельзя). Минимальное выводимое число по этому формату это –9.999.
Если ширина поля ввода больше, чем выводимое число, то число прижмется к правому краю.
Если выводимое число не может быть выведено по указанному формату(например число 100 по F6.3), то вместо числа в отведенных позициях напечатаются символы “” (для числа 100 выведет:).
Ввод по спецификации Ew.D
Общая запись спецификации Е:
Еw.d
где w– количество позиций, отведённых под число;
d– количество позиций изw, в которых размещается дробная часть числа.
Например:
READ(5,9) A,B
9 FORMAT(E9.3,2X,E7.2)
При вводе исходных данных по спецификации Е в отведенном поле должно вводиться число с плавающей запятой и в этом поле должна присутствовать латинская буква Е, которая выступает в роли показателя степени. У показателя степени буква Е может отсутсвовать, но тогда при показателе степени обязательно должен стоять символ “+” или “–“.
Пример ввода по предыдущему FORMAT(E9.3,2X,F7.2):
–12345Е+1 1234Е–1
d 2X d
w w
В результате считывания переменной А присвоится значение: А=–12.345*101, а переменной В присвоится значение: В=12.34*10–1.
Знак “+” у показателя степени можно опускать, если информация будет подготовлена следующим образом:
0123456Е2 1234Е–1
А=123.456*102В=12.34*10–1
или
0123456+2 1234–01
А=123.456*102В=12.34*10–1
или
0123456+0 1234–1
А=123.456 В=12.34*10–1
Информация, вводимая по спецификации Е, может быть подготовлена с десятичной точкой. В этом случае число читается из отведённого поля wпозиций, а параметрdне играет никакой роли (смотри аналогичное положение по спецификацииF).
Пример:
012345.Е2 .1234–1
А=12345*102В=0.1234*10–1=0.01234
Вывод информации по спецификации Еw.D
Вывод осуществляется в нормализованном виде.То есть в обязательном порядке выводится служебная информация в виде:
–0.ххх…хЕ0Y
d
w
Поэтому данные выводятся по спецификации E12.5 в не совсем обычном виде:
0 отпечатает 0.00000Е+00
1 отпечатает 0.10000Е+01
101 отпечатает 0.10100Е+03
0.0012 отпечатает 0.12000Е–02
При выводе по спецификации Е обязательнодолжно выполняться правило:
w–d7
Это происходит из-за того, что 3 позиции в начале выводимой строки и 4 позиции в конце строки отводятся под вывод служебной информации.
Пример:
А= –0.1234567Е12
3 d 4
По спецификации Ew.d, выполняя условиеw-d7, можно вывести любое вещественное число. По этой причине спецификация Е используется для вывода значений, результаты которых непредсказуемы.
Для ЭВМ, у которых при установке дистрибутива программного обеспечения установлено гашение незначащего нуля,
w–d6
В этом случае число 1 по спецификации Е10.3 отпечатается как .100Е+01.
Необходимо предусматривать достаточное количество цифр после запятой, то есть параметр d(иначе при выводе будет происходить округление отбрасываемой части и результат может сильно измениться).
Примеры: вывод числа 1.4878960
При выводе по Е9.1 ошибка округления может достигать 30–40%; получим 0.1E+01
при выводе по Е9.2 ошибка округления может достигать 5%; получим 0.15E+01
при выводе по Е10.3 ошибка округления может достигать 0.5%. получим 0.149E+01
Наиболее оптимальным, по мнению автора, является вывод по спецификации Е10.3, а при гашении незначащего нуля E10.4.