Компоновка (редагування зв'язків або зборка)

Рисунок 12 – Обробка С + + програми

Після цих трьох етапів формується виконуваний код програми. Завдання препроцесора - перетворення тексту програми до її компіляції. Правила препроцесорну обробки визначає програміст за допомогою директив препроцесора. Директива починається з #.

# Define - вказує правила заміни в тексті.

# Include <ім'я заголовного файла> - директива призначена для включення в текст програми тексту з каталогу заголовків файлів, що поставляються разом зі стандартними бібліотеками. Кожна бібліотечна функція C має відповідний опис в одному з заголовних файлів. Список заголовних файлів визначений стандартом мови. Вживання директиви include не підключає відповідну стандартну бібліотеку, а лише дозволяють вставити в текст програми опису із зазначеного заголовного файлу. Якщо використовується заголовний файл із стандартної бібліотеки, то його ім'я укладають в кутові дужки. Якщо використовується заголовний файл, який знаходиться в поточному каталозі проекту (він може бути створений розробником програми), то його ім'я полягає в лапки. Підключення кодів бібліотеки здійснюється на етапі компоновки, тобто після компіляції. Хоча в заголовних файлах містяться всі описи стандартних функцій, в код програми включаються тільки ті функції, які використовуються в програмі.

Після виконання препроцесорну обробки в тексті програми не залишається жодної препроцесорну директиви.

Програма являє собою набір описів і визначень, і складається з набору функцій. Серед цих функцій завжди повинна бути функція з ім'ям main. Без неї програма не може бути виконана. Перед ім'ям функції заносяться відомості про тип повертається функцією значення (тип результату). Якщо функція нічого не повертає, то вказується тип void: void main (). Кожна функція, в тому числі і main, повинна мати список параметрів. Список може бути порожнім, тоді він вказується як (void) (слово void може бути опущено: ()). За заголовком функції розміщується тіло функції. Тіло функції - це послідовність визначень, описів і виконуваних операторів, укладених у фігурні дужки. Кожне визначення, опис або оператор закінчується крапкою з комою.

Визначення - вводять об'єкти (об'єкт - це іменована область пам'яті, окремий випадок об'єкта - змінна), необхідні для подання у програмі оброблюваних даних. Прикладами є

const int y = 10; / / іменована константа

float x; / / змінна

Описи - повідомляють компілятор про властивості та іменах об'єктів і функцій, описаних в інших частинах програми.

Оператори - визначають дії програми на кожному кроці її виконання.

2.2. Елементи мови C / C + +

1) Алфавіт мови який включає

• прописні і рядкові латинські літери та знак підкреслення;

• арабські цифри від 0 до 9;

• спеціальні знаки "{}, | [] () + - /% *. \ ':; &? <> =! # ^

• пробільні символи (пробіл, символ табуляції, символи переходу на новий рядок).

2) Із символів формуються лексеми мови:

• Ідентифікатори - імена об'єктів C / C + +-програм. У ідентифікаторі можуть бути використані латинські літери, цифри та знак підкреслення. Прописні і малі літери розрізняються, наприклад, PROG1, prog1 і Prog1 - три різних ідентифікатора. Першим символом повинна бути буква або знак підкреслення (але не цифра). Прогалини в ідентифікаторах не допускаються.

• Ключові (зарезервовані) слова - це слова, які мають спеціальне значення для компілятора. Їх не можна використовувати в якості ідентифікаторів.

• Знаки операцій - це один або декілька символів, що визначають дію над операндами. Операції поділяються на унарні, бінарних і тернарних за кількістю що беруть участь у цій операції операндів.

• Константи - це незмінні величини. Існують цілі, речові, символьні і рядкові константи. Компілятор виділяє константу в якості лексеми (елементарної конструкції) і відносить її до одного з типів за її зовнішнім виглядом.

• Роздільники - дужки, крапка, кома пробільні символи.

2.3. Константи в C / C + +

Константа - це лексема, що представляє зображення фіксованого числового, строкового чи символьного значення. Константи поділяються на 5 груп:

• цілі;

• речові (з плаваючою крапкою);

• перечислимого;

• символьні;

• рядкові.

Компілятор виділяє лексему і відносить її до тієї чи іншої групи, а потім всередині групи до певного типу по її формі запису в тексті програми і по числовому значенню.

Цілі константи можуть бути десятковими, вісімковій і шістнадцятковій.

Таблиця 7 – Цілі константи

Назва Визначення Приклади
десяткова константа Послідовність десяткових цифр, що починається не з 0, якщо це число не 0 8, 0, 192345
вісімкова константа Послідовність вісімкових цифр, яким передує 0. 026, 034, 017
шістнадцяткова константа Послідовність шістнадцятирічних цифр, яким передують символи 0х або 0Х 0хА, 0Х00F, 0х123

Таблиця 8 – Речові константи можуть мати дві форми уявлення: з фіксованою точкою і з плаваючою крапкою.

Назва Вид Приклади
Константи з фіксованою точкою [цифри]. [цифри] 5.7,.0001, 41.
Константа з плаваючою точкою [цифри][.][цифри]E|e[+|-] [цифри] 0.5е5,.11е-5, 5Е3

Перечислимого константи вводяться за допомогою ключового слова enum. Це звичайні цілі константи, яким приписані унікальні і зручні для використання позначення.

enum {one=1, two=2, three=3, four=4};

enum {zero,one,two,three};

enum {ten=10, three=3, four, five, six};

enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

Символьні константи - це один або два символи, укладені в апострофи. Символьні константи, що складаються з одного символу, мають тип char і займають в пам'яті один байт, символьні константи, що складаються з двох символів, мають тип int і займають два байти. Послідовності, що починаються зі знака \, називаються керуючими, вони використовуються:

• для представлення символів, що не мають графічного відображення, наприклад:

\ a - звуковий сигнал,

\ b - повернення на один крок,

\ n - переклад рядка,

\ t - горизонтальна табуляція;

• для представлення символів: \, ',?, "(\ \, \ ', \?, \");

• для представлення символів за допомогою шістнадцятиричних або вісімкових кодів (\ 073, \ 0хF5);

Строкова константа - це послідовність символів, укладена в лапки. Всередині рядків також можуть використовуватися керуючі символи. наприклад:

"\ NНовая рядок",

"\ N \" Алгоритмічні мови програмування \ "".

2.3. Типы данных в C++

Типи C + + можна розділити на прості і складові. До простих типів відносять типи, які характеризуються одним значенням. У мові C + + визначено 6 простих типів даних:

int (цілий)

цілочисельні
char (символьний)

wchar_t (расширений символьний) (C++)

bool (логічний) (C++)

с плаваючей точкою
float (речовинний)

double (речовинний з подвійною точністю)

Існує 4 специфікатора типу, уточнюючих внутрішнє представлення та діапазон стандартних типів

short (короткий)

long (довгий)

signed (знаковий)

unsigned (беззнакові)

Таблиця 9 – Типи даних в С

Тип даних визначення Розмір Діапазон
(signed) char Значеннями є елементи кінцевого впорядкованої множини символів. Кожному символу ставиться у відповідність число, яке називається кодом символу. 1 байт -128..127
unsigned char 0..255
wchar_t Значеннями є елементи кінцевого впорядкованої множини символів в кодуванні Unicode 2 байта 0..65535
(signed) int Значеннями є цілі числа. 4 байта (для 32-разрядного МП) –2147483648 … +2147483647.
(signed) long (int)
unsigned int 0…+4294967 295.
unsigned long (int)
(signed) short int 2 байта (для 32-разрядного МП) –32768 … +32767
unsigned short int 0 … 65536;
bool Дані цього типу можуть приймати значення true і false. 1 байт false, true
float Значеннями є дійсні числа 4 байта 3.4Е-38..3.4Е+38
double 8 байт 1.7Е-308..1.7Е+308
long double 10 байт 3.4Е-4932..1Е+4932

2.4. Змінні

Змінна в C + + - іменована область пам'яті, в якій зберігаються дані певного типу. У змінної є ім'я і значення. Ім'я служить для звернення до області пам'яті, в якій зберігається значення. Перед використанням будь-яка змінна повинна бути описана.

int a; float x;

2.5. Операції

У відповідності з кількістю операндів, які використовуються в операціях вони діляться на унарні (один операнд), бінарні (два операнди) і тернарних (три операнда).

Таблиця 10 – Операції мови С

Операція опис
унарні операції
++ Збільшення на одиницю: префіксная операція - збільшує операнд до його використання, постфіксной операція збільшує операнд після його використання.
-- Зменшення на одиницю: префіксная операція - зменшує операнд до його використання, постфіксной операція зменшує операнд після його використання.
sizeof обчислення розміру (в байтах) для об'єкта того типу, який має операнд
- Унарний мінус
+ Унарний плюс
! Логічне заперечення (НЕ). В якості логічних значень використовується 0 (false) - брехня і не 0 (true) - істина, запереченням 0 буде 1, запереченням будь-якого ненульового числа буде 0.
& Отримання адреси операнда
* Отримання значення, що знаходиться за вказаною адресою (разименованія)
new виділення пам'яті
delete звільнення пам'яті
(type) перетворення типу
Бінарні операції
мультиплікативні
* множення операндів арифметичного типу
/ поділ операндів арифметичного типу (якщо операнди цілочисельні, то виконується цілочисельне ділення)
% отримання залишку від ділення цілочисельних операндів
адитивні
+ бінарний плюс (додавання арифметичних операндів)
- бінарний мінус (віднімання арифметичних операндів)
операції порівняння
< менше, ніж
<= менше або дорівнює
> більше
>= більше або дорівнює
= дорівнює
!= не дорівнює
Логічні
&& кон'юнкція (І) цілочисельних операндів або відношень, цілочисельний результат брехня (0) або істина (не 0)
|| диз'юнкція (АБО) цілочисельних операндів або відношень, цілочисельний результат брехня (0) або істина (не 0)
Тернарна
?: умовна операція в ній використовується три операнда. Вираз1? Вираженіе2: вираз3; Першим обчислюється значення вираженія1. Якщо воно істинне, то обчислюється значення вираженія2, яке стає результатом. Якщо при обчисленні вираженія1 вийде 0, то в якості результату береться значення вираженія3. наприклад: x <0? -x: x; / / обчислюється абсолютне значення x.
присвоювання
= привласнення
*= множення з присвоюванням (мультиплікативне присвоювання)
/= ділення з присвоюванням
%= ділення з залишком із присвоюванням
+= додавання з присвоюванням
-= віднімання з присвоюванням

Таблиця11 - Приоритеты операций.

Ранг Операції
  () [ ] ->.
  ! ~ - ++ -- & * (тип) sizeof тип()
  * / % (мультиплікативні бінарні)
  + - (аддитивні бінарні)
  < > <= >= (відношення)
  ==!= (відношення)
  && (кон'юнкція «І»)
  || (диз'юнкція «АБО»)
  ?: (умовна операція)
  = *= /= %= -= &= ^= |= <<= >>= (операція присвоювання)
  , (операція кома)

2.6. Вирази

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: