125.79K
Category: programmingprogramming

Элементы языка С++. Операции

1.

Знак операции – это один или более символов,
определяющих действие над операндами.
Операции по количеству участвующих в них
операндов делятся на:
унарные,
бинарные ,
тернарные.
Алутина Е.Ф. Язык С++
1

2.

Ассоциа
тивност
ь
ция тип
5. Опера-
Ранг
(приор
итет)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Операции
( ) [ ] -> :: .
! ~ + - ++ -- & * (тип) sizeof тип ( ) (унарные)
1. Арифметические
.*
->*
* / % (мультипликативные бинарные)
операции
+ - (аддитивные бинарные)
<< >> (поразрядного сдвига)
< <= >= > (отношения)
2. Операции
= = != (отношения)
отношения
& (поразрядная конъюнкция «И»)
^ (поразрядная исключающее «ИЛИ»)
| (поразрядная дизъюнкция «ИЛИ»)
3. Логические
&& (конъюнкция «И»)
операции
| | (дизъюнкция «ИЛИ»)
? : (операция условие)
4. Операции
= *= /= %= += - = &= ^= |= <<= >>=
присваивания
, ( операция запятая)
Алутина Е.Ф. Язык С++
2

3.

Операция присваивания используется в Операторах
присваивания.
Общий формат оператора присваивания:
идентификатор = выражение;
Операция присваивания выполняется как часть выражения
присваивания. Присваивание может несколько раз входить в
выражение присваивания. Эквивалентно трем операторам
Эквивалентно двум операторам
присваивания:
Примеры:
a=b+1;
присваивания:
с=х+y;
b=c;
a=b;
a=b=c=x+y;
с=d+3;
a=b+(c=d+3);
a=b+c;
Операция присваивания имеет самый низкий приоритет (ниже
только у операции «запятая»).
Присваивание – правоассоциативная операция.
Алутина Е.. Язык С++
3

4.

Дополнительные операции присваивания:
+= -= /= *= %=
a+=3;
a=a+3;
x-=a+b; x=x-(a+b);
p/=10;
p=p/10;
r%=5;
r=r%5;
Выражения с использованием дополнительных
операций присваивания вычисляются быстрее.
Алутина Е.. Язык С++
4

5.

унарные
+
бинарные
*
/
%
+
Применима только
Применимы к
к целым
вещественным: все, кроме %
целочисленным: все, вместе с % (остаток от деления)
5%3
13%6
=2
=1
Хотя
бы один операнд
56%7
-10%3
=0
=-1 должен
иметь вещественный тип
Особенности операции /
Для вещественных
5/3. или 5./3
=1.666
Для целых
5/3
=1
1/5
=0
7.%3=?
1./5=?
Алутина Е.Ф. Язык С++
5

6.

Обращение
Тип аргумента
Функция
Тип результата
При
abs(x)
абсолютное значение
целого
числа (модуль
выполнении
вычислений
могут
понадобиться
int
int
числа х)
встроенные
математические
для работы которых
арккосинус (радианы)
acos (x)
double
double функции,
арксинус (радианы)
необходимо
подключить
заголовочный
файл <math.h>
asin (x)
double
double
арктангенс (радианы)
atan
(x)
double
double
#include
<math.h>
ближайшее целое, не меньшее x
ceil (x)
cos (x)
exp (x)
double
double
double
double
double
double
fabs (x)
double
double
floor (x)
fmod (x, y)
log(x)
log10 (x)
pow (x, y)
sin (x)
sinh (x)
double
double
double
double
double
double
double
double
double
double
double
double
double
double
sqrt (x)
double
double
корень
квадратный
значение)
tan (x)
double
double
тангенс (х в радианах)
Алутина Е.Ф. Язык С++
косинус (х в радианах)
ex – экспонента от х
абсолютное значение
(модуль числа х)
вещественного
х
наибольшее целое, не превышающее х
остаток от деления нацело х на у
логарифм натуральный - ln x
логарифм десятичный - lg x
х в степени у - ху
синус (х в радианах)
гиперболический косинус
(положительное
6

7.

Инкремент ++
Декремент -применимы только к переменным, неприменимы к
константам и выражениям
(x+a)++ или 5++ ?
Возможны две формы записи:
префиксная (++x, --x)
постфиксная (x++, x--).
int k=1, j=3;
k++; или ++k;// эквивалентно увеличению значения k на 1
j --; или -- j; // эквивалентно уменьшению значения j на 1
От формы записи зависит последовательность
выполнения операций участвующих в выражении.
Алутина Е.Ф. Язык С++
7

8.

От формы записи зависит последовательность
выполнения операций участвующих в выражении
а) int a=3, b=2, c;
c=a++ * b++;
b) int a=3, b=2;
Сначала вычисляется
с=3*2=6
c=++a *++b;
Затем изменяются переменные
В префиксной форме операции ++ и -- выполняются до
а=4 b=3
вычисления выражения.
Сначала изменяются переменные
В постфиксной форме ++ и
--а=4вычисляются
после
b=3
вычисления выражения.
вычисляется
Потом
с=4*3=12
Алутина Е.Ф. Язык С++
8

9.

Общий вид операции:
sizeof(выражение) sizeof выражение
sizeof(тип)
Пример:
sizeof(char) = 1
sizeof(имя_массива)= кол-во байтов, занимаемых массивом
sizeof(int) = 4
int a, b;
double a, b;
Алутина Е.Ф. Язык С++
sizeof (a+b)
sizeof (a+b)
результат 4
результат 8
9

10.

<
>
>=
<=
==
!=
Операции отношения имеют отношение
более высокийотношение
приоритет
равенства
не равенства
относительно логических операций
ложь (=0)
Примеры: 'a' =='A'
'a' !='A'
истина(=1)
Особенностью языка Си является отсутствие среди базовых
типов логического типа данных. Между тем в Си используются
логические операции и логические выражения.
В качестве логических величин в Си/Си++ выступают целые
числа. Интерпретация значений в логические величины:
равно нулю (=0) – ложь (false),
не равно нулю (≠0) – истина (true).
В последние версии Си++ добавлен отдельный логический тип с
именем bool. Его относят к разновидности целых типов данных.
Алутина Е.Ф. Язык С++
10
English     Русский Rules