Логические выражения
Условие выхода из цикла представляет собой логическое выражение. Кроме того логические выражения играют основную роль в ветвлениях, которые будут рассмотрены далее. Для составления логических выражений, нужно использовать операторы сравнения и логические операции, приведенные в следующей таблице.
Таблица 2. Операторы сравнения и логические операции
Операторы сравнения | Логические операции | ||
Больше (или равно) | a>b (a>=b) | Логическое И | And |
Меньше (или равно) | a<b (a<=b) | Логическое ИЛИ | Or |
Равно (не равно) | a=b (a<>b) | Логическое отрицание | Not |
Результатом вычислений логических выражений являются логические постоянные "Истина" или "Ложь", которые соответственно обозначаются через True и False.
Пример. Что больше eπ или πe ?
Чтобы это выяснить, проще всего набрать следующее:
Результат вычисления: True — Истина, то есть первое выражение больше второго.
Логические выражения можно объединять с помощью логических операций. Пусть X и Y — логические выражения.
- X And Y истинно тогда и только тогда, когда оба выражения истинны. Например, выражение x>0 And x<1 означает, что x принадлежит интервалу (0, 1).
- X Or Y истинно тогда и только тогда, когда хотя бы одно из выражений истинно. Например, выражение x<0 Or x>1 означает, что x не принадлежит интервалу [0, 1].
- Not X истинно тогда и только тогда, когда X ложно. Например, Not x>0 означает x<=0.
Совет. Для того чтобы запомнить эти правила, обозначим истину через 1, а ложь — через 0, что является стандартом в программировании. Тогда And совпадает с обычным умножением, в связи с чем эту операцию называют логическим умножением. Аналогично Or называют логическим сложением, так как для 0 и 1 оно совпадает со сложением чисел (за легко запоминающимся исключением 1+1=1).
Правило 4. В формулах вокруг логических операторов должны оставаться пробелы.
Пример. Игроки Аркадий и Борис в каждом раунде случайным образом или получают очко, или не получают ничего. Кто первым наберет 10 очков?
Борис = 0
do
Аркадий = Аркадий + random(1)
Борис = Борис + random(1)
until(Аркадий = 10 Or Борис = 10)
Напомним, что функция random(1) возвращает 0 или 1 с равными вероятностями. Условие выхода из цикла состоит в том, что хотя бы один из игроков набрал 10 очков.