- •Лекция-4 основы программирования на языке фортран
- •§ 1.14. Форматный ввод-вывод данных
- •1.14.1. Преобразование данных. Оператор format.
- •1.14.2. Дескрипторы данных.
- •1.14.3. Дескрипторы управления.
- •1.14.4. О еще одном способе задания спецификации формата.
- •§ 1.15. Массивы
- •1.15.1. Понятие о массивах.
- •1.15.2. Характеристики массивов.
- •1.15.3. Способы объявления массивов.
- •1.15.4. Размещение элементов массива в памяти компьютера.
- •1.15.5. Способы инициализации массивов.
- •1.15.6. Одновременное объявление объектов разной формы.
- •1.15.7. Ввод-вывод массивов.
- •1.15.8. Некоторые примеры простейших программ с использованием массивов.
1.14.3. Дескрипторы управления.
Прежде всего, заметим, что в литературе дескрипторы управления также называют неповторяющимися дескрипторами преобразований, поскольку перед такими дескрипторами в спецификации формата нельзя указывать коэффициент повторения (если только дескриптор не заключен в скобки).
Таблица 1.14.2. Основные дескрипторы управления.
Форма |
Имя |
Назначение |
Использование |
Строка |
Преобразование апострофа |
Передает строку текста на внешнее устройство |
Вывод |
nX |
Преобразование позиции |
Спецификация позиции в записи |
Ввод-Вывод |
/ |
Преобразование слэша |
Переход к следующей записи и простановка символов конца записи |
Ввод-Вывод |
Преобразование апострофа. Преобразование апострофа или двойных кавычек выполняет вывод заключенной в апострофы или в кавычки строки. Для вывода обрамленной апострофами и содержащей апострофы строки необходимо указать каждый выводимый апостроф дважды (либо заключить строку в двойные кавычки). Аналогично выполняется и вывод строк, содержащих двойные кавычки. Приведем пример:
write(*,1) 1 format(‘Vvedite granitsi otrezka’) |
Дескриптор nX используется для перемещения позиции ввода-вывода на n символов вперед. Приведем пример:
real(4) :: a=1.23, b=5.78, c write(*, 1) a,b ! a = 1.230b = 5.780 1 format(7x,'a=',f6.3,7x, 'b=', f6.3) |
Преобразование слеша. В текущей записи слеш (/) указывает на конец подлежащих передаче данных. При выводе данных на экран слеш фактически означает переход на следующую строку. Перед слешем может быть задан коэффициент повторения.
1.14.4. О еще одном способе задания спецификации формата.
Cпецификация формата может быть задана не только с использованием оператора FORMAT, но и как символьная строка, встроенная в оператор ввода-вывода, например:
real(8) :: a=1.23D+205 real(4) :: b=0.0000123445, c=-.123445, d=1.23 write(*,’(E15.8)’)a ! .12300000+206 write(*,’(1x,2E12.5)’)b,c ! -.12344E-04-.12344E+00 write(*,’(1x,e11.5)’)d ! .12300E+01 |
§ 1.15. Массивы
1.15.1. Понятие о массивах.
Массив это объект данных, который содержит упорядоченный набор конечного числа скалярных данных одного типа.
Массивы обеспечивают доступ к некоторому множеству данных при помощи одного имени, которое называется именем массива.
Элемент массива называется также индексированной переменной. Индексы пишутся в скобках; если индексов несколько, то они разделяются запятыми.
Под статические массивы на этапе компиляции выделяется заданный объем памяти, которая занимается массивом во все время существования программы в памяти компьютера.
1.15.2. Характеристики массивов.
Массив характеризуется числом измерений, которых может быть не более семи. Число измерений массива называется его рангом (размерностью). Массив ранга 1 в литературе по Фортрану нередко называют вектором, а массив ранга 2 – матрицей. Объект ранга 0 является скаляром.
Число элементов массива называется его размером. Также массив характеризуется формой, которая определяется его рангом и протяженностью (экстентом) массива вдоль каждого измерения. Например, оператор
real(4) b(3,4,20) |
объявляет массив b ранга 3. Размер массива b равен 3*4*20=240. Форма массива – (3, 4, 20).
Каждая размерность массива может быть задана нижней границей и верхней границей (граничные пары), которые разделяются двоеточием, например:
real(4) с(2:4,-1:2,0:19) |
Ранг, форма и размер массивов b и с совпадают. Такие массивы называются согласованными.
Нижняя граница и последующее двоеточие при объявлении массива могут быть опущены, тогда по умолчанию нижняя граница принимается равной единице.