Introducción a la programación

Estamos realizando un c�lculo complejo siguiendo (por ejemplo) alg�n m�todo iterativo en el cual, como condici�n de parada, necesitamos que sucedan varias cosas:

  • No exceder de una cierta tolerancia o cota del error
  • No exceder de un n�mero m�ximo de iteraciones
  • Tener un n�mero m�nimo de cifras exactas en el resultado

y estas condiciones deben comprobarse A LA VEZ. �C�mo lo hacemos? Bueno, espero que quede claro tras la siguiente (necesaria y breve) introducci�n a la l�gica.

En primer lugar, tenemos las proposiciones. Una proposici�n es una afirmaci�n de la que se puede decir sin ambig�edad y de forma excluyente que es cierta o falsa. El valor l�gico de la verdad es 1, y el valor l�gico de la mentira es 0.

Por ejemplo: ''Mar�a es una chica'' es una proposici�n, puesto que afirmamos algo sin ambig�edad alguna y, adem�s, o es verdad, o no lo es. O es chica, o no lo es.

Sin embargo: ''si no tienes dinero, eres pobre o gastas mucho'' no es una proposici�n. No es una afirmaci�n de la que se pueda decir sin ambig�edad y de forma excluyente que sea verdad o mentira. No tener dinero puede ser consecuencia de un robo, o de muchas otras cosas. Sin embargo, esto lo podemos dividir en proposiciones m�s sencillas: ''no tienes dinero'' (evidentemente, o es verdad o no lo es), ''eres pobre'' (cierto o no) y ''gastas mucho'' (verdad o mentira). Estas proposiciones est�n unidas mediante lo que se llaman CONECTORES LOGICOS. Estos son los siguientes:

o ||
y &&
no !
o exclusivo XOR
condicional -> "si... entonces..."
doble condicional <-> "... si y s�lo si..."

He usado la notaci�n de C para los tres primeros, por no tener disponibles los s�mbolos l�gicos O:)

Si tenemos dos proposiciones p, q unidas por alguno de estos conectores, el valor de verdad de la proposici�n compuesta, seg�n el valor de verdad de p y de q, viene dado en la siguiente tabla (llamada Tabla de Verdad):

p q !p p && q p || q p -> q p <-> q p XOR q
110 111 10
100 010 01
011 011 01
001 001 10

Claramente, p && q ser� cierta cuando sean ciertas p y q. No podemos decir "verdad" y "mentira" a la vez y pretender que esto sea cierto. Sin embargo, p || q es cierta cuando es cierta una de las dos proposiciones. Si tengo "verdad" o "mentira", est� claro que una o la otra (si no las dos) es cierto.

Para aclarar el XOR, pondr� un ejemplo: O est�s vivo o est�s muerto, pero ni puedes estar las dos cosas a la vez ni puedes estar ninguna, por eso s�lo es cierto cuando �nicamente una de las dos proposiciones es cierta.

Una forma proposicional que es SIEMPRE VERDAD se llama TAUTOLOGIA. Si es SIEMPRE FALSA se llama CONTRADICCION.

Siempre tendremos que p || (!p) es tautolog�a, mientras que p && (!p) es contradicci�n.

Cuando -> es tautolog�a, se llama IMPLICACION. Cuando <-> es tautolog�a, se llama DOBLE IMPLICACION y la simbolizar� con <|=|>

Voy a poneros las propiedades de &&, || (podeis convenceros haciendo las tablas de verdad), que muchas veces os ser�n �tiles:

Leyes asociativas
p || (q || r) <|=|> (p || q) || r
p && (q && r) <|=|> (p && q) && r
Leyes conmutativas
p || q <|=|> q || p
p && q <|=|> q && p
Leyes distributivas
p && (q || r) <|=|> (p && q) || (p && r)
p || (q && r) <|=|> (p || q) && (p || r)
 p && 1 <|=|> p     (1 es tautolog�a)
 p || 0 <|=|> p     (0 es contradicci�n)
 p && p <|=|> p
 p || p <|=|> p

 p || (!p) <|=|> 1
 p && (!p) <|=|> 0

 p <|=|> !(!p)

Como consecuencia, se tiene (podeis comprobarlo):

 !1 <|=|> 0
 !0 <|=|> 1

 !(p && q) <|=|> !p || !q
 !(p || q) <|=|> !p && !q

Estas dos �ltimas se conocen como "Leyes de De Morgan", y son muy importantes. Adem�s, pueden generalizarse a n proposiciones.

Espero que con esto tengais un peque�o instrumento que os ayude a pensar en t�rminos l�gicos a la hora de evaluar una condici�n. Al fin y al cabo, vosotros quereis que la m�quina haga algo si el resultado l�gico es 0 o 1, as� que esto es precisamente lo que necesitais.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO