Ранг | Операції | Напрямок виконання |
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-у) |
4. Основні оператори мови С++
4.1 СКЛАДОВІ ОПЕРАТОРИ
Складовий оператор – це два або більше оператори, що повинні виконуватися у певній частині програми як один оператор. До складових операторів належать власне складовий оператор та блок. В обох випадках - це послідовність операторів, розміщених у фігурних дужках. Блок відрізняється від складового оператора наявністю в його тілі оператора визначення об’єкту (змінної, константи, масиву тощо).
Наприклад:
{n++; summa+=n;}//це складовий оператор
{int n=0; n++;summa+=n;} //це блок
Оператор умовного переходу if використовується для спрямування ходу програми за однією з гілок обчислень в залежності від певної умови.
Загальна форма запису:
if (умова) оператор1;
else оператор2;
Наприклад, для знаходження коренів квадратного рівняння використовується запис:
if (d>=0)
{x1=(-b-sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
cout<< “\nx1=”<<x1<<“x2=”<<x2;
}
else cout<<“\nРозв¢язку немає”;
Якщо оператор1 та/або оператор2 містять два або більше операторів, їх беруть у фігурні дужки {}, тобто вони є складовими. Оператор if перевіряє істинність чи хибність умови. Якщо умова справджується (не рівна 0), тоді виконується оператор1, інакше, при хибності умови (==0), виконується оператор2.
Другу частину оператора (else оператор2;) можна опускати. Така його форма має назву “скороченої”. Тоді у випадку хибності умови, керування передається до оператора, що йде услід за умовним оператором.
Якщо оператор1 і оператор2 в свою чергу є операторами if , вони є вкладеними.
Загальний вигляд вкладеного оператора if: if (умова1) оператор1;
else if (умова2) оператор2;
else оператор3;
В якості умов у мовах С/С++ використовуються стандартні операції відношення: <, <=, >, >=, !=, ==. Пари наведених символів не можна відокремлювати чи переставляти.
Для об’єднання в умові декількох умов використовуються логічні операції. Наведемо їх перелік в порядку спадання пріоритету: ! (заперечення або логічне НІ), && (кон’юнкція або логічне І), || (диз’юнкція або логічне АБО). Між позначками && та || не дозволяються пробіли.
Наприклад: 0<x&&x<=100
((!x)&&(y>0)||((z==1)&&(k>0))
Загальна форма запису оператора вибору:
switch(вираз)
{ case consnant1: оператори; break;
сase consnantN: оператори;break;
default: оператори; },
де consnant1…consnantN - цілі або символьні константи. При виконанні оператора switch, обраховується вираз, записаний після switch і його значення послідовно порівнюється з константами, записаними після case. При першому ж співпаданні виконуються оператори, позначені даною міткою. Якщо виконувані оператори не містять оператор переходу break, далі виконуватимуться оператори усіх наступних варіантів. Якщо значення виразу, записаного після switch, не співпало з жодною константою, виконуватимуться оператори після мітки default, яка не є обов’язковою.
4.3 ОператорИ циклУ
Цикл з параметром for:
Основна форма запису:
for (вираз_1; вираз_2; вираз_3 ) оператор;
де вираз_1 – ініціалізація початкового значення параметру циклу;
вираз_2 – перевірка умови на продовження циклу;
вираз_3 – зміна параметру циклу з кожною ітерацією (корекція);
оператор – тіло циклу, простий або складовий оператор.
Цикл продовжується до тих пір, поки вираз_3 не стане рівним 0. Будь-який вираз можна опускати, залишаючи натомість “ ; ”.
Приклади використання циклу з параметром:
1) Зменшення параметра:
for ( n=10; n>0; n--)
{ <тіло циклу>}
2) Зміна кроку коректування:
for ( n=2; n>60; n+=13)
{ <тіло циклу>}
3)Корекція може здійснюватися не лише за допомогою додавання чи віднімання:
for ( d=100.0; d<150.0;d*=1.1)
{ <тіло циклу>}
for (x=1;y<=75;y=5*(x++)+10)
{ <тіло циклу>}
5) Можна використовувати декілька виразів ініціалізації або модифікації:
for (x=1, y=0; x<10;x++,y+=x)
{ <тіло циклу>}.
Цикл з передумовою while:
Основна форма запису:
while (умова)
оператор;
де оператор – це простий, складовий або порожній оператор.
Цикл виконується до тих пір, поки умова приймає значення “true”, тобто вираз у дужках повертає ненульовий результат. У циклі з передумовою спочатку перевіряється істинність умови, а потім виконується оператор тіла циклу. Тому цикл while не виконується жодного разу, якщо від початку умова буде хибною.
Цикл з післяумовою do – while:
Основна форма запису:
do
оператор;
while (умова);
де оператор – це простий, складовий чи порожній оператор.
Тіло циклу виконується до тих пір, поки умова справджується. Оскільки в циклі do–while умова перевіряється в кінці, оператор тіла циклу виконуватиметься хоча б один раз.
Для запобігання безкінечності циклу в тілі циклів while та do–while потрібно передбачити зміну параметрів, які входять до умови.
4.4 ОПЕРАТОРИ ПЕРЕХОДУ
Оператори переходу виконують безумовну передачу управління.
1) goto < мітка> - оператор безумовного переходу. Керування передається оператору з даною міткою:
<мітка>: оператор;
В мові С мітка не декларується.
2) break - оператор перериває цикл або перемикач, управління передається на перший наступний оператор;