ГЛАВА 13
ЛОГИЧЕСКИЕ ОПЕРАЦИИ
Краткое содержание: And, OR, NOT.
Если мы взглянем на описанную в третьей главе форму оператора IF:
IF "условие" THEN
то увидим, что "условие" описывается отношениями (=, <, >, >=, о, о),
Связывающими два числа или строки. Здесь можно также использовать
логические операции AND (И), OR (ИЛ И) и NOT (НЕ).
Некоторое выражение "И", некоторое другое выражение истинны,
если истинны оба этих выражения. Например:
IF A$«"YES" AND Х>0 THEN PRINT X
"X" будет напечатано только тогда, когда
A$-"YES" и Х>0
Некоторое выражение "ИЛИ", некоторое другое выражение истинны.
Если истинно хотя бы одно из этих выражений.
"НЕ" выражение истинно, если ложно само выражение и наоборот.
OR имеет низший приоритет, затем идет AND, затем NOT.
Условие "<>" обратно в логическом смысле условию "-", то есть:
А<>В тоже, что и NOT А=В
NOT А<>В тоже, что и А-В
Тем, кто боится сложностей, следующие разделы можно опустить.
• 1) условия <, >, <-, >-, <> дают числовой результат 1 для истины и
0 если ложь. Например, оператор PRINT 1-2,1 <>2 выведет 0 для
"1-2", которое ложно и 1 для "12", которое истинно.
• 2) в операторе "IF"ycfloene"THEN...", само условие может быть
числовым выражением. Если его значение после вычисления равно
0, то считается, что это ложь. Если другое значение (включая и 1), то
считается, что это истина. Таким -образом IF оператор можно
представить: . 1
IF "условие" о О THEN...
Операции AND, OR, NOT могут также использоваться и в числовых вы-
ражениях:
X AND Y имеет значение X, если Y<>0 и 0, если Y=0
X OR Y имеет значение 1, если Y<>0 и X, если Y=0 NOT Y имеет
значение 0, если Y<>0 и 1, если Y=0
Например:
10 INPUT А
20 INPUT В
30 PRINT (A AND А«В)+(В AND А<В)
40 GO ТО 10
В каждой итерации будет выводиться большее из двух чисел А или В.
Пример использования OR:
LET TOTAL PRICE=PRICE LESS TAX*(1 Л 5 OR V$-"ZERO
RATED")
В условном выражении можно также использовать символьные строки,
но только с операцией AND:
Х$ AND Y имеет значение Х$, если Y<>0, и "" если Y~0 где "" - пустая
строка.
Выполните следующую программу, которая вводит две строки, а затем
выводит их в алфавитном порядке:
10 INPUT "type in two strings" ;A$,B$
20 IF A$>B$ THEN LET C$=A$: LET A$=B$: LET B$-C$
30 PRINT A$;" ";("<" AND A$<B$)+("=" AND A$=B$) ;
40 PRINT " ";B$
50 GO TO 10