Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Логические бинарные операции




Операции отношения (сравнения).

Операнды: арифметические выражения и указатели. Указатели можно сравнивать только с целым. Результат целочисленный: 0 (ложь) или 1 (истина).

< меньше, чем.

> больше, чем.

<= меньше или равно.

>= больше или равно.

== равно.

!= не равно.

 

Последние две операции (операции сравнения на равенство) имеют более низкий приоритет по сравнению с остальными операциями отношений. Таким образом, выражение

(x<b = = a<x)

есть 1, тогда и только тогда, когда значение х находится в интервале от a до b и а<b (Вначале вычисляются x<b и x>a, а к результатам применяется операция сравнения на равенство ==).

Пример:

a+b<b+c = = a+c<a+b

x1<x2 = = x3<x1 есть 1 тогда и только тогда, когда х1 в интервале [x3;x2] и x3<x2.

 

&& – конъюнкция (И) арифметических операндов или отношений. Целочисленный результат 0 (ложь) или 1 (истина). Если 1-й операнд равен 0, то 2-й не вычисляется.

|| – дизъюнкция (ИЛИ) арифметических операндов или отношений. Целочисленный результат 0 (ложь) или 1 (истина). Если 1-й операнд равен 1, то 2-й не вычисляется.

 

Пример:

3<5 равен 1.

3>5.1 равен 0.

3==5 равен 0.

3!=5 равен 1.

3!=5 || 3==5 равен 1.

3+4>5 &&3+5>4 && 4+5>3 равен 1.

 

Задача 1. Написать условие попадания точки (x, y) в область.

 


1. Точка в верхней полуплоскости: y ³ 0.

2. Точка в правой полуплоскости: x ³ 0.

3. Точка выше прямой: y ³ 1-x

Все три условия должны выполняться одновременно:

y ³ 0 && x ³ 0 && y ³ 1-x – с границами

 

Задача 2. Написать условие не попадания точки (x, y) в область.

 

1. Попадание внутрь круга: x2 +y2 £ 1.

2. Точка в I и III квадрантах: xy ³ 0.

Оба условия должны выполняться одновременно:

!(x*x+y*y<1 && x*y > 0) – без границ

 

 

Задача 3 Деление нацело, кратность: m%n == 0.


 

Глава 5 ОСНОВНЫЕ ОПЕРАТОРЫ

 

ВСЕ ЯВЛЯЕТСЯ ОПЕРАТОРОМ! 1) Принципиальная разница Си и других языков в том, что в Си все операторы равноправны. Скажем (для тех, кто имеет некоторый опыт в программировании на других языках), что вызов функции тоже является оператором.2) Более того, каждый оператор (исключений нет!) возвращает некоторое значение – результат своей работы. Ну, для оператора сложения все понятно: оператор a+b возвратит сумму чисел a и b. А что возвращает оператор присваивания (в Си он записывается как =)? Оказывается, значение выражения a = b равно a. Эта, на первый взгляд, бессмысленная возможность, во-первых, сильно упростила создание языка (нет необходимости разделять операторы на возвращающие значение и не возвращающие, да еще проверять на правильность. Например, на Паскале (кто знает) необходимо специально проверять выражение на предмет выражений вроде a:= (b:= c), а во-вторых, позволила сильно сократить размер исходного текста программы.

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

Образуется формальным добавлением; (точки с запятой) к выражению с операцией присваивания.

Формат

<имя_переменной> <ОР>= <выражение>;

 

где ОР – одна из операций:, / % + – & ^ | << >>. Если рассматривать конструкцию ОР= как две операции, то вначале выполняется ОР, а затем =.

Пример: Х*=2; Z+=4; i/=X+4*Z;

Пример: x=–.127; i=i+1; i++;

a[i+1]=x*y+2*sin((z+1)*(x–2)); x+=a+b/2; –> x=x+a+b/2;

 

Многократное присваивание.

Например: a = b = c = d = 0; Как будет работать такой участок кода? Начнем сначала. Данное выражение присваивает переменной a результат выполнения оператора b = c = d = 0, который, в свою очередь, присваивает переменной b результат выполнения оператора c = d = 0, который... То есть этот участок кода как бы развертывается в такой: d = 0; c = d; b = c; a = b; Итак, как мы видим, всем четырем переменным присвоено начальное значение всего одним оператором.

Пример:

· i=j=k=0; à k=0; j=k; i=j;

· i=1; j=3;

a[i][j]=i=i+1; à i=2 a[2][3]=2

 

 

5.2 Оператор перехода

Формат goto <метка>;

<помеченный оператор>

<метка>:= <идентификатор>, полноценный идентификатор, созданный по правилам языка Си.

<помеченный оператор>:= <метка>: <оператор>;

Пример:

goto label;

label: x++;

 

 

5.3 Условный оператор. Пустой оператор

 

Конструкции ветвления позволяет выполнять некоторые операторы только в том случае, если выполняется некоторое условие. Кроме того, расширенный оператор ветвления позволяет выполнить другой оператор в том случае, если условие не выполняется.




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 565; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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