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




    miércoles, 14 de febrero de 2007

    L10-TOP10

    En lo que se refiere a la comparación de lenguajes de programación, encontre estas ligas:

    http://www.tufuncion.com/diferentes-lenguajes-programacion

    En la cual encuentras un mapa del lado derecho el cual muestra los 10 programas con más auje en el momento.

    http://www.rubyinside.com/ruby-enters-top-10-programming-languages-at-tiobe-353.html

    En esta pagina bienen estadisticas de la forma en que aumento ruby y la posicion que posee.

    http://blog.intentionalsoftware.com/intentional_software/2005/04/the_long_tail_o.html

    Esta ultima liga muestra una grafica de como se encontraban los lenguajes el 18 de Abril del 2005, ademas se encuentra una liga de Toibe la cual te direcciona a una de las paginas que vimos en clase para ver información actualizada.

    La mayoria de las paginas encontradas que trataran el tema se basan en las estadisticas y graficos propuestos por Toibe al igual que la siguiente. La pongo como ejemplo, ya que nomas trai comentarios sobre Ruby propuesto como el lenguaje del 2006.

    http://www.lacaraoscura.com/2007/01/06/tiobe-declaro-a-ruby-como-el-lenguaje-de-programacion-del-2006/