Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LEC07.Алгебра логики

.pdf
Скачиваний:
15
Добавлен:
21.03.2016
Размер:
772.76 Кб
Скачать

Логический базис (ЛБ)

ЛБ – набор булевых функций, позволяющий реализовать любую другую булеву функцию. Три наиболее востребованных ЛБ:

1. И, ИЛИ, НЕ.

2. И-НЕ.

3. ИЛИ-НЕ.

 

 

 

Пример: реализация функций И, ИЛИ, НЕ в базисе И-НЕ.

11

Картинка взята с сайта http://phys.bspu.by/static/lib/teh/electron/cif-obu.htm

Основные тождества

1.Аксиома двойного отрицания:

xx

2.Закон коммуникативности:

xy y x, x y y x

3.Закон ассоциативности:

( x y) z x ( y z), ( x y) z x ( y z)

4.Закон идемпотенции:

xx x, x x x

12

Основные тождества (2)

5.Закон поглощения: x ( x y) x, x ( x y) x

6.Закон дистрибутивности:

x( y z) ( x y) ( x z), x ( y z) ( x y) ( x z)

7.Законы де Мóргана:

xy x y, x y x y

8. Законы нейтральности: x ( y y) x, x ( y y) x 9. Аксиомы существования 1 и 0:

0 1,1 0, x x 1, x x 0

Формы записи математических выражений

Терминология:

«форма записи» = «нотация», «арность операции» = «количество операндов»

А (унарная), А*В (бинарная), А?В:С (тернарная)

Виды нотаций:

1489: инфиксная: A+B

1920: префиксная (aka польская): +AB

1957: постфиксная (aka обратная польская): AB+

Префиксная (польская) нотация

Пример:

Инфиксная нотация: (A + B + C) – ED * F * G

Префиксная нотация: –++ABC^E**DFG

Популярная Lisp-разновидность префиксной нотации: (–(+ABC)(^E(*DFG)))

Особенности:

Не требуется скобок, если арность фиксирована.

Запись выражения получается короче, чем инфиксная.

Не требуется знать приоритет операций.

Легко декодировать выражение с помощью стека.

• Малоприменима на практике (кроме Lisp).

Постфиксная (обратная польская) нотация

Пример:

Инфиксная нотация: (A + B + C) – ED * F * G

Постфиксная нотация: AB+С+EDF*G*^–

Особенности:

Не требуется скобок, если арность фиксирована.

Запись выражения получается короче, чем инфиксная.

Не требуется знать приоритет операций.

Легко декодировать выражение с помощью стека.

Успешно применяется в компиляторах, в небольшом количестве языков программирования и некоторых

ЭВМ (калькуляторы «Электроника» и HP).

Алгоритм вычисления выражения, записанного в постфиксной нотации

1. Обработка входного символа

Если на вход подан операнд, он помещается на вершину стека.

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

2. Если входной набор символов обработан не полностью, перейти к шагу 1.

3. После полной обработки входного набора символов результат вычисления выражения лежит на вершине стека.

Вычисление постфиксной нотации

Исходное выражение: a+b+a*с Постфиксная запись: ab+ac*+