Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лек-4.doc
Скачиваний:
5
Добавлен:
24.08.2019
Размер:
298.5 Кб
Скачать

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.230b = 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 и с совпадают. Такие массивы называются согласованными.

Нижняя граница и последующее двоеточие при объявлении массива могут быть опущены, тогда по умолчанию нижняя граница принимается равной единице.