.

Назад Зміст Вперед

Складена умова

Складена умова – дві або більше простих умови, з’єднаних знаком логічної операції (&&, ||, ^, !).

Пріоритет виконання операцій у логічних виразах:

Пріоритет операції Операція
1 У дужках
2 / , *
3 +, –
4 =, > , < ,
>= , <=, !=
5 !
6 &&
7 ||, ^

У вказаному прикладі, спочатку обчислюються математичні вирази: у дужках виконаються операції „+” та „*”, потім обчислюються прості умови (виконуються операції “>”, “=” ), потім виконується логічна операція !, потім логічна операція &&, потім логічні операції || та ^, у тому порядку, що вони записані.

Логічна операція && (і, та, кожне, обидва)

Складена умова (проста умова 1 && проста умова 2) вірна, якщо вірні обидві простих умови. У інших випадках така складена умова невірна.

Таблиця істинності логічної операції &&

Значення умови 1 Значення умови 2 Значення результату
TRUETRUE TRUE
FALSEFALSEFALSE
FALSETRUEFALSE
TRUEFALSEFALSE

Обчислюючи складену умову з логічною операцією &&, можна не перевіряти значення другої умови, якщо одна з умов має значення FALSE . Весь вираз буде мати значення FALSE.

Операцію && називають логічним множенням

Приклади складання умов з логічною операцією &&

Ствердження Умова
Число X належіть інтервалу
[-2, 5], тобто -2<=x<=5
if (x>=-2 && x<=5)
  { cout <<"yes";}
  else
  { cout <<"no";}
Ціле число X двозначне
if (x/100==0 && x/10!=0)
  { cout <<"yes";}
  else
  { cout <<"no";}
Натуральне число X кратно 7 та закінчується цифрою 3
if (x%7==0 && x%10==3)
  { cout <<"yes";}
  else
  { cout <<"no";}
Кожне з двох цілих чисел X та Y парне
 if (x%2==0 && y%2==0)
  { cout <<"yes";}
  else
  { cout <<"no";}
Точка з координатами x, y попадає
в заштриховану ділянку площини.
if (x>=-3 && x<=-1 && y>=1 && y<=3)
  { cout <<"yes";}
  else
  { cout <<"no";}

Логічна операція || (або, хоча б одне)

Складена умова (проста умова 1 || проста умова 2) невірна, якщо невірні обидві простих умови.

У інших випадках така складена умова вірна.

Таблиця істинності логічної операції or

Значення умови 1 Значення умови 2 Значення результату
FALSE FALSE FALSE
TRUE TRUE TRUE
FALSETRUE TRUE
TRUEFALSE TRUE

Обчислюючи складену умову з логічною операцією ||, можна не перевіряти значення другої умови, якщо одна з умов має значення TRUE. Весь вираз буде мати значення TRUE.

Операцію || називають логічнм додаванням

Приклади складання умов з логічною операцією ||

Ствердження Умова
Хоча б одне з чисел X та Y додатне
 if (x>0 || y>0)
  { cout <<"yes";}
  else
  { cout <<"no";}
Натуральне число X закінчується цифрою 2 або 3
 if (x%10==2 || x%10==3)
  { cout <<"yes";}
  else
  { cout <<"no";}
Точка з координатами X та Y належить I або IIІ чверті координатної площини.
if (x>0 && y>0 || x<0 && y<0)
  { cout <<"yes";}
  else
  { cout <<"no";}

Логічна операція ^ (тільки одне, при різних)

Складена умова (проста умова 1 ^ проста умова 2) вірна, при різних значеннях операндів. При однакових значеннях операндів така складена умова невірна.

Операція вірна, якщо вірна одна з двох умов, а не з трьох, чотирьох і.т.д

Таблиця істинності логічної операції ^

Значення умови 1 Значення умови 2 Значення результату
FALSE FALSE FALSE
TRUE TRUE FALSE
FALSETRUE TRUE
TRUEFALSE TRUE

Обчислюючи складену умову з логічною операцією ^, потрібно перевіряти значення обох умов.

Логічну операцію ^ називають „исключающее или”. Без цієї операції можна обійтись, але її використання значно скорочує запис.

Приклад складання умови з логічною операцією ^

Ствердження Умова без ^ Умова з ^
Тільки одне з чисел X та Y парне
 if (x%2==0 && y%2!=0 || x%2!=0 && y%2==0)
  { cout <<"yes";}
  else
  { cout <<"no";}
if (x%2==0 ^ y%2==0)
  { cout <<"yes";}
  else
  { cout <<"no";}

Логічний префікс ! (не)

Складена умова !(умова 1) вірна, якщо (умова 1) невірна. І навпаки, складена умова невірна, якщо (умова 1) вірна.

Таблиця істинності логічної операції !

Значення умови 1 Значення результату
FALSETRUE
TRUEFALSE

Приклади складання умов з логічною операцією !

Ствердження Умова без ! Умова з !
Число X не належіть інтервалу [-2, 5].
if (x<-2 || x>5)
  { cout <<"yes";}
  else
  { cout <<"no";}
 if (!(x>-2 && x<5))
  { cout <<"yes";}
  else
  { cout <<"no";}
Ціле число X не ділиться на 3.
if (x%3!=0)
  { cout <<"yes";}
  else
  { cout <<"no";}
if (!(x%3==0))
  { cout <<"yes";}
  else
  { cout <<"no";}

Назад Зміст Вперед