суботу, 23 липня 2016 р.


Лінійні програми на С++

ОПЕРАЦІЇ МОВИ С++

 Позначки операцій – це один або декілька символів, що визначають дію над операндами. Операції поділяють на унарні, бінарні та тернарні за кількістю операндів, які беруть участь в операції (таблиця 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-у)