Наступна тема, що входить в основи програмування – це типи даних, змінними і константами. У більшості випадків перші теми у вивченні будь-якого курсу – це нудна теорія. Так вже складається, що щоб почати писати більш-менш цікаві програми, потрібно дізнатися деякі основи і отримати базові знання. Я, звичайно, постараюся коротше і цікавіше розкрити тему цієї статті, але будьте терплячими. У цій статті ми розберемося з тим, що ж таке типи даних і навіщо вони нам знадобляться в програмуванні, а також дізнаємось про змінні та константи.
Типи даних. Спочатку відповім “навіщо” існують типи даних. Дивіться, Припустімо, що нам потрібно написати програму, яка виводить на екран дані про вік, вагу та зріст людини. Але, щоб програма могла звертатися до цих даних, їх треба зберігати десь в оперативній пам'яті комп'ютера, а вже потім “попросити” показати їх. Для цього нам необхідні типи даних – щоб компілятор “зрозумів” скільки пам'яті повинно бути виділено для даних, і що саме в цій пам'ять буде зберігатися (ціле число (вік), дійсне (вага та зріст), символи і т. д.).
Типи даних можна розбити на три групи: числові, символьні і логічні. Щоб вказати тип даних використовуються спеціальні зарезервовані (ключові) слова. Нижче ми їх розглянемо і вкажемо скільки пам'яті для них виділяється і які дані вони можуть зберігати.
Числові типи даних: для зберігання цілих чисел (0, 33, -27 і т.д.)
int (4 байта) – зберігає числа в діапазоні від -2 147 483 648 до 2 147 483 647
short (2 байта) – зберігає числа в діапазоні від -32 768 до 32 767
long (4 байта) – зберігає числа в діапазоні від -2 147 483 648 до 2 147 483 647
Числові типи даних: для зберігання дійсних чисел (з плаваючою точкою: –435.332, 54.77, 3.0)
float(4 байта) – зберігає дробові числа з точністю до 7 знаков после запятой
double (8 байт) – зберігає дробові числа з точністю до 15 знаков после запятой
Символьний тип: для зберігання одного символу
char (1 байт) – зберігає один символ. Наприклад: 'f', '+’ або '4’ (як символ). Одинарні лапки обов'язкові.
Типу даних для зберігання рядків в С ++ немає. Пізніше ми з вами познайомимося з тим, яким чином можна зберігати рядки в пам'яті.
Логічний тип:
bool (1 байт) – мможе приймати тільки два значення true (істина) і false (неправда)
Відразу варто звернути увагу, що все зарезервовані слова під типи даних пишуться не великими, а малими (маленькими) буквами. Якщо ви оголосите тип bool, як Bool – компілятор генерує повідомлення про помилку. В редакторі, при написанні коду, всі ключові слова С++ виділені блакитним кольором (це стосується до всіх зарезервованих слів). Так що якщо ви ввели тип, а слово не стало синім – перевірте правильність написання.
Змінними і константи. Їх назви говорять самі за себе. І змінна і константа – це певні області в оперативній пам'яті, які мають імена (ім'я задає програміст). Тільки змінна може змінювати своє значення в ході виконання програми, константа ж визначається один раз і змінюватися вже не може.
Час, наприклад, це змінна величина. Зараз, припустимо, 3 години дня, а через 2 години вже буде 5 годин вечора. А ось кількість годин у добі – це вже константа.
І змінним і константам при оголошенні обов'язково треба привласнити ім'я. Існують суворі правила, згідно з якими даються імена:
- ім'я змінної може містити маленькі і великі літери англійського алфавіту, цифри, і‘_’ (нижнє підкреслення). З нижнім підкресленням імена читаються набагато легше. Порівняйте amountofapples і amount_of_apples.
- ім'я не може починатися з цифри! amount_of_apples1 – можна, 1amount_of_apples – не можна ))
- ім'ям НЕ може бути зарезервоване слово (int, bool …). Якщо ви придумали ім'я змінної, ввели, а його підсвітило синім кольором, це означає, що дане слово в С++ є зарезервованим. Придумайте нове ім'я.
- ім'я змінної повинно бути осмисленим (логічним тому, що буде зберігати дана змінна). Тобто,. навряд чи хтось здогадається, що в змінній x зберігає значення кількість яблук. Логічніше назвати таку змінну amount_of_apples.
Оголошення і ініціалізація змінних і констант.
Як ми можна створити змінну і визначити яке значення вона буде зберігати? Для цього нам необхідно спочатку вказати тип_даних, потім дати ім'я змінної (дотримуючись правил розглянутих вище), поставити знак = (означає привласнити) і вказати значення. Наприклад створимо змінну, яка буде зберігати значення кількості яблук: INT amount_of_apples = 7;.
Присвоєння значення змінній при її створенні називається ініціалізація. Бажано завжди ініціалізувати змінні при створенні, навіть якщо ви не знаєте, яке значення змінна буде приймати під час роботи програми. В цьому випадку ініціалізуйте її нулем: INT amount_of_apples = 0;. Справа в тому, що оперативна пам'ять вільною не буває. І якщо ви просто створити змінну INT amount_of_apples; і не присвоїли їй ніякого значення, вона все одно буде зберігати якісь залишкові дані від попередніх програм. Тому, хоча це не помилка оголосити спочатку змінну, а нижче присвоїти їй значення, бажано привласнити значення цій змінній відразу , тим самим очистивши її від “сміття”. До речі, в MVS 2013, якщо ви спробуєте відобразити значення неініціалізованої змінної, компілятор видасть помилку.
Що стосується констант, то значення їм має бути присвоєно відразу при створенні. Наприклад, визначимо константа, яка буде зберігати кількість днів у тижні: const int daysInWeek = 7; Щоб дати ясно зрозуміти компілятору, що це константа, а не звичайна змінна, перед типом даних обов'язково використовувати ключове слово const.
Так, мабуть, приступимо до розгляду декількох прикладів, щоб зрозуміти і запам'ятати те, про що ми тут говорили. Не забувайте, набирати код – практикуйтесь.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // Задача: Есть 2 сумки. В одной 11 яблок, во второй 44 // Создать переменные, которые будут хранить количество яблок в сумках // и одну переменную, в которую надо записать общее количество яблок. #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); //создание переменных и инициализация int amount_of_apples1 = 11; int amount_of_apples2 = 44; int inBox = 0; // для записи общего количества cout << "В пустой коробке - " << inBox << endl; // вывод данных на экран cout << "В первой сумке - " << amount_of_apples1 << endl; cout << "Во второй сумке - " << amount_of_apples2 << endl; cout << endl; // еще один перевод на новую строку // подсчет общего количества яблок в коробке inBox = amount_of_apples1 + amount_of_apples2; // показ общего количества на экран cout << "Всего в коробку добавлено " << inBox << " яблок" << endl; return 0; } |
В рядку 15 зміннійinBox присвоєно значення 0, оскільки ми не знаємо, яке значення туди буде запсане. І в рядку 17, мы показываем начальное значение на экран. Как видите, щоб відобразити значення змінної на екрані, досить звернутися до неї по імені: cout << inBox; Зверніть увагу, як працює cout. За допомогою оператора << , Ми можемо чергувати відображення тексту і відображення значення змінної. Так ми робили в рядках 17, 19, 20 і 27. В рядку 24 в змінну inBox записується сума змінних: amount_of_apples1 + amount_of_apples2. Тобто, компілятор, спочатку складе значення цих змінних, а потім запише суму в inBox . І щоб переконатися, що все порахувано і записалося – знову виводимо значення inBox на екран – рядок 27. запускаємо програму (спочатку Ctrl + Shift + B, якщо немає помилок то далі Ctrl + F5 детальніше тут). Ось що ми побачимо:
1 2 3 4 5 | В пустой коробке - 0 В первой сумке - 11 Во второй сумке - 44 Всего в коробку добавлено 55 яблок |
Виділимо основне, що потрібно пам'ятати:
- тип даних вказується перед ім'ям змінної і визначає які дані в ній будуть зберігатися (число, символ… ) і скільки пам'яті потрібно виділити для них.
- ім'я змінній дає програміст, дотримуючись певних правил (перелічені вище).
- щоб створити (оголосити) змінну треба вказати її тип і дати ім'я. Змінну бажано відразу ініціалізувати (призначити значення під час створення): тип ім'я = значення;
- щоб оголосити константу необхідно використовувати ключове слово const і обов'язково відразу присвоїти значення: constтип ім'я = значення;
- змінним можна привласнити не тільки певне значення, та й результат обчислення: amount_of_apples1 = amount_of_apples2 + 33;
- оголошувати змінні бажано на початку main-функції. А при необхідності ще й залишити коментар, що вони будуть зберігати.
- регістр букв імені має значення. Імена Apple і apple позначають різні змінні.
Хочете приділити більше часу навчанню – подивіться відео-уроки!
Про константи, описано в цьому відео:
Якщо у вас залишилися питання або щось не вийшло, напишіть в коментарях. Обов'язково розгляньте додаткові задачі і рішення по цій темі.
Дійсно тема “Типи даних, змінні та константи у С++” написана коротко та ясно)))
Спасибо большое за информацию. Ваши статью помогают мне в изучении С++
так тримати! Пишите больше статей! Реально все понятно и доходчиво. Не то, что у нас в универе было
Красиво оформлена тема!
в планах найти талантливого человека, который бы взял на себя оформление дизайна сайта. Пока приходится делать всё своими руками. Признаться честно – дизайнер из меня никакой ))
оформление дизайна сайта будет с даной точки зрения производится на языке РНР ? или в Ворд Пресс есть уже готовые темы? в каком плане оформления Вам необходима помощь??
Нет – тему Вордпресса мы оставляем пока эту. Все устраивает. Хочется именно к статьям уникальные и запоминающиеся заглавные картинки, которые будут выполнены в одном стиле.
Спасибо за хороший обучающий материал!
Спасибо!
Почему мы использовали переменную int, а не long? Это от чего-то зависит?
Можно использовать и long. Просто он займет немного больше памяти. Но для нашего примера нам достаточно было той памяти, которая выделяется под int, для хранения значений.