🔹 Что такое константы
При проектировании программы часто нужны неизменяемые данные — константы.
Константа, в отличие от переменной, не может менять значение во время выполнения программы.
В C++ существует два способа объявления констант:
1. С помощью модификатора const
const double pi = 3.14159265358979323846;
const int Il = 96;
🟢 Такие объекты обязательно инициализируются при объявлении.
После этого их значение нельзя изменять:
- нельзя использовать в операциях присваивания (
=); - нельзя применять инкремент (
++) или декремент (--).
2. С помощью директивы #define
#include <iostream>
#define pi 3.14159265358979323846
#define Il 96
Директива #define создаёт именованную константу ещё до компиляции программы.
Обычно размещается в начале файла после подключаемых библиотек (#include).
🔹 Арифметические операторы
В C++ арифметические действия выполняются при помощи следующих операторов:
| Оператор | Действие | Пример |
|---|---|---|
+ | сложение | a + b |
- | вычитание | a - b |
* | умножение | a * b |
/ | деление | a / b |
% | остаток от деления (только для целых) | a % b |
++ | инкремент (увеличение на 1) | x++ |
-- | декремент (уменьшение на 1) | y-- |
🔸 Деление целых чисел (/)
Если оба операнда имеют целый тип, то результат — только целая часть деления.
int x = 23, y = 3;
int z = x / y; // z = 7
int x = 20, y = 6;
int z = x / y; // z = 3
🔸 Деление с остатком (%)
Оператор % возвращает остаток от деления двух целых чисел.
int x = 23, y = 3;
int z = x % y; // z = 2
int x = 20, y = 6;
int z = x % y; // z = 2
🔸 Деление вещественных чисел
Если хотя бы одно из чисел вещественное (float, double),
результат деления будет дробным, как в обычной математике:
double a = 7.0 / 3; // a = 2.33333
⚠️ Оператор % не применяется к вещественным типам.
🔸 Приоритет операций
Порядок действий совпадает с математическим:
- Сначала выполняется умножение, деление и остаток от деления (
*,/,%), - затем сложение и вычитание (
+,-), - при необходимости порядок можно изменить с помощью скобок
().
🔹 Инкремент и декремент
| Оператор | Описание | Пример |
|---|---|---|
++ | Увеличивает значение переменной на 1 | x++; // то же, что x = x + 1; |
-- | Уменьшает значение на 1 | y--; // то же, что y = y - 1; |
+= | Увеличивает значение на указанное число | x += 5; // x = x + 5; |
-= | Уменьшает значение на указанное число | x -= 2; // x = x - 2; |
*= | Умножает переменную на значение | x *= 3; // x = x * 3; |
/= | Делит переменную на значение | x /= 2; // x = x / 2; |
%= | Остаток от деления | x %= 2; // x = x % 2; |
🔹 Примеры работы с константами
Вариант 1 — директива #define
#include <iostream>
#define pi 3.14159265358979323846
using namespace std;
int main() {
double R;
cout << "Радиус окружности R = ";
cin >> R;
cout << "Площадь круга S = " << 2 * pi * R << endl;
return 0;
}
📘 Здесь константа pi задана директивой #define.
Вычисление происходит прямо в операторе вывода.
Вариант 2 — модификатор const
#include <iostream>
using namespace std;
int main() {
const double pi = 3.14159265358979323846;
double R, S;
cout << "Радиус окружности R = ";
cin >> R;
S = 2 * pi * R;
cout << "Площадь круга S = " << S << endl;
return 0;
}
📘 Здесь используется модификатор const, а результат сохраняется в переменную S.
Такое решение удобно, если значение потом нужно использовать ещё раз.
❌ Ошибочный вариант
const double pi; // ОШИБКА: константа не инициализирована
pi = 3.14; // ОШИБКА: нельзя присваивать после объявления
🔴 Константы обязательно должны получать значение при объявлении,
иначе компилятор выдаст ошибку.
🧠 Итоги
| Понятие | Что делает | Пример |
|---|---|---|
const | создаёт константу, значение которой нельзя изменить | const int n = 10; |
#define | определяет постоянное значение на этапе компиляции | #define SIZE 100 |
/ | деление | 7 / 3 → 2 |
% | остаток от деления | 7 % 3 → 1 |
++, -- | шаг +1 / –1 | x++, y-- |
+=, -=, *=, /= | укороченные формы арифметических действий | x += 5; |
