Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3. Логика Буля и условное выполнение.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
43.1 Кб
Скачать

3.2.2. Булевы выражения.

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

T or ((NOT F) AND F) = T

Результат может быть получен за один шаг путем повторного нахождения внутреннего выражения, заключенного в скобки и замены его значением из таблицы истинности:

Выражение

Шаг уменьшения

Причина

T OR ((NOT F) AND F)

(NOT F) = T

NOT.3

T OR (T AND F)

(T AND F) = F

AND.2

T OR F

(T OR F) = T

OR.2

T

3.2.3. Булевы тождества.

Уравнение между двумя булевыми выражениями, которое не зависит от того, какие значения принимают соответствующие операнды, вроде

NOT(NOT P) = P называется булевым тождеством.

15 полезных булевых тождеств показаны ниже:

  1. TRUE AND P = P

  2. TRUE OR P = TRUE

  3. FALSE AND P = FALSE

  4. FALSE OR P = P

  5. NOT(NOT P) = p

  6. P AND (NOT P) = FALSE

  7. P OR (NOT P) = TRUE

  8. P OR Q = Q OR P

  9. P AND Q = Q AND P

  10. P OR (Q OR R) = (P OR Q) OR R

  11. P AND (Q AND R) = (P AND Q) AND R

  12. P OR (Q AND R) = (P OR Q) AND (P OR R)

  13. P AND (Q OR R) = (P AND Q) OR (P AND R)

  14. NOT(P OR Q) = (NOT P) AND (NOT Q)

  15. NOT(P AND Q) = (NOT P) OR (NOT Q)

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

Например:

1. TRUE AND P = P

P

Left

Right

T

T

T

F

F

F

9. P OR Q = Q OR P

P

Q

Left

Right

T

T

T

T

T

F

T

T

F

T

T

T

F

F

F

F

3.3. Булевы выражения в cf-Паскале

Булевы выражения могут быть включены в состав операторов IF и WHILE языка CF-Паскаль для уменьшения сложности многих программ. В качестве иллюстрации переработаем программу MinSort с использование булевых условий вместо вложенных операторов IF там, где это возможно.

Новые идеи: Булевы выражения языка Паскаль.

SR23. <условие> ::= <выражение> <сравнение> <выражение>

| NOT(<условие>)

|(<условие>) AND (<условие>)

|(<условие>) OR (<условие>)

это правило показывает, что любое условие, используемое с булевым оператором, должно быть заключено в скобки.

Примеры выражений с одинаковым значением:

NOT(Ch1 < Ch2)

Ch1 >= Ch2

NOT(Ch1 > Ch2)

Ch1 <= Ch2

NOT(Ch1 = Ch2)

Ch1 <> Ch2

(Ch1 <= Ch2) AND (Ch1 >= Ch2)

Ch1 = Ch2

(Ch1 <= Ch2) AND (Ch1 < Ch2)

Ch1 < Ch2

(Ch1 <> Ch2) AND (Ch1 > Ch2)

Ch1 > Ch2

(Ch1 < Ch2) AND (Ch1 > Ch2)

FALSE (как правило, это ошибка)

(Ch1 < Ch2) OR (Ch1 > Ch2)

Ch1 <> Ch2

(Ch1 <= Ch2) OR (Ch1 < Ch2)

Ch1 <= Ch2

(Ch1 = Ch2) OR (Ch1 <> Ch2)

TRUE (как правило, это ошибка)

Булевы тождества и факты могут быть использованы для создания эквивалентных условий языка Паскаль. Например, закон деМоргана:

NOT(P OR Q) = (NOT P) AND (NOT Q)

Означает, что операторы IF, начинающиеся с

IF NOT((Ch1 = Ch2) OR (Ch3 < Ch4))

и

IF (Ch1 <> Ch2) AND (Ch3 >= Ch4)

будут иметь одинаковые действия. Большинству людей более понятен второй вариант.

Булевы выражения очень полезны в программировании. Например:

WHILE (Ch = ‘ ‘) OR (Ch = ‘0’)

DO

READ(Ch)

будет продолжать считывание до первого непробельного ненулевого символа.

IF (Ch >= ‘0’) AND (Ch <= ‘0’)

THEN

WRITE(Ch)

будет печатать только цифры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]