.EQ. – равно

.NE. – не равно

Логические выражения

Существуют следующие логические операции:

.NOT. – отрицание (наивысший приоритет)

.AND. – и (средний приоритет)

.OR. – или (средний приоритет)

.ХOR. – логическое исключающее ИЛИ (низший приоритет)

.EQV. – эквивалентность (низший приоритет)

.NEQV. – неэквивалентность (низший приоритет)

Пример логического выражения с операндами целого типа:

WRITE (*,*) 8.or.1 ! на печать будет выдано 9

Правила вычисления выражений

Приоритет выполнения встроенных операций

приоритет

операции

1

**

2

*

/

3

+

-

4

.LT.

.LE.

.GT.

.GE.

5

.EQ.

.NE.

6

.NOT.

7

.ADN.

8

.OR.

9

.XOR.

.EQV.

.NEQV.


Операторы ввода/вывода

Оператор ввода DATA

Оператор DATA служит для задания значений переменным или массивам на этапе трансляции программы.

Общая форма записи оператора:

DATA <список переменных> / <список значений>/

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

Примечание: список переменных должен соответствовать списку значений: по очередности следования, по типу данных, количество переменных не должно превышать количество значений.

Пример оператора ввода DATA:

DIMENSION C(10)

DATA A, B, K, N / 2.3 , -1.6E-4 , 13 , 9 /

DATA C / 4.1 , 5.5 , 6*0 , -12.7 , 14 /

В результате выполнения этой части программы переменные получат следующие значения: A=2.3, B=-1.6×10-4, K=13, N=9.

НЕ нашли? Не то? Что вы ищете?

Заполнение массива С, состоящего из 10-ти элементов, происходит следующим образом: С(1)=4.1; С(2)=5.5; затем следует групповой множитель 6*0, который означает – шесть раз повторить число 0, т. е. С(3)=С(4)=С(5)=С(6)= С(7)=С(8)= 0; далее С(9)= –12.7; С(10)= 14.

Пример оператора ввода DATA:

DATA C(1) , C(2) , C(8) / 3*7 /

Элементам массива С с индексами 1, 2 и 8 будет присвоено значение 7.

В операторе DATA могут присутствовать данные, как целого и вещественного типа, так и комплексного, текстового и логического типов.

Пример оператора ввода DATA:

COMPLEX D1, D2

CHARACTER*6 E1, E2, E3*12

DATA D1, E1 / (-3.6 , 15.7E3) , ’ОСЕНЬ’ /

Примечания:

1) оператор DATA действует в программе один раз во время трансляции программы и не может изменить значения переменных при повторном его выполнении;

2) операторов DATA в программе может быть сколько угодно;

3) операторы DATA могут располагаться в любом месте программы.

Оператор ввода READ

Этот оператор позволяет осуществлять ввод данных с клавиатуры или другого устройства (например, внешнего файла) в процессе выполнения программы.

Общий вид оператора:

READ ( n , m ) <список ввода>,

где n и m – натуральные числа, n – номер устройства, с которого производится считывание информации (если вместо n указывается * или цифра 5, то считывание данных производится с клавиатуры); m – номер метки, после которой следует оператор формата записи считываемых величин (если вместо m указывается *, то ввод значений производится в произвольной форме – бесформатный ввод).

Пример оператора ввода READ:

READ (*,*) A

READ (5,*) B

READ (1,*) C

Считывание значений переменных A и B производится с клавиатуры, а переменной С с внешнего устройства 1. Значения этих переменных могут задаваться в произвольной форме (бесформатный ввод).

Пример записи массивов данных:

do i=1,10

read(2,*) x(i), y(i), g(i)

enddo

Оператор вывода WRITE

Этот оператор позволяет осуществлять вывод данных на экран или другое устройство (например, внешний файл) в процессе выполнения программы.

Общий вид оператора:

WRITE ( n , m ) <список вывода>,

где n – номер устройства, на которое производится вывод информации (n – целое число; если вместо n указывается * или цифра 5, то вывод производится на экран); m – номер метки, после которой следует оператор формата.

Пример оператора вывода WRITE:

WRITE (*,*) D

WRITE (5,*) E

WRITE (2,*) F

WRITE (*,*) D+E

Вывод значений переменных D и E производится на экран, а переменной F на внешнее устройство 2. Результат суммы переменных D и E также будет выведен на экран Значения всех переменных будут выводиться в произвольной форме (бесформатный вывод).

Пример считывания массивов данных:

double precision A(2,4)

do i=1,100

write (3,3) (A(i, j), j=1,100)

enddo

3 FORMAT (100F10.3,2x)

Оператор вывода на экран PRINT

Этот оператор позволяет осуществлять вывод данных в процессе выполнения программы только на экран.

Общий вид оператора:

PRINT m , <список вывода>

где m – номер метки, после которой следует оператор формата (если вместо m указывается *, то вывод значений производится в произвольной форме).

Пример оператора вывода на экран PRINT:

PRINT *, K

Вывод значения переменной К производится на экран (бесформатный вывод).

Оператор задания формата ввода-вывода (FORMAT)

Оператор FORMAT является невыполняемым оператором. Он всегда имеет метку, но на эту метку нельзя передавать управление. Он может находиться в любом месте программы. Используется для ввода и вывода информации в сочетании с операторами ввода-вывода READ и WRITE.

В общем виде оператор формата можно записать:

m FORMAT ( <список спецификаций> )

где m – номер метки.

Пример оператора FORMAT:

READ ( 5 , 3 ) I, K

3 FORMAT ( I4 , I5 )

Оператор ввода READ означает: читать с клавиатуры по формату 3 значения переменных I и K.

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

В списке спецификаций указывается, по какой спецификации будет произведено считывание значений для переменных. Спецификации бывают следующих типов: I, F, E, G, X, T, А.

Спецификации X, T

Спецификация Х служит для отступа (пропуска) указанного числа пробелов.

В общем виде записывается – nX.

При вводе информации обозначает: пропустить, не читая, n позиций. При выводе информации обозначает пропустить n позиций (вывести n пробелов).

Для вывода информации в конкретное место строки используется спецификация Tn, где n – номер позиции, начиная с которой будет вводится или выводится информация.

Спецификации Х и Т по своей сути одинаковы. Отличие заключается в том, что при использовании спецификации Т на экране будет отступ на n-1 позицию, а для Х – n позиций.

Спецификатор I

В общем виде: Iw

где w – количество позиций для записи числа.

Спецификация I используется для ввода-вывода информации только целого типа. Поэтому переменная, которой присваивается считанная величина, обязательно должна быть целого типа (начинаться с букв I, J, K, L, M, N или должна быть описана при помощи оператора INTEGER). В противном случае при трансляции будет обнаружена ошибка.

Пример ввода данных по спецификации I:

READ ( 5, 3 ) I1, K

3 FORMAT ( I4, I5 )

Если ввести подряд 9 цифр, то переменной I1 присвоятся числа из первых 4 позиций, а переменной K присвоятся числа из следующих 5 позиций. Если при вводе цифр будет больше чем 9, то лишние символы будут проигнорированы.

Пример вывода по спецификации I:

WRITE ( 5, 4 ) I1, K

4 FORMAT (1X, ’Переменная I1=’ , I4 , 2X, ’Переменная K=’ , I5 )

При выполнении данного блока в строке отступается один пробел (спецификация 1Х), выводится на экран текст: «Переменная I1=», следом числовое значение переменной I1 будет выведено в четырех позициях, через два пробела после этого выводится текст: «Переменная K=» и в следующих пяти позициях выводится числовое значение переменной К.

Если I1=123, К=10005, то на экране будет представлена следующая информация:

Переменная I1=123Переменная K=10005

Примечания:

1) при форматном выводе в начале каждой новой строки целесообразно отступить хотя бы на один пробел, т. к. первая позиция строки служит для управления режимом вывода информации;

2) если количество символов в переменной меньше, чем количество позиций для записи числа, то сначала отступается несколько пробелов, а затем выводится само число. Если же количество символов больше количества позиций, то на экран выводятся символы «*» (звездочка).

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13