72642

ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ

Доклад

Информатика, кибернетика и программирование

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

Русский

2014-11-26

14.43 KB

0 чел.

ЛОГИЧЕСКИЕ ВЫРАЖЕНИЯ.

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

ОПЕРАТОР

ДЕЙСТВИЕ                  

.NOT.   ЛОГИЧЕСКОЕ ОТРИЦАНИЕ (НЕ)

.AND.   ЛОГИЧЕСКОЕ ПЕРЕСЕЧЕНИЕ (И)

.OR.   ЛОГИЧЕСКОЕ ОБЪЕДИНЕНИЕ (ИЛИ)

Логическими данными могут быть не только переменные и константы логического типа. Данные или выражения любого встроенного типа связанные операцией логического отношения образуют конструкцию логического типа. Такие конструкции могут входить в логические выражения наравне с логическими переменными и константами. Логические отношения имеют более высокий приоритет выполнения по сравнению с логическими операциями. Каждое логическое отношение (утверждение) является элементарным логическим выражением и может принимать значения: ".TRUE." или ".FALSE.", все операции отношения имеют одинаковый приоритет выполнения по отношению друг к другу:

ОБОЗНАЧЕНИЕ

ОТНОШЕНИЕ      

.EQ.      РАВНО

.NE.      НЕ РАВНО

.GT.      БОЛЬШЕ

.GE.      БОЛЬШЕ ЛИБО РАВНО

.LT.      МЕНЬШЕ

.LE.      МЕНЬШЕ ЛИБО РАВНО

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

     program LOGEQ

     logical X, Y, Z, V, step1, step2, step3, step4

     X = 1 .le. 2 .and. 4 .gt. 3        ! Истина

     Y = 1.2 .ge. 3.4 .or. 5.6 .lt. 7.8 ! Истина 

     Z =  1 .eq. 2 .and. 4 .ne. 3       ! Ложь 

     Y = 1.2 .eq. 3.4 .or. 5.6 .eq. 7.8 ! Ложь 

     V =  X.and.Y                       ! Истина

     print*, X.or.Y.and..not.Z.and.V

     step1 = .not.Z; step2 = Y.and.step1

     step3 = step2.and.V; step4 = X.or.step3

     print'(1x,L3)', step4

     print'(1x,L3)', (X.or.Y).and..not.(Z.and.V)

     step1 = X.or.Y; step2 = Z.and.V

     step3 = .not.step2; step4 = step1.and.step3

     print*, step4