Логические функции в excel с примерами их использования
Логические функции в Excel проверяют данные и возвращают результат «ИСТИНА», если условие выполняется, и «ЛОЖЬ», если нет.
Рассмотрим синтаксис логических функций и примеры применения их в процессе работы с программой Excel.
Использование логических функций в Excel
Название функции | Значение | Синтаксис | Примечание |
ИСТИНА | Не имеет аргументов, возвращает логическое значение «ИСТИНА». | =ИСТИНА () | Редко используется в качестве самостоятельной функции. |
ЛОЖЬ | Не имеет аргументов, возвращает логическое выражение «ЛОЖЬ». | =ЛОЖЬ () | ——-//——- |
И | Если все заданные аргументы возвращают истинный результат, то функция выдает логическое выражение «ИСТИНА». В случае хотя бы одного ложного логического значения вся функция выдает результат «ЛОЖЬ». | =И (Лог_знач. 1; Лог_знач. 2;…) | Принимает до 255 аргументов в виде условий или ссылок. Обязательным является первый. |
ИЛИ | Показывает результат «ИСТИНА», если хотя бы один из аргументов является истинным. | =ИЛИ (Лог_знач.1; Лог_знач. 2;…) | ——-//——- |
НЕ | Меняет логическое значение «ИСТИНА» на противоположное – «ЛОЖЬ». И наоборот. | #ИМЯ? | Обычно сочетается с другими операторами. |
ЕСЛИ | Проверяет истинность логического выражения и возвращает соответствующий результат. | #ИМЯ? | «Логическое_выражение» при вычислении должно иметь результат «ИСТИНА» или «ЛОЖЬ». |
ЕСЛИОШИБКА | Если значение первого аргумента истинно, то возвращает сам аргумент. В противном случае – значение второго аргумента. | #ИМЯ? | Оба аргумента обязательны. |
Логические функции в Excel и примеры решения задач
Задача 1. Необходимо переоценить товарные остатки. Если продукт хранится на складе дольше 8 месяцев, уменьшить его цену в 2 раза.
Сформируем таблицу с исходными параметрами:
Чтобы решить поставленную задачу, воспользуемся логической функцией ЕСЛИ. Формула будет выглядеть так: =ЕСЛИ(C2>=8;B2/2;B2).
Логическое выражение «С2>=8» построено с помощью операторов отношения «>» и «=». Результат его вычисления – логическая величина «ИСТИНА» или «ЛОЖЬ». В первом случае функция возвращает значение «В2/2». Во втором – «В2».
Усложним задачу – задействуем логическую функцию И. Теперь условие такое: если товар хранится дольше 8 месяцев, то его стоимость уменьшается в 2 раза. Если дольше 5 месяцев, но меньше 8 – в 1,5 раза.
Формула приобретает следующий вид: .
В функции ЕСЛИ можно использовать в качестве аргументов текстовые значения.
Задача 2. Если стоимость товара на складе после уценки стала меньше 300 р. или продукт хранится дольше 10 месяцев, его списывают.
Для решения используем логические функции ЕСЛИ и ИЛИ: . Условие, записанное с помощью логической операции ИЛИ, расшифровывается так: товар списывается, если число в ячейке D2 = 10.
При невыполнении условия функция ЕСЛИ возвращает пустую ячейку.
В качестве аргументов можно использовать другие функции. К примеру, математические.
Задача 3. Ученики перед поступлением в гимназию сдают математику, русский и английский языки. Проходной балл – 12. По математике для поступления нужно получить не менее 4 баллов. Составить отчет о поступлении.
Составим таблицу с исходными данными:
Нужно общее количество баллов сравнить с проходным баллом. И проверить, чтобы по математике оценка была не ниже «4». В графе «Результат» поставить «принят» или «нет».
Введем формулу вида: . Логический оператор «И» заставляет функцию проверять истинность двух условий. Математическая функция «СУММ» используется для подсчета итогового балла.
Функция ЕСЛИ позволяет решать многочисленные задачи, поэтому используется чаще всего.
Статистические и логические функции в Excel
Задача 1. Проанализировать стоимость товарных остатков после уценки. Если цена продукта после переоценки ниже средних значений, то списать со склада этот продукт.
Работаем с таблицей из предыдущего раздела:
Для решения задачи используем формулу вида: . В логическом выражении «D2
Задача 2. Найти средние продажи в магазинах сети.
Составим таблицу с исходными данными:
Необходимо найти среднее арифметическое для ячеек, значение которых отвечает заданному условию. То есть совместить логическое и статистическое решение.
Чуть ниже таблицы с условием составим табличку для отображения результатов:
Решим задачу с помощью одной функции: . Первый аргумент – $B$2:$B$7 – диапазон ячеек для проверки. Второй аргумент – В9 – условие. Третий аргумент – $C$2:$C$7 – диапазон усреднения; числовые значения, которые берутся для расчета среднего арифметического.
Функция СРЗНАЧЕСЛИ сопоставляет значение ячейки В9 (№1) со значениями в диапазоне В2:В7 (номера магазинов в таблице продаж). Для совпадающих данных считает среднее арифметическое, используя числа из диапазона С2:С7.
Задача 3. Найти средние продажи в магазине №1 г. Москва.
Видоизменим таблицу из предыдущего примера:
Нужно выполнить два условия – воспользуемся функцией вида: .
Функция СРЗНАЧЕСЛИМН позволяет применять более одного условия. Первый аргумент – $D$2:$D$7 – диапазон усреднения (откуда берутся цифры для нахождения среднего арифметического). Второй аргумент – $B$2:$B$7 – диапазон для проверки первого условия.
Скачать примеры логических функций
Третий аргумент – В9 – первое условие. Четвертый и пятый аргумент – диапазон для проверки и второе условие, соответственно.
Функция учитывает только те значения, которые соответствуют всем заданным условиям.
Логические функции
Урок 27. Информатика 9 класс ФГОС
В данном видеоуроке рассматриваются логические функции. Здесь рассказывается о том, что для решения некоторых задач только встроенных функций недостаточно.
Конспект урока «Логические функции»
Вопросы:
· Для чего нужны логические функции в электронных таблицах?
· Какие задачи решают с помощью логических функций в электронных таблицах?
· Как пользоваться логическими функциями?
К логическим функциям относятся: ЕСЛИ, И, ИЛИ, НЕ. Результатом логического выражения является логическое значение ИСТИНА или логическое значение ЛОЖЬ.
В табличных процессорах логические функции записываются следующим образом: на первом месте записывают имя логической функции, далее в круглых скобках пишут логические операнды.
Давайте посмотрим, как в электронных таблицах записывают, например, двойные неравенства: Д3 меньше 15, но больше -15. Итак, здесь мы будем использовать логическую функцию И.
Логическая функция
=И (логическое значение 1; логическое значение 2)
Тогда наше логическое выражение будет выглядеть:
Обратите внимание! Если мы в ячейку D3 запишем, например, число 10, то наше выражение принимает значение ИСТИНА, так как число 10 входит в промежуток от –15 до 15.
Если в ячейку D3 записать число 25, то выражение принимает значение ЛОЖЬ, так как число 25 в данный промежуток не входит.
Рассмотрим логическую функцию ЕСЛИ. Данная функция является одной из самых полезных, имеющихся в электронных таблицах. Функция ЕСЛИ проверяет, выполняется ли условие, и возвращает значение
В табличном процессоре условную функцию записывают следующим образом:
=ЕСЛИ (условие; [значение_если_истина]; [значение_если_ложь])
Рассмотрим решение следующей задачи:
Некая торговая компания занимается реализацией непродовольственных товаров. На экране вы видите таблицу, в которой представлены результаты продаж за месяц. Давайте проставим каждому продавцу его процент комиссионных. Если продавец наторговал на сумму меньшую либо равную 400 условным единицам, то запишем ему в ячейку 5 %. Если же продано на сумму больше 400 условных единиц, то такому продавцу запишем 10 %.
Перед нами таблица «Расчет комиссионных».
Сначала нам нужно рассчитать сумму, которую выручил каждый продавец от продаж товаров. Для этого в ячейку F3 запишем формулу: =D3*E3 и скопируем формулу в диапазон ячеек F4 F7.
Теперь рассчитаем комиссионные для каждого продавца. В ячейку G3 запишем формулу, содержащую логическую функцию ЕСЛИ.
=ЕСЛИ(F3>400;10%;5%) и скопируем формулу в диапазон ячеек G4 G7.
Решим ещё одну задачу с использованием логической функции ЕСЛИ.
Интернет-компания занимается реализацией бытовой техники. Нужно по таблице заказов выяснить, сколько было заказано блендеров, а также рассчитать сумму заказа.
Итак, перед нами таблица заказов. Сначала найдем количество заказанных блендеров. Для этого:
В ячейку Е3 пишем формулу: =ЕСЛИ(A3=”Блендер”;B3;-). Нажимаем Enter. Здесь первый аргумент А3 = Блендер проверяет, содержится ли в ячейке А3 слово Блендер. Здесь проверяется символ за символ, и отличие даже одного символа в слове, в том числе и пробела, будет означать, что условие неверное. Если да, то в ячейку Е3 выводится В3, то есть количество, если нет, то в ячейке мы увидим прочерк. Скопируем формулу в диапазон ячеек Е4:Е27.
Формула содержит относительные ссылки, поэтому она автоматически изменилась. В столбце «Количество заказов блендеров» отобразились все «Количества» заказов.
В ячейку Е28 запишем формулу: =СУММ(Е3:Е27), нажмем Enter и увидим, сколько блендеров было заказано.
Теперь нужно найти сумму заказа. Для этого:
В ячейку F3 пишем формулу: =ЕСЛИ (A3=”Блендер”;D3;-). Нажимаем Enter. Здесь снова, первый аргумент А3 = Блендер проверяет, содержится ли в ячейке А3 слово Блендер. Если да, то в ячейку Е3 выводится D3, то есть стоимость, если нет, то в ячейке мы увидим прочерк. Скопируем формулу в диапазон ячеек F4:F27.
Формула содержит относительные ссылки, поэтому она автоматически изменилась. В столбце «Заказы блендеров» отобразились все «Стоимости» заказов. Теперь осталось только посчитать Сумму заказа. Для этого в ячейке G3 запишем формулу: =СУММ(F3:F27). Нажмём Enter.
Обратите внимание! Нам не пришлось самостоятельно искать строки с блендерами, выписывать стоимость товара и считать сумму заказа. Все необходимые поиски и вычисления за нас сделал табличный процессор с помощью логической функции ЕСЛИ.
Рассмотрим логическую функцию НЕ.
Принимает в виде аргумента всего одно логическое значение и меняет его на противоположное, т. е. значение ИСТИНА она изменит на ЛОЖЬ и наоборот, значение ЛОЖЬ на ИСТИНА.
В табличном процессоре логическую функцию НЕ записывают:
=НЕ (логическое значение)
Например: в ячейке A1 записано число 345, а в ячейке A2 – число 248. В ячейке В1 записана формула: =НЕ(А1>А2). Данное выражение должно быть истинно, так как 345>248, но, применив функцию НЕ в формуле, мы изменили его на противоположное.
Важно запомнить:
· К логическим функциям относятся: ЕСЛИ, И, ИЛИ, НЕ и другие.
· Результатом логического выражения является логическое значение ИСТИНА или логическое значение ЛОЖЬ.
· В табличных процессорах логические функции записываются следующим образом: на первом месте записывают имя логической функции, далее в круглых скобках пишут логические операнды.
Предыдущий урок 26 Встроенные функции
Следующий урок 28 Средства анализа и визуализации данных. Сортировка и поиск данных
Получите полный комплект видеоуроков, тестов и презентаций Информатика 9 класс ФГОС
Чтобы добавить комментарий зарегистрируйтесь или войдите на сайт
Булева логика и функции
Любые вопросы о чтении рекомендуется задавать на доске обсуждений курса!
Наш первый шаг в создании компьютера — изучение схем! Чтобы иметь возможность рассуждать и строить схемы, нам нужно сначала немного узнать о булевой логике.
Что такое булева логика?
Булева логика — это определение, построенное на основе двух логических значений : правда и ложь. На самом деле вы использовали эти логические значения в Java раньше! Оказывается, наличие формального способа рассуждения об этих значениях очень полезно при создании оборудования, и определение этого рассуждения — наш первый шаг к созданию компьютера.
Почему два значения? Важная абстракция
Оказывается, сигналы на физических проводах нашего компьютерного оборудования могут постоянно иметь любое количество вольт от 0 до 5. Для наших целей мы собираемся выбрать абстракцию, которая имеет только 2 значения: «высокий» сигнал (около 5 вольт) или «низкий» сигнал (около 0 вольт). Вам может быть интересно, зачем ограничиваться только двумя значениями, высоким и низким? На самом деле большинство аппаратных средств рассчитано на абстракцию всего двух значений напряжения. Это значительно уменьшает количество ошибок в аппаратном обеспечении и в конечном итоге упрощает рассмотрение (поскольку позволяет нам использовать логическую логику).
Как мы отмечали выше, логическая логика также традиционно имеет только два значения: true и false. Затем мы можем сопоставить нашу двухзначную систему напряжения с этими двумя значениями: «высокие» сигналы соответствуют истине, а «низкие» сигналы соответствуют ложным. Кроме того, часто двоичные цифры 1 и 0 используются для обозначения значений в этой системе, где 1 означает высокий сигнал/истинное значение, а 0 — низкий уровень сигнала/ложное значение. Много разных способов обозначить одно и то же!
Это первая из многих мощных абстракций, с которыми мы столкнемся при сборке компьютера — наша дискретная система с двумя значениями позволяет нам не беспокоиться о фактических показаниях напряжения при интерпретации значения провода.
Булева алгебра
Булева алгебра — это набор операций для объединения логических значений. Так же, как в алгебре, которую вы изучали в школе, есть операции для объединения десятичных значений (например, 3 + 5 = 8), булева алгебра определяет набор операций для объединения логических значений. Булева операция определяется так называемой таблицей истинности . Таблица истинности перечисляет все возможные комбинации входных данных для этой логической операции, а затем указывает, каким должен быть результат для каждой входной комбинации. Три общие логические операции:
x And y
— выводит true (1), только если оба x
и y
верны. Таблица истинности:
х | и | из |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
x Or y
— выводит true (1), только если хотя бы одно из x
или y
истинно. Таблица истинности:
х | и | из |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Not x
— Выводит true (1), если x
— false (0), и false, если x
— true. Таблица истинности (обратите внимание, что теперь у нас есть только 2 строки, потому что для одного входа есть только 2 возможных значения):
х | из |
0 | 1 |
1 | 0 |
Обратите внимание, что вы можете определить логическую операцию как с помощью письменного описания, так и с помощью таблицы истинности. Последний — гораздо более явный способ определения функции — он точно говорит вам, что делает эта функция для каждой возможной комбинации выходных данных.
Логические выражения представляют собой комбинации логических операторов, результатом которых является значение. Мы можем оценить логическое выражение, применяя таблицу истинности снова и снова, пока не останемся с одним значением.
Пример: Не(0 или (1 И 1)) = Не (0 или 1) = Не (1) = 0
Логические функции
Мы также можем определить наши собственные булевы функции! Все, что нам нужно сделать, это дать имена входам для нашей функции, а затем указать, какие выходы будут для этих входов. Это может быть указано либо как таблица истинности, либо как логическое выражение наших входных данных!
Например, мы могли бы указать функцию как: f(x, y, z) = (x And y) Or (Not(x) And z)
Теперь кто-то может вычислить результат для комбинации входных данных, подставив входные значения в наше логическое выражение. Мы также можем использовать это логическое выражение для построения таблицы истинности для нашей логической функции. Все, что нам нужно сделать, это оценить наше логическое выражение для каждой строки нашей таблицы истинности.
Например, вторая строка в приведенной ниже таблице истинности оценивается следующим образом: .
f(0, 0, 1) = (0 И 0) Или ((Не 0) И 1)
= 0 Или ((Не 0) И 1)
= 0 или (1 и 1)
= 0 или 1
= 1
Посмотрите, сможете ли вы заполнить оставшиеся строки нашей таблицы истинности (полная таблица истинности приведена в разделе «Решения для упражнений» внизу этого чтения).
f(x, y, z) = (x And y) Или (Not(x) And z)
х | и | из | из |
0 | 0 | 0 | |
0 | 0 | 1 | 1 |
0 | 1 | 0 | |
0 | 1 | 1 | |
1 | 0 | 0 | |
1 | 0 | 1 | |
1 | 1 | 0 | |
1 | 1 | 1 |
Булева логика, аппаратные средства и принципиальные схемы
Почему мы изучаем булевы функции? Оказывается, компьютерные схемы могут быть представлены булевыми функциями! Значения (например, 0 и 1) передаются по проводам, операторы (такие как и
) сопоставляются с физическими логическими элементами, а комбинации проводов и физических логических элементов создают наши аппаратные устройства. Когда мы говорим x And y
, мы описываем физическую схему с проводом, соответствующим входу x
, проводом, соответствующим входу y
, и вентилем And
, соединяющим два входных провода и отправляющим выходной сигнал. на другом проводе. Это основа нашей работы в течение первых нескольких недель этого класса.
Принципиальные схемы представляют собой еще один способ представления булевой логики и часто используются при проектировании оборудования. Они используют обычные символы для представления логических вентилей (дополнительные сведения об этих символах см. в главе 1 учебника).
Пример: а или б
Мы также можем комбинировать операции, соединяя логические вентили вместе.
Пример: Не((а Или б) И в)
Упрощение логических функций
Упрощение логических функций на самом деле является главным приоритетом при разработке аппаратного обеспечения. Для реализации более простых логических функций требуется меньше проводов и логических элементов, что в конечном итоге приводит к более дешевому и быстрому оборудованию. Один из способов упростить логические функции — применить логические тождества в логическую функцию. Эти тождества определяют эквивалентные логические выражения, которые позволяют нам манипулировать нашими логическими функциями и потенциально создавать более простые выражения. Неполный список:
- Коммутативность
-
(х И у) = (у И х)
-
(х или у) = (у или х)
-
- Ассоциативность
-
(х И (у И z)) = ((х И у) И z)
-
(х или (у или г)) = ((х или у) или г)
-
- Распределительная собственность
-
(х И (у Или г)) = (х И у) Или (х И г)
-
(х или (у и z)) = (х или у) и (х или z)
-
- Закон Де Моргана
-
Не(х и у) = не(х) или не(у)
-
Не(х или у) = не(х) и не(у)
-
- Двойное отрицание
-
Не(Не(х)) = х
-
Допустим, у нас есть функция f(x, y) = Not(Not(x) And Not(y))
. Мы можем применить тождества, чтобы потенциально упростить эту функцию:
Not(Not(x) And Not(y)) **используйте закон де Моргана** = Not(Not(x)) Or Not(Not(y)) **используйте двойное отрицание** = х или у
Другой способ упростить наше выражение — составить для него таблицу истинности и посмотреть, соответствует ли оно каким-либо уже известным нам функциям.
f(x, y) = Not(Not(x) And Not(y))
х | и | из |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Это выглядит точно так же, как таблица истинности для x Or y
! Мы не будем просить вас делать слишком много упрощений в этом курсе, но это важная часть проектирования оборудования, поэтому мы подумали, что стоит упомянуть об этом.
Синтез булевых функций
Мы говорили о создании таблицы истинности из существующего логического выражения, теперь давайте поговорим о создании логического выражения из существующей таблицы истинности! Это важная часть аппаратного проектирования — часто мы знаем, какие выходные данные нам нужны для каждого набора входных данных (т. е. мы знаем таблицу истинности), а затем нам нужно создать логическое выражение, чтобы мы могли определить логические элементы для нашего функционировать и, в конечном счете, создавать аппаратное обеспечение, соответствующее этому. Предположим, у нас есть следующая таблица истинности для нашей функции:
х | и | из | из |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
Наш план будет таким: во-первых, для каждой строки, где вывод «истинен», определите функцию, которая «истинна» для этой строки, и только что одна строка. Затем, поскольку у нас есть выражения для каждой из истинных строк, мы можем объединить их вместе, чтобы получить выражение для всей таблицы истинности.
Оказывается, мы можем описать любой ряд в терминах ,
и , а не
вентилей. Для каждого ввода, если в строке появляется 1, мы будем использовать только ввод, а если появляется 0, мы отрицаем ввод. Затем мы можем объединить наши входы с вентилями и
.
Например: row1(x, y, z) = Not(x) And Not(y) And Not(z)
Мы видим, что row1
верно только для первой строки нашей таблицы истинности!
х | и | из | из | ряд1 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 |
Проделаем то же самое для остальных «истинных» строк:
row3 = Not(x) And y And Not(z)
row5 = x And Not(y) And Not(z)
х | и | из | из | ряд1 | строка3 | ряд5 |
0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 |
Теперь нам просто нужно объединить наши различные выражения строк, чтобы получить наше окончательное выражение (мы назовем нашу функцию f
). Обратите внимание, что для получения f
мы хотим, чтобы 1 отображалась в строке, если в одной из других строк есть хотя бы одна 1. Какую операцию вам напоминает «по крайней мере»? Ага, или
операция! Мы объединяем наши выражения строк, используя или
, чтобы получить наше окончательное выражение для f
.
f(x, y, z) = строка1 или строка2 или строка3
f(x, y, z) = (Не(x) И Не(y) И Не(z)) Или (Не(x) И y И Не(z)) Или (x И Не(y) И Не (г))
Это абсолютно правильное логическое выражение! Мы можем упростить это выражение, если хотим (оно довольно длинное…), но я думаю, важно отметить, что приведенное выше выражение правильно описывает таблицу истинности, с которой мы начали; это просто может быть немного более многословно, чем нам хотелось бы. Отсюда мы можем упростить, используя логические тождества (опуская шаги, потому что это не является предметом этого раздела), что приводит к окончательному выражению:
f(x, y, z) = Not(z) And (Not(x) Or Not(y))
Очень удобно, что этот процесс работает для каждой возможной таблицы истинности/логического выражения! Подводя итог процессу, чтобы получить логическое выражение для данной таблицы истинности, мы:
- Создайте выражение для каждой «истинной» строки в таблице истинности, используя
И
иНе
. - Объедините эти отдельные выражения с
или
. - Теперь у нас есть совершенно правильное выражение для таблицы истинности! Мы можем еще больше упростить, если захотим (часто разработчики аппаратного обеспечения хотят это сделать).
Путь вперед
Надеюсь, это был интересный взгляд на мир булевой логики! В лекции мы продолжим исследовать связь между булевой логикой и проектированием оборудования, чтобы вы могли приступить к разработке собственных аппаратных вентилей в проекте 1.
Решение для упражнений
Полная таблица истинности для f(x, y, z) = (x And y) или (Not(x) And z)
х | и | из | из |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
Представление логических элементов в виде логических функций
Небольшое примечание, прежде чем вы начнете читать дальше. Этот пост является кульминацией моих знаний в главе 1 онлайн-курса «Создание современного компьютера с первых принципов: от Nand до Tetris». Если вы проходите этот курс и не хотите видеть спойлеры к проекту главы 1, я бы рекомендовал сделать паузу на этом посте и вернуться после того, как вы завершите проект. Если это не относится к вам, пожалуйста, читайте дальше 😀.
Элементарные логические элементы
Логический вентиль — это, по сути, логическая операция, которая выполняется с одним или несколькими двоичными входами и приводит к двоичному выводу. Логические вентили — это строительные блоки технологии, которую мы используем каждый день. Они действуют как электронные переключатели в аппаратном обеспечении, и при составлении могут образовываться сложные логические схемы, приводящие к таким вещам, как регистры и компьютерная память.
Сегодня мы сосредоточимся на нескольких логических элементах, которые называются 9.0969 элементарных логических элементов . Эти вентили представляют собой фундаментальные логические вентили, которые можно использовать для построения более крупных и сложных схем. Ворота следующие.
- НЕ-И
- НЕ
- И
- ИЛИ
- Исключающее ИЛИ
- МУКС
- DMUX
Чтобы визуализировать результат логических вентилей на основе заданных входных данных, мы используем таблицу истинности. Таблицы истинности состоят из входа(ов) логического элемента, а также результирующего выхода для каждого входа. Вот пример таблицы истинности для вентиля И-НЕ. Как вы можете видеть, есть столбец, представляющий каждый вход a, b
и столбец для вывода из
.
Интересная особенность этих элементарных логических вентилей заключается в том, что все они могут быть реализованы из вентилей И-НЕ. Таким образом, для целей этого поста (и упомянутого выше курса) вентиль И-НЕ будет считаться примитивным вентилем, который мы можем использовать для создания всех других логических вентилей.
Имея все это в виду, давайте посмотрим, как булевы функции соотносятся с элементарными логическими вентилями.
Логические функции
До сих пор мы фокусировались на логических элементах, которые являются физическими реализациями логических функций. По своей сути логическая функция — это функция, которая работает с двоичными входными данными и возвращает двоичные выходные данные. Булевы функции играют важную роль в спецификации, построении и оптимизации компьютерного оборудования.
Все логические функции имеют каноническое представление , что означает, что функция может быть выражена по крайней мере одним логическим выражением. Способ, которым мы определяем каноническое представление, можно разбить на несколько шагов.
- Определите все строки таблицы истинности, которые выводят 1.
- Для каждой строки на шаге 1 мы
И
объединяем каждый входной литерал (1 остается без изменений, а 0 нужно инвертировать), чтобы создать терм - Наконец,
ИЛИ
вместе все термы, построенные на шаге 2, приводят к логическому выражению, эквивалентному таблице истинности
Давайте воспользуемся таблицей истинности NAND
, показанной ранее, и описанными выше шагами для определения канонического представления.
- Строки, приводящие к
1
, равны 1, 2 и 3. - Теперь нам нужно создать терм для каждой строки с помощью
И
-объединения каждого литерала, чтобы получить1
.-
(НЕ а) И (НЕ б)
-
(НЕ а) И б
-
а И (НЕ б)
-
- Теперь нам нужно
ИЛИ
все члены, чтобы получить логическое выражение.-
(НЕ (а И b)) ИЛИ ((НЕ а) и b) ИЛИ (а И (НЕ b))
-
Итак, проделав все это, мы можем сказать, что каноническое представление НЕ-И = (НЕ (а И b)) ИЛИ ((НЕ а) и б) ИЛИ (а И (НЕ b))
. Это упражнение также демонстрирует, что все логические функции могут быть выражены с помощью операторов И
, ИЛИ
и НЕ
. Поскольку мы можем выразить каждый из операторов с помощью NAND
, это также означает, что каждая логическая функция также может быть выражена с помощью NAND
.
Элементарные вентили как логические функции
В следующих подразделах мы увидим диаграммы, которые включают графическое представление, таблицу истинности и логическую функцию, каждая из которых представляет рассматриваемый логический элемент.
НЕ
Вентиль НЕ
с одним входом также называется «преобразователем». Логический элемент NOT
инвертирует ввод, поэтому ввод 1 возвращает 0, а ввод 0 возвращает 1.
И
AND
вентиль возвращает 1, когда оба входа равны 1, в противном случае возвращает 0.
ИЛИ
Логический элемент ИЛИ
возвращает 1, когда любой из входов равен 1, в противном случае возвращает 0.
Исключающее ИЛИ
Логический элемент XOR возвращает 1, если входные данные не равны, в противном случае возвращает 0. XOR
также упоминается как «исключающее ИЛИ».
MUX (мультиплексор)
Следующие двое ворот, о которых мы поговорим, немного отличаются. Оба они имеют так называемый «бит выбора», который используется для вывода одного из двух входных битов (известных как «биты данных»).
Первый вентиль, который мы рассмотрим, — это вентиль MUX
или «мультиплексор», который принимает два бита данных, a
и b
, и бит раздела sel
. С MUX
, если бит селектора равен 1, то выходным сигналом является бит данных b
, в противном случае выходным сигналом является бит данных a
.
DMUX (демультиплексор)
DMUX
или «демультиплексор» выполняет операцию, прямо противоположную 9.0031 МУКС ворота. Он принимает один ввод данных, в
и бит выбора. Затем он выводит два бита, значения которых зависят от значения селектора. Если селектор равен 1, то вывод равен {a=0, b=in}, в противном случае вывод равен {a=in, b=0}.
Как видно из последовательности диаграмм, все эти врата построены из ранее реализованных ворот.