Тип bool и логические выражения

Сегодня мы узнаем с вами еще об одном типе данных, который есть в C++. И по названию темы вы уже поняли, что речь пойдет о типе bool.
Логические выражения – это та самая тема, которая аккуратно приближает нас к изучению условных операторов. Но пока это очень маленький шажок, который может показаться для кого-то довольно сложным.
Для того чтобы понять, что такое логические выражения, нам придется ввести две – три новых сущности. И первой из них будет новый тип данных.
Тип данных bool
Bool – это сокращение от boolean, по-английски – логический. Происхождение этого слова интересное, был такой человек, как Джордж Буль, который предложил Алгебру логики или Булеву алгебру. Собственно она и стала некой основой в языках программирования. Зная Алгебру логики, вам будет намного проще.
В этом уроке мы рассмотрим с вами некоторые ее базовые аспекты, которые чаще всего используются в программировании.
Кроме этого, особенность типа данных bool заключается в том, что он может принимать всего лишь два значения:
- true – истина;
- false – ложь.
Также можно провести аналогию:
- true = 1;
- false = 0.
Например, номер этого занятия 3, вы скажете не правда, т.е. false. А если я скажу, что мы изучаем C++, вы со мною согласитесь, т.е. true.
Сколько памяти выделяется под тип bool?
C++ выделяет минимум 1 байт на переменную, поэтому тип bool будет занимать у нас всегда именно эту величину. Вне зависимости от значений (true или false).
Что такое логическое выражение?
Логическое выражение – это некоторая конструкция языка C++, результат вычисления которой будет 1 или 0 (true или false).
Логические выражения состоят из трех частей.
- Под цифрами 1 и 3 скрываются те самые числа, переменные или выражения, которые мы уже привыкли использовать в наших программах.
- Под цифрой два мы понимаем сравнение тех самых первой и третей частей.
Например, 0 больше 1.
Операции сравнения
В языке C++, как и в любом другом си подобном языке 6:
- «>» – Больше;
- «<» - Меньше;
- «>=» – Больше или равно;
- «<=» - Меньше или равно;
- «==» – Равно (проверка на равенство);
- «!=» – Неравно (проверка на неравенство).
Давайте рассмотрим на примерах. Так будет наглядней. Результатом этих операций будет ответ, истина это или ложь.
- Фон области программирования белый
color == white – истина (true или 1); - В прошлом домашнем задании было 2 задачи
hw_task == 2 – истина (true или 1); - Прочтение данного урока займет более 60 минут
read_time_lesson > 60 – ложь (false или 0); - В данном уроке меньше 1000 символов текста
text_lesson_symbol < 1000 - ложь (false или 0); - Переменная а – положительная
a > 0; - Переменная а делится на 5 нацело
a % 5 == 0; - Переменная а – четная
a % 2 == 0; - Переменная а – нечетная
a % 2 != 0;
В каждом примере, мы сравниваем нашу переменную с числовым значением. В результате получаем 0 или 1 (false или true).
Сложные логические выражения
Что подразумевается под сложными выражениями? Это подразумевает в себе, что мы сравниваем уже не просто числа, переменные или арифметические выражения, а несколько логических выражений между собой.
Для чего они нам могут понадобиться?
Проще будет рассказать на примере. Вы заходите в интернет магазин и начинаете поиск товара, объединяя между собой несколько фильтров. Цена товара от 5.000 до 10.000 рублей, цвет белый. В результате вы увидите все товары стоимостью от 5.000 до 10.000 рублей белого цвета.
Это как раз и будет сложное логическое выражение.
Код выражения:
((price >= 5000) && (price <= 10000)) && color == white;
Логические операции
- && - логическое «И». Результат истинный, если оба операнда истинны;
- || - логическое «ИЛИ». Результат истинный, если хоть один из операндов истинен;
- ! – логическое «НЕ». Результат всегда противоположен операнду.
Таблица истинности логических выражений
Решение задач
Проверка на четность числа
С клавиатуры вводится целое число n. Требуется проверить, является ли оно чётным или нет.
Формат входных данных
В единственной строке вводится целое число n (∣n∣ <= 109).
Формат выходных данных
Выведите «1», если число является чётным, и «0», если нечётным.
Проверка на нечетность числа
С клавиатуры вводится целое число n. Требуется проверить, является ли оно нечётным или нет.
Формат входных данных
В единственной строке вводится целое число n (∣n∣ <= 109).
Формат выходных данных
Выведите «1», если число является нечётным, и «0», если чётным.
Три нечетных
Даны три числа a, b и c. Требуется проверить, что все три числа являются нечётными.
Формат входных данных
С клавиатуры вводятся три целых числа a, b и c, которые по модулю не превосходят 109.
Формат выходных данных
На экран нужно вывести 1, если все три числа нечётные, и 0, если хотя бы одно из них чётное.
Попадание в прямоугольник
Дана точка с координатами x и y.
Проверьте, находится ли она внутри прямоугольника, который образован точками с координатами (1, 7), (4, 7), (4, 2), (1, 2).
Формат входных данных
Даны два целых числа x и y (−10 <= x, y <= 10).
Формат выходных данных
Требуется вывести 1, если точка находится внутри прямоугольника, и 0, если снаружи или на границе.