Перейти к содержимому

⚙️ Константы и арифметические операторы в C++


🔹 Что такое константы

При проектировании программы часто нужны неизменяемые данные — константы.
Константа, в отличие от переменной, не может менять значение во время выполнения программы.

В 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. Сначала выполняется умножение, деление и остаток от деления (*, /, %),
  2. затем сложение и вычитание (+, -),
  3. при необходимости порядок можно изменить с помощью скобок ().

🔹 Инкремент и декремент

ОператорОписаниеПример
++Увеличивает значение переменной на 1x++; // то же, что x = x + 1;
--Уменьшает значение на 1y--; // то же, что 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 / –1x++, y--
+=, -=, *=, /=укороченные формы арифметических действийx += 5;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *