Основи алгоритмічного мови С + +
Змінні і операції мови С + +
Тут представлені базові компоненти програм на С + +. В їх число входять типи даних, змінні, константи і вирази.
ВИВЧАЄМО ПОНЯТТЯ
- Попереднє визначення типи даних в С + + включають в себе типи int, char, float, double і void. У мові С + + гнучкість типів даних збільшується завдяки застосуванню модифікаторів типів. Ці модифікатори змінюють точність представлення та діапазон значень змінних. Модифікаторами типу є signed, unsigned, short і long.
- Ідентифікатори в С + + можуть мати довжину до 32 символів і повинні починатися з букви або підкреслення. Наступні символи ідентифікатора можуть бути буквою, цифрою або підкресленням. Ідентифікатори С + + чутливі до реєстру. Обмеження на 32 символу може бути, проте, змінено шляхом установки опцій компілятора.
- Директива # include є спеціальною командою компілятора. Вона наказує компілятору включити в програму вміст певного файлу, як якби ви самі ввели його в поточний вихідний файл.
- Оголошення констант передбачає використання директиви # define для оголошення констант, визначених за допомогою макросів, або використання ключового слова const для оголошення формальних констант. Формальні константи вимагають від вас визначення їх типу (значенням за замовчуванням є int), імені та асоційованого з ними значення.
- Оголошення змінної вимагає, щоб ви поставили її тип та ім'я, С + + дає вам можливість ініціалізувати змінну при її оголошенні. Ви можете оголосити кілька змінних в одному операторі оголошення.
- арифметичними операціями є +, -, *,/і% (розподіл по модулю).
- Арифметичні вирази розрізняються за складністю. Найпростіше вираз містить єдиний елемент даних (літерал, константу або змінну). Складні вирази включають набір операцій, функції, літерали, константи і змінні.
- Операції інкремента і декремент використовуються в префіксной і постфіксной формах. Мова С + + дає вам можливість застосовувати ці операції до змінних, у яких зберігаються символи, цілі числа і навіть числа з плаваючою точкою.
- Арифметичні операції привласнення дають вам можливість записувати більш короткі арифметичні вирази, в яких перший операнд є також змінної, що приймає результат обчислень.
- Оператор sizeof повертає як для типів даних, так і для змінних їх розмір у байтах.
- Механізм приведення типу дає вам можливість форсувати перетворення типу виразу.
- Операції відносин і логічні операції дають вам можливість будувати логічні вирази.
- Булеві вирази об'єднують операції відносин і логічні операції для формулювання нетривіальних умов. Ці вирази дозволяють програмі приймати складні рішення.
- Умовне вираз пропонує вам коротку форму для простого оператора if-else з двома альтернативами.
- Операції маніпулювання битами виконують порозрядним операції AND, OR, XOR і NOT. Крім того, в С + + підтримуються порозрядним операції зсуву>.
- Операції маніпулювання битами з привласненням пропонують короткі форми для простих операцій маніпулювання битами.
Літери і цифри
Безліч символів Сі включає великі і малі літери з англійського алфавіту і 10 десяткових арабських цифр:
-великі англійські букви: ABCDEFGHIJKLMNOPQRTUV WXYZ
-малі англійські букви: abcdefghijklmnopqrtuv wxyz
-десяткові цифри: 0 1 2 3 4 5 6 7 8 9
Букви та цифри використовуються при формуванні констант, ідентифікаторів і ключових слів. Всі ці конструкції описані нижче. Компілятор Сі розглядає одну й ту саму малу і велику букви як відмінні символи. Якщо в даній запису використані малі літери, то заміна малої літери "a" на велику літеру "A" зробить відмінною даний запис від попередньої.
пробільні символи
Пробіл, табуляція, переклад рядка, повернення каретки, нова сторінка, вертикальна табуляція і новий рядок-це сиволом, звані пробільними, оскільки вони мають те ж саме призначення, як і пробіли між словами і рядками на друкованій сторінці. Ці символи розділяють об'єкти, визначені користувачем, такі, як константи і ідентифікатори, від інших об'єктів програми.
Символ CONTROL-Z розглядається як індикатор кінця файлу. Компілятор ігнорує будь-який текст, наступний за символом
CONTROL-Z.
Компілятор Сі ігнорує пробільні символи, якщо вони не використовуються як роздільники або як компоненти константи-символу або строкових літералів. Це потрібно мати на увазі, щоб додатково використовувати пробільні символи для підвищення наочності програми (наприклад, для перегляду редактором текстів).
Знаки пунктуації та спеціальні символи
Ці символи мають спеціальний сенс для компілятора Сі. Їх використання в мові Сі описується в подальше утримання керівництва. Знаки пунктуації з безлічі представимо символів, які не представлені в цьому переліку, можуть бути використані тільки в строкових літерали, константах-символах і коментарях.
ESC-послідовності
ESC-послідовності-це спеціальні символьні комбінації, які представляють пробільні символи і неграфіческіе символи в рядках та символьних константах.
Їх типове використання пов'язане зі специфікацією таких дій, як повернення каретки і табуляція, а також для завдання літеральних уявлень символів, таких як символ лапки. ESC-послідовність складається з похилої риси вліво, за якою слідує літера, знаки пунктуації ' "або комбінація цифр. У таблиці 2.2. Наведений список ESC-послідовностей мови Сі.
Якщо похила риска вліво передує символу, не включеному до цього списку, то похила риска вліво ігнорується, а символ представляється як літеральний. Наприклад, зображення c представляє символ "c" в літеральной рядку або константі-символі.
Послідовності ddd і xdd дозволяють задати будь-який символ в ASCII (Американський стандартний код інформаційного інтерфейсу) як послідовність трьох вісімкових цифр або двох шістнадцятиричних цифр. Наприклад, символ пробілу може бути заданий якo double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof while
do if static volatile
Ключові слова не можуть бути перевизначені. Тим не менш, вони можуть бути названі іншим текстом, але тоді перед компіляцією вони повинні бути замінені за допомогою препроцесора на відповідні ключові слова.
Ключові слова const і volatile зарезервовано для майбутнього використання.
Наступні ідентифікатори можуть бути ключовими словами для деяких програм:
cdecl
far
fortran
huge
near
pascal
Коментарі
Коментар-це послідовність символів, яка сприймається компілятором як окремий пробільний символ або, іншими словами, ігнорується.
Коментар має наступну форму подання:
/**/,
де може бути будь-якою комбінацією символів з безлічі представимо символів, включаючи символи нового рядка, але виключаючи комбінацію * /. Це означає, що коментарі можуть займати більше одного рядка, але не можуть бути вкладеними.
Коментарі допускаються скрізь, де дозволені пробільні символи. Компілятор ігнорує символи коментаря, зокрема, у коментарях допускається запис ключових слів і зто не призведе до помилки. Так як компілятор розглядає коментар як символ пробілу, то коментарі не можуть з'являтися всередині лексем.
Наступні приклади ілюструють деякі коментарі:
/* Comments can separate and document
lines of a program. * /
/* Comments can contain keywords such as for
and while * /
/*******************************************
Comments can occupy several lines. *******************************************/
Так як коментарі не можуть містити вкладених коментарів, то наступний приклад буде помилковим:
/* You cannot/* nest */comments * /
компілятор розпізнає першу комбінацію */після слова nest як кінець коментаря. Потім, компілятор спробує обробляти залишився текст і виробить повідомлення про помилку. Щоб обійти компіляцію коментарів великих розмірів, потрібно використовувати директиву # if препроцесора.
Лексема
Коли компілятор обробляє програму, він розбиває програму на групи символів, званих лексемами. Лексема-це одиниця тексту програми, яка має певний сенс для компілятора і яка не може бути розбита надалі. Операції, константи, ідентифікатори, ключові слова, описані в цьому розділі, є прикладами лексем. Знаки пунктуації, такі як квадратні дужки ([]), фігурні дужки ({}), кутові дужки (), круглі дужки і коми, також є лексемами. Межі лексем визначаються пробільними символами та іншими лексемами, такими як операції та знаки пунктуації. Щоб попередити неправильну роботу компілятора, забороняються пробільні символи між символами ідентифікаторів, операціями, що складаються з декількох символів і символами ключових слів.
Коли компілятор виділяє окрему лексему, він послідовно об'єднує стільки символів, скільки можливо, перш ніж перейти до обробки наступної лексеми. Тому лексеми, не розділені пробільними символами, можуть бути проінтерпретовані невірно.
Наприклад, розглянемо наступне вираз:
i + + + j
У цьому прикладі компілятор спочатку створює з трьох знаків плюс найдовшу з можливих операцій (++), а потім обробить залишився знак +, як операцію додавання (+). Вираз проінтерпретіруется як (i ++)+( j), а не як (i )+(++ j). У таких випадках необхідно використовувати пробільні символи або круглі дужки, щоб однозначно визначити ситуацію.
ВИХІДНІ текст прикладу
// Програма VAR.CPP, що ілюструє прості змінні
# include
int main ()
(
int i, j = 2;
double x, y = 355.0/113;
i = 3 * j;
cout