Х - спецификация формата

Общая форма этой спецификации имеет вид: wХ, где Х означает вывод пробела, а w - их количество. Х - спецификация обычно используется для улучшения внешнего вида распечатки, а также для управления кареткой печатающего устройства. Примеры употребления Х - спецификации будут приведены после рассмотрения других спецификаций.

I - спецификация формата

Целые числа выводятся на печать по I- спецификации, которая имеет вид Iw, где w - целое число без знака, задающее ширину поля вывода, т.е. число символьных позиций, отводимых для печати числа. Например,I5 означает, что в строке печати на число отводится пять позиций. Младшая цифра числа всегда печатается в крайней правой позиции поля вывода. Если число отрицательно, то одна позиция из w, отведенных на число, используется для печати знака минус. Рассмотрим пример оператора форматного вывода: РRINT 100, КХ,КY,КZ

100 FОRМАТ(1Х, I4, I3, I6)

Если значения переменных КХ, КY, КZ к моменту выполнения оператора равны 34, 567 и -8 соответственно, то будет напечатана следующая строка:

34567 –8

Символ пробела, задаваемый спецификацией 1X, печатает “пустой” символ при выводе на экран или принтер. Первые четыре позиции в строке вывода в соответствии со спецификацией I4 отводятся для печати числа КХ, следующие три - для числа КY и наконец, последние шесть позиций - для печати числа КZ. Как видим, назначенные спецификации не очень удачны. Так первые два числа слились и постороннему человеку трудно догадаться, что цифры 34567 представляют два числа, а не одно. Чтобы улучшить вид распечатки, можно на каждое число отвести, например, по пять позиций. Тогда оператор вывода будет выглядеть так:

РRINT 100, КХ,КY,КZ

100 FОRМАТ(1Х, I5, I5, I5)

При таком оператореFОRМАТ будет напечатана следующая строка:

34 567 -8

Если в оператореFОRМАТ содержится подряд несколько одинаковых спецификаций, то их можно записать в сокращенной форме какгIw.Здесь целое число г называется повторителем спецификаций, оно указывает, сколько раз должна быть повторена спецификация. Например, предыдущие операторы можно записать так:

РRINT 100, КХ,КY,КZ

100 FОRМАТ(1Х, 3I5)

F - спецификация формата

Вещественные числа могут выводиться с использованием F - спецификации, общая форма которой имеет вид: гFw.d,

где г - повторитель спецификации:

w -ширина поля вывода;

d - число цифр после десятичной точки.

Если число г опущено, то предполагается, что оно равно 1. Так специфи-кация F7.3 отведет для вывода вещественного числа поле шириной семь символов. В первых трех позициях печатается целая часть числа, в четвертой позиции - десятичная точка, в пятой, шестой и седьмой - дробная часть числа. Выводимое число при необходимости округляется компьютером по обычным правилам. Если ширина поля вывода w' недостаточна для печати числа, то печатаются звездочки. Рассмотрим пример вывода по спецификации F7.3 (см. табл.№9).

Вывод по спецификации F7.3 Таблица №9

Выводимые значения Внешн. представление Примечание
2.71828         .   Округление  
1358.6 Усечение целой
-233.145 части числа
-12.12083 - .   Округление
5х10-5                    
-5.0005     - .   Округление

E- и D - спецификация формата

Если есть сомнения, что величина выводимого числа может не соответствовать R - спецификации формата, то ее лучше не использовать, так как вместо числа слишком большого для заданного поля вывода, будут напечатаны звездочки, а слишком маленькое число будет округлено до 0. В подобных случаях удобно использовать Е - и D - спецификации формата. Е -спецификация используется для данных типа REAL*4, а D - спецификация -для данных типа REAL *8. Общая форма этих спецификаций имеет вид:

rEw.d или rDw.dгде:

г - повторитель спецификаций;

w - ширина поля вывода;

d- количество выводимых значащих цифр числа.

Размер поля w - в описателяхEw.d и Dw.dиспользуемых при выводе, должен включать:

- одну позицию для знака числа;

- одну позицию для десятичной точки;

- одну позицию для букв Е или D;

- одну позицию для знака показателя степени;

- две позицию для показателя степени;

- d позиций для десятичных цифр числа,

т. е. должно быть w >= d+6 Если это неравенство не соблюдается, то вместо числа печатаются звездочки, например, по спецификации Е12.8 всегда будут напечатаны 12 звездочек, независимо от того, какое число должно быть выведено по этой спецификации. Рассмотрим пример на действие описателя формата Е12.5 при выводе, (табл.№10).

Вывод по спецификации Е12.5 Таблица №10

Выводимые значения   Внешн. представление значен.               Примечание:  
   
2.7182818     . Е + Округление  
1234.567     . Е +  
-234.25       . Е +  
-0.25   -   . Е +  
-0.000125   - . Е -  
22.5*105   - . Е +  

Символ Е указывает на то, что вещественная константа занимает 4 байта памяти. Точность такой константы составляет 6-7 десятичных значащих цифр. Если такой точности недостаточно, то константа может быть размещена в 8-ми байтовой ячейке. В этом случае точность представления числа повышается до 15 десятичных значащих цифр. В записи такой константы на ФОРТРАНе символ Езаменяется символомD(DUBLE PRECISION). Тогда говорят, что константа представлена в форме D. Константы повышенной точности употребляются тогда, когда необходимо проводить вычисления с повышенной точностью. Правила записи чисел в форме D те же, что и для чисел в формеЕ,только перед показателем степени ставится символ D. Например, число Е в форме D имеет вид:

2.718281828459045D0

Рассмотрим пример оператора форматного вывода, использующего Е-спецификацию:

РRINT 20, ТR, G1Т

20 FОRМАТ(1Х, Е16.6, 10Х, Е10.3)

Если значения переменных ТR и G1Т равны 0.000001786 и -158321.28 соответственно, то в строке вывода будет напечатано: 0.178600Е-05 -0.158Е+06

( / ) - Спецификация формата - косая черта

Косая черта (/) в операторе FORMАТ, который соответствует оператору вывода, вызывает завершение печати очередной строки и переход на новую. Эта спецификация особенно удобна при выводе текстовой информации, например, при печати заголовков.

Пример с выводом символьной информации :

РRINТ 40

40 FОRМАТ(10Х, ‘ FORTRAN ’ / 10Х, ‘*********’)

Эти операторы напечатают две строки:

FORTRAN

*********

Следует отметить, что новая строка вывода, переход к которой изведен по спецификации косая черта, также должна начинаться с символа управления кареткой. Таким образом, каждая строка вывода в последнем примере начинается с 9 пробелов, так как первый пробел на каждой строке воспринимается как символ управления кареткой и не печатается. Две последовательные косые черты вызывают печать строки из одних пробелов, т.е. на строке ничего не печатается.

Пример:

РRINT20

20 FОRМАТ(10Х, ‘FОRTRAN ‘ // 10Х,’*********’)

Эти операторы напечатают три строки:

FОRTRAN

*********

Написание оператора FОRМАТ, в предыдущих примерах, можно сократить, применив повторитель к выводу звездочек:

20 FОRМАТ(10Х, ‘FORTRAN ’/10Х, 9(‘*’))

Наши рекомендации