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

Логические выражения - это соотношения между переменными или выражениями, которые могут принимать значения «истина» или «ложь». Логические выражения применяются в управляющих операторах, когда в зависимости от некоторых условий требуется изменить последовательность выполнения операторов программы. В логических выражениях используются операции отношения и логические операции.

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

Операция Название Примеры
< или .lt.* Меньше (A<В) a<b a.lt.b
> или .gt. Больше) a>b a.gt.b
== или .eq.** равно (A=В) a==b a.eq.b
<= или .le. меньше или равно (AВ) a<=b a.le.b
>= или .ge. больше или равно (AВ) a>=b a.ge.b
/= или .ne. не равно (AВ) a/=b a.ne.b

* – устаревшее, но не отмененное

** – не путать с логической операцией .eqv. (см. ниже)

Внимание! В связи с приближенным представлением вещественных чисел, вместо сравнения их на равенство (операция «==») следует сравнивать разницу между ними с заданной погрешностью, например abs(x–y) < eps.

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

Примеры операций отношения:

Sin(0.5) > 0.5 => 0.48 > 0.5 => .false. (ложь)

4**2 == 48/3 => 16 == 16 => .true. (истина)

x**2 + y**2 < r**2 => графическая интерпретация этого условия: выражение равно .true. (истина) для всех точек с координатами (x, y) находящихся внутри круга радиуса r с центром в начале координат.

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

Операция Название Старшинство Примеры Комментарии
.not. НЕ – отрицание или инверсия .not.a Унарная операция
.and. И – конъюнкция или пересечение или логическое умножение a.and.b Бинарные операции
.or. ИЛИ – дизъюнкция или объединение или логическое сложение a.or.b
.eqv. Эквивалентность a.eqv.b
.neqv. Неэквивалентность или «исключающее ИЛИ» a.neqv.b

Две логические операции могут следовать в выражении непосредственно друг за другом, только если второй операцией является операция отрицания, например:

a.and..not.b.

Таблицы истинности логических операций наглядно показывают результаты их выполнения в зависимости от операндов. Значения операндов и выражений в таблице обозначены: T – «истина», F – «ложь». На графических интерпретациях множеству истинных значений каждого операнда сопоставлены все точки внутри соответствующего круга. Штриховка показывает, при каких значениях операндов результат выражения равен .true.

A .NOT.A
F T
T F

 

A B A.AND.B
F F F
F T F
T F F
T T T

 

A B A.OR.B
F F F
F T T
T F T
T T T

 

A B A.EQV.B
F F T
F T F
T F F
T T T

 

A B A.NEQV.B
F F F
F T T
T F T
T T F

Пример логической операции:

L =a>3 .and.a<5. L = .true., когда оба отношения истинны, то есть аÎ(3,5).

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

- числовые операции или символьные операции,

- операции отношения,

- логические операции.

Порядок операций можно изменить с помощью круглых скобок.

Пример порядка выполнения операций

1 2 5 3 4 13 6 9 7 8 10 12 11

Abs(y)<=3.and.Abs(x)<=5.or.x**2+(y-3)**2<4.and.x<=0








Дата добавления: 2017-09-19; просмотров: 755;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.