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

1.4.4. Именованные константы.

При объявлении используемым в программе объектам данных могут быть сообщены дополнительные свойства. Это выполняется путем задания атрибутов, в частности, атрибута PARAMETER, после которого объект данных воспринимается в программе как именованная константа (в частности, так объект данных защищается от изменений в процессе вычислений), например:

real(4), parameter :: pi=3.14159 ! Задание вещественной

! именованной константы pi

integer(4), parameter :: n=10 ! Задание целой именованной

! константы n

integer(4) :: k=n ! Используем именованную константу n при

! объявлении целой переменной k

character(len=n) st ! Используем именованную константу n при

! объявлении символьной переменной st

k=k-2*n*n ! Используем именованную константу n в выражении

Задание именованной константы не может быть изменено в процессе выполнения программы, поэтому ее имя не может находиться в левой части оператора присваивания или быть элементом списка ввода.

Атрибут PARAMETERможет быть задан объекту данных, как в операторе объявления типа (рекомендуемый способ), так и самостоятельным операторомPARAMETER.

logical(1), parameter :: c1=.false._1 ! Первый вариант задания

! атрибута PARAMETER объекту данных

logical(2) c2 ! Второй способ задания – сначала

parameter(c2=.true._2) ! объявляем тип константы, а затем

! используем оператор PARAMETER

1.4.5. Переменные.

Переменная, имя которой присутствует в программе, считается существующей. Существующая переменная может бытьопределенной инеопределенной. Переменная становится определенной после того, как она получит значение (например, в результате присваивания или выполнения ввода соответствующих данных). Рассмотрим объявление:

real(4) a, b, c ! Объявление вещественных переменных

! с именами a, b, c

Данный оператор объявляет три переменных вещественного типа. Такие переменные занимают по одной единице памяти. В рассматриваемом случае размер каждой единицы памяти составляет 4 байта.

Начальное значение переменной может быть установлено оператором объявления типа или оператором DATA. Начальные значения присваиваются переменным на этапе компиляции программы (этапе преобразования исходного текста программы, написанной на Фортране, в объектный код).

В случае задания начальных значений (посредством описания) или атрибутов оператор объявления типа должен содержать разделитель ::, например,

real(4) :: a=1.5, b, c ! Разделитель :: здесь необходим

! так как объявляется и задается начальное

! значение вещественной переменной a;

! также объявляются переменные b и c

b=-0.83; c=10.1 ! Переменным b и c задаются значения

! буквальных констант -0.83 и 10.1соответственно

Синтаксис оператора DATAследующий:

DATA список имен/список значений/[, список имен/список значений/]...

где список имен представляет собой, в частности, список переменных, при этом элементы списка разделяются запятыми;список значений − это список констант или повторяющихся констант, разделенных запятыми (повторяющаяся константа− это элемент видаn*val, гдеn − целая положительная константа (буквальная или именованная),* − символ повторитель; такой элемент в списке значений означает, чтоnподряд расположенных переменных в списке имен получат в результате выполнения оператораDATAзначениеval). Приведем ниже пример использования оператораDATA:

integer(4), parameter :: m=10, n=20

real(4) x, y, z, a, b, c

data x /1.2/, y /-2.4/, z /10.125/, a, b, c /3*0.8/

Нельзя дважды инициализировать одну и ту же переменную. Заметим также, что в последних версиях языка Фортран оператор DATA следует размещать перед исполняемыми операторами программной единицы.