# Создание выражений

Для каждой выходной переменной окно Комбинационный анализ поддерживает две структуры - соответствующую колонку таблицы истинности и логическое выражение - указывающее, как каждый выход связан со своими входами. Вы можете редактировать и таблицу истинности и выражение; одно будет автоматически менять другое по мере необходимости, чтобы они соответствовали друг другу.

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

Вы можете просматривать и редактировать выражения, используя две последние вкладки: Выражение и Минимизация.

## Вкладка Выражение

Вкладка Выражение позволяет вам просматривать и редактировать текущее выражение, связанное с каждой выходной переменной. Вы можете выбрать выходное выражение, которое вы хотите просматривать и изменять, с помощью списка "Выход:" наверху вкладки.

Чуть ниже списка появится выражение, отформатированное в довольно общепринятых обозначениях, где ИЛИ представляется в виде сложения, И - как умножение, а НЕ обозначается чертой над той частью, для которой вычисляется НЕ.

Текстовое поле ниже отображает ту же информацию в виде ASCII последовательности. Здесь НЕ представляется как тильда ('~').

Вы можете изменить выражение в текстовом поле и нажать кнопку Ввести, чтобы изменения вступили в силу; это также обновит таблицу истинности для соответствия. Кнопка Очистить очищает текстовое поле, а кнопка Вернуть меняет поле обратно к представлению текущего выражения.

Обратите внимание, что отредактированные вами выражения будут потеряны, если вы измените таблицу истинности.

В дополнение к умножению и сложению, обозначающим И и ИЛИ, выражение, которое вы набираете, может содержать любой из логических операторов C/Java, а также просто английские слова сами по себе.

высший приоритет | `~` `!` `'` | НЕ
| (отсутствие символа) `&` `&&` AND | И
| `^ XOR` | Исключающее ИЛИ
низший приоритет | `+` `|` `||` OR | ИЛИ

Все нижеприведённые примеры - допустимые представления одного и того же выражения. Кроме того, можно смешивать операторы.

`a' (b + c)`
`!a && (b || c)`
`NOT a AND (b OR c)`

Вообще-то, скобки в последовательностях AND'ов (или OR'ов или XOR'ов) не имеют значения. (В частности, когда Logisim создаёт соответствующую схему, он будет игнорировать такие скобки.)

## Вкладка Минимизация

Последняя вкладка отображает минимизированное выражение, соответствующее столбцу таблицы истинности. Вы можете выбрать, для какого выхода вы хотите просматривать минимизированное выражение с помощью списка сверху, и можете указать, какое выражение вы хотите получить - сумму произведений или произведение сумм, с помощью списка снизу.

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

Ниже - само минимизированное выражение, отформатированное так же, как во вкладке Выражение. Если выходов более четырёх, то карта Карно не появится, но минимизированное выражение всё равно будет вычислено. (Logisim использует метод Куайна — Мак-Класки для вычисления минимизированного выражения. Он эквивалентен карте Карно, но применим к любому числу входных переменных.)

Кнопка Установить как выражение позволяет вам выбрать минимизированное выражение как выражение, соответствующее переменной. Это, как правило, не нужно, поскольку изменения в таблице истинности приводят к использованию минимизированного выражения для изменённого столбца; но если вы введете выражение через вкладку Выражение, то это может быть удобно, чтобы перейти к соответствующему минимизированному выражению.

Далее: Создание схемы.