Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FORTRAN.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.21 Mб
Скачать

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

Результатом логического выражения является величина типа LOGICAL. Простейшие формы логических выражений следующие : 1. Логические константы. 2. Ссылки на логические переменные. 3. Ссылки на элементы логических массивов. 4. Ссылки на логические функции. 5. Выражения отношения.

Другие логические выражения состоят из простейших логических форм, приведенных выше, с использованием скобок и логических операторов, указанных в таблице 2-5.

------------T-----------------------------T--------------¬

| Оператор | Операция | Приоритет|

+-----------+-----------------------------+--------------+

| .NOT. | Отрицание | Наивысший |

| .AND. | Конъюнкция | Средний |

| .OR. | Включающая дизъюнкция | Средний |

| .EQV. | Эквивалентность | Низший |

| .NEQV. | Неэквивалентность | Низший |

L-----------+-----------------------------+---------------

Таблица 2-5. Логические операторы.

Операторы .AND., .OR., .EQV., .NEQV. не являются бинарными и появляются между двумя операндами логических выражений. Оператор .NOT. - унарный и предшествует своему операнду.

Операции равного приоритета выполняются слева направо, поэ- тому, например,

A .AND. B .AND. C

Эквивалентно :

(A .AND. B) .AND. C

Пример правила приоритета :

.NOT. A .OR. B .AND. C

выполняется как :

(.NOT. A) .OR. (B .AND. C)

Два .NOT. не могут соседствовать с друг другом, хотя

A .AND. .NOT. B

- это пример допустимого выражения с двумя операторами подряд.

Другой пример правила приоритетов и использования .EQV. и .NEQV. :

.NOT. A . EQV. B .OR. C .NEQV. D .AND. E

может быть выполнено как

((.NOT. A) .EQV. (B .OR. C)) .NEQV. (D .AND. E)

Логические операторы имеют тоже самое значение, что и в стандартной математической симантике с неразделительным .OR.. Например:

.TRVE. .OR. .TRVE.

даст величину

.TRVE.

5.7. Приоритеты операторов.

Когда в одном выражении встречаются арифметические, логические операторы и операторы отношения, они выполняются со следующими приоритетами : 1. Логические (низший). 2. Отношения (средний). 3. Арифметические (высший).

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

Любая переменная, массив, элемент или функция, на которые ссылаются в выражении, должны быть определены до момента ссылки. Целые переменные должны быть определены арифметической величиной, не величиной метки оператора, устанавливаемой оператором ASSIGN.

Определенные арифметические операции, также как деление на нуль, математически неопределенные, запрещены. К другим запрещенным операциям относятся возведение нулевого операнда в нулевую или отрицательную степень и возведение отрицательного операнда в степень типа REAL.

5.9. Ссылки на элемент массива.

Ссылка на элемент массива определяет один элемент массива. Ее синтаксис следующий :

---------------------------------------------------------

массив ( индекс [, индекс ] . . . )

---------------------------------------------------------

Где

массив это имя массива

индекс это индексное выражение, являющиеся целым выражением

для выбора заданного элемента массива. Число индексных

выражений должно соответствовать числу размерностей в

описании массива. Величина индексного выражения должна

находится между единицей и верхней границей для соответ-

ствующей ей размерности включительно.

С Пример операторов размерности

DIMENSION A(3,2), B(3,4), C(4,5), D(5,6), V(10)

EQVIVALENCE (X, V(1)), (Y, V(2))

D(i,j) = D(i,j)/PIVOT

C(i,j) = C(I,J) + A(i,k) * B(k,j)

READ (*,*) (V(N), N = 1, 10)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]