1.2. Коментарі
// Це текст, який до кінця рядка розглядається
* позначають якимось спеціальним знаком, наприклад, знаком
* за команду особливо коли запис проводиться літерами
1.3. Зарезервовані слова та типи даних
Будь-яка мова програмування включає команди та вказівки необхідні для виконання цих команд. Для запису таких дій використовують спеціальні слова. Ці слова несуть певне смислове навантаження, і тому записуються за певними правилами про які ми поступово розповідатимемо. Вказані слова називаються ключовими або зарезервованими.
Зарезервовані словаце заздалегідь обумовлений список англійських слів та кількох символів, який використовується як команди мови. З деякими їх ми вже зустрічалися, наприклад, словаmain,define. Зустрічаючи таке слово, комп'ютер «розуміє» що далі потрібно зробити і сплутає його ні з яким іншим словом. Таких слів у С++ небагато, менше 60. Можна сказати, що як тільки ми їх вивчимо, так відразу зрозуміємо можливості мови С++. Зарезервований символ ми теж зустрічали це решітка#.
Тепер перейдемо до так званих типів даних, але спочатку скажемо про те, що являють собою дані. Для початку можна сказати так: дані це те з чим працює програма, тобто не команди, а те, що потрібно для виконання цих команд. Наприклад, для додавання потрібні числа, для формування тексту символи, а можливо, слова і цілі фрази. Після такого не дуже хорошого визначення намагатимемося зрозуміти, що таке тип даних.
Інформація, що міститься в осередках пам'яті може мати різний зміст. Це можуть бути, наприклад, цілі числа або числа з дробовиною або символи. Проте все це виражено у виглядіпослідовності нулів та одиниць. Звертаючись до комірки пам'яті, компілятор може трактувати інформацію, що міститься в ній, як число, літеру, команду або інформацію іншого типу. Наприклад, двійкове число 01000001 може позначати букву Aабо десяткове число 65. Тому, при створенні програм, потрібно вказувати, яка інформація зберігається в кожному осередку. У цьому випадку за рахунок застосування різних схем кодування вдається правильно інтерпретувати інформацію, що міститься. На щастя, зробити це нескладно, практично все виконується автоматично. Для цього в мовах програмування використовуються поняття «типиданих».
Спробуємо дати початкове визначення цього поняття. Тип даних це правило визначення розміру осередку пам'яті та способу кодування та розкодування інформації, що знаходиться в ній.
Типи даних утворюють перелік видів даних, що використовуються у мові. Наприклад, деякі мови використовують лише цілі числа, дробові числа та символи. В інших цей список розширений введенням булевських чиселtrueіfalse, а також рядків, що складаються із символів, по-третє, він розширений ще більше, наприклад, введенням записів, множин тощо. .
Часто цей список буває закритим. Це означає, що програміст може працювати лише з обмеженою кількістю змінних, що входять до названого списку. У С++ це негаразд. Програміст, що працює в С + + може необмежено розширювати кількість типів змінних. Проте є кілька базових типів. Тут ми розглянемо лише деякі з них. Насамперед, це символьний тип. До символьного типу входять усі символи, що зустрічаються на клавіатурі. Саме символи, а не допоміжні кнопки. Однобайтових символів може бути 28 = 256 штук. Для кодування символів достатньо одного байта.
Кожен тип данихмає свою назву. Символьний тип має ім'яcharвід слова англійського словаcharacter(буква, ієрогліф, цифра, знак). До речі, про ієрогліфи. Для кодування багатьох національних алфавітів 256 символів виявляється недостатньо. Тому іноді для кодування символів використовуються два байти. Такий тип кодування називається юнікодом. Юнікод дозволяє підтримувати всі відомі у світі алфавіти та елементи ієрогліфів.
Іншим типом є цілі числа. У С++ цілий тип називається типомintвід словаinteger(цілий). Для розміщення числа типу int використовується 4 байти. У чотирьох байтах можна помістити 2 32 різних чисел без знака або числа від 2 147 483 648 до 2 147 483 647. Зазвичай такого діапазону цілих чисел цілком достатньо. У комп'ютерах ранніх версій використовувалося лише два байти, тому діапазон чисел типу intв там значно вже від -32768 до 32767. У комп'ютерах з 32 розрядних процесорах такі числа теж можна використовувати, тільки називаються вониshort(короткий) абоshortint. Обидва імені можна використовувати у програмах, т.к. вони означають те саме.
Крім цілих чисел програма має працювати з дрібними числами. У С++ для цього використовуються так звані числа з плаваючою точкою (комою). Не варто лякатися, з такими числами ви давно знайомі. Наприклад, 123,456 можна записати як 1,23456∙10 2 , тобто. такі числа мають дрібну частину. Такий тип чисел, а точніше тип даних, називаєтьсяfloat(плаваючий). Зверніть увагу, що дробова частина відокремлюється від цілої частини крапкою, а не комою. Це справедливо для запису дрібних сисел будь-яких типів. Для запису числа типуfloatвикористовується 4 байти. Числа цього можуть бути як позитивними і негативними. Діапазон змін таких чисел приблизно дорівнює 10-38 До 10 38 .
Іншим типом дробових чисел є число типуdouble(подвійний). Такі числа мають дрібну частину. Наприклад,3.1415926. Для запису числа типуdoubleвикористовується 8 байтів. Числа цього можуть бути як позитивними і негативними. Мінімальне за модулем число дорівнює 10 -308 , максимальне 10 308 . Слід розуміти, що цілі числа заприховуються точно, а дробові числа зберігаються як наближене значення, тобто тільки
Порівняємо записи цілих чисел і чисел із плаваючою точкою. Якщо програмі зустрінуться числа 2 і 2.0 то компілятор С++ трактуватиме їх по-різному. Перше розглядається як ціле - int (4 байти), друге як double (8 байт), тому, що у нього є дробова частина. Не має значення, що вона дорівнює нулю. Число типуdoubleможе бути записано векспоненційній формі. Зокрема така вистава зручна для дуже великих і дуже малих за модулем чисел. Наприклад число 2873620000, яке інакше можна записати як2,87362∙10 9 С++ записується як2.87362е9, тобто після знакаекоштує ступінь у яку потрібно звести число 10. Таке позначення вживається тому, що в звичайних клавіатурах не передбачено спосіб запису з використанням верхнього індексу. Число, що стоїть перед знакоменазивається мантисою. Число, що стоїть після знакаеназивається показником ступеня, його можна розглядати як покажчик напрямку та кількості цифр на які потрібно перемістити десяткову точку. Наприклад, щоб записати число 3.62е4 у вигляді звичайного десяткового дробу потрібно перенести десяткову точку на чотири позиції вправо, в результаті вийде число 36200.0. Якщо після символуекоштує негативне число, десяткову точку потрібно перенести ліворуч, при необхідності додаючи після неї нулі. Так число3.62е-4 означаєтеж саме, що 0.000362. Ці приклади показують, що з експоненційному поданні числа десяткова точка хіба що пливе відповідного ступеня кількість розрядів. Звідси і назва такого типу – числа з плаваючою точкою.
Число, яке стоїть перед символоме, може містити або не містити десяткову точку. Число, що стоїть післяе, не повинно містити десяткової точки.
У 8 байтів можна записати обмежену кількість значущих цифр мантиси, зазвичай не менше 14, тому від чисел типу doubleможна очікувати сюрпризів, пов'язаних із округленням. Для цілих чисел заокруглень немає.
Ймовірно, після такого короткого введення у типи чисел у читача постали нові питання. Наприклад, які типи чисел можуть використовуватися в С++?. Чому тип чисел із дробовою частиною називається double(подвійний)? Чи є типодного (одинарний)? Відповіді на ці запитання читач може отримати з наступної таблиці: