Курс лекций по дисциплине Программирование на языке Фортран
Скачать 0.98 Mb.
|
|
Дескриптор | Выводимое значение | Результат |
| 0 | 0 |
I5 | -22 | -22 |
| 22 | 22 |
| 22.2 | Ошибка |
| ‘22’ | Ошибка |
| 99999 | 99999 |
| -99999 | ***** |
| -9999 | -9999 |
| 100 000 | ***** |
Fw.d – для в/в величин вещественного типа,
где d – целая положительная константа, определяющая длину поля (в позициях) под дробную часть значения.
Дескриптор | Выводимое значение | Если вещественное число содержит больше цифр после десятичной точки, чем предусмотрено параметром d, то отображается округленное до d знаков после десятичной точки значение числа. Результат |
F6.3 | -1.0012 100.5 | -1.001 ****** |
F8.3 | -345.456 | 345.456 |
F8.2 F8.1 | -345.456 -345.456 | -345.46 -345.5 |
F6.2 | 0.00448 12.9 -126.6 | 0.00 12.90 ****** |
Ew.d – для в/в величин вещественного типа в десятичной системе счисления с плавающей запятой ( с использованием Е представления).
d – целая константа, означающая количество позиций поля, отведенных под дробную часть мантиссы.
Число в системе счисления с основанием Q можно записать: Q=A*Qp, где А – мантисса числа, р – порядок. Для Е представления числа принято Q=10, 0.1<|A|<1, (т.е. первая цифра мантиссы после запятой отлична от нуля).
Для Е дескриптора должно выполняться условие w>d+7, где 7 – количество резервируемых позиций: - позиция для «-» перед целой частью - позиция для 0 и . - позиция для Е ab (ab – степень) Дескриптор | Выводимое значение | Результат |
E12.4 | -1.001 95.05 | -0.1001Е 01 0.9505Е 02 |
E11.3 | 238.0 0.002 -21.0057 -21.0657 | 0.238Е 03 0.200Е-02 -0.210Е 02 -0.211Е 02 |
Gw.d – для в/в величин целого, вещественного или логического типа.
Дескриптор G – универсален, его действие сведено в табл.
Тип выводимого значения | Действие дескриптора G |
Целый | I |
Логический | L |
Веществ.выводимое значение n по дескриптору Gw.d n<0.1 и n>10d 0.1 | Ew.d Fw.d |
Дескриптор | Выводимое значение | Аналог. | Результат |
G4.3 G5 G10.3 | I4 I5 F10.3 т.к. 0.1<12.3<103 | 152 152 12.3 | 152 152 12.300 |
G10.2 | E10.2 т.к. 238>102 L10 | 238. .True. | 0.24E 03 T ? |
G12.5 | E12.5 т.к. 0.01234<0,1 E12.5 т.к. 123 400>105 f12.5 т.к. 0<123.4<105 | .01234 123 400. 123.4 | -0.12340E-01 0.12340E+06 123.40000 |
Lw -для в/в величин логического типа.
w – длина поля.
Дескриптор | Выводимое значение | Результат |
L2 L4 | .FALSE. .TRUE. | F T |
Z[w] – для в/в величин в шестнадцатеричной системе счисления
Дескриптор | Выводимое значение | Результат |
Z | 10 (Integer*2) | 000A |
Z4 Z6 | 1B2D 1B2D | 1B2D 1B2D |
Z2 | 1B2D 255 | 2D FF |
Z6 | 3035 | BDB |
7) A[w] – для в/в величин символьного типа.
Дескриптор | Выводимое значение | Результат |
A4 | ‘sinx’ | *sinx* |
A6 | ‘DATA’ | DATA¹¹ |
A3 | ‘DATA’ | DAT |
A5 | ‘123’//’+15’ | ‘123+1’ |
Управляющие дескрипторы
Формат | Имя | Использование |
‘string’ | Преобразование апострофа | Передает строку текста string на внешнее устройство |
/ | Преобразование слеша | Переход к следующей записи и постановка символов конца записи переходу на новую строку. |
\ | Преобразование обратного слеша | Продолжение записи. Используется для продолжения ввода в той же строке. |
: | Прерывание выполнения действия дескрипторов | При исчерпании списка вывода прерывает выполнение дескрипторов. |
n(fs) | Повторитель | Повторение n раз строки формата fs |
nx | Преобразов.позиционир. | Спецификация позиции в записи. n- кол-во отступаемых позиций 2х означает отступ 2-х позиций от последней записи |
Примеры исп-ся форматного вывода
write (5, ‘(1x, f8.3)’)a – вывод веществ. значения переменной а.
write (5, ‘(2x, i10)’)k – вывод значений переменной k целого типа.
Real a
Integer k
Write (5, 11) a,k !
Write (5, 11) k,a ! неверно, т.к. дескриптору не
соответствует тип х
Write (5, 11) a,k,a ! неверно, т.к. отсутствует дескриптор для
переменной а
11 format (2x,f8.3,2x, i10)
write (5,10) Pi,R,L,Sq ! 4 элемента в списке вывода
10 format (‘1’, 3x, 2f8.5, /, 3x, ‘L=’, f8.3, //, 4x, ‘S=’, f8.2)
При Pi=3.141593; R=1.0, L=6.283185, Sq=Pi получим
Write (5,10) ‘Результат ’,’ b=?’,b ! 3 элемента в списке вывода
1
1.44
0 format (1x, а, а2, f6.2)
При b=1.44 получим Результат b=
Write (5,10) ‘Результат’//’ b=’,b ! 2 элемента в списке вывода
10 format (2x, а, f4.2)
При b=1.44 получим
Результат b=1.44
В списке вывода могут находится переменные, константы, элементы массивов, массивы, строки, подстроки.
Real a (2,3) /1.,2.,3.,4.,5.,6./
Write (5,*)a ! 6 элементов в списке вывода. Печать
значений в строку
Write (5, ’(6(1x, f4.1))’)a ! форматный вывод по столбцам. В
списке 6 элементов
1.0 4.0 2.0 5.0 3.0 6.0
do i=1,2 ! построчный вывод
write (5, ’(3(1x, f3.1))’) (a(i, j),j=1,3) ! в списке 3
элемента
end do
1.0 2.0 3.0
4.0 5.0 6.0
Print ’(1xm80a1)’, (’-’,k=1,80) ! вывод горизонтальных линий.
В списке 80 элементов
Integer j,k,n,a(10)
Read(*,’(2I8,5(I2,I3),5(I4,1x,I1))’)k,n,a,(b(j),j=1,10)
Integer a(10)
open(9,file=’a.txt’)
read(9,1)a
write(5,1)a
1 format(5I3/3I3/2I3)
Файл a.txt Результат
1 2 3 4 5 6 7 1 2 3 4 5
8 9 10 11 12 13 8 9 10
14 15 16 1712 14 15
2.10 Встроенные функции языка Fortran