Рассмотрим пример. В вашей комнате висит светильник, состоящий из трех лампочек, каждая из которых может включаться отдельно. Когда произойдет событие S — в комнате горит свет? Очевидно, тогда, когда будет гореть или одна лампочка, или любые две, или все три. И только в одном случае из восьми (23 = 8) событие S не наступит — когда ни одна из лампочек гореть не будет.
Другой пример. Стоит поздняя осень. Рассказывая по телевизору о прогнозе погоды, сотрудник Гидрометеоцентра говорит: «Завтра возможны осадки». Когда это событие будет истинным? Очевидно, что тогда, когда будет идти снег или дождь, или, что бывает тоже, снег с дождем. И только в одном случае это событие не произойдет — когда ни снега, ни дождя, ни снега с дождем не будет. Обозначим событие «выпадение осадков» как S, дождь — как А, снег — как В. Как вы понимаете, комбинаций аргументов может быть четыре (22 = 4).
Обобщая, заметим, что событие S произойдет, если произойдет или событие А, или событие В, или они оба. И только в одном случае событие S не произойдет — когда не произойдет ни одно из событий-аргументов.
|
|
Именно поэтому логическое сложение иногда называют операцией ИЛИ. Эту операцию обозначают символом «v», а также символом «+».
А | В | S |
0 (дождь не идет) | 0 (снег не идет) | 0 (осадков нет) |
0 (дождь не идет) | 1 (снег вдет) | 1 (осадки есть) |
1 (дождь идет) | 0 (снег не идет) | 1 (осадки есть) |
1 (дождь идет) | 1 (снег идет) | 1 (осадки есть) |
Запишем значение логической функции S = А + В.
А | В | S = A + B |
Если же мы рассмотрим более сложную дизъюнктивную форму, например: А = В + + C + D + E + F+G, то сразу определим, что количество комбинаций значений логических операндов В, С, D, Е, F, G будет равно 64, так как каждый операнд может иметь два значения, а всего таких операндов шесть, причем в 63 случаях значение функции будет равно 1 и только в одном 0, Попробуем обобщить.
И дизъюнктивных формах значение логической функции равно 0 только в одном случае — когда все логические операнды равны 0, во всех остальных случаях значение логической функции равно 1. Эта закономерность очень полезна при упрощении сложных логических выражений. Действительно, стоит убедиться, что один из операндов дизъюнктивной формы равен 1, как вывод очевиден — значение логической функции равно 1.
Логическое отрицание (инверсия) или операция НЕ. Смысл этой функции заключается в том, что если значение логической переменной есть А = 1, то значение ее отрицания есть А = 0, и наоборот.
А | |
Логические схемы составляют основу построения многих технических систем обработки информации, в том числе, конечно, и компьютеров. Нас они будут интересовать как «черный ящик», т.е. нам важно знать, что логические схемы получают на входе, и что — на «выходе». Логические схемы выполняются, как правило, из диодов и (или) транзисторов и их работа описывается алгеброй логики.
|
|
На рисунке представлена логическая схема И (логическое сложение, конъюнкция).
& |
S = А*В
В
Схема имеет входы А и В и выход S. На вход подаются сигналы, соответствующие значениям аргументов. Например, если А = 1, то на входе А есть сигнал, если же В = 0, то на входе В сигнала нет. Что такое сигнал? В общем случае это некое физическое воздействие на вход схемы. В реальных схемах это, как правило, воздействие электрическим током (напряжением).
Очевидно, что приведенная логическая схема реализует операцию S = А * В и, следовательно, будет работать в соответствии с приведенной ранее таблицей значений, т. е. сигнал на выходе S будет только в том случае, когда будут сигналы на входе А и на входе В, в остальных трех случаях сигнала на выходе не будет, т. е. S = 0.
Давайте придумаем ситуацию, в которой эта схема может быть применима. Представьте себе, что мы задумали экономить электроэнергию на внутреннем освещении подъездов, чтобы лампочки загорались только тогда, когда света из окон уже недостаточно и когда в подъезде находится человек. Очевидно, что такая схема будет работать следующим образом: на окнах установлены фотодатчики, в которых возникает сигнал при уровне освещенности на улице ниже установленной, этот сигнал подается на вход А, в то же время при нахождении человека в подъезде (на этаже) срабатывает фотоэлемент, сигнал с которого передается на вход В, на выходе S в этом случае возникает сигнал, который и зажигает внутренне освещение подъезда. Нетрудно догадаться, что при достаточном уровне освещенности на улице или при отсутствии людей в подъезде, или в ситуации, когда имеет место и то и другое, освещение в подъезде включаться не будет.
Другой пример. Имеется закрытая стоянка на 50 автомашин. Для того чтобы подъезжающий водитель мог издалека получить информацию о наличии свободных мест, сделаем следующее. В пол каждого бокса установим датчик, который срабатывает под тяжестью стоящей автомашины, этот сигнал подается на схему И, имеющую 50 входов. Очевидно, что сигнал на выходе схемы возникает только в том случае, когда сигналы будут на всех входах, и выходной сигнал зажжет подсветку табло с надписью «Мест нет», во всех остальных случаях это табло гореть не будет.
Рассмотрим логическую схему ИЛИ (логическое сложение, дизъюнкцию).
S = А+В
В
Схема имеет входы А и В и выход S. На вход подаются сигналы, соответствующие значениям аргументов. Например, если А = 1, то на входе А есть сигнал, если же В = 0, то на входе В сигнала нет. О том, что такое сигнал, мы уже говорили. Поскольку приведенная логическая схема реализует операцию S = А + В, она будет работать в соответствии с приведенной ранее таблицей, т.е. сигнал на выходе S будет тогда, когда на одном из входов А и В или же на обоих будет сигнал. Когда же на входах не будет сигнала, его не будет и на выходе S.
Рассмотрим примеры, описываемые дизъюнктивными закономерностями. Предположим, что есть трубопровод. Жидкий продукт, например нефть, транспортируется из пункта 1 в пункт 2. На трассе трубопровода имеются разветвления, проходящие через населенные пункты А, В и С, в которых имеются нефтераспределительные станции, снабженные вентилями, способными перекрыть движение нефти по трубе. Условимся, что если вентиль в пункте А открыт, то А = 1 и т. п. Когда произойдет событие S — поступление нефти в пункт 2? Очевидно, что возможны восемь комбинаций значении аргументов логической функции S = А + В + С
|
|
А | В | С | S=A+B+C |
Из таблицы видно, что из восьми возможных комбинаций открыт-закрыт вентилей А, В и С только при одной из них, а именно когда все три вентиля будут перекрыты, нефть в пункт 2 поступать не будет, т. е. событие S=0. Допустим, что на центральном пульте управления трубопроводом имеется индикатор, который подключен к выходу схемы ИЛИ, на вход схемы с каждого вентиля подается сигнал, если вентиль открыт. Очевидно, что индикатор (лампочка) будет светиться во всех случаях, кроме одного — когда все три вентиля будут закрыты.
Рассмотрим на примере логическую схему НЕ. Допустим, что у нас есть обогреватель воздуха, который мы хотим заставить работать в автоматическом режиме. Это можно сделать так: с датчика температуры сигнал поступает в том случае, если температура в комнате в норме. Поступает он на специальную схему, которую будем называть схемой НЕ или инвертором.
Эта схема работает так, что если на входе есть сигнал, то на выходе — нет, и наоборот, если сигнала нет на входе, то на выходе он есть. Итак, пока температура в помещении в пределах установленной нормы, сигнал от датчика поступает на схему НЕ, и на ее выходе, к которому подключен обогреватель, сигнала, включающего его, нет. Как только температура опустится ниже установленной, сигнал от датчика на входе схемы НЕ пропадет, а сигнал на ее выходе появится и включит обогреватель.
Будем обозначать логические схемы, реализующие функцию НЕ так, как показано на рисунке.
«Исключающее ИЛИ». Операция сложения по mod2. Эта логическая операция также заслуживает внимания, поскольку она достаточно широко используется в качестве внутренней команды микропроцессоров. Она обозначается знаком «».Закономерность очевидна: если операнды одинаковые, то результат равен 0; если операнды разные, то результат равен 1.
|
|
Иллюстрирует эту операцию ниже приведенная таблица.
А | В | S = A В |
Приведем пример использования этой операции в компьютерных микропроцессорах. Сумматор — вид регистра, обладающий способностью сложения двоичных кодов. Сумматор — неотъемлемая и основная часть любого процессора. Пусть в нем находится некоторое восьмибитовое число А, в регистре — восьмибитовое число В. Сложим содержимое регистра с содержимым сумматора по mod2 (логическая операция «Исключающее ИЛИ»).
Числа А и В были неизвестны, но результат их побитового (поразрядного) сложения оказался равен 00000000. О чем это говорит? Видимо, о том, что числа были одинаковые. И наоборот, если результат такого сложения будет ненулевым, если хотя бы в одном разряде будет 1, это говорит о том, что числа разные и отличаются они именно теми разрядами, в которых после выполнения операции «Исключающее ИЛИ» образовались единицы. Кстати, именно так компьютерный процессор сравнивает числа. Вырабатываемый (или невырабатываемый) сигнал «0» (сумматора) как раз и несет информацию об этом.