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ógica, funcional, imperativa,orientada a objetos, con restricciones, distribuida, concurrente.
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)
miércoles, 17 de noviembre de 2010
Reporte #7
Lenguajes Orientados A Objetos:
Java y C++
Ejemplo:
La salida por pantalla será algo como esto:
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.
Fortran
El programa calcula el factorial de un numero:
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
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
viernes, 29 de octubre de 2010
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).
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
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:
Y use las funciones para obtener el mínimo y el máximo valor de cada matriz:
Bibliografía
http://it.ciidit.uanl.mx/~sara/pres/lp/leng_s8.pdf
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
http://en.wikibooks.org/wiki/R_Programming
http://es.wikipedia.org/wiki/Haskell
http://es.efreedom.com/Question/1-1105765/Generacion-de-numeros-de-Fibonacci-en-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
ProductoY 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)
Bibliografía
http://it.ciidit.uanl.mx/~sara/pres/lp/leng_s8.pdf
http://cran.r-project.org/doc/contrib/Short-refcard.pdf
http://www.haskell.org/haskellwiki/Learn_Haskell_in_10_minutes
http://en.wikibooks.org/wiki/R_Programming
http://es.wikipedia.org/wiki/Haskell
http://es.efreedom.com/Question/1-1105765/Generacion-de-numeros-de-Fibonacci-en-Haskell
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
Mergesort(descargar)
Mergesort
View more presentations from rul05.
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
Perl
Tcl/Tk
Proc Factorial {x} {
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
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
Ensambladores
View more presentations from AlbertoHJ92.
Segundo Reporte
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últiple, polimorfismo, 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.
Suscribirse a:
Entradas (Atom)