Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Логические операторы



Операндами для них являются логические значения, результат вычисления выражения также логическое значение.

BasicC

not ® Не, логическое отрицание!

and, AndAlso ® И, логическое умножение, конъюнкция &&

or, OrElse ® Или, логическое сложение, дизъюнкция ||

xor ® исключающее Или (не эквивалентность) !=

eqv ® эквивалентность ==

imp ® импликация (включение) нет

Замечание 1. В нашей версии языка Basic операторы eqv и imp не поддерживаются. Новые операторы AndAlso и OrElse отличаются от операторов and и or соответственно тем, что, если значение результата уже определено значением операнда 1, то значение операнда 2 не вычисляется, для последних значение операнда 2 вычисляется всегда. То есть, если А в выражении А AndAlso В принимает значение false, то значение В не вычисляется, и наоборот, если А в выражении А OrElse В принимает значение true, то значение В не вычисляется. В языке C операторы && и || работают, как операторы AndAlso и OrElse соответственно. Эти свойства операторов позволяют программировать выражения, в которых вычисления 2-го операнда приводит к ошибке.

Пример.

i<n AndAlso x(i)<>0

Если массив x содержит n-1 элемент, то при i=n значение x(n) лежит за пределами отведенной под массив x памяти. В этом случае использовать оператор and для вычисления выражения нельзя!

Замечание 2. Операторы != и == имеют равный приоритет. Они имеют как бы двойное назначение: если операнды – арифметические выражения, то они трактуются как операторы сравнения, если операнды – логические выражения, то – как логические операторы.

Результат выполнения каждого оператора пояснен в таблице. Здесь A и B – выражения, которые могут принимать одно из двух значений: true|false. Любое выражение, не равное 0, трактуется как имеющее значение true, равное 0 – как false.

A B Not A A And B A Or B A Xor B A Eqv B A Imp B
false false true false false false true true
false true true false true true false true
true false false false true true false false
true true false true true false true true

Примеры. Верхнее выражение – на языке Basic, нижнее – на языке C.

1) условие попадания т.M(x,y) 2)условие непопадания т.M(x,y) в 1 и 3 квадрант

в треугольник круга радиуса 1 с центром в начале координат

y y

x>0 and y>0 and y<1-x 1 not (x*x+y*y<1 and x*y>0)

1 x>0 && y>0 && y<1-x!(x*x+y*y<1 && x*y>0)

F 1

T 0 x

x F

0 1

3)условие попадания т.M(x,y) в заштрихованную область

x*x+y*y<=1 and x<=0 and y<=0 or y=x and x>0

x*x+y*y<=1 && x<=0 && y<=0 || y==x && x>0

4)условие кратности целых значений

m mod n = 0

m%n == 0





Дата публикования: 2014-11-02; Прочитано: 248 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...