domingo, 19 de septiembre de 2010

Lenguajes funcionales

Esta entrada es para la clase de lenguajes de programación
Los lenguajes funcionales son lenguajes de programación en donde estos se utilizan para un fin especifico.
Para demostrar lo aprendido, hablare acerca de dos lenguajes funcionales.


Lenguaje R 
Lenguaje script que se utiliza principalmente para la estadística científica.
En ejemplo es para sacar determinantes de una matriz, de una forma muy sencilla.
Como recordaran, en matemáticas 1 vimos diferentes formas de obtener un determinante en base a una matriz, con lenguaje R es muy fácil obtenerlo.


Para empezar después de bajar R con el comando.
sudo apt-get install r-base
obtendrás algo como esto:
Cuando termine, habrás descargado el paquete de lenguaje R, inicia en el terminal con una "R" y obtendrás algo así.

Ahora sacar la determinante de la matriz, simplemente vas a escribir.

M <-matrix(c(3,2,1,2,-2,1,3,-1,1,-3,-1,2,-1,1,2,1),nrow=4, ncol=4)

Observamos si capturamos bien, escribiendo M

     [,1] [,2] [,3] [,4]
[1,]    3   -2    1   -1
[2,]    2    1   -3    1
[3,]    1    3   -1    2
[4,]    2   -1    2    1

Obtenemos la determinante usando la función det(M), en donde M es la matriz capturada.
y obtenemos como resultado 48, para comprobar hice el calculo de la determinante como lo vimos en matemáticas 1.




Haz clic para agrandar!
Y obtenemos el mismo resultado.


LISP
Lenguaje funcional que su principal objetivo es utilizar listas, sin embargo, es util para ya sea para orientacion objetos y declarativo, ya que es multiparadigma
Para iniciar debemos de instalar el clisp para utilizarlo en el terminal.
sudo apt-get install clisp
Después ya podemos empezar a escribir, en este caso  hice una función condicional que sirve para saber si un alumno aprobo o reprobo la materia.
[1]> (defun materia(x)
(cond ((>= x 70) (print "Aprobaste"))
((<= x 70) (print "Reprobaste"))) )
MATERIA
[2]> (materia 70)
"Aprobaste" 
"Aprobaste"
[3]> (materia 60)
"Reprobaste" 
"Reprobaste"
[4]> (materia 50)
"Reprobaste" 
"Reprobaste"
[5]> (materia 80)
"Aprobaste" 
"Aprobaste"

En este otro ejemplo hacemos funciones sencillas para determinar el cuadrado y el cubo de numeros.


[1]> (defun cubo(x) (* x x x)) 
CUBO
[2]> (cubo 3)
27
[3]> (cubo 2)
8


[4]> (defun cuadrado(x) (* x x))
CUADRADO
[5]> (cuadrado 2)
4
[6]> (cuadrado 3)
9

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.


viernes, 10 de septiembre de 2010

Torres de hanoi en python

Esta entrada es para laboratorio de lenguajes de programación, hice un script en python que utiliza la recursividad usando el tema dado en la clase.

#!/usr/bin/python

def hanoi(N, inc='1', temp='2', fin='3'):

    if N > 0: 
        hanoi(N-1, inc, fin, temp)
        print 'se mueve de torre', inc, 'a torre', fin
        hanoi(N-1, temp, inc, fin) 

discos = int(input("Ingresa el numero de discos:"))
hanoi(discos)

Recurden que para que entre al if y a la funcion hanoi se necesitan los 4 espacios, ya que es requisito en este lenguaje de programación.

¿Como funciona el programa? pueden checar las diapositivas de la entrada anterior, solamente imprime la solución de movimientos minimos.

Ejemplo.
primero asignamos los permisos para poder leer el programa con
chmod u+x otro.py
Despues ponemos en el terminal
./otro.py
Nos mostrará esto.
podemos decir que esta correcto ya que el numero de pasos minimo se calcula con esta formula.
pasos = 2^N - 1
donde N son el numero de discos
Entonces, si queremos verlo aplicado podemos ver en este gif, los movimientos.



pueden descargar el codigo aqui.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.

lunes, 6 de septiembre de 2010

Presentación: Torres de Hanoi

Hola compañeros, esta entrada es para ponerles el link de las presentaciones de la clase de 7 de septiembre, nos tocó la recursividad de las torres de hanoi con mis compañeros Cecilia Urbina, Ramon Esteban y Juan Carlos, en donde tienen sus presentaciones.




mi parte es de la instancia de 4 discos.
descargarla en formato odp AQUI.
descargarla en formato pdf AQUI.

domingo, 5 de septiembre de 2010

Servidor web

Hola, es esta entrada publicaré acerca de los servidores web.

¿Que es un servidor web?
Podemos decir que un servidor web es un programa que se esta ejecutando esperando peticiones que le hace un cliente usuario de internet, entonces, el servidor web contesta todas esas peticiones entregando información de una pagina web, hipertextos, figuras, botones etc... implementando el protocolo HTTP, lo podemos encontrar en la capa de aplicación del modelo OSI.




Cabe recalcar que la palabra servidor se le llama al programa como a la maquina que ejecuta este programa.


Por ejemplo el navegador hace una petición al servidor y este le contesta con lo que se le pidió esto es como cuando nosotros ingresamos a la pagina de la universidad, ponemos www.uanl.mx en el navegador y el servidor nos manda a esa dirección con código HTML, que se interpreta y lo vemos en nuestra pantalla.


Entre algunos servidores podemos encontrar a Apache, que es uno de los mas utilizados, con gran reputación de estabilidad ya que es personalizable, permite hacer un servidor según nuestras necesidades implementando lo mas nuevo en protocolos, hecho en lenguaje C, corre rápido consumiendo menos recursos que otros y puede utilizarse en múltiplos sistemas operativos.

Puedes descargar el código de Apache (que se encuentra en su sitio web) ya que es open-source.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.

Servidor web

Hola, es esta entrada publicaré acerca de los servidores web.

¿Que es un servidor web?
Podemos decir que un servidor web es un programa que se esta ejecutando esperando peticiones que le hace un cliente usuario de internet, entonces, el servidor web contesta todas esas peticiones entregando información de una pagina web, hipertextos, figuras, botones etc... implementando el protocolo HTTP, lo podemos encontrar en la capa de aplicación del modelo OSI.




Cabe recalcar que la palabra servidor se le llama al programa como a la maquina que ejecuta este programa.


Por ejemplo el navegador hace una petición al servidor y este le contesta con lo que se le pidió esto es como cuando nosotros ingresamos a la pagina de la universidad, ponemos www.uanl.mx en el navegador y el servidor nos manda a esa dirección con código HTML, que se interpreta y lo vemos en nuestra pantalla.


Entre algunos servidores podemos encontrar a Apache, que es uno de los mas utilizados, con gran reputación de estabilidad ya que es personalizable, permite hacer un servidor según nuestras necesidades implementando lo mas nuevo en protocolos, hecho en lenguaje C, corre rápido consumiendo menos recursos que otros y puede utilizarse en múltiplos sistemas operativos.

Puedes descargar el código de Apache (que se encuentra en su sitio web) ya que es open-source.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.

Sistema RBG hexadecimal

En esta entrada publicaré acerca del sistema RGB (Red Green Blue) hexadecimal el cual es el metodo que mas se utiliza para indicar colores en un sitio web.



Como su nombre lo dice, este sistema utiliza los numeros base 16, o sea, hexadecimal esto quiere decir que, es un sistema alfanumerico ya que se utilizan: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Entonces, este sistema lo que hace es recoger 2 digitos hexadecimales para cada intensidad de colores primarios Red Green Blue esto quiere decir entre 00 y FF entonces entre el valor mas alto, son mas claros los colores.

por ejemplo:

Red = 00 Green = 00 Blue = 00 esta a lo mas minimo entonces el color que obtendremos es el negro

Red = FF Green = FF Blue = FF  esta en lo maximo entonces el color que obtendremos es el blanco

Red = FF Green = 00 Blue = 00 esta en lo maximo solamente en red por lo tanto es rojo

Red = 00 Green = FF Blue = 00 esta en lo maximo solamente en green por lo tanto es verde

Red = 00 Green = 00 Blue = FF esta en lo maximo solamente en blue por lo tanto es azul.

Red = FF Green = FF Blue =00 rojo y verde es amarillo.

Red = 00 Green = FF Blue = FF  azul y verde es cyan

Red = FF Green = 00 Blue = FF rojo y azul es magneta


Entonces, cuando los declaramos en un archivo html con css, podemos utilizarlo algo asi.

body {
background-color: #000000; 
}
 
h1 { 
color #FFFFFF;
 


Pero en el ejemplo anterior, css nos permite comprimir los valores si por ejemplo tenemos sus componentes iguales de dos en dos. esto es
#000 o #FFF.

Se pueden escribir con mayusculas o minusculas, pero es preferible escribirlos en mayusculas para tener una mejor presentación al entregar el codigo.

Cabe recalcar que no es la unica forma de declarar los colores en css, existen cinco formas: por clave, color del sistema, el RGB numerico, porcentual y hexadecimal.

Si quieren saber un poco mas les dejo este link.

Tambien les dejo una pagina con la tabla de colores en hexadecimal.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.


Sistema RBG hexadecimal

En esta entrada publicaré acerca del sistema RGB (Red Green Blue) hexadecimal el cual es el metodo que mas se utiliza para indicar colores en un sitio web.



Como su nombre lo dice, este sistema utiliza los numeros base 16, o sea, hexadecimal esto quiere decir que, es un sistema alfanumerico ya que se utilizan: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Entonces, este sistema lo que hace es recoger 2 digitos hexadecimales para cada intensidad de colores primarios Red Green Blue esto quiere decir entre 00 y FF entonces entre el valor mas alto, son mas claros los colores.

por ejemplo:

Red = 00 Green = 00 Blue = 00 esta a lo mas minimo entonces el color que obtendremos es el negro

Red = FF Green = FF Blue = FF  esta en lo maximo entonces el color que obtendremos es el blanco

Red = FF Green = 00 Blue = 00 esta en lo maximo solamente en red por lo tanto es rojo

Red = 00 Green = FF Blue = 00 esta en lo maximo solamente en green por lo tanto es verde

Red = 00 Green = 00 Blue = FF esta en lo maximo solamente en blue por lo tanto es azul.

Red = FF Green = FF Blue =00 rojo y verde es amarillo.

Red = 00 Green = FF Blue = FF  azul y verde es cyan

Red = FF Green = 00 Blue = FF rojo y azul es magneta


Entonces, cuando los declaramos en un archivo html con css, podemos utilizarlo algo asi.

body {
background-color: #000000; 
}
 
h1 { 
color #FFFFFF;
 


Pero en el ejemplo anterior, css nos permite comprimir los valores si por ejemplo tenemos sus componentes iguales de dos en dos. esto es
#000 o #FFF.

Se pueden escribir con mayusculas o minusculas, pero es preferible escribirlos en mayusculas para tener una mejor presentación al entregar el codigo.

Cabe recalcar que no es la unica forma de declarar los colores en css, existen cinco formas: por clave, color del sistema, el RGB numerico, porcentual y hexadecimal.

Si quieren saber un poco mas les dejo este link.

Tambien les dejo una pagina con la tabla de colores en hexadecimal.

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.