Open main menu

Changes

2,887 bytes added ,  10:20, 26 May 2016
no edit summary
<pre>true and false;
true &and false;</pre>
O primeiro operador ‘'''and'''’ produz seu valor imediato, enquanto que o segundo ‘&and’ é mais útil para trabalhar simbolicamente com expressões booleanas, ou seja, para estudar a forma de uma expressão ao invés de seu valor.Um pequeno cuidado é necessário em como usar o operador ‘'''&not'''’. É muito importante que as expressões sejam suficientemente definidas com parenteses (Primeiramente, retiramos qualquer valor de ‘a’)
<pre>a := 'a';</pre>
Enquanto
<pre>not not a;</pre>
é um código ''Maple'' perfeitamente válido, a construção
<pre>&not &not a;</pre>
conduz, como podemos ver, a um erro de sintaxe. Ao invés disso, a ultima expressão deve ser escrita como
<pre>&not (&not a);</pre>
provendo nível extra com os parênnteses.<pre>O operador booleano ‘'''and'''’ é um operador binário, ele modela a semântica lógica ''and b and c and d;</pre>''.
<pre>true and true;
true and false;
false and true;
false and false;</pre>
Estes quatro exemplos, exaure todos os possiveis argumentos do operador '''and'''. Nos veremos que o resultado de aplicamos ‘'''and'''’ para dois valores booleanos é '''true''', precisamente quando o valor de ambos os operandos é '''true'''. Da mesma forma, o exemplo acima mostra que '''and''' é um operador comutativo. De fato, o segundo e o terceiro exemplo acima constituem uma prova deste fato.
Do mesmo modo, nós podemos mostrar que o operador ‘'''or'''’ é comutativo. Seu comportamento pode ser completamente determinado pela aplicação dele sobre todos os possiveis pares de seus argumentos. (Faça isto agora!)
O operador not, é um pouco diferente dos dois operadores binários '''&and''' e '''or''', no fato que not é um operador (prefixo) unário. Seu efeito é alternar entre os dois valores booleanos.
<pre>not true;
not false;</pre>
Os resultados não são muito surpreendentes!
Os operadores booleanos em Maple tem uma série de outras propriedades das quais você deve estar ciente. Ambos, '''and''' e '''or''' são operadores associativos. Por exemplo, dizer que '''and''' é um operador binãrio significa que sobre ele é aplicado dois argumentos de uma vez. Se nós desejarmos computar o valor de '''and''' para três valores ditos '''a''', '''b''' e '''c''', então duas expressões A mesma coisa é verdade para o operador '''or'''.
Outra propriedade dos quais você deve estar ciente é que não é uma involução:
<pre>a and b and c and d;</pre>
Em outras palavras, a segunda aplicação de '''not''' desfaz o efeito da primeira.
Vocẽ pode fazer exatamente a mesma coisa com as tão faladas variantes inertes desses operadores (aquelas om o & prefixado em seus nomes). No entanto, nenhuma simplificação automática ocorrerá. Isto é porque operadores booleanos inertes são usados primeiramente para trabalhar simbolicamente com operações booleanoas; eles são operadores sobre os quais as ferramentas do pacote '''logic''' de Maple são baseados.
Por exemplo, usando o operador inerte '''&not''', nos veremos que a expresão:
<pre>&not( &not ( a ) );</pre>
Não é tão simplificado em '''a'''.
109

edits