Bienvenidos

hola a todos bienvenidos al blog comenten!!^_^








miércoles, 27 de octubre de 2010

presentacion

hola que tal aqui les dejo la clase que daremos mañana,
presentacion

esta es la parte que yo investige, se las dejo aqui para que tambien comenten mi trabajo

Kruskal
View more presentations from istharstar.

esta es la presentacion animada que dimos en clase , por que la impresion de pantalla no se veia claramente
Kruskal
View more presentations from Alhe’ Wero.
">">

miércoles, 20 de octubre de 2010

REPORTE#5 PROBLEMA LOGICO

Logica
View more presentations from istharstar.
">

aun me falta hacerlo en prolog pero pronto lo modificare

REPORTE #4


Un programa en este tipo de lenguajes consiste en un conjunto de declaraciones de ecuaciones recursivas.La programación funcional tiene sus raices en el cálculo lambda.
Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.
Otras características propias de estos lenguajes son la no existencia de asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteración (lo que obliga en la práctica a que todas las repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
 


shcheme
Scheme es un lenguaje de programación. Es un lenguaje funcional (si bien impuro, ya que, por ejemplo, sus estructuras de datos no son inmutables) y un dialecto de Lisp. Fue desarrollado por Guy L. Steele y Gerald Jay Sussman en la década de los setenta e introducido en el mundo académico a través de una serie de artículos conocidos como los Lambda Papers de Sussman y Steele.

SUMAR ELEMENTOS DE UNA LISTA

El programa consiste en sumar todos los elementos de una lista, entonces si la lista L
esta vacía, retornamos 0, ya que no hay elementos para sumar. Si la lista tiene elementos retornamos la suma de la cabeza de la lista más el resultado que nos devuelva la suma de los elementos de la cola de la lista.

Este es el código:


(define (sumar L)  

  (if (null? L)

      0

      (+ (car L) (sumar (cdr L))))

  )


otro programa en scheme un poco mas complejo

Definición recursiva de funciones aritméticas

La función suma-armonicos calcula la suma de los primeros n términos de una serie de armónicos, es
decir:
1+ 1/2 + 1/3... + 1/n
La base en este caso se refiere al valor n=0 en el que la suma es nula.
Base: si n=0 entonces suma-armonicos(0)=0
Recurrencia: conocemos suma-armonicos(n-1),, entonces

suma-armonicos(n) = (1/n) + suma-armonicos(n-1)
suma-armonicos(n) ::=
si n=0
entonces 0
sino 1/n + suma-armonicos(n-1)
finsi
(define(suma-armonicos n)
(if (zero? n) 0 (+ (/1 n) (suma-armonicos (- n 1)))))




erlang

Erlang es un lenguaje de programación de propósito general y un entorno
de ejecución

Erlang pertenece a la clase de lenguajes orientados a mensajes. Estos lenguajes
proporcionan concurrencia usando procesos paralelos. No hay objetos
compartidos en un lenguaje orientado a mensajes, sino que toda la interacción
entre los procesos se realiza enviando y recibiendo mensajes.


un programa sobre la serie de fibonnaci

fibonacci(0) ->
1;

fibonacci(1) ->
1;
fibonacci(N) ->
fib(N-2) + fib(N-1).










Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar.


un programa sencillo en haskell

nombrador :: I O ()
nombrador =

putStr “¿Cuál es tu nombre?” >>
getLine >>= \variable ­>
putStr (“Tu nombre es “ ++ variable)
otro programita
-- Dado dos números enteros A y B encuentre el MCD 
-- (máximo común divisor) entre ambos. 
-- Utilizando el método de Euclides 
 
euclides (x,y)
  |(x == y) = x
  |(x < y) = euclides(x, y - x)
  |otherwise = euclides( x - y, y)
 



tutoriales 


www.gii.upv.es/web_architecture/personal/.../ccp-erlang.pdf

http://gluc.unicauca.edu.co/wiki/index.php/Programaci%C3%B3n_Funcional_con_Scheme  

http://www.scribd.com/doc/504489/Lenguaje-Haskell  





                                        




miércoles, 13 de octubre de 2010

reporte 3 lenguajes script CORREGIDO!!

*hola a todos! les traigo el reporte tres ya corregido ,aumentado y mejorado :P

espero comenten gracias!!!

los 3 lenguajes que elegi son:
  • javascript
  • perl
  • awk
JAVASCRIPT

introduccion

JavaScript es un lenguaje de scripting basado en objetos sin tipo
y liviano, utilizado para acceder a objetos en aplicaciones. Principalmente, se utiliza integrado en un navegador web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web.

programa " serie de fibonacci"

<HTML>
<HEAD>
<SCRIPT>
<body bgcolor=black  text=white>
    function Fibonacci (inNum) {
       if (inNum == 0)
          var FibonacciNum = 0;
       else {
           if (inNum == 1)
              FibonacciNum = 1;
           else  {
                // Recurrimos a la funcion recursiva
                FibonacciNum = Fibonacci(inNum - 2) + Fibonacci(inNum - 1);
             }
           }
        return FibonacciNum;
    }

    function writeFibonaccis(topFibonacci) {
       for (var i=0;  i <= topFibonacci ; i++) {
          document.write ("Fibonacci(" + i + ") = " + Fibonacci(i) + " <br>");
       }
   }
</SCRIPT>
</HEAD>
<BODY>
<FORM Name="theForm">
<TABLE cellspacing=5>
<TR>
<TD>
<INPUT Type=Text Name="numFibonaccis">
<TD>
<INPUT Type=Button Value="Cantidad de numeros de la serie Fibonacci" onClick='writeFibonaccis(numFibonaccis.value);'>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>



                    PERL

PERL es un lenguaje de muy alto nivel, en donde no debemos teclear tantas instrucciones para realizar lo que queramos.
En PERL no hay declaracion de variables. Solo existen tres tipos de datos: variable simples, arreglos y tablas de hash (semejantes a un arreglo,solo que el indice puede ser cualquier cosa). Y su sintaxis es muy parecida a la del lenguaje C,
excepto que todas las variables deben comenzar con el signo $ y las llaves {} son obligatorias para indicar inicio y fin de bloque (en C, si el bloque consiste de una sola sentencia, ella misma forma el fin de bloque).
programa que suma dos numeros

 le llamaremos suma:

#!/usr/bin/perl

if ( $#ARGV == 0 ) {
die "Args: a b\n";
}
elsif ( $#ARGV == 1 ) {
$a = $ARGV[0];
$b = $ARGV[1];
}
else {
print "De el valor de a = ";
$a = <STDIN>; chop $a;
print "De el valor de b = ";
$b = <STDIN>; chop $b;
}
$c = $a + $b;
print "$a + $b = $c\n";

Su logica es simple: si se da un solo argumento, $#ARGV == 0, el programa termina. Si se dan dos argumentos al programa, $#ARGV == 1, estos son numeros que se van a
sumar. Y si no se dan argumentos se pregunta porcada nu mero. Al final imprime los dos numeros y su suma.
 hacemos otro programa en  que llame las veces necesarias al programa suma:

#!/usr/bin/perl

# Primera opcion para llamar
# al programa suma
‘prog 1 2 > sale‘;
‘prog 3 4 >>sale‘;
‘prog 5 6 >>sale‘;
‘prog 7 8 >>sale‘;

La salida de este programa se almacena en el archivo sale que se muestra a continuacion.
 1 + 2 =3
3+4=7
5+6=11
7+8=15


                             

                                             AWK


Introduccion
    awk  es  una  de  esos  programas-joya con que nos obsequia el
    mundo  UNIX.   Conocido  y  apreciado  por  los  usuarios  mas
    avanzados  y  notablemente  desconocido  por  el  resto, es el
    lenguaje que, entre otras cosas, podria ahorrar mucho  tiempo,
    dinero  y  esfuerzo de programacion para gestion de pequeñas y
    medianas bases de  datos,  personales  o  de  empresas.  Puede
    sustituir  tambien  con ventaja a programas shell que combinen
    filtros como grep, sed, join, cut, paste y otros, ya  que  los
    programas  tipicos  awk constan de una o dos lineas, y esto es
    suficiente    para    efectuar    operaciones     notablemente
    sofisticadas.
awk permite el uso de variables numericas y cadenas, definidas
    por el usuario. No  es  necesario  declararlas.  El  siguiente
    programa  muestra  la  forma  en  que puede calcularse la paga
    media de los empleados y la suma de las pagas:
 
    BEGIN {
      print "comenzamos ..."
      total=0
    }
    { total=total+$2*$3 }
    END {
      media=total/NR
      print "cantidad total: " total
      print "paga media    : " media
      print "programa ejecutado ..."
    }
BEGIN {
      maximo  = 0
      empleado= " "
    }
    $2 > maximo { maximo = $2; empleado=$1 }
    END {
      print empleado " gana " maximo
    }
{ nombres = nombres " " $1 }
    END {
      print nombres
    }
obteniendo la salida
    Marcial  .... 13140.0 euros
    Maria    ....  5400.0 euros
    Susana   ....  7350.0 euros

eso es todo amigos :P 


si desean conocer un poco mas sobre su programacion les dejo unos tutoriales que pueden ser de ayuda

tutoriales 
http://www.vectorsite.net/tsawk.html ----AWK
http://flanagan.ugr.es/perl/index2.htm ---PERL
 www.desarrolloweb.com/javascript/- - -JAVASCRIPT