- •Лабораторна робота №3 Оператори та операції.
- •Теоретичні відомості
- •Арифметичні операції
- •Операції відношення
- •Логічні і побітові операції
- •Операції присвоювання
- •Інші операції
- •Блоки і складові оператори
- •Порожній оператор
- •Оператори розгалуження та переходу
- •Оператор циклу
- •Завдання
- •I. (по варіантах)
- •Лабораторна робота №5
- •Завдання
Лабораторна робота №3
Лабораторна робота №3 Оператори та операції.
Керуючі структури С/C++
Мета роботи:
1. Вивчення арифметичних, логічних операцій, операцій відношення і присвоювання.
2. Вивчення прийомів використання операторів розгалуження й операторів циклів у С/C++.
Теоретичні відомості
Основу мови С/C++ складають оператори. Операторами-виразами називають вирази, слідом за яким стоїть крапка з комою. У С/C++ крапка з комою використовуються для розділення операторів. Прийнято групувати всі оператори в такі класи: присвоювання, виклик функції, розгалуження і циклу.
У операторах присвоювання використовується операція присвоювання = ,
наприклад:
c = a * b;
Дію такого оператора можна описати такими словами: “с присвоюється значення а, помножене на b”. Значення, що присвоюється змінний с, рівне добуткові поточних значень змінних а і b.
Оператори часто відносяться більш ніж до одного з чотирьох класів.
Наприклад: оператор:
if ( ( c = cube( a * b ) ) > d )
складений із представників таких класів: присвоювання, виклик функції і розгалуження.
До поняття оператора впритул примикає поняття операції.
Розрізняють такі групи операцій С/C++: арифметичні операції, операції відношення, операції присвоювання, логічні операції, побітові операції, операція обчислення розміру (sizeof) і операція послідовності (кома).
Арифметичні операції
До арифметичних операцій відносять: додавання (+), віднімання (-), ділення (/), множення (*) і залишок (%). Всі операції (за винятком залишку) визначені для змінних типу int, char, float. Залишок не визначений для змінного типу float. Всі арифметичні операції з плаваючою комою відбуваються над операндами подвійної точності.
Операції відношення
У мові визначені такі операції відношення: перевірка на рівність (==), перевірка на нерівність (!=), менше (<), менше або дорівнює (<=), більше (>), більше або дорівнює (>=).
Всі перераховані операції дають результат типу int. Якщо дане відношення між операндами істинне, то значення цього цілого - одиниця, а якщо неістинне – нуль.
Операції < , <= , > , >= типу менше мають рівний пріоритет, причому він вищий, ніж пріоритет операцій == і != . Пріоритет операції присвоювання нижче пріоритету всіх операцій відношень. Для того, щоб задати правильний порядок обчислень використовуються дужки.
Логічні і побітові операції
Операція C++ |
Зміст |
Приклад |
&& |
Логічне І (and) |
c<1 && c>11 |
|| |
Логічне АБО(or) |
c<1 || c>11 |
! |
Логічне HI(not) |
!(c<1 && c>11) |
& |
Побітне І (and) |
1 & c |
| |
Побітне АБО(or) |
c|3 |
~ |
Побітне заперечення (not) |
~c |
^ |
Побітне виключне АБО (xor) |
255^K |
< |
Менше ніж |
K<0 |
> |
Більше ніж |
K>44 |
<= |
Менше або рівно |
K<=22 |
>= |
Більше або рівно |
K>=77 |
== |
Рівно |
K==11 |
!= |
Не рівно |
K!=11 |
?: |
Умовне присвоювання |
K=(k>0)? 1:k |
<< |
Зсув вліво |
K<<i |
>> |
Зсув вправо |
K>>i |
Аргументами логічних операцій можуть бути будь-які числа, включаючи ті, що задаються аргументами типу char. Результат логічної операції одиниця – істинна, або нуль, якщо умова не істинна. Взагалі всі значення, відмінні від нуля, інтерпретуються як істинні.
Обчислення виразів, що містять логічні операції, відбувається зліва направо і припиняється, як тільки вдасться визначити результат. Якщо вираз складений із логічних тверджень (тобто виразів, що виробляють значення типу int), сполучених між собою операцією І (&&), то обчислення виразу припиняється, як тільки хоча б в одному логічному твердженні виробляється значення нуль. Якщо вираз складений із логічних тверджень, сполучених між собою операцією АБО (||), то обчислення виразу припиняється, як тільки хоча б в одному логічному твердженні виробляється ненульове значення.
Декілька прикладів, у яких використовуються логічні операції:
if( i > 50 && j == 24)
...
if( value1 < value2 && (value3 > 50 || value4 < 20) )