Наступна тема, що входить в основи програмування – це типи даних, змінними і константами. У більшості випадків перші теми у вивченні будь-якого курсу – це нудна теорія. Так вже складається, що щоб почати писати більш-менш цікаві програми, потрібно дізнатися деякі основи і отримати базові знання. Я, звичайно, постараюся коротше і цікавіше розкрити тему цієї статті, але будьте терплячими. У цій статті ми розберемося з тим, що ж таке типи даних і навіщо вони нам знадобляться в програмуванні, а також дізнаємось про змінні та константи.
Типи даних. Спочатку відповім “навіщо” існують типи даних. Дивіться, Припустімо, що нам потрібно написати програму, яка виводить на екран дані про вік, вагу та зріст людини. Але, щоб програма могла звертатися до цих даних, їх треба зберігати десь в оперативній пам'яті комп'ютера, а вже потім “попросити” показати їх. Для цього нам необхідні типи даних – щоб компілятор “зрозумів” скільки пам'яті повинно бути виділено для даних, і що саме в цій пам'ять буде зберігатися (ціле число (вік), дійсне (вага та зріст), символи і т. д.).
Типи даних можна розбити на три групи: числові, символьні і логічні. Щоб вказати тип даних використовуються спеціальні зарезервовані (ключові) слова. Нижче ми їх розглянемо і вкажемо скільки пам'яті для них виділяється і які дані вони можуть зберігати.
Числові типи даних: для зберігання цілих чисел (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 позначають різні змінні.
Хочете приділити більше часу навчанню – подивіться відео-уроки!
Про константи, описано в цьому відео:
Якщо у вас залишилися питання або щось не вийшло, напишіть в коментарях. Обов'язково розгляньте додаткові задачі і рішення по цій темі.
Точнее 1000000000000001 на 1111111111111110
З помощю якого типу або як можо записати це число в кубі 49999982000001620
Ні з яким стандартним типом C ++ це зробити не можна (це нікому не потрібно).
Але це можна зробити з рядковим поданням (char[], string) числа, попередньо визначивши для такого типу арифметичні операції: +, -, x, / і т.д.
для обчислень не обмеженої точності (довжини) існують спеціальні сторонні пакети-бібліотеки.
Ввів все правильно, але коли даю команду Ctr + F5, то сама програма з'являється на мілісекунди і тут же закривається, підкажіть, що я зробив не так.
З.Ы: Хоча в цю мілісекунду встигаю побачити, що з'являється, що має….
повернення перед 0; система напиши(“пауза”);
Для початку введи бібліотеку #include , а потім в самому кінці, повернення перед 0; PrintDirect _getch(); і прога не закриватиметься автоматом.
а яка різниця між типами даних int і long????
Розмір, длина.
І як наслідок – максимальні значення, які можна зберігати в змінних таких типів.
Яким типом даних записувати літери ?
Приклад :
Введіть своє ім'я .. ?
(Ввів своє ім'я)
Вітаю , ..
букви – char.
слово, рядок – масив char, char[]. рядок Або.
Але!
Якщо вас цікавлять російськомовні літери / слова (або китайські, арабські … відмінні від англійських), то тип букв повинен бути wchar_t, а рядки – wchar_t[] або wstring.
допоможи будьласка, чому обов'язково inBox , це ім'я змінної int, я ввів спеціально basket , вказує на помилку basket, але чому все начебто за правилами?
Мінлива inBox визначена як ціле число, в її записи (в тексті програми, або при введенні з клавіатури при виконанні) можуть зустрічатися тільки символи цифр від 0 до 9. поява будь-якого іншого символу буде розцінено як помилка пов'язана з порушенням типу inBox.
Вибачте ,розібрався, все поки з яблуками зрозуміло ….
зробив як зазначено в прикладі
вийшло купа помилок
1. Если “вийшло купа помилок” – значить зовсім ні “як зазначено в прикладі”.
2. А коли “купа помилок”, то потрібно сюди скопіювати текст хоча б 1-2-х основних помилок, щоб отримати допомогу і підказку … екстрасенси тут розійшлися по тимчасовим відпусток без грошового утримання.