AND OR NAND NOR




..interruptores


Definição do usuario final


Logica Combinacional
Entrada
Saida
Interruptor
Lampadas
5
6
1-AND
2-OR
3-NAND
4-NOR
S
S
S
S
N
N
S
N
N
S
S
N
N
S
N
S
S
N
N
N
N
N
S
S
--------------------------------Configurações dos conjuntos de elementos------------------------------------------------
var Chave = [], Dica = [];
Dica.pagina ='lâmpadas: resultado da operação lógica dos estados dos interruptores';
Dica.lampada = 'lâmpadas indicam resultado da operação lógica';
Dica.interruptor = 'clique para alterar estado dos interruptores';
Dica.ele1 = 'resultado da operação lógica AND (&&)';
Dica.ele2 = 'resultado da operação lógica OR (||)';
Dica.ele3 = 'resultado da operação lógica NAND';
Dica.ele4 = 'resultado da operação lógica NOR';

var IconeLed = {
    true: ' lâmpada acesa',
    false: ' lâmpada apagada' };
var IconeInterruptor = {
    true: ' interruptor ligado',
    false: ' interruptor desligado' 

-------Mudança de etados dos elementos : pagina, interruptor e lampada para os eventos:click e mousehover ----
DesenharTela();
document.body.addEventListener('click', TratarClick );
document.body.addEventListener('mouseover', function (event) {
    var primeiro = event.target;
    while (!Dica[primeiro.id]) { primeiro = primeiro.parentElement; }
    var dica = Dica[primeiro.id] || Dica.pagina;
    document.getElementById(primeiro.id).setAttribute("title", dica); } );

--------------------------------- Funcionalidades ---------------------------------------------
function TratarClick(event) {
    var primeiro = event.target;
    while (!primeiro.id) { primeiro = primeiro.parentElement; }
    var id = primeiro.id; 
    if (id == 'ele5'|| id == 'ele6') Chave[id] =  !Chave[id];
    DesenharTela(); }

function VerChave(elemento) { return Chave[elemento] || false; }

function DesenharTela() {
    var bool1 = VerChave('ele5'), bool2 = VerChave('ele6');
    document.getElementById('ele1').innerHTML = IconeLed[bool1 && bool2];
    document.getElementById('ele2').innerHTML = IconeLed[bool1 || bool2];
    document.getElementById('ele3').innerHTML = IconeLed[!(bool1 && bool2)];
    document.getElementById('ele4').innerHTML = IconeLed[!(bool1 || bool2)];
    document.getElementById('ele5').innerHTML = IconeInterruptor[bool1];
    document.getElementById('ele6').innerHTML = IconeInterruptor[bool2]; }

------------------------------ Arquivo de teste --------------------------------------------
http://jsfiddle.net/wr3nt1k7/2/