Лінійні програми на С++
ОПЕРАЦІЇ МОВИ С++
Позначки операцій – це один
або декілька символів, що визначають дію над операндами. Операції поділяють на унарні,
бінарні та тернарні за кількістю операндів, які беруть участь в операції (таблиця 2).
Таблиця 2.
Операція
|
Короткий опис
|
Унарні операції
|
|
&
|
Операція одержання адреси операнда
|
*
|
Звернення за адресою (розіменування)
|
-
|
Унарний мінус – змінює знак арифметичного операнда
|
~
|
Порозрядове інвертування внутрішнього двійкового коду (побітове
заперечення)
|
!
|
Логічне заперечення (НЕ) значення операнда. Цілочисельний результат
0 (якщо операнд ненульовий, тобто істинний) або 1 (якщо операнд нульовий, тобто
хибний). Таким чином: !1 дорівнює 0; !2 дорівнює 0; !(-5)=0; !0 дорівнює 1.
|
++
|
Інкремент (збільшення на одиницю):
Префіксна операція (++х) збільшує операнд на 1 до його використання.
Постфіксна операція (х++) збільшує операнд на 1 після його використання.
int m=1, n=2;
int a=(m++)+n; // a=3, m=2, n=2
int b=m+(++n);// b=6, m=2, n=3
|
- -
|
Декремент (зменшення на одиницю):
Префіксна операція (--х) зменшує операнд на 1 до його використання.
Постфіксна операція (х--) зменшує операнд на 1 після його використання.
|
sizeof
|
Обчислення розміру (в байтах) об¢єкта того типу, який має операнд. Має дві форми:
1) sizeof (вираз);
sizeof(1.0); // Результат - 8,
Дійсні константи за замовчуванням мають тип double;
2) sizeof (тип)
sizeof (char); // Результат – 1.
|
Бінарні операції
|
|
Арифметичні операції
|
|
+
|
Бінарний плюс (додавання арифметичних операндів)
|
-
|
Бінарний мінус (віднімання арифметичних операндів)
|
Мультиплікативні
|
|
*
|
Добуток операндів арифметичного типу
|
/
|
Ділення операндів арифметичного типу (якщо операнди цілочисельні,
абсолютне значення результату заокруглюється до цілого, тобто 20/3 дорівнює 6)
|
%
|
Одержання залишку від ділення целочисельних операндів (13%4
= 1)
|
Операції зсуву (визначені лише для
цілочисельних операндів)
|
|
<<
|
Зсув вліво бітового представлення значення лівого цілочисельного
операнда на кількість розрядів, рівну значенню правого операнда (4<<2 дорівнює
16, т.я. код 4 100, а звільнені розряду обнуляються, 10000 – код 16)
|
>>
|
Зсув вправо бітового представлення значення правого цілочисельного
операнда на кількість розрядів, рівну значенню правого операнда
|
Порозрядні
операції
|
|
&
|
Порозрядна кон’юнкція (І) бітових представлень значень цілочисельних
операндів
|
|
|
Порозрядна диз’юнкція (АБО) бітових представлень значень цілочисельних
операндів
|
^
|
Порозрядне виключне АБО бітових представлень значень цілочисельних
операндів
|
Операції порівняння
|
|
<
|
Менше, ніж
|
>
|
Більше, ніж
|
<=
|
Менше або рівне
|
>=
|
Більше або рівне
|
= =
|
Рівне
|
!=
|
Не рівне
|
Логічні бінарні операції
|
|
&&
|
Кон’юнкція (І) цілочисельних операндів або відношень, цілочисельний
результат (0) або (1)
|
||
|
Диз’юнкція (АБО) цілочисельних операндів або відношень, цілочисельний
результат (0) або (1) (умова 0<x<1 мовою С++ записується як 0<x &&
x<1)
|
Тернарна операція
|
|
Умовна операція
|
|
? :
|
Вираз1 ? Вираз2 : Вираз3;
Першим вираховується значення Виразу1. Якщо воно істинне, тоді
обчислюється значення Виразу2, яке стає результатом. Якщо при обчисленні Виразу1
одержуємо 0, тоді в якості результату береться значення Виразу3.
Наприклад:
х<0 ? -x : x ; //обчислюється абсолютна величина x.
|
Таблиця 3. Пріоритет
виконання операцій
Ранг
|
Операції
|
Напрямок
виконання
|
1
|
()
(виклик функції), [], ->, "."
|
>>>
|
2
|
!,
~, +, - (унарні), ++, --, *, (тип), sizeof, (new,delete – Сі++)
|
<<<
|
3
|
.*
, ->* - Сі++
|
>>>
|
4
|
*,
/, % (бінарні)
|
>>>
|
5
|
+,
- (бінарні)
|
>>>
|
6
|
<<,
>>
|
>>>
|
7
|
<,
<=, =>, >
|
>>>
|
8
|
==,
!=
|
>>>
|
9
|
&
(порозрядна)
|
>>>
|
10
|
^
|
>>>
|
11
|
|
(порозрядна)
|
>>>
|
12
|
&&
(логічна)
|
>>>
|
13
|
||
(логічна)
|
>>>
|
14
|
?:
(тернарна)
|
<<<
|
15
|
=,
+=, -=, *=, /=, %=, &=, ^=, |=, <<=,>>=
|
<<<
|
16
|
","
(кома)
|
>>>
|
Основні матичні функції
мови С/С++, опис яких міститься у файлі <math.h>, наведені у таблиці 4.
Таблиця 4
Матичний запис
|
Функція
|
Пояснення
|
Приклад
|
arccos x
|
acos
|
Повертає арккосинус кута, рівного х радіан
|
acos(x);
|
arcsin x
|
asin
|
Повертає арксинус аргументу х в радіанах
|
asin(x);
|
arctg x
|
atan
|
Повертає арктангенс аргументу х в радіанах
|
atan(x);
|
аrctg(x/у)
|
atan2
|
Повертає арктангенс відношення параметрів х та у в радіанах
|
atan2(x, y);
|
-
|
ceil
|
Заокруглює дійсне значення х до найближчого більшого цілого
і повертає його як дійсне
|
ceil(x);
|
cosx
|
cos
|
Повертає косинус кута, рівного х радіан
|
cos(x);
|
chx=1/2(ex+e-x)
|
cosh
|
Повертає гіперболічний косинус аргументу, рівного х радіан
|
cosh(x);
|
ex
|
exp
|
Повертає результат піднесення числа е до степені х
|
exp(x);
|
|x|
|
fabs
|
Повертає модуль дійсного числа х
|
fabs(x);
|
-
|
floor
|
Заокруглює дійсне число до найближчого меншого числа і повертає
результат як дійсний
|
floor(x);
|
-
|
fmod
|
Повертає залишок ділення х на у. Аналогічна операції %, але
працює з дійсними числами
|
fmod(x, y);
|
ln x
|
log
|
Повертає значення натурального логарифму х
|
log(x);
|
lg x
|
log10
|
Повертає значення десяткового логарифму х
|
log10(x);
|
xy
|
pow
|
Вираховує значення числа х у степені у
|
pow(x, y);
|
sinx
|
sin
|
Повертає синус кута, рівного х радіан
|
sin(x);
|
sh x=1/2 (ex-e-x)
|
sinh
|
Повертає гіперболічний синус кута, рівного х радіан
|
sinh(x);
|
sqrt
|
Визначає корінь квадратний числа х
|
sqrt(x);
|
|
tg x
|
tan
|
Повертає тангенс кута, рівного х радіан
|
tan(x);
|
tgh x
|
tanh
|
Повертає гіперболічний тангенс кута, рівного х радіан
|
tanh(x);
|
Таблиця 5 Операції
присвоювання
Операція
|
Пояснення
|
Приклад
|
=
|
Присвоїти значення виразу-операнду з правої частини операнду
лівої частини
|
Р=10.5-3*х
|
*=
|
Присвоїти операнду лівої частини добуток значень обох операндів
|
Р*=2 еквівалентно Р=Р*2
|
/=
|
Присвоїти операнду лівої частини результат від ділення значення
лівого операнда на значення правого
|
Р/=(2.2-х) еквівалентно
Р=Р/(2.2-х)
|
%=
|
Присвоїти лівому операнду залишок від ділення цілочисельного
значення лівого операнда на цілочисельне значення правого операнда
|
Р%=3 еквівалентно Р=Р%3
|
+=
|
Присвоїти операнду лівої частини суму значень обох операндів
|
А+=В еквівалентно А=А+В
|
-=
|
Присвоїти операнду лівої частини різницю значень лівого і правого
операндів
|
Х-=3.4-у еквівалентно Х=Х-(3.4-у)
|