Здавалка
Главная | Обратная связь

Логические операции объединения и отрицательная инверсия.



В большинстве случаев невозможно обойтись только одним утверждением. Чаще всего необходимо комбинировать утверждения тем или иным образом. Например, чтобы проверить находится ли число в диапазоне от 1 до 10, необходимо проверить два утверждения: число должно одновременно > = 1 и <= 10. Для того чтобы реализовать такую комбинацию необходимо ввести дополнительные операторы.

ОПЕРАЦИЯ НАЗВАНИЕ
&& И
|| ИЛИ
!= НЕ

Логическое И (&&)

Логическое И объединяет вместе два утверждения и возвращает истину только в том случае, если и левое и правое утверждения истинны. Если хотя бы одно из утверждений или оба ложны, объединенное выражение заменяется на ложь. Логическое И работает по сокращенной схеме, то есть, если первое утверждение ложь, второе уже не проверяется.

УТВЕРЖДЕНИЕ 1 УТВЕРЖДЕНИЕ 2 УТВЕРЖДЕНИЕ 1&&УТВЕРЖДЕНИЕ 2
true true true
true false false
false true false
false false false

Теперь рассмотрим пример, в котором программа получает число и определяет, попадает ли это число в диапазон от 1 до 10.

#include <iostream>using namespace std;void main(){ int N; cout<<”Enter digit:\n”; cin>>N; cout<<((N>=1)&&(N<=10)); cout<<”\n\nIf you see 1 your digit is in diapazone\n\n”; cout<<”\n\nIf you see 0 your digit is not in diapazone\n\n”;}

В данном примере, если оба утверждения будут верными, на место выражения подставится 1, в противном случае – 0. Соответственно пользователь сможет проанализировать сложившуюся ситуацию, используя инструкции программы.

Логическое ИЛИ (||)

Логическое ИЛИ объединяет вместе два утверждения и возвращает истину только в том случае, если хотя бы одно из утверждений верно, и ложь в том случае, если оба утверждения не верны. Логическое ИЛИ работает по сокращенной схеме, то есть, если первое утверждение истина, второе уже не проверяется.

УТВЕРЖДЕНИЕ 1 УТВЕРЖДЕНИЕ 2 УТВЕРЖДЕНИЕ 1||УТВЕРЖДЕНИЕ 2
true true true
true false true
false true true
false false false

Еще раз рассмотрим пример, в котором программа получает число и определяет, попадает ли это число в диапазон от 1 до 10. Только, теперь используем ИЛИ.

#include <iostream>using namespace std;void main(){ int N; cout<<”Enter digit:\n”; cin>>N; cout<<((N<1)||(N>10)); cout<<”\n\nIf you see 0 your digit is in diapazone\n\n”; cout<<”\n\nIf you see 1 your digit is not in diapazone\n\n”;}

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

Логическое НЕ (!)

Логическое НЕ является унарным оператором и в связи с этим не может называться оператором объединения. Оно используется в том случае, если нужно изменить результат проверки утверждения на противоположный.

УТВЕРЖДЕНИЕ !УТВЕРЖДЕНИЕ
true false
false true

 

// на экране будет 1, так как (5==3) ложь и её инверсия это - истина.cout<<!(5==3); //на экране будет 0, так как (3!=2) истина и её инверсия это - ложь.сout<<!(3!=2);

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

b==0

можно сокращенно записать с помощью инверсии:

!b

обе записи дают на выходе истину, в случае если b будет равно нулю.

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

Предыдущая Оглавление Следующая  
Предыдущая Оглавление Следующая
           






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.