Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Алгебра логики в C++

Определение 1

C++ — это компилируемый, статически типизированный язык программирования общего назначения.

Введение

Для выполнения действий над целыми числами в языке программирования C++ имеется тип переменных int. Но различные процедуры над целыми числами не являются единственным инструментом в арсенале этого языка. Одними из наиболее важных компонентов в программировании могут считаться логические операции.

Если переменные типа int способны сохранять любой набор целых чисел, а операции над этими числами должны подчиняться арифметическим законам, то логические переменные способны сохранять только одно из двух значений, а именно, истина или ложь. Все операции над такими переменными должны подчиняться законам алгебры логики.

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

«коридор плохо освещён и по коридору движется человек».

Оно включает в свой состав два логических значения, а именно, утверждения про «плохое освещение» и «движущегося человека», и одного оператора (союз «и»). Его результирующим значением тоже будет логическое значение, которое может быть использовано, например, в качестве сигнала для включения света в коридоре помещения, к примеру, гостиницы.

В программировании переменные, хранящие логические значения, именуются булевыми (логическими) переменными, а операторы, выполняющие над ними различные процедуры, называются булевыми операторами или просто логическими операторами.

Алгебра логики в C++

Операторы сравнения применяются для проверки конкретных условий, то есть, ложности или истинности. Однако они способны проверить лишь одно условие за некоторый промежуток времени. Но случаются ситуации, когда необходимо проверить сразу целый ряд условий. К примеру, чтобы определить, выиграл ли лотерейный билет, следует выполнить сравнение всех цифр купленного билета с выигрышными цифрами. Если в лотерее имеется шесть цифр, то необходимо исполнить шесть сравнений, причём все они должны быть true (истинными).

«Алгебра логики в C++» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Также часто может потребоваться выяснить, является ли хотя бы одно из нескольких условий истинным. Это можно сделать при помощи логических операторов. Они предоставляют возможность проверки сразу нескольких условий за один раз. В языке программирования C++ имеется три логических оператора, а именно, НЕ, ИЛИ, И.

Рассмотрим логический оператор НЕ. Если в исходном состоянии операнд имел значение true, то, после выполнения операции логического НЕ, результатом будет false. А когда операнд до использования оператора НЕ имел значение false, то после его использования значением операнда станет true. Иными словами, логический оператор НЕ изменяет результат на противоположный исходному значению. Его часто используют в условных выражениях, например, так:

bool bTooLarge = (x > 100); // переменная bTooLarge будет true, если x > 100

ìf (!bTooLarge)

// Выполняем какие-либо действия с x

Else

// Вывод ошибки

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

Далее рассмотрим логический оператор ИЛИ. Когда хотя бы одно из двух условий определяется как истинное, то логический оператор ИЛИ принимает значение true.

В качестве примера рассмотрим следующую программу:

Программа. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Программа. Автор24 — интернет-биржа студенческих работ

В данном примере использовался логический оператор ИЛИ для того, чтобы выполнить проверку, является ли хотя бы одно из двух условий истинным:

  1. Левое (value == 0).
  2. Или правое (value == 1).

В случае, когда хотя бы одно из условий является истинным (true) или оба сразу истинны, то выполняется ветвление по if. А когда ни одно из условий не является истинным, то результат определяется как ложный и ветвления не будет. Имеется также возможность связать сразу несколько условий:

Условия. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Условия. Автор24 — интернет-биржа студенческих работ

Далее рассмотрим логический оператор И. Лишь при условии, что оба операнда являются истинными, логический оператор И тоже имеет значение true. В противном случае оператор имеет ложное значение, то есть false.

К примеру, необходимо выяснить, располагается ли значение переменной х в диапазоне от десяти до двадцати. При этом существуют следующие условия:

  • Необходимо выполнить проверку, значение х больше десяти или нет.
  • Необходимо выполнить проверку, значение х меньше двадцати или нет.

Ниже приведён текст программы:

Программа. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Программа. Автор24 — интернет-биржа студенческих работ

Когда оба условия являются истинными, то исполняется часть ìf, а когда хотя бы одно или сразу оба условия являются ложными, то исполняется часть else. То есть, для того, чтобы логическое И выполняло возврат true, оба операнда обязаны иметь значение истинны.

Когда один из операндов определяется как false, то оператор И обязан сразу же сделать возврат значения false вне зависимости от результата второго операнда, причём даже не обрабатывая его. Такая ситуация обозначается как короткий цикл вычислений, и он исполняется, прежде всего, для оптимизации.

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

Дата написания статьи: 01.02.2022
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot