miércoles, 17 de noviembre de 2010

Reporte #8

Multiparadigma


Oz


Oz contiene una forma simple y bien hecha de la mayoría de los conceptos de los principales paradigmas de programación, incluyendo programación lógicafuncionalimperativa,orientada a objetoscon restriccionesdistribuidaconcurrente.


Como complemento a la programación multiparadigma, las principales ventajas de Oz radican en la programación con restricciones y la programación distribuida. Debido a su diseño, Oz implementa un modelo de programación distribuido que hace a la red transparente. Este modelo hace fácil programar aplicaciones abiertas y tolerantes a fallas en el lenguaje. Para Programación con restricciones, Oz introduce la idea de espacios de computación, los cuales permiten búsquedas definidas por el usuario y estrategias de distribución que son ortogonales al dominio de restricciones.



local   I F C in     //Declaramos las variables I, F y C
   I = 5                  //Asigna a I un entero
   F = 5.5             //Asigna a F un float
   C = &t              //Asigna a C un caracter
   {Browse [I F C]}        //Muestra el valor de I, F y C
end



Bibliografia
http://www.mozart-oz.org/documentation/tutorial/node3.html#chapter.basics
http://es.wikipedia.org/wiki/Oz_(lenguaje_de_programaci%C3%B3n)

Reporte #7

Lenguajes Orientados A Objetos:
Java y C++


Ejemplo:

Se desea ingresar por teclado tres resultados de exámenes, e imprimir el 1º y último.



La salida por pantalla será algo como esto:




El siguiente programa realiza una clase para crear un punto con las coordenadas (X ,Y) :



Bibliografia

miércoles, 10 de noviembre de 2010

Reporte # 6 Lenguajes Imperativos

Los Lenguajes que elegí son : C, Fortran, Pascal y Basic

C
El programa que hice es el siguiente: 
Este es un programa que busca en una matriz el numero de veces que se repite determinado numero.



Compilamos...
Primero nos pide el numero de filas y columnas, en este caso, hice una matriz de 3x3
Luego nos pide cada elemento de la matriz;
Después nos pide el numero que va a buscar : yo elegi el 2
y al final "imprime" la matriz y el numero de veces que se repite el numero buscado:




Fortran
El programa calcula el factorial de un numero:



FUNCTION factorial(n) 
INTEGER factorial
INTEGER, INTENT(IN) :: n
IF (n==0) THEN
factorial = 1
ELSE
factorial = factorial * factorial(n-1)
END IF
END FUNCTION factorial


Pascal

El programa en pascal calcula el área de un triangulo en base a los datos que damos:


Program area;

var area, base, altura : real;


begin

write ('Dame Base : ');
readln(base);

write('Dame Altura: ')
readln(altura);


area := (base * altura)/2 

writeln('El Area es =', area:0:2);   {:0:2 sirve para dar el formato de salida al numero}
readln;

end




Basic

Programa que calcula la serie de fibonacci:

Private Sub Form_Load()
Dim fibonacci(20) As Long
Dim i As Integer
fibonacci(1) = 1
fibonacci(2) = 1
For intCount = 3 To 10
fibonacci(intCount) = fibonacci(intCount - 1) + fibonacci(intCount - 2)
Next intCount
For i = 1 To 10
Debug.Print fibonacci(i)
Next i
End Sub



Bibliografía

miércoles, 20 de octubre de 2010

Tarea # 5 Problema Lógico

Caníbales y Misioneros
Tres misioneros y  tres canibales se encuentran juntos, con un bote, en  el mismo lado del rio, el bote puede transportar como maximo 2  personas . La unica manera segura de hacerlo es que en cada orilla del  río nunca puedan haber mas canibales que misioneros, ¿Como podemos trasladar a las 6 personas de un lado del rio al otro? 


En seguida pondré los pasos que realice para encontrara la solución al problema.
Comencé con los 3 misioneros y los 3 caníbales del lado derecho y tendrán que cruzar al lado izquierdo del río : 
C= caníbales
M=misioneros


Estado inicial 
Lado Izquierdo                                                   Lado derecho
0M; 0C                                                                  3M; 3C
2C                                                                         3M; 1C
1C                                                                         3M; 2C
3C                                                                         3M
2C                                                                         3M; 1C
2C; 2M                                                                  1M; 1C
1C; 1M                                                                  2M; 2C
1C; 3M                                                                  2C
3M                                                                         3C
3M;  2C                                                                 1C
3M; 1C                                                                  2C
3M; 3C


Este es un link del problema de "caníbales y misioneros" en el que podrán probar mi solución o encontrar alguna otra: http://www.plastelina.net/games/game2.html


Prolog


Y aquí el código  en Prolog



% predicado a llamar desde la consola (esto lo usaremos para mostrar el resultado)
resolverCanMis(S):- busquedaProf(estado(3,3,0,0,0),[estado(3,3,0,0,0)],S).




miércoles, 13 de octubre de 2010

Reporte #4 Lenguajes Funcionales (CORREGIDO)

Los lenguajes que elegí fueron R y Haskell:




Primero declare las matrices que utilizare "x" y "y" : 
Hice que "x" tomo los valores de 1 a 15, y después di las dimensiones de la matriz que es 5x3
Después declare la matriz "y" con una secuencia de números a partir del 2 hasta el 30 de 2 en 2, y le di las dimensiones 5x3.

Después use la función sum( ) para sumar los elementos de cada matriz:

También hice operaciones con las matrices:
Suma
 Producto
  Y use las funciones para obtener el mínimo y el máximo valor de cada matriz:



*** Les dejo una tarjeta de referencia para R por si la necesitan:
http://cran.r-project.org/doc/contrib/Short-refcard.pdf

                Haskell

Programa que calcula la serie de Fibonacci:


fib :: Integer -> Integer
fib 0 = 1
fib 1 = 1
fib n = fib (n-1) + fib (n-2)



miércoles, 8 de septiembre de 2010

Presentacion #2

Esta es la presentación del equipo del tema de ordenamiento por mezcla(Mergesort).
Mergesort(descargar)




Raúl Rodríguez
Julio García

miércoles, 1 de septiembre de 2010

Reporte #3(CORREGIDO)

Este es mi tercer reporte para la clase de lenguajes de programación, los lenguajes que elegí fueron Python, Perl y Tcl:

Python

Este es un programa que calcula la edad de una persona:



Perl


#! /usr/bin/perl

use bigint;

my ($a, $b) = (0, 1);
for ($i=0; $i)
{
    print "$a\n";
    ($a, $b) = ($b, $a+$b);
}

Recursive
sub fibo;
sub fibo {$_ [0] < 2 ? $_ [0] : fibo ($_ [0] - 1) + fibo ($_ [0] - 2)}

Iterative
sub fibo
{
    my ($n, $a, $b) = (shift, 0, 1);
    ($a, $b) = ($b, $a + $b) while $n-- > 0;
    $a;
}


Tcl/Tk


Proc  Factorial {x} {
If {$x <= 1}
Return 11
} else {
Return[ expr {$x *{Factorial  [expr  {$x – 1} ] } } ]
}
}



Bibliografia
http://es.wikipedia.org/wiki/Tcl
http://es.wikipedia.org/wiki/Python
http://es.wikipedia.org/wiki/Perl
http://books.google.com.mx/books?id=0EB9OIFBnFgC&printsec=frontcover&dq=tcl&hl=es&ei=_vPaTN_GAcGs8AaZlZD4CQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCoQ6AEwAA#v=onepage&q&f=false

miércoles, 18 de agosto de 2010

Presentación Ensambladores

Segundo Reporte

Dylan
Dylan es una lengua del multi-paradigma para la cual incluye la ayuda funcional y orientado al objeto la programación, y es dinámico y reflexivo mientras que proporcionaba un modelo de programación diseñó apoyar la generación eficiente del código automático, incluyendo control de grano fino sobre comportamientos dinámicos y estáticos. Fue creado en los años 90 por iniciativa de Apple Computer.


Dylan es, en esencia, una versión depurada y simplificada de CLOS, un sistema de programación orientado a objetos desarrollado en Common Lisp. En Dylan, la mayoría de las entidades (incluyendo los tipos de datos primitivos, métodos y clases) son objetos de “primera clase”. Los programas pueden ser escritos desde una forma fuertemente tipeada a una forma débilmente tipeada. Dylan soporta herencia múltiplepolimorfismo, palabras clave, macros, y muchas otras características avanzadas.En Dylan, todos los valores (números incluyendo, los caracteres, las funciones, y las clases) son objetos de primera clase. Dylan apoya herencia múltiple, polimorfismo, envío múltiple, discusiones de la palabra clave, el introspection del objeto, macros patrón-basadas de la extensión del sintaxis, y muchas otras características avanzadas. Los programas pueden expresar control de grano fino sobre el dinamismo, admitiendo los programas que ocupan una serie continua entre la programación dinámica y estática y el desarrollo evolutivo de soporte (que permiten prototyping rápido seguido por el refinamiento y la optimización incrementales).
La meta principal del diseño de Dylan es ser una lengua dinámica bien adaptada para desarrollar software comercial. Dylan procura tratar ediciones potenciales del funcionamiento introduciendo la flexibilidad “natural” de los límites al máximo de los sistemas del lisp, permitiendo que el recopilador entienda claramente las unidades compilable (es decir, bibliotecas).



Bibliografia
http://es.wikipedia.org/wiki/Dylan_(lenguaje_de_programación)
http://www.worldlingo.com/ma/enwiki/es/Dylan_(programming_language)
http://www.opendylan.org/learning.phtml

lunes, 9 de agosto de 2010

Este es mi primer reporte, es un mapa conceptual sobre lo que entendí de los lenguajes de programación. En el explico lo que es un programa que es un conjunto de instrucciones que serán ejecutadas por una computadora. 
Después, lo que es un sistema operativo que se encarga de gestionar procesos, la memoria de la computadora, archivos, de la seguridad del CPU,etc., y sobre las especificaciones que se deben de tomar a la hora de realizar un lenguaje de computadoras.