- •Конспект студента. Коротка хронологія найважливіших етапів розвитку мови :
- •Алфавіт мови.
- •Ідентифікатори
- •Ключові слова
- •Управляючі послідовності
- •Концепція типу даних
- •Основні типи даних
- •Діапазони значень простих типів даних для ibm pc
- •Символьний тип (char)
- •Розширений символьний тип (wchar_t)
- •Логічний тип (bool)
- •Змінні. Клас пам'яті.
- •Типи з плаваючою крапкою (float, double і long double)
- •Перетворення типів.
- •Структура програми
- •Проста програма
- •Змінні і вирази
- •Область дії ідентифікатора
- •Вирази.
- •Порядок обчислення виразів
- •Бітові операції.
- •Введення і виведення даних.
- •Стежте за помилками переповнювання
- •Стежте за помилками неспівпадання типів
- •Читання символьних даних
- •Читання слів з клавіатури
- •Форматування введення-виведення засобами мови с Функція printf()
- •Функція scanf()
- •If (вираз) оператор 1; [else оператор 2;]
Область дії ідентифікатора
int а; // 1 глобальна змінна а
int main()
{
int b; // 2 локальна змінна b
extern int x; // 3 змінна х визначена у іншому
місці
static int с; // 4 локальна статична змінна с
а = 1; //5 присвоювання глобальної
змінної
int а; //6 локальна змінна а
а = 2; //7 присвоювання локальної змінної
::а = 3; //8 присвоювання глобальної
змінної
return 0;
}
int x = 4; // 9 визначення і ініціалізація х
В даному прикладі глобальна змінна а визначена поза всіма блоками. Пам'ять під неї виділяється в сегменті даних на початку роботи програми, областю дії є вся програма. Область видимості — вся програма, окрім рядків 6-8, оскільки в першій з них визначається локальна змінна з тим же ім'ям, область дії якої починається з точки її опису і закінчується при виході з блоку. Змінні b і с— локальні, область їх видимості — блок, але час життя різний: пам'ять під b виділяється в стеку при вході в блок і звільняється при виході з нього, а змінна з розташовується в сегменті даних і існує весь час, поки працює програма.
Якщо при визначенні початкове значення змінних явним чином не задається, компілятор привласнює глобальним і статичним змінним нульове значення відповідного типу.
Ім'я змінної повинне бути унікальним в своїй області дії (наприклад, в одному блоці не може бути два змінних з однаковими іменами).
Вирази.
Програма оперує з даними. Власне, це і є мета будь-якої програми - перетворити вхідну інформацію у вихідну. Числа можна складати, віднімати, умножати, ділити. Тобто з різних величин можна складати вирази, результат обчислення яких - нова величина.
Вирази - це змінні, функції і константи, звані операндами, об'єднані знаками операцій.
У мові С++ у змінних і констант є тип. Є тип і у результату виразу. Наприклад
операції складання (+), множення (*), віднімання (-) і ділення (/), застосовані до цілих чисел, дають в результаті ціле значення. Ті ж операції можна застосувати до дійсних чисел і набути речовинного значення.
Операції порівняння: більше (>), менше (<), рівно (==), не рівно (!=) порівнюють значення чисел і видають логічне значення: істина (true) або неправда (false).
Порядок обчислення виразів
У кожної операції є пріоритет. Якщо у виразі декілька операцій, то першою буде виконана операція з вищим пріоритетом. Якщо ж операції одного і того ж пріоритету, вони виконуються зліва направо.
Наприклад, у виразі 2 + 3*6спочатку буде виконане множення, а потім складання, відповідно значення цього виразу число 20.
У виразі х = у+3 спочатку виконується складання, а потім привласнення, оскільки пріоритет операції привласнення нижче складання.
Для даного правила існує виключення: якщо у виразі декілька операцій привласнення, то вони виконуються справа наліво. Н-р, у виразі
х = у = 2 спочатку виконається операція привласнення значення 2 змінній у. Потім результат цієї операції - значення 2 - буде привласнено змінною х.
Для того, щоб змінити послідовність обчислення виразів, можна скористатися круглими дужками. Значенням (2 + 3) * 6 буде 30.
Дужки можуть бути вкладеними, відповідно самі внутрішні виконуються найпершими!
(2 + (3 * (4 + 5) ) - 2)
Операції мови С++
Операція |
Дія |
Тип операндів |
Тип результату |
+складання - віднімання *множення, / ділення |
складання віднімання, множення і ділення чисел |
Цілі або дійсні числа, байти |
Відповідає типу найбільш "довгого" операнду, тобто операнду, за допомогою якого можна виразити найбільше число |
% залишок |
Залишок від ділення першого операнду на другий |
Цілі числа або байти, перетворені в цілі числа |
Ціле число |
- мінус |
Зміна знаку числа |
Знакові числа і байти |
Співпадає з типом операнда |
+ плюс |
Унарний плюс, результат операції - незмінений операнд |
Будь-які числа і байти |
Співпадає з типом операнда |
++ збільшити на одиницю, префіксна форма |
Збільшити значення операнду на одиницю, результат — нове, збільшене значення операнду |
Цілі числа |
Тип результату співпадає з типом операнду |
-- зменшити на одиницю, префіксна форма |
Зменшити значення операнду на одиницю, результат — нове, зменшене значення операнду |
Цілі числа |
Тип результату співпадає з типом операнду |
++ збільшити на одиницю, постфіксна форма |
Збільшити значення операнда на одиницю, результат - старе, незмінене значення операнду |
Цілі числа |
Тип результату співпадає з типом операнду |
- -зменшити на одиницю, постфіксна форма |
Зменшити значення операнда на одиницю, результат - старе, незмінене значення операнда |
Цілі числа |
Тип результату співпадає з типом операнда |
==, != рівно, не рівно |
Порівняння двох операндів на рівність або нерівність |
Тип операндів може бути будь-якій, але або один і той же, або такі, що між ними визначено порівняння на рівність і нерівність |
Логічне значення |
>, <, <=, >= -менше, більше, менше або дорівнює, більше або дорівнює |
Порівняння двох операндів |
Тип операндів може бути будь-якій, але або один і той же вбудований, або такі, що між ними визначено відповідне порівняння |
Логічне значення |
&& логічне І |
Кон’юнкция двох логічних умов |
Логічні значення |
Логічне значення |
|| логічне АБО |
Диз'юнкція двох логічних значень |
Логічні значення |
Логічне значення |
! логічне НІ |
Логічне заперечення |
Логічне значення |
Логічне значення |
& бітове І |
Побітове виконання операції І |
Цілі числа |
Ціле число |
| бітове АБО |
Побітове виконання операції АБО |
Цілі числа |
Ціле число |
^ бітове ВИКЛЮЧАЮЧЕ АБО |
Побітове виконання операції ВИКЛЮЧАЮЧЕ АБО |
Цілі числа |
Ціле число |
~ бітове НІ |
Зміна кожного біта в числі на протилежний |
Цілі числа |
Ціле число |
« зрушення вліво |
Побітове зрушення лівого операнду на кількість розрядів, відповідну значенню правого операнду |
Цілі числа |
Ціле число |
» зрушення управо |
Побітове зрушення лівого операнду на кількість розрядів, відповідну значенню правого операнду |
Цілі числа |
Ціле число |
? : умовний вираз |
Трьохарна операція; якщо значення першого операнду - істина, то результат - другий операнд; якщо неправда - результат - третій операнд |
Перший операнд логічне значення, другий і третій операнди можуть мати будь-який, але один і той же тип |
Тип другого і третього операндів |
, послідовність |
Виконати вираз до коми, потім вираз після коми |
Довільні |
Тип другого виразу |
= присвоювання |
Присвоїти значення правого операнда лівому |
Довільні, але для типу лівого операнда повинна існувати операція присвоєння з типом правого операнда |
Тип лівого операнда |
+=, -=, *=, /=, %=, |=, &=, ^=, «=, »= виконати операцію і присвоїти |
Виконати відповідну операцію з лівим операндом і правим операндом і присвоїти результат лівому операнду |
Типи операндів повинні бути такими, що, по-перше, відповідна арифметична операція визначена для них, а по-друге, результат може бути присвоєний лівому операнду |
Тип лівого операнда |
