Логические выражения

Программирование и логика тесно связанные понятия. Ваша программа должна уметь принимать решения, стараться заметить утомительный человеческий труд. Для этого мы должны наделить её разумом. Компьютер способен оперировать такими понятиями как "Истина"(1) и "Ложь"(0).
Этих понятий вполне достаточно для написания огромного количества алгоритмов. Всё что там необходимо, это научиться составлять логические выражения понятные компьютеру.

Давайте представим что сегодня 19.05.2024 15:00 и мы в г.Москве. На улице светит солнце, а температура +19 градусов.
Теперь когда вы это представили я напишу несколько высказываний.

  1. На улице светло и тепло
  2. На улице темно или тепло
  3. На улице светло и холодно

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

В первом высказывании мы утверждаем, что на улице светло - это истина И на улице тепло - истина в итоге всё высказывание является истинным!

Во втором высказывании уже интереснее, мы утверждаем, что на улице темно - это ложь ИЛИ на улице тепло - истина. Так как между условиями стоит слово или, то для истинности всего высказывания достаточно, чтобы одно из высказываний было истинно. Исходя из этого мы можем заключить, что это высказывание является истинным!

В третьем высказывании мы утверждаем, что на улице и светло и холодно одновременно, так как между условиями стоит слово И. Всё высказывание является ложным, так как на улице на самом деле тепло!

Когда вы видите в высказывании И - это называется конъюнкция или логическое умножение.

Когда вы видите в высказывании ИЛИ - это называется дизъюнкция или логическое сложение.

Когда вы видите в высказывании НЕ - это называется инверсия.

С помощью этих логических операторов можно составить практически любое логическое выражение. А для того, чтобы нам было проще находить результат выражения, составим таблицу истинности.

Таблица истинности

A - первое высказывание
B - второе высказывание
true - истина
false - ложь
&& - конъюнкция
|| - дизъюнкция
! - инверсия
A B A && B A || B !A !B
false false false false true true
true false false true false true
false true false true true false
true true true true false false

Пример:

#include <iostream> #include <windows.h> #include <locale> #include <string> int main() { // Установка кодировки консоли в UTF-8 SetConsoleCP(1251); SetConsoleOutputCP(1251); std::locale::global(std::locale("")); std::string login, password; std::cout << "Введите логин: "; std::getline(std::cin, login); std::cout << "Введите пароль: "; std::getline(std::cin, password); // Выполняем проверку на соответствие логина И пароля if (login == "admin" && password == "qwerty123") { std::cout << "Доступ разрешен!" << std::endl; } else { std::cout << "Неправильный логин или пароль" << std::endl; } return 0; }

В этом примере мы запросили у пользователя логин и пароль, а затем проверили их. Здесь стоит обратить внимание на 21ю строку. Если хотя-бы одно условие вернёт нам false, то всё высказывание будет ложным, как и указано в таблице истинности.

Ещё пример:
#include <iostream> #include <windows.h> #include <locale> int main() { // Установка кодировки консоли в UTF-8 SetConsoleCP(1251); SetConsoleOutputCP(1251); std::locale::global(std::locale("")); int age; std::cout << "Вход в театр бесплатен для детей младше 12 лет или для взрослых старше 60 лет\n"; std::cout << "Введите ваш возраст: "; std::cin >> age; // Выполняем проверку возраста if (age <= 12 || age >= 60) { std::cout << "Вход бесплатный!\n"; } else { std::cout << "Оплатите билет!\n"; } return 0; }

В этом примере мы проверяем два условия через ИЛИ


Мы рассмотрели основные логические выражения. Понимание логических выражений позволяет эффективно работать с логическими вычислениями в программировании.


Комментарии

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

Чтобы оставить комменатрий необходимо Авторизоваться