jueves, 21 de octubre de 2010

Reporte 5

Problema Lógico

Shirt Friends ( Camisa de los amigos)

En un restaurante del centro, el Sr. Rojo, Sr. Azul, el Sr. Blanco se reunieron durante el almuerzo. Bajo los abrigos
que están usando ya sea una camisa roja, azul o blanco.

Sr. Azul dice: "Oye, ¿te diste cuenta que estamos todos con camisas de colores diferentes de nuestros nombres?" El hombre
con la camiseta blanca, dice, "Wow, Sr. Azul, es cierto!"

¿Se puede saber quién está usando qué color de camisa?

RESPUESTA:
Sr. Azul - Camisa Roja
Sr. Roja - Camisa blanca
Sr. Blanco - Camisa Azul

Solución.
cuando el señor Azul nota que todos traian camisas diferentes a sus nombres, y por lo que el señor Blanco le contesta que era verdad lo que habia notado. Asi que usando la logica como nadie tiene la camisa del color de su nombre entonces el Sr. Azul no puede tener ni la azul ni la blanca porque porque azul asi se llama y blanca porque el que traia camisa blanca le contesto por lo que queda la roja que es la que trae puesta y el Sr. Rojo y Sr. Blanco ya los sacamos por logica como nos queda la camisa blanca y la azul entonces el Sr. Blanco no puede traer la camisa blanca asi que trae la azul y el Sr. Rojo trae la camisa blanca que es la que quedo.


Aqui les dejo un pequeño programa de prolog hecho en turbo prolog.
domains
marca,talla,color=symbol
precio=real
(esta primera parte del programa es en donde como conocemos en otros lenguajes declarar las variables con el domains, el symbol representa todo lo que sean como simbolos como las letras u objetos, y real significa algun valor numerico real que en este caso seria el de precio.)

predicates
ropa(marca,talla,color,precio)
tenis(marca,talla,color,precio)
playera(marca,talla,color,precio)
tachones(marca,talla,color,precio)
(en esta segunda parte indicamos mas que nada como las predicciones osea es donde nosotros declaramos como una regla de como vamos a querer que prolog nos lea el programa cuando quieramos hacer una consulta.)

clauses
ropa(M,T,C,P):-
tenis(M,T,C,P);
playera(M,T,C,P);
tachones(M,T,C,P).
(En la tercera parte de nuestro programa viene lo que son clauses que es la parte logica en la cual ropa(M,T,C,P):- nos indica que estamos utilizando un if el cual nos indica que hay mas de un tipo de ropa, depues las variables ya declaradas en esta parte las pusismos solo con su inicial pero en mayuscula para que para poder llamar a la variable sin la necesidad de escribirla toda. Despues tenis(M,T,C,P); y playera(M,T,C,P); serian los siguientes caminos pero el (;) es el que te manda al siguiente camino y tachones(M,T,C,P). que si notamos en este camino tenemos un punto que es el que despues de realizar la consulta nos indica el final del if.)

playera(nike,mediana,azul,600).
playera(adidas,chica,roja,750).
playera(nike,chica,naranja,550).
tenis(puma,medianos,verdes,900).
tenis(nike,grandes,rojos,1100).
tenis(adidas,medianos,negros,1000).
tachones(puma,chicos,rojos,400).
tachones(nike,medianos,negros,1250).
tachones(adidas,chicos,morados,980).
(esta es nuestra ultima parte del programa que despues de terminar la parte clauses que es la parte logica continuamos con esta que es donde llenamos los datos los cuales son (marca,talla,color,precio) que vamos a registrar para cuando quieramos hacer nuestra consulta, al final de cada sentencia debe llevar un punto que le indica a prolog que hasta ahi termina el dato.)

Ahora les mostrare una impresion de la pantalla donde pedi los datos para una consulta.


Como podemos observar en esta imagen yo pedi haber si habia ropa de que talla, que marca y que colores y me los desplego todos pero si observan un detalle es una rayita que quiere decir esa rayita es el espacio de precio que cuando nosotros no queramos saber el precio u otra opcion de las que nos dan tenemos que dejar el espacio con una rayita y no saltarnolo porque en este lenguaje es muy importante la sintaxis al hacer el programa y al correrlo también si no ponemos esa rayita nos marca error.


Esta es otra ves lo mismo de arriba pedimos lo mismo pero si se dan cuenta ahora pusismos toda la palabra de lo que queriamos consultar, pero aguas hay que tener cuidado con la sintaxis las palabras que van dentro del parentesis tienen que llevar la primera letra mayuscula si no de lo contrario nos marcaria error y no nos despliegaria lo que queriamos consultar y como ven es una cosa minima pero muy importante, que quiere decir el goal pues eso es mas que nada lo que nos indica donde empezamos a teclear nuestra peticion y al terminar nos vuelve aparecer para hacer de nuevo otra consulta.



En esta imagen es para mostrarles las consultas ya buscando, que playeras tienen, tenis y tachones es mas que nada un ejemplo.


Por ultimo en esta imagen lo que yo estoy consultando o preguntando a prolog es primero que si hay ropa nike y me dijo que si, despues le pregunte que si habia ropa mediana y tambien dijo que si, luego le pregunto que si tiene ropa rosa y me dijo que no por lo que no hay y de igual forma me dijo que no habia ropa de 1500, por ultimo le pregunte que si tenia ropa adidas negra y me dijo que si.

Bueno eso es todo espero les sirva de algo y puedan entenerle de lo contrario alguna duda pues diganme y hare lo posible por respondersela =)

13 comentarios:

  1. ei jOel estube viendo tu problema y te cuento que esta muy interesante yo ya lo sabia ya que anteriormente me lo habian encargado en la prepa pero aun asi lo supiste redactar muy biien :)

    ResponderEliminar
  2. Bien. Ahora sólo queda pendiente el programa en Prolog.

    Calificación: 1/1

    Saludos =)

    ResponderEliminar
  3. Muy bien tu programa, lo explicaste muy bien, solamente te falto el programa en prolog.

    ResponderEliminar
  4. esta muy explicado,cada uno de los pasos
    y ya con las imagenes esta mucho mejor
    que buen reporte

    ResponderEliminar
  5. Muy bien tu reporte esta muy completo y muy bien explicado.

    ResponderEliminar
  6. hola!!

    me gusto como redactaste el problema de la pagina ... por otro lado el de la ropa se me hizo interesante .. buen trabajo !

    ResponderEliminar
  7. Hola Joel

    todo el tema muy bien exlpicado, y todo esta completo.

    ResponderEliminar
  8. muy bien explicado y las pantallas completan el reporte muy bien

    ResponderEliminar
  9. Super bien, todo excelentemente explicado insisto que bien que explicaste cada cosa eso es lo mejor de tus reportes.

    ResponderEliminar
  10. Excelente al aplicacion, le entendi muy bien, y si lo pudiste hacer en prolog, me ayudo a enterderle un poco mas a este lenguaje

    ResponderEliminar
  11. Muy bien el desarrollo del problema logico y la explicacion del mismo en el programa de Prolog. Excelente reporte!

    ResponderEliminar
  12. Excelente tu programa lógico y la explicación estuvo excelente(:

    ResponderEliminar
  13. Ok, aunque las pantallas se ven algo chicas.

    Calificación: 3/3

    ResponderEliminar