3.2 ОПЕРАЦІЇ МОВИ С++
Позначки операцій – це один або декілька символів, що визначають дію над операндами. Операції поділяють на унарні, бінарні та тернарні за кількістю операндів, які беруть участь в операції (таблиця 3.2).
Таблиця 3.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.3. Пріоритет виконання операцій
Ранг | Операції | Напрямок виконання |
1 | () (виклик функції), [], ->, "." | >>> |
2 | !, ~, +, - (унарні), ++, --, *, (тип), sizeof, (new,delete – Сі++) | <<< |
3 | .* , ->* - Сі++ | >>> |
4 | *, /, % (бінарні) | >>> |
5 | +, - (бінарні) | >>> |
6 | <<, >> | >>> |
7 | <, <=, =>, > | >>> |
8 | ==, != | >>> |
9 | & (порозрядна) | >>> |
10 | ^ | >>> |
11 | | (порозрядна) | >>> |
12 | && (логічна) | >>> |
13 | || (логічна) | >>> |
14 | ?: (тернарна) | <<< |
15 | =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=,>>= | <<< |
16 | "," (кома) | >>> |
Основні матичні функції мови С/С++, опис яких міститься у файлі <math.h>, наведені у таблиці 3.4.
Таблиця 3.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); |
Таблиця 3.5 Операції присвоювання
Операція | Пояснення | Приклад |
= | Присвоїти значення виразу-операнду з правої частини операнду лівої частини | Р=10.5-3*х |
*= | Присвоїти операнду лівої частини добуток значень обох операндів | Р*=2 еквівалентно Р=Р*2 |
/= | Присвоїти операнду лівої частини результат від ділення значення лівого операнда на значення правого | Р/=(2.2-х) еквівалентно Р=Р/(2.2-х) |
%= | Присвоїти лівому операнду залишок від ділення цілочисельного значення лівого операнда на цілочисельне значення правого операнда | Р%=3 еквівалентно Р=Р%3 |
+= | Присвоїти операнду лівої частини суму значень обох операндів | А+=В еквівалентно А=А+В |
-= | Присвоїти операнду лівої частини різницю значень лівого і правого операндів | Х-=3.4-у еквівалентно Х=Х-(3.4-у) |
... . Механізм переривань забезпечує ефективна взаємодія пристроїв уведення-висновку з мікропроцесором. Переривання цікавлять нас тому, що обробка переривань - це прерогатива програмування на мові асемблера. У високорівневих мовах відсутні засоби роботи з перериваннями на машинному рівні. Переривання звичайно викликаються зовнішніми пристроями. Переривання сигналізує мікропроцесору, щоб він призупинив ...
... функцій. Щоб полегшити їх роботу, фахівці Microsoft розробили бібліотеку MicrosoftFoundationClasses— MFC . Використовуючи готові класи C++, можна набагато швидше і простіше вирішувати багато задач. Бібліотека MFC істотно полегшує програмування в середовищі Windows. Ті, хто володіє достатнім досвідом програмування на C++, можуть допрацьовувати класи або створювати нові, похідні від існуючих. Класи ...
... , що використовується, прагнути включати в рядок до 10 слів; • прагнути не поміщати більш одного-двох параграфів тексту на один екран. 1.4 Розробка цифрового освітнього ресурсу: «Задачник по мові програмування. Циклічні алгоритми» Назва розробки: електронний навчальний посібник з язика програмування. (Додаток 1) Тип розробки: електронний навчальний посібник. Предмет: інформатика; тема: « ...
... мене основним принципам побудови алгоритмів, програм, вибору структур даних. Ця дисципліна вчить мене думати, надає мені практичних знань та досвіду, щоб розробляти модель програми ще до стадії набору програми на заданій мові програмування. Ця дисципліна вчить мене тим основним речам, без яких жоден представник вибраної мною професії не може обійтись у своїй праці, тим основам, які повинні буди зі ...
0 комментариев