Программирование на языке си ( с ) | C Sharp (Си шарп) с нуля. Сортировки | Массивы | Функции

Булева алгебра логики — таблица истинности ( конъюнкция ) и логические операции

Булева алгебра логики - это алгебра, состоящая из нулей и единиц; или истины (TRUE)и лжи (False). В программировании булева алгебра логики встречается очень часто. Например, при создании различных управляющих структур (if , while , for ).

Теперь давайте рассмотрим эту чудо алгебру поподробнее:

   Конъюнкция

В программировании конъюнкция обозначается как '&&', читается как 'И'. Вот таблица истинности для конъюнкции:

A B A && B
false false false
true false false
false true false
true true true

Для более простого понимания представляйте 0 и 1, а так как 'И' это логическое умножение - вот и умножайте.

   Дизъюнкция

В программировании дизъюнкция обозначается как '||', читается как 'ИЛИ'. Вот таблица истинности для дизъюнкции:

A B A || B
false false false
true false true
false true true
true true true

Так же легче всего понимать дизъюнкцию, если применять цифры. Т.к. логично, что при 1 + 0 получается 1, т.е. TRUE. Просто при логическом 'И' происходит умножение, а при 'ИЛИ' - сложение. Это самые простые логические операции

   Равносильность

Обозначается как '==' (двойной знак равно). Вот его таблица истинности:

A B A == B
false false true
true false false
false true false
true true true

Опять же это вам не таблица умножения, которую надо было зубрить. Тут все построенно на логических операциях и, поэтому понять это легко. Если два значения равны, то будет TRUE, если различны, то - FALSE

   Отрицание

Является унарной операцией, т.е. выполняется с одним оператором. Обозначается как знак '!'. Вот таблица истинности:

A !A
false true
true false

Читается как 'НЕ'. Т.е. (!TRUE = FALSE)

Реализация в языке С:

  1. в структуре if:
  2. if (a > b && a > c) { //тело структуры }

    Если наше условие будет верным, т.е. если a будет больше b и больше c. То тогда будет выполняться тело структуры. Причем, если a будет меньше b, то даже не произойдет второго сравнения переменной а, т. к. при конъюнкции достаточно что бы один оператор возвратил FALSE

  3. в структуре while:
  4. do {

    }
    while ( a > 5 || a < 0);

    Будем выполнять цикл, пока ИЛИ значение переменной a будет больше 5, ИЛИ а будет меньше 0

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

  1. отрицание (!)
  2. конъюнкция (И)
  3. дизъюнкция (ИЛИ)

Но если будут присутствовать скобки, то они захватят право первого хода. Вот общий пример:

int a = 0, b = 1, c = 0, d = 1;
! (a || b && d || c)

Сначала выполнится b && d, затем a || полученный результат, полученный результат || d. Ну и в конце выполнится логическая операция - отрицание, хотя по приоритету, если б не скобки, оно должно было выполняться впервую очередь

На этом статью можно закончить. Если вам понравилась булева алгебра логики, то можете найти в интернете дополнительный материал, так как сведений очень много по этому поводу. Удачи!

При копировании ( использовании ) материала размещайте ссылку на сайт www.mir-koda.ru