Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / 3_кол / Лекції / лекция_C++ (9)_у.doc
Скачиваний:
10
Добавлен:
30.05.2020
Размер:
156.16 Кб
Скачать

Операнд_лівий операція_ зрушення операнд_правий

<<

зрушення вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються

>>

зрушення управо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються, якщо операнд беззнакового типа і заповнюються знаковим розрядом, якщо – знакового

Порозрядні операції:

&

порозрядна кон'юнкція (И) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідні біти обоє операндов=1)

|

порозрядна диз'юнкція (АБО) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідний біт один з операндов=1)

^

що порозрядне виключає АБО бітових представлень значень цілочисельних операндів(біт =1, якщо відповідний біт лише одного з операндов=1)

Операції порівняння: результатом є true( не 0) або false(0)

<

менше, ніж

>

більше, ніж

<=

менше або рівно

>=

більше або рівно

==

Рівно

!=

не рівно

Логічні бінарні операції:

&&

кон'юнкція (І) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0)

||

диз'юнкція (АБО) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0)

Операції привласнення

=, +=, -=, += і так далі

Формат операції простого привласнення:

операнд1=операнд2

Ліводопустиме значення (L-значение) – виразу, яке адресує деяку ділянку пам'яті, тобто в нього можна занести значення. Ця назва сталася від операції привласнення, оскільки саме ліва частина операції привласнення визначає, в яку область пам'яті буде занесений результат операції. Змінна – це окремий випадок ліводопустиме вираження.

Умовна операція.

На відміну від унарних і бінарних операцій в ній використовується три операнди.

Вираз1 ? Вираз2 : Вираз3;

Першим обчислюється значення вираз1. Якщо воно достеменне, то обчислюється значення виразу2, яке стає результатом. Якщо при обчисленні виразу1 вийде 0, то як результат береться значення виразу3.

Наприклад:

x<0 ? -х : x ; //обчислюється абсолютне значення x.

Операція явного (перетворення) приведення типа.

Існує дві форми: канонічна і функціональна:

  1. (ім’я_типа) операнд

  2. ім’я_типа (операнд)

(int)a // канонічна форма

int(a) // функціональна форма

Вирази

З констант, змінних, роздільників і знаків операцій можна конструювати вирази. Кожне вираження є правилом обчислення нового значення.. Якщо вираження формує ціле або речове число, то воно називається арифметичним. Пара арифметичних виразів, об'єднана операцією порівняння, називається відношенням. Якщо відношення має ненульове значення, то воно – істинно, інакше – помилково.

Пріоритети операцій у виразах

Ранг

Операції

1

( ) [ ] -> .

2

! ~ - ++ -- & * (тип) sizeof тип( )

3

* / % (мультиплікативні бінарні)

+ - (аддитивні бінарні)

5

<< >> (порозрядного зрушення)

6

< > <= >= (стосунки)

7

== != (стосунки)

8

& (порозрядна кон'юнкція «І»)

9

^ (що порозрядне виключає «АБО»)

10

| (порозрядна диз'юнкція «АБО»)

11

&& (кон'юнкція «І»)

12

|| (диз'юнкція «АБО»)

13

?: (умовна операція)

14

= *= /= %= -= &= ^= |= <<= >>= (операція привласнення)

15

, (операція кома)

Контрольні питання

  1. З яких елементів складається природна мова? Що є аналогами цих елементів в С++?

  2. Що таке лексема? Навести приклади лексем в мові С++.

  3. Що таке ідентифікатор? Правила запису ідентифікаторів.

  4. Що таке константа? Як константа обробляється компілятором?

  5. Які типи констант існують в С++. Навести приклади констант різних типів.

  6. До якого типа відносяться константи 192345, 0х56, 0хСВ, 016, 0.7865, .0045, ‘c’, “x”, one, “one”, 5, 5.?

  7. Що таке тип даних?

  8. Чим відрізняються типи даних: float і double, char і wchar_t, int і short int?

  9. Чим відрізняються типи даних int і unsigned int?

  10. Перерахувати всіх типів даних, які існують в C++. Скільки місця в пам'яті займають дані кожного типа?

  11. На що впливає кількість пам'яті, що виділяється для даних певного типа?

  12. Що таке змінна? Чим оголошення зміною відрізняється від її визначення? Навести приклади визначень і оголошень.

  13. Що таке клас пам'яті? Які класи пам'яті існують в С++? Навести приклади оголошень і визначень змінних різних класів пам'яті.

  14. Що таке вираження? З чого складається вираження?

  15. Що таке операнд?

  16. Які операції можна застосовувати до цілочисельних даних? До речових даних? До символьних даних?

  17. Що таке відношення?

  18. У якому випадку відношення вважається помилковим, а в якому – достеменним?

  19. Які операції називаються унарними? Навести приклади.

  20. Які операції називаються бінарними? Навести приклади.

  21. Що таке тернарная операція? Навести приклад.

  22. Яка різниця між постфіксною і префіксною операцією інкремента (декремента)?

  23. Які операції привласнення існують в С++?

  24. Навести приклади виразів, що містять операції привласнення, операції інкремента (декремента), аддитивні і мультиплікативні операції. Пояснити, як вони виконуватимуться.

  25. Що таке леводопустимое значення? Навести приклад.

  26. Чому дорівнюватиме значення виразів:

int z=x/y++; якщо int x=1, y=2;

int w=x%++y, якщо int x=1, y=2;

int a=++m+n++*sizeof(int); якщо int m=1, n=2;

float a=4*m/0.3*n; якщо float m=1.5; int n=5;

int ok=int(0.5*y) <short(x)++; якщо int x=10, y=3;

Соседние файлы в папке Лекції