Первые шаги в программировании: основы, Си, Objective-c
1.7 Булевая алгебра. Логические выражения
В 19 веке Джордж Буль заложил основы булевой алгебры.
Джордж Буль оценивал каждое высказывание в виде утверждений имеющих либо ложное, либо истинное значение.
Основополагающие принципы булевой алгебры лежат в основе вычислительных операций в каждом компьютере.
Во всех языках программирования в том или ином виде присутствует логический тип данных - который присутствует в логических выражениях.
В информатике такие данные имеют только два возможных значения - ДА или НЕТ.
Зачастую логическое значение реализуется через численный тип, где:
- "0" - это ЛОЖЬ (НЕТ, False)
- "1" - это ИСТИНА (ДА, True)
Высказывания булевой алгебры обозначаются буквами латинского алфавита и над ними можно проводить следующие операции:
- Отрицание - оформляется в виде черточки над буквой
- Дизъюкция (сложение) - x + y (логическое "ИЛИ", "OR")
- Конъюкция (умножение) - x * y (логическое "И", "AND")
В соответствии с данными типами операций можно составить таблицы истинности:
Таблица истинности для логического ИЛИ - сложение
a
b
a + b
0
0
0
0
1
1
1
0
1
1
1
1
Другими словами:
Если хоть один из элементов имеет значение ИСТИНА, то все выражение является ИСТИНОЙ
Таблица истинности для логического И - умножение
a
b
a * b
0
0
0
0
1
0
1
0
0
1
1
1
Другими словами:
Если хоть один из элементов имеет значение ЛОЖЬ, то все выражение является ЛОЖНЫМ
Отрицание
a
не а
0
1
1
0
В данном случае происходит инверсия значения на противоположное.
Логическое выражение
Логическое выражение в программировании основанные на булевой алгебре - это информация которая может быть либо истинна либо ложная не зависимо ни от каких внешних факторов.
Примеры логических выражений:
Например выражение:
- "2 + 6 = 5" - это логическое выражение, значением которого является ЛОЖЬ
- "На улице идет дождь" - это не логическое выражение с точки зрения компьютера, поскольку его значение зависит от внешних факторов.
- "x > 6", где x - некое числовое представление - является логическим выражением, поскольку в программе в любой момент времени и имеет какое-либо значение. Это выражение либо ИСТИННО если x > 6, либо ложно, если это не так.
В компьютере не бывает промежуточных положений.
С логическими выражениями можно производить математические операции: сложение, вычитание...
Цепочка логических выражений может быть довольно длинной и чтобы не ошибиться в порядке выполнения математических операций следует использовать круглые скобки.
5 + 2 * 2 = 20 - однако если поставить скобки
(5 + 2) * 2 = 14
На основе булевой алгебра производится вычисление формально-логических выражений.