Foros del Web » Programando para Internet » Javascript »

Tabla de verdad, encadenamiento de reglas

Estas en el tema de Tabla de verdad, encadenamiento de reglas en el foro de Javascript en Foros del Web. Buenas, como podria realizar el codigo en javascript de tal manera que se base en las tablas de verdad para calcular todo el arbol, ya ...
  #1 (permalink)  
Antiguo 21/09/2009, 01:21
 
Fecha de Ingreso: septiembre-2004
Mensajes: 7
Antigüedad: 19 años, 8 meses
Puntos: 0
Tabla de verdad, encadenamiento de reglas

Buenas, como podria realizar el codigo en javascript de tal manera que se base en las tablas de verdad para calcular todo el arbol, ya sea que el usuario solo escriba uno o varios valores V (verdaderos) o F (falsos) en cualquier letra??

El formulario tiene este aspecto y con un valor o varios asignados ya deberia calcular el resto.

tuimg.net/p/e3331temp.JPG

El codigo con la estructura del programa ya lo hice (jeje lo mas facil) pero pues para que funcione, tengo que hacerlo para todas las reglas Disyuncion, Conjuncion, Condicional, Bicondicional.

La que mas me interesa saber es la Bicondicional (↔)

p q p ↔ q
-------------
V V V
V F F
F V F
F F V

Y si fuera F+F+V seria Verdadero porque primero F+F = V entonces V+V=V


Aca una parte del codigo del formulario, inicialmente lo intente hacer en php y esos valores del formulario debian enviarse, pero quizas con javascript sea posible hacerlo todo en una sola ventana

Código HTML:
<html> 
  <head> 
  <title></title> 
  </head> 
  <body>
<form method="post" action="pagina2.php"> 
  Ingresa valor de A: 
  <input type="text" name="A"> 
  <br> 
  Ingresa valor de B: 
  <input type="text" name="B"> 
  <br> 
  Ingresa valor de C: 
  <input type="text" name="C"> 
  <br> 
  Ingresa valor de D: 
  <input type="text" name="D"> 
  <br> 
  Ingresa valor de E: 
  <input type="text" name="E"> 
  <br> 
  Ingresa valor de F: 
  <input type="text" name="F"> 
  <br> 
  Ingresa valor de G: 
  <input type="text" name="G"> 
  <br> 
  <input type="submit" value="Revisar"> 
  </form>
</body> 
</html> 
De antemano muchas gracias por su ayuda, tengo algo de nocion en javascript, si lo veo ya lo comprendo y puedo basarme en algun ejemplo, sigo buscando info.
  #2 (permalink)  
Antiguo 21/09/2009, 02:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Tabla de verdad, encadenamiento de reglas

Hola:

Para obtener los caracteres lógicos, tal vez te pueda servir esta página. Caracteres especiales... y sobre las operaciones, en javascript puedes usar los operadores lógicos... and => && or => ||, o fabricas tus propias puertas

Código:
function or(a, b) {
 return a || b;
}

function and(a, b) {
 return a && b;
}
Ya sabes que con esas puedes fabricar el resto...

Por ejemplo xor:

Código:
function xor(a, b) {
 return or(and (a, !b), and(!a, b));
}
... y por cierto, las negaciones son con "!"...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 21/09/2009 a las 02:30 Razón: algo más...
  #3 (permalink)  
Antiguo 21/09/2009, 02:45
 
Fecha de Ingreso: septiembre-2004
Mensajes: 7
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Tabla de verdad, encadenamiento de reglas

Gracias, hace unos momentos encontre eso de los operadores logicos, pero precisamente tambien lo que no entiendo es la logica, encontre un codigo que hace esa relacion en php por ejemplo con 3 letras:

<?php
$operador = Array ();
$operador[] = strtoupper( $_REQUEST['X'] );
$operador[] = strtoupper( $_REQUEST['Y'] );
$operador[] = strtoupper( $_REQUEST['Z'] );

// Calculan 3 operadores
if ( count( $operador ) == 3 ) $resultado = ! ( ! ( $operador[0] == 'V' XOR $operador[1] == 'V') XOR $operador[2] == 'V' );
// Calculo 2 operadores
if ( count( $operador ) == 2 ) $resultado = ! ( $operador[0] == 'V' XOR $operador[1] == 'V' );

// Mostrar resultado
if ( $resultado ) echo 'ES VERDADERO';
else echo 'ES FALSO';
?>

ahi recoge los 3 valores e imprime falso o verdadero y en mi caso a parte de bo saber bien como pasarlo a javascript, deberia crear una nueva variable que despues debera ser comparada y asi supongo o estoy frito?

En el caso de bidireccional deben ser puros XOR ?

Gracias por la enorme ayuda.
  #4 (permalink)  
Antiguo 21/09/2009, 03:04
 
Fecha de Ingreso: septiembre-2004
Mensajes: 7
Antigüedad: 19 años, 8 meses
Puntos: 0
Respuesta: Tabla de verdad, encadenamiento de reglas

Haber disculpa a caso seria asi? y si fuera asi como le hago para juntar todos???
Es que etsoy bien pe..rdido

Cita:
a=prompt('A:','');
b=prompt('B:','');
c=prompt('C:','');

a=parseInt(a);
b=parseInt(b);
c=parseInt(c);

$operador = Array ();
$operador[] = parseInt(a);
$operador[] = parseInt(b);
$operador[] = parseInt(c);


if ( count (operador) == 3) resultado = ! ( ! ( operador[0] == 'V' XOR operador[1] == 'V') XOR operador[2] == 'V' );
if ( count (operador) == 2) resultado = ! ( operador[0] == 'V' XOR operador[1] == 'V' );

if (resultado)
{
document.write("Es verdadero")
}
else
{
document.write("Es Falso")
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.