- •Міністерство освіти і науки, молоді та спорту України Технічний коледж національного університету водного господарства та природокористування Лабораторна робота № 5
- •5.1 Мета роботи
- •5.2 Теоретичні відомості Арифметичні операції
- •Операції відношення і логічні операції
- •Операція присвоювання
- •Операції () і []
- •Операція умова ? :
- •Операція кома
- •Керуючі оператори
- •Оператор switch
- •5.3 Опис лабораторного обладнання
- •5.4 Програма роботи
- •5.5 Контрольні запитання
Операції відношення і логічні операції
Операції відношення використовуються для порівняння. Повний список операцій відношення в мові С наступний:
< менше,
<= менше або дорівнює,
> більше,
>= більше або дорівнює,
== дорівнює,
!= не дорівнює.
У мові С є також три логічні операції:
&& і (AND),
|| або (OR),
! не (NOT).
Операції відношення використовуються в умовних виразах, або, коротше, умовах. Приклади умовних виразів:
а<0, 101>=105, 'a'=='A', 'a'!='A'
Кожний умовний вираз перевіряється: істинний він або ні. Точніше варто сказати, що кожний умовний вираз отримує значення "істинно" ("true") або "невірно" ("false"). У мові С немає логічного (булевого, boolean) типу. Тому результатом логічного виразу є цілочисельне арифметичне значення. У мові С "істинно" - це ненульове значення, "невірно" - це нуль. У більшості випадків у якості ненульового значення "true" використовується одиниця. Так, із приведених вище прикладів умовних виразів 2-е і 3-є отримали значення "нуль", а 1-е і 4-е - ненульові значення. Розглянемо приклад.
#include <stdio.h>
/' Приклад 6.3 */
main()
{
int tr, fal;
tr = (101<=l05); /*вираз "істинний" */
fal = (101>l05); /*вираз "невірний" */
printf("true - %d false - %d\n", tr, fal);
return 0;
}
Логічні операції в мові С відповідають класичним логічним операціям AND(&&), OR (||) і NOT (!), а їхній результат - відповідним таблицям, що прийнято називати таблицями істинності:
Х |
Y |
X AND Y |
X OR Y |
NOT X |
X XOR Y |
1 1 0 0 |
1 0 1 0 |
1 0 0 0 |
1 1 1 0
|
0 0 1 1 |
0 1 1 0 |
Операція XOR називається операцією "що виключає або". У мові С немає знака логічної операції XOR, хоча вона може бути реалізованою за допомогою операцій AND, OR і NOT. Однак надалі ми будемо розглядати побітові операції, серед яких операція "що виключає або" уже є.
Операції відношення і логічні операції мають пріоритет нижче чим арифметичні операції. Це значить, що вираз 12>10+1 розглядається як вираз 12>(10+1).
Старшинство логічних операцій і операцій відношення наступне:
Старша !
> < >= <=
== !=
&&
Молодша ||
У логічних виразах, як і у всіх інших, можна використовувати круглі дужки, що мають найвищий пріоритет. Крім того, круглі дужки дозволяють зробити логічні вирази більш зрозумілими і зручними для читання. Умовні і логічні вирази використовуються в керуючих операторах мови С, таких, як if for і інших.
Особливість логічних операцій && і || перебуває в тому, що якщо при обчисленні результату операції (вир1) && (вир2) - значення лівого операнда (вир1) буде нульовим, то значення другого операнда на результат операції не зробить ніякого впливу. У цьому випадку другий операнд не обчислюється. А отже, надії на те, що при обчисленні другого операнда може відбутися збільшення якоїсь перемінної завдяки операції ++, не виправдаються. Те ж саме стосується операції ||. У цьому випадку другий операнд не обчислюється, якщо значення лівого операнда не нульове.