Ejercicio de programacion sencillo, pero no lo pillo xD

Hola

Me he apuntado a 2 cursos de programacion online y ya me he atascado en el primer ejercicio, si alguien me puede echar una mano al cuello se lo agradezco XD

Utilizando las leyes de la lógica, demostrar las siguientes equivalencias:

p -> q = (not q) -> (not p)
(q or (not q)) -> p = p


Y el profesor me a explicado lo siguiente:

A través de estas leyes debes llegar a una conclusión final, es decir debes demostrar que p -> q = (not q) -> (not p) y que q or (not q)) -> p = p.

Vamos a realizar el primero y tu te encargas del segundo.

p -> q = (not q) -> (not p)

aplicando definición en la segunda parte de la igualdad

not(not q) or not p

aplicamos doble negación

q or (not p)

aplicamos conmutativa

(not p) or q por lo que queda demostrado que:

p -> q = (not p) or q (Definición) por lo que queda demostrada la igualdad


Me he quedado igual despues de la explicacion T_T
Veamos, uso otra terminologia que me parece mas comoda

(q or (not q)) -> p = p

not = ¬
or = V
and = ^

q v ¬q -> p = p


T -> p = p (por complementariedad)
¬T v p = p (reduciendo a v y ^)
C v p = p (negacion)
p = p (por la propiedad C v p = p, de la contradiccion)


Espero que te sirva de ayuda, y si te interesa, dime y te puedo pasar ejercicios de este tipo, aunque esto mas que programacion es lógica o calculo proposicional. [beer]
Muchas gracias Achiss

El caso que estoy repasando la "logica" que me salen en los libros que me han mandado y lo que as puesto quedaria segun su logica algo asi:

Utilizando las leyes de la lógica, demostrar las siguientes equivalencias:

p -> q = (not q) -> (not p)
(q or (not q)) -> p = p


Solucion:

p -> q = (not q) -> (not p) esto es una definicion, por lo que: p = 0 -> q = 1 (not q) = 1 (not p) = 1


(q or (not q)) -> p = p esto es una doble negacion, por lo que: (q or (not q)) = 1 -> p = p = 0



¿como lo ves? aunque me sobra la parentesis en (not q))
Gremio escribió:Muchas gracias Achiss

El caso que estoy repasando la "logica" que me salen en los libros que me han mandado y lo que as puesto quedaria segun su logica algo asi:

Utilizando las leyes de la lógica, demostrar las siguientes equivalencias:

p -> q = (not q) -> (not p)
(q or (not q)) -> p = p


Solucion:

p -> q = (not q) -> (not p) esto es una definicion, por lo que: p = 0 -> q = 1 (not q) = 1 (not p) = 1


(q or (not q)) -> p = p esto es una doble negacion, por lo que: (q or (not q)) = 1 -> p = p = 0



¿como lo ves? aunque me sobra la parentesis en (not q))



No entiendo muy bien que haces en la solucion, das los valores 1 y 0 en ambos lados de la igualdad y ves si son iguales para comprobar la equivalencia?

Si lo haces asi... con p= 0 y q=1

p->q = ¬q -> ¬p
0 -> 1 = ¬1 -> ¬0
0 -> 1 = 0->1 = 1

Y la segunda

q or ¬q ->p = p
1 or ¬1 ->0 = 0
1 ->0 = 0
0 = 0

Es lo mismo que he puesto antes, no se si asi te aclararas mejor. Y si, lo que has puesto seria correcto dandole valores a p y q.
Ahora lo voy pillando, creo xD

Muchas gracias Achiss, voy a ver que me cuenta el profesor [mad]
Nah, de nada, tengo un libro bastante completo sobre el tema que escribio un profesor mio, si te interesa puedo escanearte algunas partes, pero supongo que esto no sera mas que una introduccion al curso y no te interesara demasiado [jaja]

Venga, suerte con ello.
Yo creo que lo mejor es revisar las leyes:
Morgan
Modus Tollens
Modus Ponens

Si dominas eso, la lógica está tirá!
Aquí hay una miniguía! http://www.slideshare.net/isidorogg/modus-ponendo-ponens
saludos
Gracias a los 2, ya me han corregido el ejercicio, un 7/10, pero me a dicho que le de otro repaso a ese temario.

Y de paso ya me han dado el segundo ejercicio XD

Codificar en pseudocódigo el siguiente programa:

Un alumno quiere saber la nota media de 3 asignaturas. Dicha nota esta almacenada en 3 variables: Asig1, Asig2 y Asig3. Se pide: Codificar un programa que calule la nota media del alumno, la almacene en una variable llamada notaMedia y compruebe si dicha nota media es inferior a 5. Si es así, se escribirá un mensaje indicándole al alumno que ha suspendido, de lo contrario, se escribirá un mensaje que felicite al alumno por haber aprobado y se inicializarán las variables de sus asignaturas al valor 0.

Nota: Para escribir un mensaje se utilizará la sentencia: escribir ("Texto del mensaje")



Voy al tema XD
7 respuestas