Элементы И/ИЛИ/И-НЕ/ИЛИ-НЕ
Библиотека: | Базовые | ||||||||||||
Введён в: | 2.0 Beta 1 | ||||||||||||
Внешний вид: |
|
Поведение
Элементы И, ИЛИ, И-НЕ, ИЛИ-НЕ вычисляют соответствующую функцию от значений на входах и выдают результат на выход.
По умолчанию, неподключенные входы игнорируются — то есть, если входы действительно не имеют ничего подключенного к ним — даже провода. Таким образом, вы можете добавить 5-входовый элемент, но подключить только два входа, и он будет работать как 2-входовый элемент; это избавляет вас от необходимости беспокоиться о настройке количества входов каждый раз при создании элемента. (Если все входы не подключены, то на выходе значение ошибки Ошибка для неопределённых входов
для Выход элемента при неопределённости
.
Двухвходовая таблица истинности для элементов следующая. (Буква X обозначает значение ошибки, а буква Z обозначает плавающее значение.)
| ||||||||||||||||||||||||||||||||||||||||||
|
|
Короче говоря, эти компоненты работают как ожидается, пока на всех входах 0 или 1. Если на входе не 0 и не 1 (он плавающий или на нём значение ошибки), то компонент относится к этому значению как к 0 и 1 одновременно: если значение на выходе будет одинаковым в обоих случаях (например, если на одном из входов элемента И определённо 0, а значение на втором входе под вопросом), то выходное значение будет присутствовать; но если выход изменяется в зависимости от того, что на входе — 0 или 1, то на выходе будет значение ошибки.
Многобитные версии каждого элемента будут выполнять свои однобитные преобразования над входами поразрядно.
Контакты (предполагается, что компонент направлен на восток)
- Западный край (входы, разрядность соответствует атрибуту Биты данных)
Входы компонента. Их будет столько, сколько указано в атрибуте Количество входов.
Заметьте, что если вы используете фигурные элементы, то западный край элементов ИЛИ и ИЛИ-НЕ будет искривлён. Тем не менее, входные контакты расположены вряд. Logisim отрисовывает короткие отрезки чтобы показать это; если вы перекроете отрезок, программа будет без предупреждений предполагать, что вы не хотели перекрыть его. При использовании «Вида для печати», эти отрезки не будут отрисованы, если не подключены к проводам.
- Восточный край (выход, разрядность соответствует атрибуту Биты данных)
Выход элемента, значение на котором вычисляется на основании текущих значений на входах, как описано выше.
Атрибуты
Когда компонент выбран, или уже добавлен, клавиши от 0 до 9 меняют его атрибут Количество входов
, комбинации от Alt-0 до Alt-9 меняют его атрибут Биты данных
, а клавиши со стрелками меняют его атрибут Направление
.
- Направление
- Направление компонента (его выхода относительно его входов).
- Биты данных
- Разрядность входов и выходов компонента.
- Размер элемента
- Определяет, следует отрисовывать широкую или узкую версию компонента. Это не влияет на количество входов, которое задаётся атрибутом Количество входов. Однако, если выбраны фигурные элементы, то элемент будет отрисован с
, чтобы вместить дополнительные входы помимо тех, которые фигура может вместить естественным образом. крыльями - Количество входов
- Определяет, сколько контактов на западном крае будет иметь компонент.
- Метка
- Текст внутри метки, привязанной к элементу.
- Шрифт метки
- Шрифт, которым отрисовывается метка.
- Инвертировать x
- Если
Да
, то значение на входе инвертируется до подачи на элемент. Входы считаются сверху вниз, если компонент направлен на восток или запад, и считаются слева направо, если он направлен на север или юг.
Поведение Инструмента Нажатие
Нет.
Поведение Инструмента Текст
Позволяет редактировать привязанную к элементу метку.
Назад к Справке по библиотеке
И |
Возвращает значение ИСТИНА, если все аргументы имеют значение ИСТИНА. |
ЛОЖЬ |
Возвращает логическое значение ЛОЖЬ. |
ЕСЛИ |
Выполняет проверку условия. |
ЕСЛИОШИБКА |
Возвращает введенное значение, если вычисление по формуле вызывает ошибку; в противном случае возвращает результат вычисления. |
ЕСНД
|
Возвращает значение, которое задается, если выражение принимает значение #Н/Д. В противном случае возвращает результат выражения. |
УСЛОВИЯ
|
Проверяет соответствие одному или нескольким условиям и возвращает значение для первого условия, принимающего значение ИСТИНА. |
НЕ |
Меняет логическое значение своего аргумента на противоположное. |
ИЛИ |
Возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА. |
ПЕРЕКЛЮЧ
|
Сравнивает выражение со списком значений и возвращает результат, соответствующий первому совпадающему значению. Если совпадений не выявлено, может возвращаться указанное значение по умолчанию. |
ИСТИНА |
Возвращает логическое значение ИСТИНА. |
ИСКЛИЛИ
|
Возвращает логическое исключающее ИЛИ всех аргументов. |
о месте логики в когнитивных исследованиях
Исследование демонстрирует возможности диаграмматических логических методов применительно к проблеме соотношения логики, языка и мышления (когнитивная наука). Иконическое представление логического знания, к которому в определенной степени можно отнести даже привычные логические формулы, позволяет переосмыслить предмет логики, ее возможности и границы. Логика не занимается мышлением, а изучает то, как одна мысль (высказывание, утверждение) должна соотноситься с другой мыслью. Однако она способна не только имитировать естественные рассуждения, но и служить удобным инструментом для изучения их природы. Предлагаемый подход позволяет увидеть ключевую роль рациональности (логики): «если бы люди все время игнорировали логику, получая из данных ложную информацию, то сложно себе представить, как они смогли выжить как вид» (И. ван Бентам). Визуальный подход к логическому знанию, отчетливо представленный в Новое время в эпоху Просвещения, позволяет найти новые решения для остро стоящей сегодня проблемы преподавания логики. Роль изображений в логике рассматривается и в историческом контексте. Проект обращается к мало исследованному в истории логики вопросу эволюции диаграмматических представлений (от Э. Вайгеля до Ч. Пирса), а также на визуальных примерах до недавнего времени мало известных и трудно доступных фронтисписов логических и философских компендиумов эпохи Просвещения (Хр. Томазий, Хр. Вольф, С. Гроссер, Хр. Вайсе и др.) рассматривает процесс оформления круга проблем логики Нового времени.
Обращение к подобным трудам помогает с нового ракурса взглянуть на предмет логики и ее задачи. Особый акцент делается на теории экзистенциальных графов Ч. С. Пирса. Несмотря на обсуждение продуктивности диаграмм в новейшей литературе (И. ван Бентам, К. Стеннинг, А.-В. Пиетаринен), вопрос их максимально эффективного использования до сих пор остается открытым. Данное исследование мотивировано стремлением выяснить, что делает диаграммный метод столь эффективным и доступным даже без использования глубоких знаний современной логики. С этой целью предполагается исследование когнитивных оснований визуализации рассуждений, в частности роли даграмматических репрезентаций в процессе смыслоформирования. Настоящее исследование предлагает свой вариант теоретического и практического использования диаграмм, который поможет России вписаться в мировую тенденцию изучения диаграмм и иконического использования знаков.
Номер проекта: 20-011-00227
Базовые логические элементы
Базовые логические элементы «И», «ИЛИ», «НЕ».
Алгебра логики – это математический аппарат, с помощью которого записывают, вычисляют, упрощают и преобразовывают логические высказывания.
Создателем алгебры логики является английский математик Джордж Буль (19 век), в честь которого она названа булевой алгеброй высказываний.
Логическое высказывание – это любое повествовательное предложение, в отношении которого можно однозначно сказать, истинно оно или ложно. |
Например,
предложение «6 – четное число» — высказывание, так как оно истинное.
Математический аппарат алгебры
логики очень удобен для описания того, как функционируют аппаратные средства
компьютера, поскольку основной системой счисления в компьютере является
двоичная, в которой используются цифры 1 и 0, а значений логических переменных
тоже два: 1 и 0.
Логический элемент компьютера — это часть электронной логической схемы, которая реализует элементарную логическую функцию. |
Логическими элементами
компьютеров являются электронные схемы И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ и др.
(называемые также вентилями), а также триггер.
С помощью этих схем можно реализовать
любую логическую функцию, описывающую работу устройств компьютера.
Работу логических элементов описывают
с помощью таблиц истинности.
Базовые логические элементы И, ИЛИ, НЕ
Схема И реализует конъюнкцию (логическое умножение) двух или более
логических значений.
Эл. схема | |
Таблица истинности | ||
х | y | х и у |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Единица на выходе
схемы И будет тогда и только тогда, когда на всех входах будут единицы. у (читается
как «х и у»).
Операция конъюнкции на
функциональных схемах обозначается знаком & (читается как «амперсэнд»),
являющимся сокращенной записью английского слова and.
Схема ИЛИ реализует дизъюнкцию (логическое сложение) двух или более логических значений.
Эл. схема | |
Таблица истинности | ||
х | y | х или у |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 10 |
1 | 1 | 1 |
Когда хотя бы на
одном входе схемы ИЛИ будет единица, на ее выходе также будет единица.
Знак «1» на схеме — от устаревшего
обозначения дизъюнкции как «>=!» (т.е. значение дизъюнкции равно единице,
если сумма значений операндов больше или равна 1). Связь между выходом
z этой схемы и входами х и у описывается соотношением z = х или у.
Схема НЕ (инвертор) реализует операцию отрицания.
| |||||||||
Связь между входом х этой схемы и выходом z можно записать соотношением Z = ,
где х читается как «не х» или «инверсия.
Если на входе схемы 0, то на выходе 1. Когда на входе 1 на выходе
0.
%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b9%20%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%20%d0%b8-%d0%b8%d0%bb%d0%b8-%d0%bd%d0%b5 — со всех языков на все языки
Все языкиАнглийскийРусскийКитайскийНемецкийФранцузскийИспанскийШведскийИтальянскийЛатинскийФинскийКазахскийГреческийУзбекскийВаллийскийАрабскийБелорусскийСуахилиИвритНорвежскийПортугальскийВенгерскийТурецкийИндонезийскийПольскийКомиЭстонскийЛатышскийНидерландскийДатскийАлбанскийХорватскийНауатльАрмянскийУкраинскийЯпонскийСанскритТайскийИрландскийТатарскийСловацкийСловенскийТувинскийУрдуФарерскийИдишМакедонскийКаталанскийБашкирскийЧешскийКорейскийГрузинскийРумынский, МолдавскийЯкутскийКиргизскийТибетскийИсландскийБолгарскийСербскийВьетнамскийАзербайджанскийБаскскийХиндиМаориКечуаАканАймараГаитянскийМонгольскийПалиМайяЛитовскийШорскийКрымскотатарскийЭсперантоИнгушскийСеверносаамскийВерхнелужицкийЧеченскийШумерскийГэльскийОсетинскийЧеркесскийАдыгейскийПерсидскийАйнский языкКхмерскийДревнерусский языкЦерковнославянский (Старославянский)МикенскийКвеньяЮпийскийАфрикаансПапьяментоПенджабскийТагальскийМокшанскийКриВарайскийКурдскийЭльзасскийАбхазскийАрагонскийАрумынскийАстурийскийЭрзянскийКомиМарийскийЧувашскийСефардскийУдмурдскийВепсскийАлтайскийДолганскийКарачаевскийКумыкскийНогайскийОсманскийТофаларскийТуркменскийУйгурскийУрумскийМаньчжурскийБурятскийОрокскийЭвенкийскийГуараниТаджикскийИнупиакМалайскийТвиЛингалаБагобоЙорубаСилезскийЛюксембургскийЧерокиШайенскогоКлингонский
Все языкиРусскийАнглийскийДатскийТатарскийНемецкийЛатинскийКазахскийУкраинскийВенгерскийТурецкийТаджикскийПерсидскийИспанскийИвритНорвежскийКитайскийФранцузскийИтальянскийПортугальскийАрабскийПольскийСуахилиНидерландскийХорватскийКаталанскийГалисийскийГрузинскийБелорусскийАлбанскийКурдскийГреческийСловенскийИндонезийскийБолгарскийВьетнамскийМаориТагальскийУрдуИсландскийХиндиИрландскийФарерскийЛатышскийЛитовскийФинскийМонгольскийШведскийТайскийПалиЯпонскийМакедонскийКорейскийЭстонскийРумынский, МолдавскийЧеченскийКарачаевскийСловацкийЧешскийСербскийАрмянскийАзербайджанскийУзбекскийКечуаГаитянскийМайяАймараШорскийЭсперантоКрымскотатарскийОсетинскийАдыгейскийЯкутскийАйнский языкКхмерскийДревнерусский языкЦерковнославянский (Старославянский)ТамильскийКвеньяАварскийАфрикаансПапьяментоМокшанскийЙорубаЭльзасскийИдишАбхазскийЭрзянскийИнгушскийИжорскийМарийскийЧувашскийУдмурдскийВодскийВепсскийАлтайскийКумыкскийТуркменскийУйгурскийУрумскийЭвенкийскийЛожбанБашкирскийМалайскийМальтийскийЛингалаПенджабскийЧерокиЧаморроКлингонскийБаскскийПушту
ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ: «И,ИЛИ,НЕ»
Всем известна цифровая электроника: компьютеры, телевизоры, DVD и т.д. Сейчас, в нашё время, невозможно представить без сенсорных телефонов и ноутбуков. И поэтому сейчас больше всего начинают изучать цифровую технику, дети в возрасте 7 лет уже играть в компьютерные игры, а первоклассники ходят с сенсорными телефонами. Так что электроника распалась на две части: аналоговую и цифровую. Сегодня мы поговорим о кодах и логических элементов.
Десятичный код
Сейчас появилось много всяких микросхем и микроконтроллеров. Поэтому, чтобы записать мультики, игры, программы в микроконтроллер, надо использовать код. Коды бывают различного вида, например можно записывать в виде римских цифр. Сейчас появилось множество способов, мы рассмотрим только два. Это двоичный или десятичный. Чтобы записать десятичный, требуется десять цифр это 1 2 3 4 5 6 7 8 9 и 0. С помощью этих цифр записываются музыка, игры и прочее. Вот, например 12, нам понадобиться 1 и 2, из десятичного, мы берём 1 и 2, и записываем.
Двоичный код
Есть ещё и двоичный, для двоичного нужно только 0 и 1. Двоичный используется уже много лет, он очень удобен, например чтобы из десятичного кода, число перевести в число двоичного кода, надо из 10-2=8, это число в зависимости что нужно перевести, если из двоичного в десятичный ток надо вычисть это число, а если из десятичного в двоичный ток наоборот, прибавить. Теперь разберёмся и логическими элементами.
Логические элементы
Вот дело подошло к логическим элементам. Начнём пожалуй с элемента «И». Его изображение, а также другие основные элементы, показаны на рисунке далее:
Давайте разберёмся с принципом работы, у цифрового сигнала есть особенность, которая помогает записывать сигнал, это логическая единица и логический ноль. Как это объяснить, да вот так, логический ноль присутствует, если не подано напряжение, или оно очень низкое, а логическая единица, если напряжение среднее или высокое. С помощью этой особенностью можно записывать двоичный код.
Элемент «И» работает не сложно, у него всего два входа и один выход, чтобы была единица на выходе надо подать на все входы единицы, если хоть на одном входе будет ноль, то и на выходе будет ноль. При подаче нуля на обои входы, на выходе будет тоже ноль.
Теперь разберёмся с элементом «ИЛИ», ноль будет присутствовать если на обоих входах будет ноль, на всех остальных случаях всегда будет единица. А элемент «НЕ» очень прост, у него один вход и один выход. Логика его работы очень проста, если на вход подать единицу, то на выходе будет ноль, а если на вход подать ноль, то на выходе будет единица. На этом всё, с вами был Дмитрий Цывцын, желаю удачи!
НОУ ИНТУИТ | Лекция | Простейшие логические элементы
Аннотация: В лекции рассматриваются принципы работы, характеристики и типовые схемы включения простейших логических элементов — инверторов, буферов, элементов И и ИЛИ, а также приводятся схемотехнические решения, позволяющие реализовать на их основе часто встречающиеся функции.
Изучение базовых элементов цифровой электроники мы начнем с наиболее простых, а затем будем рассматривать все более сложные. Примеры применения каждого следующего элемента будут опираться на все элементы, рассмотренные ранее. Таким образом, будут постепенно даны главные принципы построения довольно сложных цифровых устройств.
Логические элементы (или, как их еще называют, вентили, «gates») — это наиболее простые цифровые микросхемы. Именно в этой простоте и состоит их отличие от других микросхем. Как правило, в одном корпусе микросхемы может располагаться от одного до шести одинаковых логических элементов. Иногда в одном корпусе могут располагаться и разные логические элементы.
Обычно каждый логический элемент имеет несколько входов (от одного до двенадцати) и один выход. При этом связь между выходным сигналом и входными сигналами (таблица истинности) предельно проста. Каждой комбинации входных сигналов элемента соответствует уровень нуля или единицы на его выходе. Никакой внутренней памяти у логических элементов нет, поэтому они относятся к группе так называемых комбинационных микросхем. Но в отличие от более сложных комбинационных микросхем, рассматриваемых в следующей лекции, логические элементы имеют входы, которые не могут быть разделены на группы, различающиеся по выполняемым ими функциям.
Главные достоинства логических элементов, по сравнению с другими цифровыми микросхемами, — это их высокое быстродействие (малые времена задержек), а также малая потребляемая мощность (малый ток потребления). Поэтому в тех случаях, когда требуемую функцию можно реализовать исключительно на логических элементах, всегда имеет смысл проанализировать этот вариант. Недостаток же их состоит в том, что на их основе довольно трудно реализовать сколько-нибудь сложные функции. Поэтому чаще всего логические элементы используются только в качестве дополнения к более сложным, к более «умным» микросхемам. И любой разработчик обычно стремится использовать их как можно меньше и как можно реже. Существует даже мнение, что мастерство разработчика обратно пропорционально количеству используемых им логических элементов. Однако это верно далеко не всегда.
Инверторы
Самый простой логический элемент — это инвертор (логический элемент НЕ, «inverter»), уже упоминавшийся в «Базовые понятия цифровой электроники» . Инвертор выполняет простейшую логическую функцию — инвертирование, то есть изменение уровня входного сигнала на противоположный. Он имеет всего один вход и один выход. Выход инвертора может быть типа 2С или типа ОК. На рис. 3.1 показаны условные обозначения инвертора, принятые у нас и за рубежом, а в табл. 3.1 представлена таблица истинности инвертора.
Рис. 3.1. Условные обозначения инверторов: зарубежные (слева) и отечественные (справа)
В одном корпусе микросхемы обычно бывает шесть инверторов. Отечественное обозначение микросхем инверторов — «ЛН». Примеры: КР1533ЛН1 (SN74ALS04) — шесть инверторов с выходом 2С, КР1533ЛН2 (SN74ALS05) — шесть инверторов с выходом ОК. Существуют также инверторы с выходом ОК и с повышенным выходным током (ЛН4), а также с повышенным выходным напряжением (ЛН3, ЛН5). Для инверторов с выходом ОК необходимо включение выходного нагрузочного резистора pull-up. Его минимальную величину можно рассчитать очень просто: R < U/IOL, где U — напряжение питания, к которому подключается резистор. Обычно величина резистора выбирается порядка сотен Ом — единиц кОм.
Вход | Выход |
---|---|
0 | 1 |
1 | 0 |
Две основные области применения инверторов — это изменение полярности сигнала и изменение полярности фронта сигнала (рис. 3.2). То есть из положительного входного сигнала инвертор делает отрицательный выходной сигнал и наоборот, а из положительного фронта входного сигнала — отрицательный фронт выходного сигнала и наоборот. Еще одно важное применение инвертора — буферирование сигнала (с инверсией), то есть увеличение нагрузочной способности сигнала. Это бывает нужно в том случае, когда какой-то сигнал надо подать на много входов, а выходной ток источника сигнала недостаточен.
Рис. 3.2. Инверсия полярности сигнала и инверсия полярности фронта сигнала
И, ИЛИ, НЕ — Что выбрать? Объяснение логического поиска — Руководство по основам
И, ИЛИ, НЕ — Что выбрать? Объяснение логического поиска — Руководство по основам — LibGuides в Медицинском центре Университета Раша Перейти к основному содержаниюПохоже, вы используете Internet Explorer 11 или старше. Этот веб-сайт лучше всего работает с современными браузерами, такими как последние версии Chrome, Firefox, Safari и Edge. Если вы продолжите работу в этом браузере, вы можете увидеть неожиданные результаты.
Что означает «логическое»?
Джордж Буль, английский математик XIX века, разработал «булеву логику», чтобы объединить определенные концепции и исключить определенные концепции при поиске в базах данных.
Произношение: BOO-le-un
Использование И, ИЛИ, НЕ
Логическая логика является строительным блоком многих компьютерных приложений и является важным понятием при поиске в базе данных.Использование правильного логического оператора может иметь решающее значение для успешного поиска.
И, ИЛИ, НЕ
Существует три основных логических команды поиска: И, ИЛИ и НЕ.
Использование логического поиска с точными фразами
Если вы ищете фразу, а не одно слово, вы можете сгруппировать слова в кавычки. При поиске по запросу «лихорадка денге» будут возвращены только элементы с этой точной фразой.
Когда использовать круглые скобки?
Это очень похоже на основную математику.(2 × 4) + 1 = 9, но 2 × (4 + 1) = 10
Подумайте о своем поиске в понятиях, а затем заключите эти понятия в круглые скобки. В разных базах данных действуют разные правила объединения поисков. Чтобы обеспечить желаемый результат поиска, используйте круглые скобки — каждая база данных следует этим правилам. Например:
денге ИЛИ малярия И зика можно интерпретировать как
- (денге ИЛИ малярия) И зика = статьи о денге или малярии, в которых также обсуждается вирус Зика. На каждом возвращенном предмете будет упоминаться вирус Зика, а также лихорадка денге или малярия.Поскольку вирус Зика только недавно стал серьезной проблемой, это ограничило бы количество результатов.
- лихорадка денге ИЛИ (малярия И зика) = каждая статья о денге или статьи, в которых говорится как о вирусе зика, так и о малярии. Поскольку лихорадка денге вызывала беспокойство более 250 лет, этот поиск дал бы разные результаты. Все статьи о денге будут возвращены, как и те, которые касаются обоих других двух.
Логические операторы — основы программирования
Кеннет Лерой Басби и Дэйв Брауншвейг
Обзор
Логический оператор — это символ или слово, используемое для соединения двух или более выражений, так что значение полученного составного выражения зависит только от значения исходных выражений и от значения оператора.Общие логические операторы включают AND, OR и NOT.
Обсуждение
В большинстве языков выражения, которые дают значения типа данных Boolean, разделены на две группы. Одна группа использует реляционные операторы в своих выражениях, а другая группа использует логические операторы в своих выражениях.
Логические операторы часто используются для создания тестового выражения, управляющего выполнением программы. Этот тип выражения также известен как логическое выражение, потому что при вычислении они создают логический ответ или значение.Есть три общих логических оператора, которые дают логическое значение, манипулируя другим логическим операндом (ами). Символы и / или названия операторов различаются в зависимости от языка программирования:
Язык | И | ИЛИ | НЕ |
---|---|---|---|
C ++ | && | || | ! |
С # | && | || | ! |
Java | && | || | ! |
JavaScript | && | || | ! |
Python | и | или | не |
Swift | && | || | ! |
Вертикальные черточки или символ трубопровода находятся на той же клавише, что и обратная косая черта \.Вы используете клавишу SHIFT, чтобы получить его. На большинстве клавиатур он находится чуть выше клавиши Enter. Это может быть сплошная вертикальная линия на некоторых клавиатурах и отображаться как сплошная вертикальная линия на некоторых печатных шрифтах.
В большинстве языков существуют строгие правила формирования правильных логических выражений. Пример:
6> 4 && 2 <= 14
6> 4 и 2 <= 14
Это выражение содержит два оператора отношения и один логический оператор. Используя приоритет правил операторов, два оператора «реляционного сравнения» будут выполняться перед оператором «логического и».Таким образом:
true && true
True and True
Окончательная оценка выражения: истина.
Мы можем сказать это по-английски так: Верно, что шесть больше четырех, а два меньше или равно четырнадцати.
При формировании логических выражений программисты часто используют круглые скобки (даже если это технически не требуется), чтобы сделать логику выражения очень понятной. Рассмотрим переписанное выше сложное логическое выражение:
(6> 4) && (2 <= 14)
(6> 4) и (2 <= 14)
Большинство языков программирования распознают любое ненулевое значение как истинное.Это делает следующее выражение допустимым:
6> 4 && 8
6> 4 и 8
Но помните порядок действий. По-английски это шесть больше четырех, а восемь - не ноль. Таким образом,
true && true
True and True
Для сравнения 6 с 4 и 8 вместо этого будет записано как:
6> 4 && 6> 8
6> 4 и 6> 8
Это будет ложно как:
истина и ложь
истина и ложь
Таблицы истинности
Обычный способ показать логические отношения - это таблицы истинности.
х | y | x и y |
ложный | ложь | ложь |
ложный | правда | ложь |
истина | ложь | ложь |
истина | правда | правда |
х | y | x или y |
ложный | ложь | ложь |
ложный | правда | правда |
истина | ложь | правда |
истина | правда | правда |
х | не x |
ложный | правда |
истина | ложь |
Примеры
Я называю этот пример того, почему я ненавижу «и» и люблю «или».
Каждый день, когда я приходил из школы с понедельника по четверг; Я спрашивал маму: «Можно мне выйти на улицу поиграть?» Она отвечала: «Если ваша комната чистая и у вас сделана домашняя работа, вы можете выйти на улицу и поиграть». Я научился ненавидеть слово «и». Мне удалось выполнить одно из заданий и у меня было время поиграть до обеда, но оба… ну, я ненавидел «и».
В пятницу моя мать приняла более расслабленную точку зрения, и когда меня спросили, могу ли я выйти на улицу и поиграть, она ответила: «Если ваша комната чистая или ваша домашняя работа сделана, вы можете выйти на улицу и поиграть.«Я научился быстро убирать свою комнату в пятницу днем. Что ж, разумеется, я любил «или».
В качестве следующего примера представьте, что подросток разговаривает со своей матерью. Во время разговора мама говорит: «Ведь папа у тебя разумный!» Подросток говорит: «Разумно. (короткая пауза) Нет. "
Может быть, профессора колледжей подумают, что все их студенты готовились к экзамену. Ха-ха! Нет. Что ж, надеюсь, вы уловили суть.
Примеры:
- 25 <7 || 15> 36
- 15> 36 || 3 <7
- 14> 7 && 5 <= 5
- 4> 3 && 17 <= 7
- ! ложь
- ! (13! = 7)
- 9! = 7 &&! 0
- 5> 1 && 7
Дополнительные примеры:
- 25 <7 или 15> 36
- 15> 36 или 3 <7
- 14> 7 и 5 <= 5
- 4> 3 и 17 <= 7
- не ложно
- нет (13! = 7)
- 9! = 7, а не 0
- 5> 1 и 7
Ключевые термины
- логический оператор
- Оператор, используемый для создания сложных логических выражений.
- таблицы истинности
- Распространенный способ показать логические отношения.
Список литературы
Операторы | Функции и операторы | Руководство пользователя | Поддержка | Epi Info ™
АРИФМЕТИЧЕСКИЙ
Описание
Эти основные арифметические операторы можно использовать в сочетании с другими командами. Результат - числовое значение.
Синтаксис
[Выражение] <Оператор> [Выражение]
- [Выражение] - числовое значение или переменная, содержащая данные в числовом формате.
Комментарии
Результаты выражаются в числовом формате. Основные математические операторы, которые можно использовать в Epi Info, следующие:
- Сложение + Основной арифметический оператор, используемый для сложения; Результатом арифметического оператора обычно является числовое значение (например, Пример 3 + 3).
- Вычитание - (Используется для вычитания или отрицания.) Основной арифметический оператор, используемый для вычитания или отрицания; Результатом арифметического оператора обычно является числовое значение (т.
- Модуль или остаток MOD
Арифметические операторы показаны в порядке убывания приоритета. Круглые скобки могут использоваться для управления порядком, в котором оцениваются операторы. Однако порядок по умолчанию часто дает правильный результат.
Хотя можно выполнять математические вычисления с датами, считающимися числом дней (например, IncubationDays = SymptomDateTime - ExposureDateTime), поведение служб базы данных, лежащих в основе Epi Info, делает более эффективным использование функций временных интервалов (например, IncubationDays = SymptomDateTime - ExposureDateTime).2 СПИСОК var1 var2 var3 var4 var5 var6
Логические операторы - cppreference.com
Логические операторы применяют к своим операндам стандартные операции логической алгебры.
Оператор | Имя оператора | Пример | Результат |
---|---|---|---|
! | логическое НЕ | ! А | логическое отрицание a |
&& | логическое И | a && b | логическое И для a и b |
|| | логическое ИЛИ | а || б | логическое ИЛИ для a и b |
[править] Логическое НЕ
Выражение логического НЕ имеет вид
где
Оператор логического НЕ имеет тип int.Его значение равно 0, если выражение оценивается как значение, не равное нулю. Его значение равно 1, если выражение оценивается как значение, равное нулю. (так что! E совпадает с (0 == E))
#include#include #include int main (пусто) { bool b =! (2 + 2 == 4); // не правда printf ("! (2 + 2 == 4) =% s \ n", b? "true": "false"); int n = isspace ('а'); // ноль, если 'a' - это пробел, ненулевое значение в противном случае int x = !! n; // "bang-bang", обычная идиома C для отображения целых чисел на [0,1] // (все ненулевые значения становятся 1) char * a [2] = {"непробел", "пробел"}; printf ("% s \ n", a [x]); // теперь x можно безопасно использовать как индекс для массива из 2 целых чисел }
Выход:
! (2 + 2 == 4) = ложь непространственный
[править] Логическое И
Логическое выражение И имеет вид
где
лев. | - | выражение любого скалярного типа |
правых | - | выражение любого скалярного типа, которое оценивается только в том случае, если lhs не равно 0 |
Оператор логического И имеет тип int и значение 1, если оба lhs и rhs не равны нулю.В противном случае он имеет значение 0 (если либо lhs, либо rhs, либо оба сравниваются равными нулю).
После оценки lhs есть точка последовательности. Если результат lhs сравнивается с нулем, тогда rhs вообще не оценивается (так называемая оценка короткого замыкания )
#include#include int main (пусто) { bool b = 2 + 2 == 4 && 2 * 2 == 4; // b == истина 1> 2 && put («это не печатается»); char * p = "abc"; if (p && * p) // обычная идиома C: если p не равно нулю // И если p не указывает на конец строки {// (обратите внимание, что благодаря оценке короткого замыкания этот // не будет пытаться разыменовать нулевой указатель) //... // ... затем выполняем некоторую строковую обработку } }
[править] Логическое ИЛИ
Выражение логического ИЛИ имеет вид
где
лев. | - | выражение любого скалярного типа |
правых | - | выражение любого скалярного типа, которое оценивается только в том случае, если lhs сравнивается с 0 |
Оператор логического ИЛИ имеет тип int и значение 1, если сравнение lhs или rhs не равно нулю.В противном случае он имеет значение 0 (если оба параметра слева и справа равны нулю).
После оценки lhs есть точка последовательности. Если результат lhs не равен нулю, тогда rhs вообще не оценивается (так называемая оценка короткого замыкания )
#include#include #include #include int main (пусто) { bool b = 2 + 2 == 4 || 2 + 2 == 5; // правда printf ("истина или ложь =% s \ n", b? "истина": "ложь"); // логическое ИЛИ может использоваться аналогично Perl "или умереть", если rhs имеет скалярный тип fopen ("тест.txt "," r ") || printf (" не удалось открыть test.txt:% s \ n ", strerror (errno)); }
Возможный выход:
правда или ложь = правда не удалось открыть test.txt: нет такого файла или каталога
[править] Ссылки
- C11 стандарт (ISO / IEC 9899: 2011):
- 6.5.3.3 Унарные арифметические операторы (стр: 89)
- 6.5.13 Логический оператор И (стр. 99)
- 6.5.14 Оператор логического ИЛИ (стр. 99)
- Стандарт C99 (ISO / IEC 9899: 1999):
- 6.5.3.3 Унарные арифметические операторы (стр. 79)
- 6.5.13 Оператор логического И (стр: 89)
- 6.5.14 Оператор логического ИЛИ (стр: 89)
- Стандарт C89 / C90 (ISO / IEC 9899: 1990):
- 3.3.3.3 Унарные арифметические операторы
- 3.3.13 Логический оператор И
- 3.3.14 Логический оператор ИЛИ
[править] См. Также
Приоритет оператора
Общие операторы | ||||||
---|---|---|---|---|---|---|
переуступка | приращение декремент | арифметический | логический | сравнение | член доступ | другое |
a = b | ++ a | + a | ! A | a == b | a [b] | a (...) |
[править] См. Также
Логические операторы
Логические операторыIDL поддерживает три логических оператора: &&, || и ~. При работе с логическими операторами ненулевые числовые значения, непустые строки и непустые переменные кучи (указатели и ссылки на объекты) считаются истинными, все остальное - ложным.
Примечание: Программисты, знакомые с языком программирования C и многими языками, разделяющими его синтаксис, могут ожидать ~ выполнения побитового отрицания (дополнение до единицы), а для! использоваться для логического отрицания.В IDL этого не происходит:! используется для ссылки на системные переменные, оператор NOT выполняет побитовое отрицание, а ~ выполняет логическое отрицание.
Примечание: Если один или оба операнда являются объектами, оператор может быть перегружен. См. Обзор перегрузки оператора объекта для получения дополнительной информации.
Оператор | Описание | Пример |
&& | логическое И Возвращает истину (1), если оба его операнда истинны; в противном случае возвращает false (0).Ненулевые числовые значения, непустые строки и ненулевые переменные кучи (указатели и ссылки на объекты) считаются истинными, все остальное - ложным. Операнды должны быть скалярами или одноэлементными массивами. Оператор && замыкает накоротко ; второй операнд не будет оцениваться, если первый ложен. Подробности см. В разделе «Короткое замыкание». | ПЕЧАТЬ, 5 && 7 IDL Отпечатков: 1 ПЕЧАТЬ, 5 && 2 IDL Отпечатков: 1 ПЕЧАТЬ, 4 && 0 IDL Отпечатков: 0 ПРИНТ, "" && "солнце" IDL Отпечатков: 0 |
|| | Логическое ИЛИ Возвращает истину (1), если любой из его операндов истинен; в противном случае возвращает false (0).Использует тот же тест на «истину», что и оператор &&. Операнды должны быть скалярами или одноэлементными массивами. || оператор замыкает накоротко ; второй операнд не будет оцениваться, если первый истинен. Подробности см. В разделе «Короткое замыкание». | IF ((5 GT 3) || (4 GT 5))долл. США ТОГДА ПЕЧАТЬ, 'True' IDL Отпечатков: Верно |
~ | Логическое отрицание Возвращает истину (1), если его операнд ложен; в противном случае возвращает false (0). Для списков и хешей оператор логического отрицания возвращает истину (1), если список или хеш пуст; в противном случае возвращается false (0). | ПЕЧАТЬ, ~ [1, 2, 0] IDL Отпечатков: 0 0 1 список = СПИСОК () IF (~ список) $ ЗАТЕМ ПЕЧАТЬ, «Пустой список» IDL Отпечатков: Пустой список |
Короткое замыкание
Символы && и || логические операторы, добавленные в IDL в версии 6.0, замыкают операторов. Это означает, что IDL не оценивает второй операнд, за исключением случаев, когда это необходимо для определения правильного общего ответа. Короткое замыкание может быть мощным, так как оно позволяет вам основывать решение для вычисления значения второго операнда на значении первого операнда. Например, в выражении:
Результат = Op1 && Op2
IDL не оценивает Op2, если Op1 ложно, потому что он уже знает, что результат всей операции будет ложным.Аналогично в выражении:
Результат = Op1 || Op2
IDL не оценивает Op2, если Op1 истинно, потому что он уже знает, что результат всей операции будет истинным.
Чтобы гарантировать вычисление обоих операндов (возможно, потому, что операнд является выражением, которое изменяет значение при вычислении), используйте функции LOGICAL_AND и LOGICAL_OR или побитовые операторы AND и OR.
Дополнительные примеры логических операторов
Результаты реляционных выражений могут быть объединены в более сложные выражения с помощью логических операторов.Вот некоторые примеры реляционных и логических выражений:
(A LE 50) && (A GE 25)
(A GT 50) || (A LT 25)
Программирование на Lua: 3.3
Программирование на Lua: 3.3 Это первое издание было написано для Lua 5.0. Хотя все еще актуально для более поздних версий, есть некоторые отличия.
Четвертое издание предназначено для Lua 5.3 и доступно в Amazon и других книжных магазинах.
Покупая книгу, вы также помогаете поддерживать проект Lua.
3.3 - Логические операторы
Логические операторы и , или , а не . Как и управляющие структуры, все логические операторы считать ложным, и nil, - ложным, а все остальное - истинным. Операторы и возвращают свой первый аргумент, если он ложен; в противном случае он возвращает свой второй аргумент.Оператор или возвращает свой первый аргумент. если это не ложь; в противном случае он возвращает свой второй аргумент:печать (4 и 5) -> 5 print (nil и 13) -> nil печать (ложь и 13) -> ложь печать (4 или 5) -> 4 печать (ложь или 5) -> 5И , и , и или используют ускоренную оценку, то есть они оценивают свой второй операнд только при необходимости.
Полезная идиома Lua: x = x или v
,
что эквивалентно
если не x, то x = v конеця.е., он устанавливает
x
на значение по умолчанию v
, когда x
не задано
(при условии, что x
не установлено на false ). Еще одна полезная идиома - (a и b) или c
.
(или просто a и b или c
,
поскольку и имеют более высокий приоритет, чем или ),
что эквивалентно выражению C
а? до н.эпри условии, что
b
не является ложным.
Например, мы можем выбрать максимум два числа x
и y
с заявлением вродеmax = (x> y) и x или yКогда
x> y
, первое выражение и истинно,
поэтому и приводят к его второму выражению ( x
)
(что тоже верно, потому что это число),
а затем выражение или приводит к значению
его первое выражение, x
.Когда x> y
ложно, выражения и ложны
и поэтому или приводят ко второму выражению: y
.Оператор , а не всегда возвращает true или false :
печать (не ноль) -> истина печать (не ложь) -> истина печать (не 0) -> ложь печать (не ноль) -> ложь
Copyright © 2003–2004 Роберто Иерусалимши.Все права защищены. |
FAQ: правда или ложь в Stata
Что истинно и ложно в Stata?
Заголовок | Истина и ложь в Stata | |
Автор | Николас Дж. Кокс, Даремский университет, Великобритания |
У большинства компьютерных языков есть способ обозначать и работать с тем, что истина и ложь, но не все языки выбирают один и тот же путь.Stata следует двум правилам, второе из которых можно рассматривать как Обобщение первого. Я изложу правила, а потом посмотрим на каждом по очереди.
- Правило 1. Логические или логические выражения оценивают значение 0, если ложно, и 1, если истинно.
- Правило 2: логические или логические аргументы, такие как аргумент , если или , а может принимать любое значение, а не только 0 или 1; 0 рассматривается как false и любое другое числовое значение как true.
Правило 1. Логические или логические выражения оценивают значение 0, если ложно, и 1, если истинно
Сначала рассмотрим результаты логических или логических выражений.(Джордж Буль работал над логикой и вероятностью в девятнадцатом веке. Чтобы узнать больше о Джордже Boole, см. http://www-history.mcs.st-and.ac.uk/~history/Mathematicians/Boole.html.) В Stata эти выражения используют один или несколько различных реляционных и логические операторы. Операторы == , ~ = , ! = , > , > = , < и <= используются для проверки равенство или неравенство. Операторы & | ~ и ! используются для указывают «и», «или», и «не».Использовать ли вы - дело вкуса ~ или ! для обозначения отрицания. В этом FAQ мы используем ! . Если вы хотите узнать больше о любом из них, см. операторы.
Например, в автоматическом наборе данных выражение foreign == 1 будет верно для тех наблюдений, где переменная , иностранный равна 1 и в противном случае - ложь. Двойной знак равенства == используется всякий раз, когда вы хотите проверить равенство; сравните использование единственного знака равенства = для назначение.В качестве второго примера выражение 2 == 2 всегда правда. Это может показаться бесполезным или поучительным, но ниже мы увидим применение для выражений, которые обязательно всегда верны. Более сложный выражения могут быть легко построены: foreign == 1 & rep78 == 4 будет истинным всякий раз, когда foreign == 1 и rep78 == 4 . Печатать
. считать, если иностранный == 1 & rep78 == 4
показывает, что в наборе данных auto девять таких автомобилей.(Кстати, счет может показаться тривиальной, но это простой способ получить ответы на некоторые основные вопросы о ваших данных.)
Логические выражения имеют числовые значения, которые могут быть чрезвычайно полезны. В Stata, правило состоит в том, что ложные логические выражения имеют значение 0 и истинное значение. логические выражения имеют значение 1. Таким образом, логические выражения могут использоваться для генерировать индикаторные переменные (также часто называемые бинарными, дихотомическими, фиктивными, логический или логический, в зависимости от жаргона племени), которые имеют значения 0 или 1.Команда
. генерировать himpg = mpg> 30
будет генерировать новую переменную, равную 1, если миль на галлон больше, чем 30 и 0 в противном случае. Теперь следует упомянуть две морщинки. Что, если миль на галлон отсутствовали? Правило состоит в том, что Stata обрабатывает числовые пропущенные значения выше, чем любое другое числовое значение, поэтому пропущенный, безусловно, квалифицируются как более 30, и любое наблюдение с миль на галлон отсутствует будет присвоено 1 для этой новой переменной.Это правило приводит к следующему морщинка: набор текста
. сгенерировать himpg = mpg> 30, если mpg <.
присвоит 1, если миль на галлон больше 30, но не пропущены; 0 если миль на галлон были не больше 30; и отсутствует, если не хватало миль на галлон . Логика заключается в том, что вы не сказали, какой результат вы хотели бы, если бы миль на галлон были отсутствует; в отсутствие инструкций Стата пожимает плечами в единственный способ, которым он знает, присвоение результата отсутствующему.Та же логика подать заявку, если вас интересовали только отечественные автомобили:
. сгенерируйте его pg = mpg> 30, если иностранный == 0
Если бы foreign не было равно 0, то результат был бы пропущен. В противном случае результат будет 1 или 0 в зависимости от того, было ли миль на галлон или не было больше 30.
Числовое значение логической выражения всегда оказываются полезными, когда мы хотим что-то посчитать. Предположим, мы хотим создайте новую переменную, в которую мы поместим частоты миль на галлон больше 30, по категориям rep78 :
.Сортировка rep78 . от rep78: сгенерировать nhimpg = sum (mpg> 30) . от rep78: заменить nhimpg = nhimpg [_N]
Во втором утверждении функция sum () производит кумулятивное или текущая сумма миль на галлон> 30 . Если миль на галлон> 30 , к сумма; в противном случае добавляется 0. Этот оператор дает текущий счет количество наблюдений, для которых миль на галлон> 30 . В третьем утверждении мы заменяем текущий счет его последним значением, общим счетчиком.Этот весь процесс осуществляется в рамках на , для которых данные должно быть sort ed на rep78 , что выполняется в первую очередь. Под от: , генерация выполняется отдельно для каждой группы реп78 . Аналогичным образом замена на выполняется отдельно для каждого группа из реп78 . (Вы также можете сохранить выписку, используя из по ... , сорт , но это второстепенно по отношению к основной идее.)
Как оказалось, есть более быстрый способ выполнить приведенные выше команды с помощью egen :
. egen nhimpg = total (mpg> 30), автор (rep78)
Встроенная функция sum () производит накопительные или текущие суммы, тогда как функция egen total () производит только суммы.
Здесь мы используем тот факт, что отсутствуют пропущенные значения миль на галлон в наборе данных auto .И всякий раз, когда вы знаете, что это верно для переменной в ваших данных, вы тоже можете игнорировать возможность отсутствующие значения. Но более общий метод подсчета наблюдений больше чем какой-то порог использовать Всего ( имя переменной > порог & имя переменной <.) . Это безопасный и никогда не извиняющийся метод всякий раз, когда вы хотите исключить отсутствующие значения. (Конечно, если не хватает средств в практикуйте «слишком высоко, чтобы быть измеренным», тогда вы можете включить пропущенные.)
Правило 2: логические или логические аргументы, такие как аргумент
, если или , а может принимать любое значение, а не только 0 или 1; 0 считается ложным и любое другое числовое значение как истинноеТеперь подумайте, что произойдет, если вы напечатаете что-то вроде
. список миль на галлон, если иностранный == 1
Stata перечисляет миль на галлон для тех наблюдений, для которых иностранный равно 1 (и не перечисляет их, если это не так).Stata перечисляет миль на галлон всякий раз, когда логическое выражение foreign == 1 истинно или принимает значение 1. Выше мы видим более развернутое объяснение этого процесса.
Этот метод выглядит как та же идея в другой форме. Это есть, но есть лишние повороты. Рассмотрим сейчас
. перечислить миль на галлон, если иностранный
В поле зрения нет реляционных или логических операторов, но Stata широкий кругозор здесь. Он по-прежнему будет изо всех сил стараться найти способ решить правда или ложь; фактически, он примет любой аргумент, который оценивается как число не 0 как истина, и любой аргумент, который оценивается как 0 как ложный.Если "аргумент" математического или компьютерного жаргона является новым для вас, подумайте об этом здесь как о том, что подается на , если .
Для числовой переменной, такой как , внешний , Stata просматривает значения эта переменная, а не 0, считается истиной, а 0 - ложью. Другими словами,
. безотносительно если иностранный
а также
. независимо от , если иностранный! = 0
в точности эквивалентны.Это всегда верно для любой числовой переменной. В на практике есть ярлык тогда и только тогда, когда у вас есть индикаторная переменная который принимает только значения 0 или 1. Два оператора
. список миль на галлон, если иностранный == 1 . перечислить миль на галлон, если иностранный
эквивалентны на практике в наборе данных auto . Во-первых оператор, Stata вычисляет выражение foreign == 1 , а затем выполняет указанное действие (для списка ) тогда и только тогда, когда выражение истинно или численно равняется 1.Во втором утверждении Стата выглядит при значениях переменной foreign , а затем выполняет действие тогда и только тогда, когда значение является числом не 0. В автоматическом наборе данных foreign не равен 0 тогда и только тогда, когда он равен 1, поэтому два условиям удовлетворяют точно такие же наблюдения. Со временем это сэкономит вам много нажатий клавиш при работе с индикаторными переменными, и это позволит вам вводить синтаксис Stata, близкий к тому, как вы думаете, скажем, , если женский , или даже , если! женский .(! - это способ выбор обратный: ! переворачивает любое значение не 0 в 0, а любое значение 0 к 1.). Но помните, что числовые пропуски не считаются 0, потому что они указывают число намного больше 0.
Вы всегда можете проверить, интерактивно или в программе, что переменная имеет только значения 0 и 1, используя утверждает :
. assert varname == 0 | имя переменной == 1
Если бы varname было равно любому другому значению, Stata отклонила бы утверждение.Если вы напечатали, возможно, случайно,
. список миль на галлон, если rep78
вы получите список всех наблюдений, потому что rep78 никогда не равно 0. Это та же логика.
Если аргумент был просто числом, то все равно применима та же логика. Этот логика также может быть полезна с , если . Например, вы можете посчитать отсутствующие значения и предпринять некоторые действия только в том случае, если одно или несколько отсутствующих значений были настоящее время. Это также может быть полезно с , а команда , что больше похоже на команду программиста, которую мы проиллюстрируем более деталь., а 1 дает бесконечный цикл: 1 произвольно здесь, как и любое число, кроме 0. По-видимому, в вашем ином бесконечный цикл, вы добавите какой-нибудь тест, который выводит Stata из цикла, скажем, с продолжить . Связанный метод заключается в установке флага и выходе из цикла только в том случае, если и когда этот флаг был изменен:
. местный worktodo = 1 . while `worktodo '{ программных операторов, включая установку `worktodo ' на 0, когда задача завершена }
Наконец, если вы, возможно, случайно укажете имя строки переменная или текстовая строка в качестве аргумента для , если или , а , там будет сообщением об ошибке, поскольку Stata не может интерпретировать ни то, ни другое как числовое аргумент.