Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/07/2018, 03:33
tonigomila1988
 
Fecha de Ingreso: mayo-2011
Ubicación: Palma de Mallorca
Mensajes: 108
Antigüedad: 13 años
Puntos: 4
Respuesta: Duda sobre expresiones condicionales.

Hola Tachikomaia,

sobre tu duda sobre las expresiones y los paréntesis, los paréntesis realizan la misma función que en las operaciones matemáticas.

Si tienes una operación como 2*3+5, al aplicar las prioridades de operaciones, realizamos la multiplicación y luego la suma, con el que el resultado nos daría 11.

Si añadimos unos párentesis a la suma, dejando la operación en 2*(3+5), los párentesis tienen prioridad y se realiza las operaciones que envuelve, lo cual nos devolverá un resultado de 16.

Ahora vayamos a la resolución de tus expresiones:

Cita:
(C1 o C2) y (C3 o C4)
En esta expresión, primero se resolverán las "o" y luego se resuelve la "y", por lo tanto, la condición será verdadera cuando al menos 1 valor de cada lado sea verdadero.

Cita:
C1 o (C2 y C3) o C4
En esta expresión, la operación prioritaria es la "y", ya que está envuelta en paréntesis, aunque realmente el peso lo llevan las "o". Si C1 o C4 es verdadero o los 2 son verdaderos, el resultado de C2 y C3 es totalmente irrelevante. Solo resultará determinante si C1 y C4 son falsas y la operación "y" es verdadera, con lo cual, dará la expresión como verdadera.

Cita:
C1 o (C2 y (C3 o C4))
Esta es interesante, por que hay paréntesis dentro de paréntesis. En este caso, la operación prioritaria es el paréntesis más interior (C3 o C4) ya que su resultado es necesario para la realización de la operación del otro paréntesis presente en la expresión.

Cita:
Suponiendo que la 1era sea la correcta, me pregunto si todas las posibles relaciones son expresables, o sea, si interpretando de izquierda a derecha existe para toda posible relación una forma de expresarla que mediante dicho método se tome como tal. Mejor no puedo explicarme.
Con lo dicho aquí, entiendo que preguntas si es posible que una operación donde haya paréntesis se pueda sacar un equivalente que se pueda ejecutar de izquierda a derecha sin hacer uso de ellos. Lo he pensado un rato y he llegado a la conclusión de que depende de la expresión, sobre todo de la colocación de las "y".

Siguiendo tus expresiones originales, he podido deducir expresiones equivalentes para el 2º y el 3º caso, para el 1º caso me ha resultado imposible debido a que según donde colocaba la "y", me daba resultados diferentes con los mismos valores, cosa que en el 2º y 3º caso si se repite el mismo resultado.

Te dejo un enlace de un documento en Drive donde realizo estas operaciones con todas las combinaciones booleanas posibles. Podrás comprobar como dependiendo de la colocación de los paréntesis, algunos resultados son distintos con la misma combinación de valores.

No se si es lo que necesitas exactamente, pero he respondido con lo que sé y espero que te sirva de ayuda. Un saludo.