# Criar expressões

Para cada variável de saída, a janela Análise Combinacional manterá duas estruturas - uma coluna correspondente na tabela-verdade, e uma expressão lógica - que especificará a forma como cada entrada se relacionará com a sua saída. Você poderá editar tanto a tabela-verdade ou a expressão, que isso mudará a outra automaticamente, conforme necessário, para mantê-las coerentes.

Como veremos a seguir, as expressões lógicas (ou booleanas) são particularmente úteis, pois a janela Análise Combinacional as usará quando for construir um circuito que corresponda ao estado atual.

Você poderá visualizar e editar as expressões usando as duas últimas guias da janela: a Expressão (Expression) e a Minimizada (Minimized).

## A guia Expressão (Expression)

##### (Figura do original em inglês)

A guia Expression permite visualizar e editar as expressões correntes associadas a cada variável de saída. Você poderá selecionar a expressão de saída que desejar visualizar e editá-la usando o seletor rotulado como "Saída:" ("Output:") na parte superior do painel.

Logo abaixo do seletor aparecerá a expressão formatada em uma notação particularmente comum, onde uma porta OR será representada como adição, uma porta AND será representada como multiplicação, e porta NOT é denotada com uma barra acima da parte afetada pela negação.

O painel de texto embaixo mostra a mesma informação em formato ASCII. Aqui, uma porta NOT será representada por um til ('~').

Você poderá editar a expressão no painel de texto e clicar no botão Entrar (Enter) para torná-la efetiva; isso também irá atualizar a tabela-verdade para mantê-la coerente. O botão Limpar (Clear) apagará o painel de texto, e botão Restaurar (Revert) fará o painel voltar a representar a expressão atual.

Observar que as expressões editadas serão perdidas se você editar a tabela-verdade.

Além dos sinais de multiplicação e adição em lugar das portas AND e OR, uma expressão poderá conter qualquer tipo de operadores lógicos em C/Java, bem como as próprias palavras (AND, OR, NOT).

maior precedência: | `~` `!` | NOT
| (nada) `&` `&&` | AND
| `^` | XOR
menor precedência: | `+` `|` `||` | OR

Os exemplos a seguir são representações válidas de uma mesma expressão. Você também poderá misturar os operadores.

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

Em geral, os parênteses sobre uma sequência de ANDs (ou ORs ou XORs) não importam. (Em particular, se criar um circuito correspondente no Logisim, ele irá ignorá-los.)

## A guia Minimizada (Minimized)

##### (Figura do original em inglês)

A última guia exibe uma soma de produtos minimizada correspondente a uma coluna da tabela-verdade. Você poderá selecionar qual a expressão minimizada de saída deverá ser exibida usando o seletor na parte superior.

Se houver quatro entradas ou menos, um mapa de Karnaugh correspondente à variável irá aparecer abaixo do seletor. Você poderá clicar no mapa de Karnaugh para alterar os valores na tabela-verdade. O mapa de Karnaugh também apresentará os termos selecionados para a expressão minimizada por meio de retângulos arredondados, sólidos, semitransparentes.

Embaixo estará a expressão minimizada, formatada como mostrado na guia Expressão (Expression). Se houver mais de quatro entradas, o mapa de Karnaugh não aparecerá, mas a expressão minimizada ainda será calculada. (O Logisim usa o algoritmo de Quine-McCluskey para calcular a expressão minimizada. Isso é equivalente a um mapa de Karnaugh, mas se aplica a qualquer número de variáveis de entrada.)

O botão Definir Como Expressão (Set As Expression) permitirá selecionar a expressão minimizada como aquela correspondente à variável. Isso geralmente não será necessário, já que editar a tabela-verdade resultará no uso da expressão minimizada para a coluna alterada, mas se você digitar uma expressão através da guia apropriada, esta também poderá ser uma maneira conveniente para se alterar a expressão minimizada correspondente.

Próximo: Gerar um circuito.