Entrenador Lógico en modo consola multiplataforma de código abierto. Inserción de una instrucción y devolución de su tabla de verdad o de funcionamiento.
Página del proyecto »
Se ha reescrito completamente el código y se ha desechado el "método" de usar vectores a toda costa (además de lioso creo que sería una barbaridad a la hora de modificar cualquier parte del código) y se ha empezado de cero con una estructura básica de funciones recurrentes.
Actualmente soporta cualquier entrada de datos de tipo: (variable1,&,variable2) en donde variable1 es a y variable2 es b.
Soporte de puertas: AND &; OR |; NAND /&; NOR /|
Además, pueden negarse las salidas tanto de las variables (variables negadas) como de las salidas (puertas NAND y NOR) escribiendo el carácter / delante de la correspondiente variable o puerta. Ejemplo: (a,/&,/b) --> Es una puerta NAND de dos entradas con la variable b negada.
Se permite la composición de circuitos. Ejemplo: ((a,&,b),/|,((/a,&,b),|,b)).
Actualmente soporta a la perfección esta instrucción: (variable,puerta,variable). La instrucción debe estar entre paréntesis (siempre) y cada, llamemosle comando, separado por una ‘,’ [coma].
Existen 5 tipos de puertas (pero 4 de ellas son las que realmente se pueden usar en las instrucciones): and [&]; nand [/&]; or [|]; nor [/|]. Acabáis de comprobar que el comando / lo que hace es negar la salida de la puerta.
El comando / delante de las variables debería estar soportado, pero no es así… y tengo que averiguar el por qué.
Lo importante es que la base ya la tengo hecha y he dejado preparado para dar soporte a instrucciones más complejas como ((a,&,b),|,(a,&,b)) ó incluso (((/a,&,b),+,/b),|,/(a,|,/(a,&,b))).