Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2_Operacii_i_vyrazhenija

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
216.65 Кб
Скачать

Арифметические операции

*

var1 * var2

умножает одно число на другое: 6*3 будет 18

/

var1 / var2

делит одно число на другое: 6/3 результат 2

+

var1 + var2

суммирует два числа: 6+3 результат 9

var1 – var2

отнимает от одного числа другое: 6–3 результат 3;

-var

может использоваться как унарный минус: -a; -5

%

var1 % var2

возвращает остаток от деления двух чисел: 5% 3

результат 2; 6% 3 результат 0; 3% 6 результат 3

 

 

 

++

var++

увеличивает число на 1: var= 5, var++ результат 5,

побочный эф ф ект var= 6; ++var результат 6,

++var

 

побочный эф ф ект var= 6

––var–– уменьшает число на 1: var= 5, var–– результат 5, ––var побочный эф ф ект var= 4

11

Особенности арифметических операций в языке Си

Результат операции имеет тот же тип, что и ее операнды, поэтому

5/2 => 2, но 5f/2.0 => 2.5

Операции ++ и -- имеют побочный эффект Операция % применима только к целым числам

12

Задание

Определите значение переменной x

int a = 0; int b = 5; int x;

x = (a++) - 4; x += а % b;

13

Вычисление арифметического выражения

x = (a++) - 4;

?

0

4

a:1

 

0

 

 

-4

 

-4

x:-4

-4 a:1

результат побочный операции эффект

операции

операция

операнд

x

+= а

%

b;

-4

1

 

5

 

 

 

1

 

 

14

-3

x:-3

Не пишите выражения, которые вам трудно понять!

x = (a++) - 4; x += а % b;

можно записать так:

x = a – 4; a++;

x = x + a % b;

15

Операции отношения

>var1 > var2 возвращает ИСТИНА, если значение слева больше значения

 

 

 

справа: 3 > 5 будет ЛОЖЬ, 3 > 1 будет ИСТИНА, 3 > 3 будет ЛОЖЬ

 

 

 

 

>=

var1 >= var2

возвращает ИСТИНА, если значение слева больше значения

справа или равно ему: 3 >= 5 результат ЛОЖЬ; 3 >= 1 результат

 

 

 

ИСТИНА; 3 >= 3 результат ИСТИНА

 

 

 

 

<

var1 < var2

возвращает ИСТИНА, если значение слева меньше значения

справа: 3 < 5 результат ИСТИНА; 3 < 1 результат ЛОЖЬ; 3 < 3

 

 

 

результат ЛОЖЬ

 

 

 

 

<=

var1 <= var2

возвращает ИСТИНА, если значение слева меньше значения

справа или равно ему: 3 <= 5 результат ИСТИНА; 3 <= 1 результат

 

 

 

ЛОЖЬ; 3 <= 3 результат ИСТИНА

 

 

 

 

 

== var1 == var2

возвращает ИСТИНА, если значение слева равно значению

 

справа: 3 = = 5 результат ЛОЖЬ; 3 = = 3 результат ИСТИНА

 

 

 

 

!=

var1 != var2

возвращает ИСТИНА, если значение слева не равно значению

справа: 3 != 5 результат ИСТИНА; 3 != 3 результат ЛОЖЬ

16

 

 

 

 

 

 

Операции отношения для вещественных типов данных

Вследствие вычислений возможна потеря или искажение младших разрядов вещественного числа:

float pi = 3.14159; float a = asin(1.0);

2*a == pi; // результат ЛОЖЬ, т.к.

// 3.1415927410125732 != 3.14159

Вещественные результаты необходимо сравнивать с заданной погрешностью:

abs(2*a — pi) < 0.0001;

/* Результат = ИСТИНА, сравнение с точностью 17 до 4-го знака 0.0000026226044 < 0.0001 */

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

!

!var1

логическое отрицание: !0 результат ИСТИНА; !2 результат

ЛОЖЬ

 

 

 

&&

var1 && var2

логическое И: 1 && 1 результат ИСТИНА; 2 && 0 результат

ЛОЖЬ

 

 

 

||

var1 || var2

логическое ИЛИ: 1 || 1 результат ИСТИНА; 2 || 0 результат

ИСТИНА; 0 || 0 результат ЛОЖЬ

 

 

 

18

Операции присваивания

переменной слева присваивается значение справа: var = 5

=var1 = var2 результат 5; возможно многократное присваивание,

 

 

которое выполняется справа-налево: var1 = var2 = 5

 

 

 

*=

var1 *= var2

умножает значение переменной, указанной слева, на

значение указанное справа: var = 5, var *= 2 результат 10

 

 

 

/=

var1 /= var2

делит значение переменной, указанной слева, на значение,

указанное справа: var = 6, var /= 2 результат 3

 

 

 

+=

var1 += var2

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

переменной, указанной слева: var = 6, var += 2 результат 8

 

 

 

–=

var1 –= var2

отнимает от значение переменной, указанной слева,

значение, указанное справа: var = 6, var –= 2 результат 4

 

 

 

 

 

присваивает переменной, указанной слева, остаток,

%=

var1 %= var2

получаемый в результате деления исходного значения этой

переменной на значение, указанное справа: var = 6,

 

 

var %= 4 результат 2

19

Прочие операции

Условная операция

 

 

условная операция – если истинно выражение

? :

exp1 ? exp2 : exp3

exp1, то выполняется выражение exp2, иначе

выполняется выражение exp3:

 

 

(x > y)? x : y результат максимум двух значений x

 

 

и y

 

 

Вызов функции

 

 

 

 

 

 

 

вызов ф ункции в языке С и считается

 

 

 

одной из операций, результатом ее

 

 

 

является возвращаемое значение:

 

()

<имя функции>(<параметры>)

sqrt(4)результат 2.0

 

scanf("%d",&x)результат «пустота»,

 

 

 

но операция имеет побочный эффект, в

20

 

 

результате которого изменяется

 

 

переменная x