📘 Тема 1.3. Необходимый материал#
Шпаргалка по конструкциям, которые пригодятся для задач на условия.
1. Логический тип bool#
Переменная типа bool хранит одно из двух значений: true (истина) или false (ложь).
bool isReady = true;
bool isEmpty = false;
cout << isReady << endl; // 1
cout << boolalpha << isReady << endl; // true
Заметка
По умолчанию
coutпечатаетboolкак1или0. Чтобы вывести словаtrue/false, используйтеboolalpha.
2. Операторы сравнения#
Результат любого сравнения — значение типа bool.
| Оператор | Значение | Пример | Результат |
|---|---|---|---|
== |
равно | 5 == 5 |
true |
!= |
не равно | 5 != 3 |
true |
> |
больше | 5 > 3 |
true |
< |
меньше | 5 < 3 |
false |
>= |
больше или равно | 5 >= 5 |
true |
<= |
меньше или равно | 5 <= 3 |
false |
int a = 7, b = 3;
bool result = a > b; // true
Предупреждение
=— это присваивание,==— это сравнение.x = 5; // записать в x число 5 x == 5 // проверить, равен ли x пяти
3. Логические операции#
| Операция | Запись | Когда истинно |
|---|---|---|
| И (конъюнкция) | && |
когда оба условия истинны |
| ИЛИ (дизъюнкция) | || |
когда хотя бы одно условие истинно |
| НЕ (инверсия) | ! |
меняет значение на противоположное |
| Исключающее ИЛИ | ^ |
когда истинно ровно одно из двух |
Таблицы истинности#
A |
B |
A && B |
A || B |
A ^ B |
|---|---|---|---|---|
true |
true |
true |
true |
false |
true |
false |
false |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
false |
false |
A |
!A |
|---|---|
true |
false |
false |
true |
Примеры#
bool a = && ; // false
bool b = || ; // true
bool c = !; // false
Совет
У
&&приоритет выше, чем у||. Ставьте скобки, чтобы не запутаться:bool ok = || ;
4. Частые проверки#
Число в диапазоне#
bool inRange = && ; // x от 10 до 20 включительно
Внимание
Запись
10 <= x <= 20в C++ не работает так, как в математике. Правильно:10 <= x && x <= 20.
Чётность и делимость#
bool isEven = ; // чётное
bool isOdd = ; // нечётное
bool div5 = ; // делится на 5
Знак числа#
bool isPositive = x > 0;
bool isNegative = x < 0;
bool isZero = x == 0;
Одно из нескольких значений#
bool isWeekend = || ;
Символ — буква или цифра#
char c;
bool isUpper = ;
bool isLower = ;
bool isDigit = ;
Последняя цифра числа#
int last = x % 10; // последняя цифра
int lastTwo = x % 100; // две последние цифры
5. Условный оператор if#
Блок выполняется, только если условие истинно.
if
int temperature;
cin >> temperature;
if
6. if-else — два варианта#
if else
int age;
cin >> age;
if else
7. if - else if - else — несколько вариантов#
Условия проверяются сверху вниз. Выполняется первая ветка, условие которой истинно, остальные пропускаются.
if else if else
int speed;
cin >> speed;
if else if else
Важно
Порядок условий важен. Если в примере выше сначала проверить
speed > 60, то при скорости150выведется «Быстро» — до проверкиspeed > 120программа просто не дойдёт.
8. Вложенные условия#
Внутри одного if или else можно написать ещё один if.
int x, y;
cin >> x >> y;
if else
9. Тернарный оператор ?:#
Короткая запись выбора одного из двух значений.
условие ? значение_если_истина : значение_если_ложь
int a = 7, b = 3;
int bigger = ? a : b; // 7
cout << << endl; // odd
10. Полезные функции#
max и min#
int a = 5, b = 9, c = 2;
cout << << endl; // 9
cout << << endl; // 5
cout << << endl; // 9 — максимум из трёх
Модуль числа abs#
cout << << endl; // 12
cout << << endl; // 7 — расстояние между 3 и 10
cout << << endl; // 2.5
Вывод дробного числа с нужным количеством знаков#
double price = 1234.5;
cout << fixed << << price << endl; // 1234.50
Остаток от деления отрицательного числа#
cout << % 24 << endl; // -5, а не 19
cout << % 24 << endl; // 19
11. Повторить действие несколько раз#
Иногда нужно вывести один и тот же символ k раз.
int k = 4;
// способ 1: цикл
for
cout << endl; // ****
// способ 2: строка из k одинаковых символов
cout << << endl; // ####
Цикл while повторяет блок, пока условие истинно:
int n = 1;
while
cout << n << endl; // 128
12. Побитовые операции#
Работают с битами целых чисел. Не путайте с логическими && и ||.
| Операция | Запись | Пример (a = 5, b = 3) |
Результат |
|---|---|---|---|
| побитовое И | & |
a & b |
1 |
| побитовое ИЛИ | | |
a | b |
7 |
| побитовое исключающее ИЛИ | ^ |
a ^ b |
6 |
| сдвиг влево (умножение на 2ⁿ) | << |
a << 1 |
10 |
| сдвиг вправо (деление на 2ⁿ) | >> |
a >> 1 |
2 |
13. Типичные ошибки#
| ❌ Неправильно | ✅ Правильно |
|---|---|
if (x = 5) |
if (x == 5) |
if (1 <= x <= 10) |
if (1 <= x && x <= 10) |
if (x > 70) для «не менее 70» |
if (x >= 70) |
| Сначала мягкое условие, потом строгое | Сначала строгое, потом мягкое |
if (x > 0); { ... } — лишняя ; |
if (x > 0) { ... } |
Вывод подсказок вроде Введите число: |
Выводить только то, что требуется в задаче |
14. Шаблон программы#
using namespace std;
int