Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР6-С++-27 марта-2012.doc
Скачиваний:
17
Добавлен:
28.08.2019
Размер:
6.55 Mб
Скачать

1.1.2. Логические операции

Логические операции работают с операндами скалярных типов и возвра-щают результат булева типа. С++ поддерживает три логические операции:

&& – логическое И;

| | – логическое ИЛИ;

! – отрицание или логическое НЕ.

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

Логические операции имеют более низкий приоритет, чем операции отношения.

Результаты выполнения логических операций над строками, состоящи­ми из одного бита, приведены в таблице 6.2.

Таблица 6.2

Правила выполнения логических операций

Операция И

Операция ИЛИ

Операция НЕ

x

y

x && y

x

y

x || y

x

!x

1

1

1

1

1

1

1

0

0

1

0

0

1

1

0

1

1

0

0

1

0

1

0

0

0

0

0

0

Логические операции используется в основном в условном операторе и операторе присваивания.

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

Логическое выражение (условие) – выражение, которое содержит знаки операций отношения и/или знаки логических операций. Значением логического выражения может быть только 1, если логическое выражение есть ИСТИНА (true), или 0, если логическое выражение ЛОЖЬ (false).

Например, логическое выражение a>3 && c<7 при a=5, c=6 будет иметь значение ИСТИНА, а при a=3, c=8 – ЛОЖЬ; логическое выражение a>3 || c<7 при a=5, c=6 будет иметь значение ИСТИНА, при a=2, c=6 – ЛОЖЬ; при a=7 логическое выражение !a>2 будет иметь значение ЛОЖЬ.

При составлении логических выражений следует учитывать приоритет выполнения операций (табл. 6.4).

Примеры записи логических выражений приведены в табл. 6.3.

Таблица 6.3

Примеры записи логических выражений

Условие

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

x [a, b]

x>=a && x<=b

x [a, b]

x<a || x>b

x [a, b] или ] x [c, d]

x>=a && x<=b || x>=c && x<=d

Хотя бы одно из чисел x, y положительное

x>0 || y>0

Только одно из чисел x, y положительное

(x>0 && !y>0) || (y>0 && !x>0)

Ни одно из чисел x, y не является четным

x % 2 !=0 && y % 2 !=0

Точка (x,y) принадлежит заштрихованной области

x>=0 && x<=a && y>=0 && y<=b/a*x