Вернутся на главную

Условия и утверждения


Условия и утверждения на нашем сайте

Статьи
Статьи для студентов
Статьи для учеников
Научные статьи
Образовательные статьи Статьи для учителей
Домашние задания
Домашние задания для школьников
Домашние задания с решениями Задания с решениями
Задания для студентов
Методички
Методические пособия
Методички для студентов
Методички для преподавателей
Новые учебные работы
Учебные работы
Доклады
Студенческие доклады
Научные доклады
Школьные доклады
Рефераты
Рефератывные работы
Школьные рефераты
Доклады учителей
Учебные документы
Разные образовательные материалы Разные научные материалы
Разные познавательные материалы
Шпаргалки
Шпаргалки для студентов
Шпаргалки для учеников
Другое

В операторе IF могут быть даны следующие комментарии состояния:

IF Ch1 Ch2

THEN {Ch1 < Ch2}

WRITE(Ch1)

ELSE {Ch1 >= Ch2}

WRITE(Ch2)

Ch1 Ch2 в первой строке может принимать значение TRUE либо значение FALSE. Однако комментарий состояния в операторе THEN {Ch1 < Ch2} на следующей строке может быть утверждением того, что условие должно быть равно TRUE на входе в часть THEN оператора IF. Основа для этого утверждения в том, как выполняется оператор IF Паскаль-машиной. Т.е. не важно, что произошло раньше, не важно, какие значения переменных Ch1 и Ch2 могут быть на входе в часть THEN, значения условия Ch1 < Ch2 ДОЛЖНО быть равно TRUE.

Булевы операторы.

Оператор NOT

Ранее упомянутый оператор IF иллюстрирует о том как рассуждать о состоянии значений переменных в программе. Комментарии состояния в части THEN утверждают, что значение Ch1 = является противоположным оператору = Ch2 является иитинным (TRUE) в то время как значение Ch1 < Ch2 является ложью (FALSE) и наоборот. Булевый оператор NOT меняет значение остинности на противоположное:

NOT(TRUE) = FALSE

NOT(FALSE) = TRUE

NOT – это унарный (применяющийся к одному операнду), префиксный (предшествующий операнду) оператор.

Поскольку

NOT(NOT(FALSE)) = NOT(TRUE) = FALSE

NOT(NOT(TRUE)) = NOT(FALSE) = TRUE

И это единственные возможные варианты, то

NOT(NOT(P)) = P для любого Булева значения P.

Оператор AND

Рассмотрим вложенный оператор IF с комментариями состояния:

IF Ch1 < Ch2

THEN { Ch1 < Ch2 }

IF Ch2 < Ch3

THEN { Ch1 < Ch2 < Ch3 }

WRITE(Ch1)

ELSE { Ch1 < Ch2, Ch3 <= Ch2 }

IF Ch1 < Ch3

THEN { Ch1 < Ch3 <= Ch2 }

WRITE(Ch1_

ELSE { Ch3 <= Ch1 < Ch2 }

WRITE(Ch3)

Комментарий состояния

{Ch1 < Ch2 < Ch3}

выражает два утверждения о том, что значение Ch1 преджествует Ch2 и значение Ch2 предшествует Ch3. Булевый оператор AND захватывает это интуитивное значение. AND – это бинарный (два операнда) инфиксный (расположенный между своими операндами) оператор, который принимает значение TRUE, если значения обоих Булевых операндов являются истинными (TRUE). Во всех остальных случаях он принимает значение FALSE.

TRUE AND TRUE = TRUE

TRUE AND FALSE = FALSE

FALSE AND TRUE = FALSE

FALSE AND FALSE = FALSE

Операции сравнения могут обычно объединяться с оператором AND. Когда одинаковые операнды встречаются в объединенном условии, чаще получается более простое условие с тем же самым значением истинности. Например:

Сравнение, объединенное при помощи AND: Более простое эквивалентное сравнение
Ch1 <= Ch2 Ch1 >= Ch2 Ch1 = Ch2
Ch1 <= Ch2 Ch1 < Ch2 Ch1 < Ch2
Ch1 < Ch2 Ch1 > Ch2 FALSE

Более простое сравнение является эквивалентным, поскольку AND требует выполнения обоих объединенных сравнения, включая возможность их противоречия. Во втором случае, эквивалентность операндов не может быть произойти в Ch1<=Ch2, поскольку Ch1 < Ch2 это запрещает.

Оператор OR

В предыдущем операторе IF есть 2 случая, когда оператор WRITE может быть достигнут. Значение Ch1 < Ch2 должно быть TRUE и одно либо оба значения Ch2 < Ch3, Ch1 < Ch3 должны быть TRUE.

Булевый оператор OR – это бинарный инфиксный оператор:

TRUE OR TRUE = TRUE

TRUE OR FALSE = TRUE

FALSE OR TRUE = TRUE

FALSE OR FALSE = FALSE

Вот несколько полезных комбинаций использования OR

Сравнение, объединенное при помощи OR: Более простое эквивалентное сравнение
Ch1 < Ch2 Ch1 > Ch2 Ch1 Ch2
Ch1 <= Ch2 Ch1 < Ch2 Ch1 <= Ch2
Ch1 <= Ch2 Ch1 => Ch2 TRUE

Таблицы истинности для булевых операторов.

P Q NOT P P AND Q P OR Q
T T F T T
T F F F T
F T T F T
F F T F F

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

Булеы операторы и операнды могут быть объединены при помощи скобок в Булевы выражения. Любое такое выражение, внутренние операнды которого являются булевыми значениями могут быть преобразованы в одно значение истинности при помощи таблицы истинности. Например, используя 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

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

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

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

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

TRUE AND P = P TRUE OR P = TRUE FALSE AND P = FALSE FALSE OR P = P NOT(NOT P) = p P AND (NOT P) = FALSE P OR (NOT P) = TRUE P OR Q = Q OR P P AND Q = Q AND P P OR (Q OR R) = (P OR Q) OR R P AND (Q AND R) = (P AND Q) AND R P OR (Q AND R) = (P OR Q) AND (P OR R) P AND (Q OR R) = (P AND Q) OR (P AND R) NOT(P OR Q) = (NOT P) AND (NOT Q) 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




Название статьи Условия и утверждения