martes, 17 de abril de 2007

Prolog - viaje

Aqui se encuentra el codigo para realizar viajes dependeindo de la variables seleccionadas.

uno puede seleccionar alta o baja, dependiendo de la temporada de vaciones, no se gasta mucho por lo que los precios ban de 500 a 12000; dependiendo del sitio al que se decida ir puede ser un lugar turistico unas albercas, cascada o grutas.

todo se realizo mediante reglas de seleccion, ya que dependeindo del valor de las variables se tiene un resultado

jueves, 5 de abril de 2007

Programa de Prolog

como manejar las variables atraves de la programacion en prolog.

se realizo un programa en el cual se especifica la forma de definir quien es mortal atraves de una interfas de prolog, realizado preguntas.

main:- busca([socrates,mike,platon], N, M), write('existen '), write(N), write(' mortales.'), nl, write('existen '), write(M), write(' que no son mortales.'), nl.

busca([],0,0).
busca([HT], N1, M1):-
mortal(H), # si se encuantra dentro de la lista es verdadero y continua la busqueda.
write(H),
write(' es mortal.'), nl,
busca(T, N2, M2),
N1 is N2 + 1, M1 is M2 + 0. # en esta linea se esta especificando el valor de las variables
acumulativa
busca([HT], N1, M1):- #como existen dos clases de humanos los que son y los que no son
mortales es necesario agregar las busqueda de los no mortales.
write(H),
write(' no es mortal.'), nl,
busca(T, N2, M2),
N1 is N2 + 0,
M1 is M2 + 1.
mortal(X):- humano(X). #se definen a los humanos como mortles
humano(platon). #especificas quien es mortal en este caso platon y socrates.
humano(socrates).

este programa al mandar el main principal, regresa las busquedas indicadas y especifica quien es mortal y cuantos mortales y no mortales hay en la busqueda.

martes, 27 de febrero de 2007

L15-DECL

Integrantes:

Miguel Solis A00739496
Mario Figueroa A00739420
Gerardo Velo A00746849

Como programar Prolog en Ruby.

Para poder interpretar lineas de codigo con estructura de Prolog en un archivo Ruby es necesario contar con los siguientes archivos.

http://mipagina.chi.itesm.mx/.a00739496/tiny_prolog_ext.rb
http://mipagina.chi.itesm.mx/.a00739496/tiny_prolog.rb

Estos dos archivos funcionan como interpretes de la estructura realizada en una programacion en prolog , cada vez que se realize un algoritmo es necesario requerir uno de estos archivos.


Por ejemplo, en la primera linea del algoritmo cuida de poner:

require 'tiny_prolog_ext'

Para llamar al "interprete". Los archivos que ejecutes tienen que estar grabados dentro de la misma direccion donde tienes estos archivos.

require 'tiny_prolog_ext'

# rules
# read as "X and Y are siblings if Z is the parent of both"
sibling[:X,:Y] <<= [ parent[:Z,:X],
parent[:Z,:Y], noteq[:X,:Y] ]
parent[:X,:Y] <<= father[:X,:Y]parent[:X,:Y] <<= mother[:X,:Y]

# facts: rules with "no preconditions"
father["matz", "Ruby"].fact
mother["Trude", "Sally"].fact
father["Tom", "Sally"].fact
father["Tom", "Erica"].fact
father["Mike", "Tom"].fact

query sibling[:X, "Sally"]

# >> 1 sibling["Erica", "Sally"], este es el resultado de la ejecucion.


Otro ejemplo son las torres de Hanoi.

http://mipagina.chi.itesm.mx/.a00739496/hanoi.rb


lo importante es la primera linea de codigo, no lo olvides......

L14-PHP

las modificaciones que se realizaron para el funcionamiento de clases en php:

class Lada {
public $data = Array();

//como ya se definio como publica cada vez que se mencione dentro de la clase es necesario agragarle el this para hacer referencia a la variable.

function __construct(){ foreach(file("LADA_Nac.txt") as $line): if (preg_match("/^(.+)\s+(\d{1,4})$/",trim($line),$r)): list(,$cd,$cve) = $r; $cve = intval($cve); if ($this->data[$cve]) $this->data[$cve] .= "\n$cd"; else $this->data[$cve] = $cd; endif; endforeach;}

function get_ciudad($clave)
{
if ( $this->data[$clave] ) echo implode("
",explode("\n",$this->data[$clave])); else echo "Clave LADA inválida";
}
function get_lada($ciudad)
{
foreach ( $this->data as $key=>$value ) if ( strstr(strtolower($value),$ciudad) !== FALSE ) echo "
  • $key
  • ";
    }
    }



    para hacer llamar a la clase se necesita de las siguentes lineas:


    $var = new Lada();
    if ( $ciudad ) $var->get_lada($ciudad);
    if ( $clave ) $var->get_ciudad($clave);

    para llamar a los diferentes metodos que existen dentro de la clase.

    el archivo biene en la siguiente direccion lada.php

    http://mipagina.chi.itesm.mx/.a00739496/

    es necesario descargar el archivo LADA_Nac.txt, para hacer funcionar el codigo.

    jueves, 22 de febrero de 2007

    L13-LADA

    Listo el codigo alfin funka, lo puedes encontrar en la pagina:

    http://mipagina.chi.itesm.mx/.a00739496/

    tienes que descargar los archivos de lada.rb y el de LADA_Nac.txt

    el programa tiene el boton para poder cerrar la aplicacion, y te proporciona los nombres de las ciudades con el mismo codigo

    viernes, 16 de febrero de 2007

    L12-BOOKS

    En la bliblioteca de nuestro Campus puedes encontrar

    Libros de lenguajes de DataFlow, como son:

    Autor
    Joyanes Aguilar, Luis.
    Titulo
    Programación en C : metodología, algoritmos y estructura de datos / Luis Joyanes Aguilar, Ignacio Zahonero Martínez.
    Programación en C : metodología, estructura de datos y objetos
    Pie impren
    Madrid : McGraw-Hill, c2001.
    Ubicación
    CHI GENERAL
    QA76.73 .C1 .J6P7 2001

    Bibliografia
    Incluye referencias bibliográficas (p. 542) e índice.
    Materia
    C (Lenguaje de programación para computadora).
    Programación orientada a objetos (Computación).
    C++ (Lenguaje de programación para computadora)..
    Autor alt
    Zahonero Martínez, Ignacio
    ISBN
    8448130138


    Lamentablemente de DataFlow no pude encontrar otros libros que no fueran el languaje tipico de C, mas existen otros lenguajes como son: Prograph, Cantata, Bioera, VEE, Simulink, ID, Mindscript, BMDFM.

    Para más información de los lenguajes, http://en.wikipedia.org/wiki/Dataflow_language


    Concurrent Languages

    Dentro de esta clasificación podemos encontrar a los lenguajes de Smalltalk, Ada, C# y Java.
    En la biblioteca puedes tener acceso a libros como:

    C#

    Autor
    Petzold, Charles.
    Titulo
    Programación en Microsoft Windows con C# / Charles Petzold ; tr. José Joaquín Cañadas Martínez, Franscisco Gabriel Gil Reyes, Carmen Martínez Cruz.
    Pie impren
    Madrid : McGraw-Hill, 2002.
    Ubicación
    CHI GENERAL
    QA76.76 .O63P533 2002
    Descrip.
    1022 p. : il ; 24 cm + 1 CD-ROM (4 3/4 plg.)
    Notas
    Incluye índice.
    Traducción de: Programming microsoft windows with C#.
    Materia
    C# (Lenguaje de programación para computadora).
    Programación (Computadoras)
    Autor alt
    Cañadas Martínez, José Joaquín, tr.
    Gil Reyes, Francisco Gabriel, r.
    Martínez Cruz, Carmen, tr.
    ISBN
    8448136985
    Ada

    Autor
    Mayoh, B. H
    Titulo
    Resolución de problemas con ADA / Brian Mayoh
    Pie impren
    Barcelona : G. Gili, c1987

    Ubicación
    CHI GENERAL
    QA 76.8 .A15 .M35 1987
    Descrip.
    235 p. : il. ; 24 cm
    Series
    Colección Ciencia Informática
    Notas
    Traducción de: Problem solving with ADA
    Materia
    ADA (Lenguaje de programación)
    PROGRAMACION ESTRUCTURADA
    ISBN
    8425213347
    Java

    Autor
    Lea, Doug.
    Titulo
    Concurrent programming in Java : design principles and patterns / Doug Lea
    Pie impren
    Reading, Mass. : Addison-Wesley, c2000

    Ubicación
    CHI GENERAL
    QA76.73 .J3 .L4C6 2000
    Prestado hasta 19-02-07
    Edicion
    2nd ed
    Descrip.
    ix, 411 p. : il. ; 24 cm
    Series
    The Java series
    Notas
    Incluye índice
    Materia
    Java (Lenguaje de programación para computadora).
    Programación paralela (computadoras)
    Java (Computer program language)
    Parallel programming (Computer science)
    ISBN
    0201310090
    Ademas para darse una idea de lo que biene siendo la programación Concurrente puedes consultar el siguiente libro, el cual te describe como se debe de llevar a cabo la programación cocurrente en los diferentes problemas que se puedan presentar.

    Autor
    Andrews, Gregory R
    Titulo
    Concurrent programming : principles and practice / Gregory R. Andrews
    Pie impren
    Redwood City, Calif. : Benjamin/Cummings Pub. Co., c1991

    Ubicación
    CHI GENERAL
    QA 76.642 .A53 1991
    Descrip.
    xvii, 637 p. : ill. ; 25 cm
    Bibliografia
    Includes bibliographical references (p. 607-626) and index
    Incluye referencias bibliográficas e índice
    Materia
    Programación paralela -- Computadoras.
    Procesamiento paralelo (Computadoras electrónicas).
    ISBN
    0805300864

    L11-RVG



    Dibujar en el lenguaje Ruby.






    Para poder realizar modificaciones y realizar imagenes en Ruby por medio de RMagick.






    1.- Necesitas tener instalado el lenguaje de Ruby






    2.- Bajar el programa que biene en un zip del RMagick.






    2.1.- El cual se encuentra en la siguiente pagina, bajo el nombre de (RMagick-1.14.1_IM-6.3.0-7-Q8.zip)












    3.- Descomprime y ejecuta el archivo de intalación.






    4.- Dentro de la carpeta de intalación biene un archivo .gem el cual debes de copiar en la carpeta donde tienes guardado RUBY.






    5.- Abre el Command Prompt y accesa a la carpeta que de ruby, donde ya debes de tener el archivo .gem






    6.- Activa el instalador de la gema de la siguiente forma






    7.- Se llavaran una serie de pasos que volveran loca la pantalla, no pasa nada, solo se esta instalando la gema.


    8.- Para identificar que se llevo con exito se puede ejecutar el comando de gem list. El cual te mostrara la lista de gemas que tienes instaladas.



    9.- Ahora si podemos checar los ejemplos que puedes encontrar en la siguiente liga.

    http://rmagick.rubyforge.org/portfolio.html