Tablas de verdad en PHP Programación en Internet II.

30
Tablas de verdad en PHP Programación en Internet II

Transcript of Tablas de verdad en PHP Programación en Internet II.

Page 1: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHPProgramación en Internet II

Page 2: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Todos los operadores lógicos evalúan el “valor de verdad” (es decir, si es verdadera o falsa)

De cada una de las condiciones por separado y, luego, según el operador utilizado para unir estas condiciones, devuelven un único valor de verdadero o falso para el conjunto completo de condiciones que formaban esa expresión.

Page 3: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Vamos a analizar cuatro operadores lógicos:

• And (conjunción, también puede escribirse en PHP como &&),

• Or ( disyunción, también puede escribirse en PHP como ||),

• Xor ( disyunción excluyente, informalmente llamado “or excluyente”),

• !(negación).

Page 4: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Si a las dos condiciones que uniremos mediante operadores lógicos les damos un nombre simbólico y las denominaciones $x e $y, los valores de verdad pueden ser solamente cuatro:

Page 5: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

• Que ambas condiciones sean verdaderas,

• Que ambas condiciones sean falsas,

• Que la primera sea verdadera y la segunda falsa,

• Que la primera sea falsa y la segunda verdadera. No hay otra alternativa.

Page 6: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Esto puede graficarse con esta tabla:

Page 7: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

(Siendo “V” verdadero, y “F” falso).

Dependiendo de cual operador utilicemos para unir ambas condiciones, obtendremos distintos resultados al evaluar el conjunto completo.

Page 8: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos cual es la “tabla de verdad” para unir condiciones, según cada uno de estos operadores lógicos.

Page 9: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

El operador de conjunción es un operador lógico bastante restrictivo, ya que requiere que todas las condiciones que forman parte de la expresión sean verdaderas para que devuelva verdadera la condición completa.

Page 10: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

En cualquier otro caso, es decir, con que sólo una de las condiciones sea falsa, la expresión completa se evalúa como falsa.

Page 11: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos un ejemplo con PHP. Supongamos que disponemos de estos datos:

$usuario = "pepe"; $clave = 123456;

Page 12: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Y que queremos validarlos con un condicional que evalué si el nombre es “pepe” y la clave es “123456”.

Necesitamos que ambos sean verdaderos para dar por verdadera la condición entera y darle acceso a ese usuario, entonces, usaremos un operador de conjunción:

Page 13: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

if($nombre == "pepe" and $clave == "123456") {print ("¡Bien venido pepe!");} else {print ("No lo conocemos, disculpe pero queda fuera");}

Page 14: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Es recomendable que probemos qué sucede cuando proporcionamos valores “falsos” (distintos a los esperados en la condición).

Por ejemplo, podríamos cambiar los valores de esas dos variables de esta manera:

$usuario = "Juan";$clave = 123456;

Page 15: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

En ese caso, se evaluaría como falsa la condición, ya que la primera condición (que $nombre valga “pepe”) se evalúa como falsa, así que, por más que la segunda sea verdadera, al haber unido ambas con un operador de conjunción and, la condición entera se evalúa como falsa.

Page 16: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Del mismo modo, podríamos volver a cambiar los valores de esas dos variables, esta vez a algo como.

$usuario = "Pepe";$clave = 99999;

Y también en este caso, se evaluaría como falsa la condición, ya que la primera condición es verdadera, pero la segunda es falsa.

Page 17: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Desde ya que también se evaluaría como falsa si ambas partes fueran falsos (tanto el nombre como la clave).

Page 18: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

El operador de disyunción, contrariamente al anterior, es un operador lógico bastante amplio, ya que considera que la expresión es verdadera si al menos una de las condiciones que forma parte de la expresión es verdadera.

Page 19: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

La única forma de que una disyunción resulte falsa es que todas las condiciones sean falsas, sin excepción.

Page 20: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Veamos un ejemplo con PHP, imaginemos que un sitio de comercio electrónico realiza envíos a domicilio solamente en tres ciudades: ciudad 1, ciudad 2 y ciudad 3; solicitamos al usuario que ingrese su ciudad de residencia en un campo llamado “ciudad”, y evaluemos ese dato.

Page 21: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Necesitamos que al menos uno de esos tres nombres de ciudad sea el que verdaderamente ingreso el usuario para dar por verdadera la condición entera, y realizar el pedido. Entonces, usaremos un operador de disyunción:

Page 22: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

if ($_POST["ciudad"] == "ciudad 1" or $_POST["ciudad"] == "ciudad 2" or $_POST["ciudad"] == "ciudad 3"){

print ("¡Zona correcta! Recibira su pedido.");} else {print ("Esta fuera del área de cobertura.");

}

Page 23: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Nuevamente, es recomendable que probemos cambiando los valores esperados, y que veamos que sucede cuando proporcionamos valores falsos o uno de los verdaderos.

En el caso de una disyunción, con que proporcionaremos un solo de los valores correctos, se evaluara como correcta la expresión.

Page 24: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

La diferencia con el operador de la disyunción común es que si ambas condiciones son verdaderas, devuelve falso.

Page 25: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Supongamos que disponemos de estos datos proporcionados en un pedido:

$targeta = "VISA";$cupon = "19876";

Page 26: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Y que queremos validarlos con la regla de que si paga con tarjeta VISA, no se considera ningún cupón de descuento. Por el contrario, si ingresa un cupón de descuento, la forma de pago no puede ser VISA.

Page 27: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Son excluyentes:

if ($targeta == "VISA" xor $cupon <> ""){print ("Podemos tomar su pedido");} else {print ("No puede elegir VISA y a la vez colocar un código de cupón de descuento, y tampoco puede elegir otro medio de pago sin ingresar un código de cupón.");}

Page 28: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

El operador de negación transforma la expresión en su contrario.

Es decir, si la condición es verdadera, devuelve falso, y si la condición es falsa, devuelve verdadero.

Page 29: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Ya hemos utilizado este operador en otros casos, como por ejemplo en:

if ($_POST["nombre"] != "Pepe" {print ("No sos Pepe");

}

Page 30: Tablas de verdad en PHP Programación en Internet II.

Tablas de verdad en PHP

Programación en Internet IIUniversidad de Guadalajara | Centro Universitario de la Costa

Devuelve verdadero si nombre no es igual a “Pepe”.Resumamos, entonces, en un cuadro, los distintos operadores lógicos: