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(‘*’))

 

Задания к контрольной работе (часть 2)

При организации форматного вывода с использованием оператора FORMAT записать выводимые строки печати значений переменных X, Y и т.д. с помощью следующих операторов печати (см. таблицу №11):

таблица №11

№ варианта Операторы вывода Значения переменных
PRINT 15,X,Y,Z 15 FORMAT ( 5X,’ X=’, F10.3 / 5X, ’ Y=’, F10.3 / *5X,’ Z=’, F10.3) X=-415.85 Y=2.375 Z=-5.7
PRINT 2, M, A, C 2 FORMAT ( 5X, ’ Число молей М=’ , I 3 / *17X, ’ A=’, F5.1 / 17X, ’ C=’, E 10.3) M=20 A=30.5 C=-158321.28
PRINT 3, K, N, X 3 FORMAT ( 3X,’ K=’, I 5 / 3X, ‘N =’, I 3 / 3X, *‘X=’, F6.1) K=20 N=22 X=-348.3
PRINT 4, E, K, X0 4 FORMAT ( 3X,’ E=’, E12.6 / 3X, ’ K=’, I 3 / * 3X,’ X0=’, F 6.3) E=.000001786 K=10 X0=0.386
PRINT 5, X1, Y1, X2, Y2 2 FORMAT ( 3X,’Корни управления :’ / * ‘X1=’, F 7.2 / 21X,’ Y1=’, F3.1 / * 21X, ‘X2=’, F 4.0 / 21X,’ Y2=’, F6.3) X1=-281.07 X2=15 Y1=0 Y2=-0.348
PRINT 6, A, B, C, S 3 FORMAT ( 3X,’ A = ’, F 3.1 / 3 X,’ B=’, * F 3.1 / 3X , ’ C= ’, F 3.1 / 3X, ’ S = ’, F 3.1) A=3 B=4 C=5 S=6
PRINT 7, XC, YC, ZC 4 FORMAT ( 5X,’Координаты : ‘ , ’ XC=’, * F 5.2 / 14X,’YC=’, F 5.2 / 14X,’ZC=’, F 5.2) XC=1.25 YC=-0.35 ZC=0.37
PRINT 8,Y1,Y2,Y3 5 FORMAT ( 3X , ’Знач. функций :‘ , 3X,‘Y1=’, * F6.2/24X,‘Y2=’, F4.1/24X,’Y3=’, F 6.1) Y1=12.28 Y2=99. Y3=110.1
PRINT 9, DH, T 6 FORMAT (5X,’Теплота плавлен. DH=’,F 9.0 / * 5X, ’ Температура плавления T = ’ , F 6.0) DH = 204766 T =6000
PRINT 10, DGL1, LL1, DGL2, LL2 10 FORMAT ( 3X, ‘DGL1=’, F 9.2/ 3X, ‘LL1=’, I4 / * 3X, ‘DGL2=’, F 10.2 / 3X,‘LL2 =’, I3) DGL1=-38266.0 LL1= - 11 DGL2=-38266.75 LL2 = -11
PRINT 11, A, B, C, E 11 FORMAT ( 3X, ‘ A=’, F 6.3 / 3X,’ B=’, * F 5.1 / 3X,’ C =’, F 5.0 / 3X,’ E = ‘, E 12.6) A=0.118 B= - 24.1 C= 342 E =.000001786
PRINT 12, M, N, Y 12 FORMAT ( 5X, ‘ M=’, I4 / 5X,’ N=’, I3 / 5X, *’ Y = ‘, F 5.2) M=101 N= 12 Y= 0.01  

 

1.3.3 Пример выполнения контрольной работы (часть1, 2)

 

Вопрос 1. (часть 1)

 

Данные математические выражения записать на ФОРТРАНЕ в виде арифмети­ческих и, соответственно, логических выражений:

Дано

а) 0,0053 - 2.7 √ 8 t3 * 105

3 + 10.05 * (7/3) * 0.3

 

Арифметическое выражение на ФОРТРАНЕ

 

(0.0053-2.7 * (8.0* t *3.0*10**5.0)**(1.0/2.0)) / (3.0+10.05*(7.0 / 3.0)*0.3)

Дано

 

б) │1 – e4 cos x

 

Арифметическое выражение на ФОРТРАНЕ

ABS ( 1.0-e**(4.0*cos (x)))

 

 

Дано

в)х2 + у3 - 1.

sin (x+y)+2 +0.5 * 103

 

Арифметическое выражение на ФОРТРАНЕ

 

(x**2.0 + y**3.0 - 1.0) / (sin (x+y) +2.0) + 0.5 * 10.0 ** 3.0

Вопрос 2.

г) 0 ≤ х ≥ 1.5

 









Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь