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