ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.09.2024

Просмотров: 16

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Якщо при визначенні початкове значення змінним не задається явним чином, то компілятор обнуляє глобальні і статичні змінні. Автоматичні змінні не ініціалізувалися..

Ім'я змінної має бути унікальним в своїй зоні дії.

Опис змінною може бути виконаний або як оголошення, або як визначення. Оголошення містить інформацію про клас пам'яті і типа змінної, визначення разом з цією інформацією дає вказівку виділити пам'ять. У прикладі extern int x; - оголошення, а останні – визначення.

Знаки операцій в Сі++

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

Унарні операції

&

здобуття адреси операнда

*

Звернення за адресою (разіменування)

-

унарний мінус, міняє знак арифметичного операнда

~

порозрядне інвертування внутрішньої двійкової коди цілочисельного операнда (побітове заперечення)

!

логічне заперечення (НЕ). Як логічні значення використовується 0 - брехня і не 0 - істина, запереченням 0 буде 1, запереченням будь-якого ненульового числа буде 0.

++

Збільшення на одиницю:

  • префіксна операція - збільшує операнд до його використання

  • постфіксна операція збільшує операнд після його використання.

  • int m=1,n=2;

  • int a=(m++)+n; // a=4,m=2,n=2

  • int b=m+(++n);//a=3,m=1,n=3

- -

зменшення на одиницю:

префіксна операція - зменшує операнд до його використання

постфіксна операція зменшує операнд після його використання.

sizeof

обчислення розміру (у байтах) для об'єкту того типа, який має операнд

має дві форми

sizeof вираз

sizeof (тип)

Приклади:

sizeof(float) //4

sizeof(1.0) //8, оскільки дійсні константи за умовчанням мають типа double


Бінарні операції.

Аддитивні:

+

бінарний плюс (складання арифметичних операндів)

-

бінарний мінус (віднімання арифметичних операндів)

Мультиплікативні:

*

множення операндів арифметичного типа

/

ділення операндів арифметичного типа (якщо операнди цілочисельні, то виконується цілочисельне ділення)

%

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

Операції зрушення (визначені лише для цілочисельних операндів).

Формат вираження з операцією зрушення:


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

<<

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

>>

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

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

&

порозрядна кон'юнкція (И) бітових представлень значень цілочисельних операндів (біт =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;