алгебра логики.ppt
- Количество слайдов: 35
Алгебра логики Логические элементы 05. 02. 2018 1
«…. . . Употребляйте с пользой время: Учиться надо по системе. Сперва хочу Вам в долг вменить На курсы логики ходить. Ваш ум, не тронутый доныне, На них приучат к дисциплине, Чтоб взял он направленья ось, Не разбредаясь вкривь и вкось» . В. Гете «Фауст» ч. I 05. 02. 2018 2
Логика - это наука о формах и способах мышления. 4 Высказывание -это форма мышления в которой что-либо утверждается или отрицается о реальных предметах, их свойствах и отношениях между ними. 4 Высказывание может быть истинно или ложно. 05. 02. 2018 3
В алгебре высказываний высказывания обозначаются именами логических переменных, которые могут принимать лишь два значения «истинно» и «ложно» . Истинно =1 Ложно=0 05. 02. 2018 4
Для образования новых высказываний используются базовые логические операции: 4 логическое отрицание -операция не - инверсия 4 логическое умножение - операция и - конъюнкция 4 логическое сложение - операция или - дизъюнкция 05. 02. 2018 5
И дополнительные логические операции: 4 логическое следование – импликация 4 исключающее или - строгая дизъюнкция 4 логическое равенство эквивалентность 05. 02. 2018 6
Логическое отрицание -операция не - инверсия не А А Обозначения: NOT, НЕ, ¬, ¯ Диаграмма Эйлера - Венна А А 05. 02. 2018 7
Логическое умножение - операция и - конъюнкция А C=A&B В & С Обозначения: AND, И, &, · , Диаграмма Эйлера - Венна А 05. 02. 2018 А В В 8
Логическое сложение операция или - дизъюнкция или А В 1 Обозначения: OR, ИЛИ, +, С C=A B Диаграмма Эйлера - Венна А 05. 02. 2018 А В В 9
Строгая дизъюнкция сложение по mod 2 (либо – либо) А В м 2 Обозначения: XOR, , + С + C=A B Диаграмма Эйлера - Венна А 05. 02. 2018 В 10
Логическое следование - операция если - то - импликация то C=A→B=A+B А В 1 С Обозначения: IMP, → Диаграмма Эйлера - Венна А 05. 02. 2018 В 11
Логическое равенство - операция тогда и только тогда, когда… - эквивалентность А В ≡ С Обозначения: EQV, ↔, ≡ C=A↔B Диаграмма Эйлера - Венна А 05. 02. 2018 В 12
Приоритет логических операций 1. Инверсия НЕ 2. Конъюнкция И 3. Дизъюнкция ИЛИ 4. Импликация и эквивалентность 05. 02. 2018 13
Перечень типовых задач 1. Вычисление значения функции по заданным значениям аргументов 2. Построение таблицы истинности для заданной функции 3. Построение СДНФ и СКНФ 4. Построение функциональных схем (комбинационных, логических, переключательных) 05. 02. 2018 14
Перечень типовых задач 5. Минимизация логических функций 6. Доказательство тождественной истинности (ложности), эквивалентности 7. Реализация логических операций в языках программирования 8. *Формализация высказываний 9. *Решение текстовых логических задач 05. 02. 2018 15
Перечень типовых задач 10. * Теория графов 11. *Задачи из курса кибернетики 05. 02. 2018 16
Логические законы и правила преобразования логических выражений 4 Закон тождества: всякое высказывание тождественно самому себе. А=А 4 Закон непротиворечия: высказывание не может быть одновременно истинным и ложным. А & А=1 4 Закон исключенного третьего. Высказывание может быть истинным, либо ложным, третьего не дано. А ۷ А=1 4 Закон двойного отрицания: если дважды отрицать некоторое высказывание, то в результате мы получим исходное высказывание. А=А 05. 02. 2018 24
Логические законы и правила преобразования логических выражений 4 Законы Моргана: А ۷ В=А & В=А ۷ В 05. 02. 2018 25
ЛОГИЧЕСКИЕ И СДВИГОВЫЕ ОПЕРАЦИИ
Логика Логические команды, выполняемые над двумя числами (двумя операндами): 1) AND (русский вариант — И); 2) OR (ИЛИ); 3) XOR (от английского e. Xclusive OR — исключающее ИЛИ) В отличие от арифметических операций, логические команды являются поразрядными. При логических операциях все разряды рассматриваются изолированно друг от друга. Действия над всеми разрядами выполняются параллельно и одновременно. Логические операции также называют также «битовыми» .
Логика Правила выполнения логических операций в каждом разряде: Х (данные) Y Х AND Y Х OR Y Х XOR Y (маска) 0 0 0 1 0 1 1 1 0 Эта таблица аналогична таблицам истинности для логических операций над величинами логического типа, но здесь операндами являются двоичные цифры). Например, при X = 101011 и Y = 1101: X AND Y = 1001, X OR Y = 101111, X XOR Y = 100110. Возможна и поразрядная операция NOT (НЕ), имеющая один операнд. В результате ее выполнения двоичные цифры
Логика Логические операции в языке Паскаль В языке Паскаль существуют операции с соответствующими именами: and, or, xor, not. Их применяют к данным целого типа; возвращаемый результат также является целым числом. Результат операции and над двумя операндами – десятичное число, которое соответствует двоичному представлению результата поразрядной операции И над исходными операндами. Двоичное 11 Пример: 2 x : = 11 and 2; 11 and 2 Десятичное writeln(x); представление на экран будет выведено число 2. представление 1 0 1 1 0 0 0 1 0 2
Логика Логические операции в языке Паскаль Результат операции or над двумя операндами – десятичное число, которое соответствует двоичному представлению результата поразрядной операции ИЛИ над исходными операндами. Пример: x : = 11 or 2; writeln(x); 11 2 11 or 2 на экран будет выведено число 11. Десятичное представление Двоичное представление 1 0 1 1 0 0 1 0 1 1 11
Логика Логические операции в языке Паскаль Результат операции xor над двумя операндами – десятичное число, которое соответствует двоичному представлению результата поразрядной операции Исключающее ИЛИ над исходными операндами. Пример: x : = 11 xor 2; writeln(x); на экран будет выведено число 9. 11 2 11 xor 2 Десятичное представление Двоичное представление 1 0 1 1 0 0 1 9
Логика Логические операции в языке Паскаль Результат операции not с одним операндом – десятичное число, которое соответствует двоичному представлению результата поразрядной операции НЕ над исходным операндом. Пример: Var a: byte; … a: =11; writeln(not a); Двоичное представление 11 0 0 1 0 1 1 not 11 1 1 0 0 Десятичное представление 244 на экран будет выведено число 244.
Логика Сдвиговые команды SHL (от Shift Left — «сдвинуть влево» ) В регистре процессора происходит поразрядный сдвиг двоичных цифр на заданное количество разрядов влево. При этом соответствующее число цифр в старших разрядах теряется, а освободившиеся младшие разряды заполняются нулями. 1 0 1 Пример: 1 0 0 1 0 Сдвиг влево на два разряда 1 0
Логика Сдвиговые команды SHR (от Shift Right — «сдвинуть вправо» ) В регистре процессора происходит поразрядный сдвиг двоичных цифр на заданное количество разрядов вправо. При этом соответствующее число цифр в младших разрядах теряется, а освободившиеся старшие разряды заполняются нулями. 1 0 Пример: 1 0 0 1 1 0 0 0 1 Сдвиг вправо на два разряда 1 0 1
Логика Сдвиговые команды в языке Паскаль В языке Паскаль операция shl имеет формат: <a> shl <b> где <a> и <b> — натуральные числа. Результатом является десятичное число, которое соответствует результату поразрядного сдвига влево на b разрядов двоичного представления операнда a. Результатом выполнения операции shr: x : = a shr b будет десятичное число х, которое соответствует результату поразрядного сдвига вправо на b разрядов двоичного
Логика Команда циклического сдвига влево В регистре процессора происходит поразрядный сдвиг двоичных цифр на заданное количество разрядов влево. При этом соответствующее число цифр в старших разрядах переносится в освободившиеся младшие разряды. Пример: 1 0 0 0 1 0 1 Сдвиг влево на два разряда 1 0
Логика Команда циклического сдвига вправо В регистре процессора происходит поразрядный сдвиг двоичных цифр на заданное количество разрядов вправо. При этом соответствующее число цифр в младших разрядах переносится в освободившиеся старшие разряды. Пример: 1 0 0 1 1 0 0 0 1 Сдвиг вправо на два разряда 1 0
Логика Задания для самостоятельной работы 1. Рассчитайте значения: а) 1101101 AND 10101; б) 1011011 OR 11001; в) 1001101 XOR 10111. 2. Определите: 1) чему равен результат операции И при нулевой маске? 2) чему равен результат операции ИЛИ при маске: а) из всех единиц? б) в виде нуля? 3) какая операция и с какой маской позволяет выделить (получить) младший разряд двоичного числа? 4) какой получится результат, если к какому-то числу дважды применить операцию исключающего ИЛИ? 5) какой получится результат, если операцию исключающего ИЛИ применить к двум одинаковым числам? 6) какой получится результат, если к какому-то числу применить операцию исключающего ИЛИ с маской из всех единиц?
Логика Задания для самостоятельной работы 3. Выясните, можно ли определить десятичный результат выполнения поразрядной логической операции NOT с целым десятичным числом типа byte «в уме» ? Почему? 4. Установите, можно ли применять поразрядные логические операции к одному или двум отрицательным операндам? 5. Определите результат выполнения следующего фрагмента программы: var a: byte; b: shortint; BEGIN a : = 11; writeln(not a); b : = 11; writeln(not b) END. Почему выводятся разные значения? 6. Объясните, почему a and –(a + 1) = 0? (Например, 51 and – 52 = 0).
Логика Задания для самостоятельной работы 7. Установите, как изменится число а в результате выполнения оператора присваивания a : = a shr 1: 1) при четном а? 2) при нечетном а? Как можно обобщить оба ответа? 8. Определите, как изменится число а, равное 1024, в результате выполнения оператора присваивания: a : = a shr k. 9. Можно ли ответы по двум предыдущим заданиям распространить на поразрядный сдвига влево? Можно ли утверждать, что при таком сдвиге число а увеличится? А что уменьшится? 10. Установите, можно ли применять сдвиговые операции к отрицательным числам.
Логика Задания для самостоятельной работы 11. Определите, как изменится число а при циклическом сдвиге вправо на один разряд, в случае, когда в крайнем правом разряде: 1) записан 0? 2) записана 1? 12. Установите формулу, по которой можно определить, как изменится число а при циклическом сдвиге вправо на b разрядов, в случае, когда в b правых разрядах: 1) записаны нули? 2) записаны единицы? Что можно сказать об изменении значения а в этих случаях (оно увеличится или т. п. )? 13. Определите, как изменится число а при циклическом сдвиге влево на один разряд, в случае, когда в крайнем левом 8 -м разряде: 1) записан 0? 2) записана 1? Можно ли сделать вывод об изменении значения а в этих случаях (оно увеличится или т. п. )?
Логика Задания для самостоятельной работы 14. Установите формулу, по которой можно определить, как изменится число а при циклическом сдвиге влево на b разрядов, в случае, когда в b левых разрядах: 1) записаны нули? 2) записаны единицы? В обоих случаях принять, что число а записано в восьми разрядах. Можно ли сделать вывод об изменении значения а в этих случаях (оно увеличится или т. п. )? 15. В восьми двоичных разрядах записано число n. Как получить: 1) цифру в первом (крайнем справа) разряде? 2) цифру в четвертом разряде? ; 3) цифру в k-том разряде?
алгебра логики.ppt