Лекция: Сложные логические выражения

 

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

 

отрицание (другое название–не), знак операции!(восклицательный знак),

 

конъюнкция (другие названия–логическое произведение или простоИ), знак опе-

 

рации &&,

 

дизъюнкция (другие названия–логическая сумма или простоИЛИ), знак операции

 

||,

 

Отрицание является унарной операцией, остальные – бинарными.

 

В математике операции !(отрицания) соответствует знак перед аргументом

 

(Х) или черта над аргументом ( X ); конъюнкции соответствует знак & или • или ∧ (X&Y или X•Y или X∧Y ); дизъюнкции соответствует знак V (X V Y ).

Ниже представлены их таблицы перечисленных логических функций.

 

 

X!X X Y X && Y X Y X || Y
Ложь Истина Ложь Ложь Ложь Ложь Ложь Ложь
Истина Ложь Истина Ложь Ложь Истина Ложь Истина
  Ложь Истина Ложь Ложь ИстинаИстина
  ИстинаИстина Истина ИстинаИстинаИстина

 

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

 

Пример. Составить условный оператор для вычисления нового значения Y по фор-


 

муле

 

 

Y =


 

 

A,B,

 

Y


 

 

если (A B >1) & (A >0),если (A +B >1) & (A <0),

 

в стальных случаях


 

 

«Практикум по программированию на языке C в среде VS C++»


 

Как видно из задания, при истинности одного из условий другие условия будут иметь значение «ложь», поэтому для вычисления лучше использовать не два, а один условный оператор if else (с вложенным в него другим оператором if), что приведет к сокра-щению вычислений:

 

if (A*B>1 && A>0) Y=A;

else

 

if (A+B>1 && A<0) Y=B;

 

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

 

Условное выражение (тернарный оператор)

 

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

 

еще рефераты
Еще работы по информатике