Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Операторы сравнения

Результат выполнения любого оператора сравнения – логическое значение (true|false), операндами в общем случае являются арифметические выражения. Для операторов используются общепринятые математические обозначения. Там, где действие оператора неочевидно, в скобках приведено пояснение.

CBasic

< <= > >= < <= > >= = <> (не равно)

== (равно) != (не равно)

Замечание. Операторы, состоящие из двух и более символов, называют составными, пробелы внутри них недопустимы.

Пример.

5<3 à false 5*5>=5+20 à true

Замечания.

1. В языке Basic сравнения, подобные приведенному в примере, называют числовыми. Допустимо также сравнение строк. Сравнение проводится посимвольно слева направо в соответствии с кодировкой символов. В кодировке Windows русские и латинские буквы упорядочены по алфавиту, причем заглавные буквы "меньше" строчных.

Пример.

"А" < "а" à true

"Ф" < "ф" à true

"Я" < "а" à true

Если строки имеют разную длину, то более короткая дополняется справа пробелами.

Пример.

"Алекс" < "Александр" à true "Павлов Иван" = "Павлов И.В." à false

2. В языке C сравнение строк выполняется с помощью специальных функций, рассматриваемых в последующих разделах.

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

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-12-27; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.