- •6.050103 «Програмна інженерія»
- •Теоретичні відомостi
- •Основні поняття
- •Операції
- •Стандартні типи даних
- •Стандартні математичні функції
- •Структура програми
- •Оператор присвоєння
- •Організація введення-виведення даних
- •Приклади програм
- •Варіанти завдань
- •Контрольні питання
- •Теоретичні відомостi
- •Умовний оператор
- •Складений оператор
- •Оператор поліваріантного вибору
- •Приклади програм
- •Варіанти завдань
- •Контрольні питання
-
Операції
Для задання дій над даними служать операції.
В мові Рascal визначені наступні основні операції (табл. 1.2):
Таблиця 1.2. Операції мови Рascal
Знак |
Дія |
Приклад |
Особливості |
Арифметичні операції |
|||
- |
інверсія |
-a |
зміна знака числа |
+ |
додавання |
a+b |
|
- |
віднімання |
a-b |
|
* |
множення |
a*b |
|
/ |
ділення |
a/b |
|
div |
цілочисельне ділення (ціла частина результату) |
11 div 5 = 2 |
|
mod |
ділення із залишком (залишок від ділення ) |
11 mod 5 = 1 |
|
Операції порівняння |
|||
= |
дорівнює |
a=b |
|
<> |
не дорівнює |
a<>b |
|
< |
менше |
a<b |
|
> |
більше |
a>b |
|
<= |
не більше |
a<=b |
|
>= |
не менше |
a>=b |
|
Логічні операції |
|||
not |
логічне заперечення |
not a |
результат протилежний значенню операнда |
and |
логічне "і" (кон’юнкція) |
a and b |
перевірка істиності обох операндів |
or |
логічне "або" (диз'юнкція) |
a or b |
перевірка істиності хоча б одного операнда |
xor |
логічне виключаюче "або" |
a xor b |
перевірка нерівності / рівності операндів (результат істина, якщо операнди нерівні, і хибність - у противному випадку) |
Операції зсуву |
|||
shr |
зсув вправо на задане число бітів |
a shr b |
здвиг вправо на один розряд зменшує число в 2 рази (00000111 shr 1 = 00000011) |
shl |
зсув вліво на задане число бітів |
5 shl 2=20 |
здвиг вліво на один розряд збільшує число в 2 рази, оскільки кожен i-й розряд має вагу 2i (00000111 shl 1 = 00001110) |
Символьні операції |
|||
+ |
конкатенація |
’A’+’B’ |
об’єднання символів |
Пріоритети операцій (табл. 1.3):
Таблиця 1.3. Пріоритети операцій мови Рascal
Пріоритет |
Операції |
перший (найвищий) |
+ (конкатенація) - (унарний) not |
другий |
* / div mod and |
третій |
+ - or xor |
четвертий |
= <> < > <= >= |
В мові С++ визначені наступні основні операції (табл. 1.4):
Таблиця 1.4. Операції мови С++
Знак |
Дія |
Приклад |
Особливості |
Арифметичні операції |
|||
+ |
додавання |
a+b |
|
- |
віднімання |
a-b |
|
* |
множення |
a*b |
|
/ |
ділення |
5 / 2 = 2 5./2=2.5 |
результат ділення цілих чисел - ціле число (дробова частина відкидається); результат ділення дійсних чисел – дійсне число |
% |
остача при діленні цілих чисел |
a%b |
знак остачі збігається із знаком дільника |
- |
унарний мінус |
-a |
зміна знака числа |
Логічні операції |
|||
&& |
І (логічне множення) |
a&&b |
результат істина (типу int), якщо всі операнди істині |
|| |
АБО (логічне додавання) |
a||b |
результат істина, якщо хоча б один з операндів - істина |
! |
НЕ (логічне заперечення) |
!a |
результат протилежний значенню операнда |
Операції відношення (порівняння) |
|||
== |
дорівнює |
a==b |
результат типу int (0 - при невиконанні умови порівняння, 1 - при виконанні) |
!= |
не дорівнює |
a!=b |
|
> |
більше |
a>b |
|
< |
менше |
a<b |
|
>= |
не менше |
a>=b |
|
<= |
не більше |
a<=b |
|
Бітові операції |
|||
& |
І (кон’юнкція) |
3&2=5 |
1&1=1, 0&1=0, 1&0=0, 0&0=0 |
| |
АБО (диз'юнкція) |
3|2=3 |
1|1=1, 0|1=1, 1|0=0, 0|0=0 |
^ |
виключаюче АБО |
3^2=1 |
1^1=0, 0^1=1, 1^0=1, 0^0=0 |
~ |
доповнення (заперечення бітів) |
~6=-7 |
|
Операції зсуву |
|||
<< |
зсув вліво на задане число бітів |
a<<b |
зсув бітів у числі а ліворуч на b позицій; результат буде того ж типу, що і а (b не може бути від’ємним або більшим за а). Здвиг вліво на 1 розряд збільшує число в 2 рази, оскільки кожен i-й розряд має вагу 2i (00000111<<1 = 00001110) |
>> |
зсув вправо на задане число бітів |
a>>b |
зсув бітів у числі а праворуч на b позицій; результат буде того ж типу, що і а (b не може бути від’ємним або більшим, ніж а). Здвиг вправо на 1 розряд зменшує число в 2 рази (00000111>>1 = 00000011) |
Операції приросту та спаду |
|||
++, -- |
префіксне додавання, віднімання |
++a, --а |
спочатку значення змінної збільшується (зменшується) на 1, потім використовується (b=++a => a=a+1; b=a) |
++, -- |
постфіксний додавання, віднімання |
а++, а-- |
спочатку значення змінної використовується, а потім збільшується (зменшується) на 1 (b=a++ => b=a; a=a+1) |
Пріоритети операцій мови С++ (табл. 1.5):
Таблиця 1.5. Пріоритети операцій мови С++
Пріоритет |
Операції |
Типи операції |
перший (вищий) |
~ ++ -- + - |
унарні |
|
* / % |
мультиплікативні |
|
+ - |
адитивні |
|
<< >> |
зсуву |
|
< <= > >= |
відношення |
|
== != |
відношення (рівність) |
|
& |
порозрядне “і” |
|
^ |
порозрядне виключає або |
|
| |
порозрядне “або” |
|
&& |
логічне “і” |
|
|| |
логічне “або” |