Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операції порівняння




Таблиця 1.7.Операції порівняння

 

Операція Значення
< менше
<= менше або рівно
== перевірка на рівність
>= більше або рівно
> більше
!= перевірка на нерівність

Операції порівняння здебільшого використовуються в умовних виразах. Приклади умовних виразів:
b<0, 'b'=='B','f'!='F', 201>=205,
Кожна умова перевіряється: істинна вона чи хибна. Точніше слід сказати, що кожна умова приймає значення "істинно" (true) або "хибно" (flase). В мові Сі немає логічного (булевого) типу. Тому результатом умовного виразу є цілочисельне арифметичне значення. "Істинно" - це ненульова величина, а "хибно" - це нуль. В більшості випадків в якості ненульового значення "істинно" використовується одиниця.
Приклад:
#include<stdio.h>
main()
{
int tr, fal;
tr=(111<=115); /* вираз істинний */
fal=(111>115); /* вираз хибний */
printf("true - %d false - %d \n",tr,fal);
return 0;
}

1.4.4 Логічні операції
Логічні операції &&, ||,! використовуються здебільшого для "об'єднання" виразів порівняння у відповідності з правилами логічного І, логічного АБО та логічного заперечення (таблиця 1.8.).

Таблиця 1.8. Логічні операції

 

Операція Значення
&& логічне І (and)
| | логічне АБО (or)
! логічне заперечення (not)

Складні логічні вирази обчислюються "раціональним способом". Наприклад, якщо у виразі
(A<=B)&&(B<=C)
виявилось, що А більше В, то всі вирази, як і його перша частина (А<=B), приймають значення "хибно", тому друга частина (В<=C) не обчислюється.
Результат логічної операції 1, якщо істина і 0 у протилежному випадку.

Таблиця 1.9. Таблиця істинності логічних операцій

 

E1 E2 E1&&E2 E1||E2 !E1
         
         
         
         

1.4.5 Порозрядні операції (побітові операції)
Порозрядні операції застосовуються тільки до цілочисельних операндів і "працюють" з їх двійковими представленнями. Ці операції неможливо використовувати із змінними типу double, float, long double.

Таблиця 1.10. Порозрядні операції

 

Операція Значення
~ порозрядне заперечення
& побітова кон'юнкція (побітове І)
| побітова диз'юнкція (побітове АБО)
^ побітове додавання за МОД2
<< зсув вліво
>> зсув вправо

 

Таблиця 1.11. Таблиця істинності логічних порозрядних операцій

 

E1 E2 E1&E2 E1^E2 E1|E2
         
         
         
         

• Порозрядне заперечення! заміняє змінює кожну 1 на 0, а 0 на 1.
Приклад: ~ (10011010) == (01100101)
• Порозрядна кон'юнкція & (порозрядне І) порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо тільки два відповідних розряди операндів рівні 1, в інших випадках результат 0.
• Приклад: (10010011) & (00111101) == (00010001)
• Порозрядна диз'юнкція | (порозрядне АБО) порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо хоча б один з відповідних розрядів рівний 1.
Приклад: (10010011) | (00111101) == (10111111)
• Побітове додавання за МОД2 порівнює послідовно розряд за розрядом два операнди. Для кожного розряду результат рівний 1, якщо один з двох (але не обидва) відповідних розряди рівні 1.
Приклад: (10010011) ^ (00111101) == (10101110)
На операції побітового додавання за МОД2 ґрунтується метод обміну значень двох цілочисельних змінних.
a^=b^=a^=b;
• Операція зсуву вліво (вправо) переміщує розряди першого операнду вліво (вправо) на число позицій, яке задане другим операндом. Позиції, що звільняються, заповнюються нулями, а розряди, що зсуваються за ліву (праву) границю, втрачаються.
Приклади:
(10001010) << 2 == (00101000)
(10001010) >> 2 == (00100010)

1.4.6 Операція слідування (кома)
Операція "кома" (,) називається операцією слідування, яка "зв'язує" два довільних вирази. Список виразів, розділених між собою комами, обчислюються зліва направо. Наприклад, фрагмент тексту
a=4;
b=a+5;
можна записати так:
a=4, b=b+5;
Операція слідування використовується в основному в операторах циклу for() (про оператори циклів піде мова пізніше).
Для порівняння наводимо приклад з використанням операції слідування (приклад 1) та без неї (приклад 2):
Приклад 1.
int a[10],sum,i;
/*... */
sum=a[0];
for (i=1;i<10;i++)
sum+=a[i];
Приклад 2.
int a[10],sum,i;
/*... */
for (i=1,sum=a[0];i<10;sum+=a[i],i++);

1.4.7 Умовна операція?:
Умовна операція?: - єдина тернарна операція в мові Сі. Її синтаксис:
умова? вираз_1: вираз_2
Принцип її роботи такий. Спочатку обчислюється вираз умови. Якщо цей вираз має ненульове значення, то обчислюється вираз_1. Результатом операції?: в даному випадку буде значення виразу_1. Якщо вираз умови рівний нулю, то обчислюється вираз_2 і його значення буде результатом операції. В будь-якому випадку обчислюється тільки один із виразів (вираз_1 або вираз_2).
Наприклад, дану операцію зручно використати для знаходження найбільшого з двох чисел x і y:
max=(x>y)?x:y;
Приклад 1:
#include<stdio.h>
void main()
{
int points;
printf("Введiть оцiнку [2..5]:");
scanf("%d",&points);
printf("%s",points>3?"Ви добре знаєте матерiал!":"Погано...");
}
Приклад 2:
j = (i<0)? (-i): (i); /* змінній j присвоюється модуль i*/

1.4.8 Операція sizeof()
Дана операція обчислює розмір пам'яті, необхідний для розміщення в ній виразів або змінних вказаних типів.
Операція має дві форми:
1). ім'я_типу А;
sizeof А;
2). sizeof (ім'я_типу);
Операцію sizeof() можна застосовувати до констант, типів або змінних, у результаті чого буде отримано число байт, що відводяться під операнд. Приміром, sizеof(int) поверне число байт для розміщення змінної типу int.

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 4434; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.