- •План:
- •Лексеми — одиниці тексту програми, які при компіляції сприймаються як єдине ціле і
- •Ідентифікатори
- •Службові (ключові) слова
- •Типи даних
- •Таблиця типів даних
- •Аналізуючи таблицю, можна зробити наступні висновки:
- •ініціалізація змінних – це одночасний опис з наданням початкових значень змінних. Опис з
- •Константи
- •Особливий різновид символьних констант представляють управляючи символи.
- •Визначення констант на стадії препроцесорної обробки програми. Ще однією можливістю ввести іменовану константу
- •Константи перераховуваного типу
- •Операції і вирази
- •Арифметичні операції
- •Операції інкремента і декремента можуть застосовуватися тільки до змінних і не можуть
- •Відмінність проявляється при використанні префіксною і постфіксною форм у виразах.
- •Операції відношення
- •Логічні операції
- •відношення розташовані в наступному порядку:
- •Операція привласнення
- •В процесі обчислення виразів з різнотипними операндами проводиться автоматичне перетворення типів величин. Знання
- •Цілі типи за збільшенням старшинства розташовані в такому порядку:
Операції відношення
У Сі++ слід лише звернути увагу на відмінність в записі операцій «рівно» і «не рівно».
< |
менше |
<= |
менше або рівно |
> |
більше |
>= |
більше або рівно |
= = |
рівно |
! = |
не рівно. |
В стандарті Сі немає логічного типу даних. Тому результатом операції відношення є ціле число: якщо
відношення істинне — 1, якщо помилково —0. Приклади відношень:
а<0, 101>=105, 'а'=='А', 'а"='А'
Результатом другого і третього стосунків буде 0 — брехня; результат четвертого відношення дорівнює 1 — істина; результат першого відношення залежить від значення змінної а.
Логічні операції
Три основні логічні операції в мові Сі++ записуються.
! операція заперечення (НІ) && визначаються таблицею істинностікон'юнкція, логічне множення (І)
| | диз'юнкція, логічне складання (ЧИ). Правила їх виконання .
Наприклад, логічний вираз, що відповідає системі нерівностей 0 < х < 1 в програмі на Сі++ запишеться у вигляді наступного логічного виразу:
х>0 && х<1
відношення розташовані в наступному порядку:
! |
> < >= |
<= |
== != |
&& |
|| |
Знаки бітових логічних операцій :
&порозрядна кон'юнкція (И)
|порозрядна диз'юнкція (ЧИ)
^ що порозрядне, що виключає АБО
~порозрядне заперечення (НЕ).
Бітові логічні операції разом з операціями порозрядного зрушення вліво (<<) і управо (>>) дозволяють дістатися до кожного біта внутрішнього коду. Найчастіше такі дії доводиться виконувати в системних програмах. У цьому посібнику ми їх розглядати не будемо.
Операція привласнення
Знак операції привласнення =. Привласнення, як будь-який інший знак операції, може кілька разів входити у вираження.
Наприклад:
а=b=с=х+у;
Привласнення має найнижчий пріоритет (нижче тільки у операції «кома»). Операція привласнення — правоасоциативна. Це означає, що дещо підряд розташованих привласнень виконуються справа наліво. Тому в приведеному вище виразі першої виконається операція складання, потім змінною з привласненим значенням суми, потім це значення привласниться змінній b і у кінці — змінній а.
У мові Сі++ є додаткові операції привласнення, що поєднують привласнення з виконанням інших операцій. Серед них: +=, -=, /=, *=, %=. Пріоритет у них такий же, як і у простого привласнення. Приклади використання цих операцій
В процесі обчислення виразів з різнотипними операндами проводиться автоматичне перетворення типів величин. Знання правил, по яких відбуваються ці перетворення, попереджає деякі помилки в записі виразів. Суть правил перетворення при виконанні бінарних операцій зводиться до наступного:
•перетворення не виконується, якщо обидва операнди мають однаковий тип;
•при різних типах операндів відбувається приведення величини з молодшим типом до старшого типу (окрім операції привласнення);
•при виконанні операції привласнення величина, отримана в правій частині, перетвориться до типу змінної, що стоїть зліва від знаку =.
Цілі типи за збільшенням старшинства розташовані в такому порядку:
char→shot→int→long
Порядок старшинства речових типів наступний: float→double→long double
Слід мати на увазі, що при перетворенні цілої величини до плаваючого типу може статися втрата точності (замість 1 вийде 0,999).
Наступний приклад ілюструє порядок виконання операцій і перетворення типів, що відбуваються, при обчисленні вираження (рис. 1, цифри вгорі — порядок операцій).
char ch; int i; float f;
double d; long double r;