sábado, 20 de noviembre de 2010
viernes, 19 de noviembre de 2010
Reporte # 3 (pendiente) - Lenguajes Script
Aqui subo un reporte que me faltaba...
Bueno a continuacion les dejo mis programas en Perl y en Python
Perl
Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.
La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de código delimitados por llaves, estructuras de control y subrutinas
Codigo
.Ejecucion
Python
Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y es multiplataforma.
Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones.Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado ligadura dinámica de métodos).
Codigo
Bueno a continuacion les dejo mis programas en Perl y en Python
Perl
Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación.
La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de código delimitados por llaves, estructuras de control y subrutinas
Codigo
.Ejecucion
Python
Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible.
Se trata de un lenguaje de programación multiparadigma ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico, es fuertemente tipado y es multiplataforma.
Python es un lenguaje de programación multiparadigma. Esto significa que más que forzar a los programadores a adoptar un estilo particular de programación, permite varios estilos: programación orientada a objetos, programación imperativa y programación funcional. Otros paradigmas están soportados mediante el uso de extensiones.Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa (también llamado ligadura dinámica de métodos).
Codigo
jueves, 18 de noviembre de 2010
Reporte # 8 - Lenguaje Multiparadigma
Bueno aqui les dejo un pequeño programa en Oz...
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. Oz tiene una semántica formal simple y una implementación eficiente, el Sistema de Programación Mozart. Oz es un lenguaje orientado a la concurrencia, término introducido por Joe Armstrong, el principal diseñador del lenguaje Erlang. Un lenguaje orientado a la concurrencia hace a la concurrencia fácil de usar y eficiente.
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.
Y aqui esta mi codigoo.. que es la tan conocida serie de Fibonacci =)
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. Oz tiene una semántica formal simple y una implementación eficiente, el Sistema de Programación Mozart. Oz es un lenguaje orientado a la concurrencia, término introducido por Joe Armstrong, el principal diseñador del lenguaje Erlang. Un lenguaje orientado a la concurrencia hace a la concurrencia fácil de usar y eficiente.
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.
Y aqui esta mi codigoo.. que es la tan conocida serie de Fibonacci =)
functor
import System Application
define
fun {Fib N}
case N
of 0 then 1
[] 1 then 1
else {Fib N-2} + {Fib N-1} end
end
in
local A in
[A] = {Application.getArgs plain}
{System.printInfo {Fib {String.toInt A}}}
end
{Application.exit 0}
end
import System Application
define
fun {Fib N}
case N
of 0 then 1
[] 1 then 1
else {Fib N-2} + {Fib N-1} end
end
in
local A in
[A] = {Application.getArgs plain}
{System.printInfo {Fib {String.toInt A}}}
end
{Application.exit 0}
end
Reporte # 7 - Lenguajes Orientados a Objetos
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.
Caracteristicas de la POO
Abstraccion
Encapsulamiento
Modularidad
Principio de ocultación
Polimorfismo
Herencia
Recolección de Basura
Y a continuación les dejo unos programas que hize en C++ y en JAVA
C++
Bueno este programa en c++, es una tipo calculadora que ingresas dos numeros y eliges la operacion que quieres hacer :)
Ejecución
JAVA
Este programa en Java te da el volumen de una esfera, aqui les dejo el codigo y la ejecucion
class Esfera
{
double radio;
public Esfera (double radio)
{
this.radio=radio;
}
public Esfera ()
{
this(1.0);
}
public double volumen ()
{
return (4.0/3.0)*Math.pow(radio,3.0);
}
public double superficie ()
{
return 4.0*Math.PI*Math.pow(radio,2.0);//libreria mate (potencia,pi)
}
public void imprimir ()
{
System.out.println ("radio : " + radio);
System.out.println ("volumen : " + volumen ());
System.out.println ("superficie : " + superficie());
}
public static void main (String[] args)
{
Esfera e=new Esfera ();
e.imprimir();
System.out.println ("\n");
e=new Esfera (Math.PI);
e.imprimir ();
}
}
Ejecución
Caracteristicas de la POO
Abstraccion
Encapsulamiento
Modularidad
Principio de ocultación
Polimorfismo
Herencia
Recolección de Basura
Y a continuación les dejo unos programas que hize en C++ y en JAVA
C++
Bueno este programa en c++, es una tipo calculadora que ingresas dos numeros y eliges la operacion que quieres hacer :)
#include<iostream>
using namespace std;
int main()
{ float a, b;
char oper;
cout << "Ingresa dos numeros: ";
cin >> a >> b;
do
{ cout << "Operacion ( +, -, *, / ): ";
cin >> oper;
if(oper!='+' && oper!='-' && oper!='*' && oper !='/')
cout << "Operacion Incorrecta\n";
}while(oper!='+' && oper!='-' && oper!='*' && oper !='/');
if( oper == '/' )
for( ; !b; )
{ cout << "No es posible la division entre 0\n";
cout << "Otro nunero: ";
cin >> b;
}
cout << a << " " << oper << " " << b << " = ";
switch( oper )
{ case '+': cout << a + b << "\n";
break;
case '-': cout << a - b << "\n";
break;
case '*': cout << a * b << "\n";
break;
case '/': cout << a / b << "\n";
}
cin.ignore();
cin.get();
return 0;
}
using namespace std;
int main()
{ float a, b;
char oper;
cout << "Ingresa dos numeros: ";
cin >> a >> b;
do
{ cout << "Operacion ( +, -, *, / ): ";
cin >> oper;
if(oper!='+' && oper!='-' && oper!='*' && oper !='/')
cout << "Operacion Incorrecta\n";
}while(oper!='+' && oper!='-' && oper!='*' && oper !='/');
if( oper == '/' )
for( ; !b; )
{ cout << "No es posible la division entre 0\n";
cout << "Otro nunero: ";
cin >> b;
}
cout << a << " " << oper << " " << b << " = ";
switch( oper )
{ case '+': cout << a + b << "\n";
break;
case '-': cout << a - b << "\n";
break;
case '*': cout << a * b << "\n";
break;
case '/': cout << a / b << "\n";
}
cin.ignore();
cin.get();
return 0;
}
Ejecución
JAVA
Este programa en Java te da el volumen de una esfera, aqui les dejo el codigo y la ejecucion
class Esfera
{
double radio;
public Esfera (double radio)
{
this.radio=radio;
}
public Esfera ()
{
this(1.0);
}
public double volumen ()
{
return (4.0/3.0)*Math.pow(radio,3.0);
}
public double superficie ()
{
return 4.0*Math.PI*Math.pow(radio,2.0);//libreria mate (potencia,pi)
}
public void imprimir ()
{
System.out.println ("radio : " + radio);
System.out.println ("volumen : " + volumen ());
System.out.println ("superficie : " + superficie());
}
public static void main (String[] args)
{
Esfera e=new Esfera ();
e.imprimir();
System.out.println ("\n");
e=new Esfera (Math.PI);
e.imprimir ();
}
}
Ejecución
jueves, 11 de noviembre de 2010
REPORTE # 6 - LENGUAJES IMPERATIVOS
Bueno compañeros; aqui les dejo mis programas que hice en lenguajes imperativos y una pequeña informacion de cada programa, espero que les sirva:
C
PASCAL
Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
A continuacion les dejo mi programa, que basicamente es una calculadora, con un switch eliges la operacion que deseas hacer con los numeros
FORTRAN
Y aqui les dejo mi codigo, esta muy sencillo, espero que le entiendan, solo calcula el area de un rectangulo =)
PROGRAM AREAS
IMPLICIT NONE
REAL a , b , area
PRINT *, 'DAME EL LADO a'
READ *, a
PRINT *, 'DAME EL LADO b'
READ *, b
area = a * b
PRINT *; 'AREA = ' , area
END.
C
CARACTERISTICAS
- Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
- Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
- Un sistema de tipos que impide operaciones sin sentido.
- Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.
- Acceso a memoria de bajo nivel mediante el uso de punteros.
- Interrupciones al procesador con uniones.
- Un conjunto reducido de palabras clave.
- Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
- Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.
- Tipos de datos agregados (
struct
) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int n;
float a,b,c,d;
printf("1.-LA POTENCIA DE UN NUMERO ENTERO \n2.-EL AREA DE UN TRAPECIO \n3.-EL AREA DE UN TRIANGULO \n4.-LA SUMA DE 2 NUMEROS \n5.-EL PRODUCTO DE 2 NUMEROS");
scanf("%d",&n);
switch(n)
{
case 1: printf("Ingrese el numero: ");
scanf("%f",&a);
printf("Ingrese el numero al que lo quiere elevar: ");
scanf("%f",&b);
c=pow(a,b);
printf("%f",c);
break;
case 2: printf("Cuanto mide la base mayor: ");
scanf("%f",&a);
printf("Cuanto mide la base menor: ");
scanf("%f",&b);
printf("Cuanto mide la altura: ");
scanf("%f",&c);
d=((a+b)*c)/2;
printf("%f",d);
break;
case 3: printf("Cuanto mide la base: ");
scanf("%f",&a);
printf("Cuanto mide la altura: ");
scanf("%f",&b);
c=(a*b)/2;
printf("%f",c);
break;
case 4: printf("Ingrese el primer numero: ");
scanf("%f",&a);
printf("Ingrese el segundo numero: ");
scanf("%f",&b);
c=a+b;
printf("%f",c);
break;
case 5: printf("Ingrese el primer numero: ");
scanf("%f",&a);
printf("Ingrese el segundo numero: ");
scanf("%f",&b);
c=a*b;
printf("%f",c);
break;
}
getche();
return 0;
}
#include<conio.h>
#include<math.h>
main()
{
int n;
float a,b,c,d;
printf("1.-LA POTENCIA DE UN NUMERO ENTERO \n2.-EL AREA DE UN TRAPECIO \n3.-EL AREA DE UN TRIANGULO \n4.-LA SUMA DE 2 NUMEROS \n5.-EL PRODUCTO DE 2 NUMEROS");
scanf("%d",&n);
switch(n)
{
case 1: printf("Ingrese el numero: ");
scanf("%f",&a);
printf("Ingrese el numero al que lo quiere elevar: ");
scanf("%f",&b);
c=pow(a,b);
printf("%f",c);
break;
case 2: printf("Cuanto mide la base mayor: ");
scanf("%f",&a);
printf("Cuanto mide la base menor: ");
scanf("%f",&b);
printf("Cuanto mide la altura: ");
scanf("%f",&c);
d=((a+b)*c)/2;
printf("%f",d);
break;
case 3: printf("Cuanto mide la base: ");
scanf("%f",&a);
printf("Cuanto mide la altura: ");
scanf("%f",&b);
c=(a*b)/2;
printf("%f",c);
break;
case 4: printf("Ingrese el primer numero: ");
scanf("%f",&a);
printf("Ingrese el segundo numero: ");
scanf("%f",&b);
c=a+b;
printf("%f",c);
break;
case 5: printf("Ingrese el primer numero: ");
scanf("%f",&a);
printf("Ingrese el segundo numero: ");
scanf("%f",&b);
c=a*b;
printf("%f",c);
break;
}
getche();
return 0;
}
PASCAL
Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
- El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
- El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.
A continuacion les dejo mi programa, que basicamente es una calculadora, con un switch eliges la operacion que deseas hacer con los numeros
FORTRAN
Principales características
El lenguaje fue diseñado teniendo en cuenta que los programas serían escritos en tarjetas perforadas de 80 columnas. Así por ejemplo, las líneas debían ser numeradas y la única alteración posible en el orden de ejecución era producida con la instrucción goto. Estas características han evolucionado de versión en versión. Las actuales contienen subprogramas, recursión y una variada gama de estructuras de controlY aqui les dejo mi codigo, esta muy sencillo, espero que le entiendan, solo calcula el area de un rectangulo =)
PROGRAM AREAS
IMPLICIT NONE
REAL a , b , area
PRINT *, 'DAME EL LADO a'
READ *, a
PRINT *, 'DAME EL LADO b'
READ *, b
area = a * b
PRINT *; 'AREA = ' , area
END.
miércoles, 10 de noviembre de 2010
REOPRTE # 5 - Problema Logico
Bueno, aqui les dejo mi problema logico y una explicacion de como lo pude resolver:
Cuatro personas están viajando a diversos lugares en diversos tipos de transporte.
Sus nombres son: Raquel, Juan, Mr.Jones y Cindy.
Ellos viajaron en el tren, el coche, el avión o la barco.
Mr.Jones odia volar
Cindy tiene que alquilar su vehículo
Juan se marea
¿En que viajo cada persona?
PROCEDIMIENTO:
1.- Mr. Jones odia volar, asi que se descarta el avion para el.
2.- Cindy tiene que alquilar su vehiculo, y lo unico que se puede rentar es un carro, asi que Cindy viajara en carro
3.- Juan se marea, asi que no puede viajar ni en avion ni en barco, entonces Juan viajara en tren
4.- Y ya por logica te queda que, Mr. Jones viajara en barco y Raquel viajara en avion
SOLUCION:
Espero que si le puedan entender al procedimiento, y que les sirva de algo =)
Saludos
Cuatro personas están viajando a diversos lugares en diversos tipos de transporte.
Sus nombres son: Raquel, Juan, Mr.Jones y Cindy.
Ellos viajaron en el tren, el coche, el avión o la barco.
Mr.Jones odia volar
Cindy tiene que alquilar su vehículo
Juan se marea
¿En que viajo cada persona?
PROCEDIMIENTO:
1.- Mr. Jones odia volar, asi que se descarta el avion para el.
Raquel tren carro avion barco
Juan tren carro avion barco
Mr. Jones tren carro avion barco
Cindy tren carro avion barco
2.- Cindy tiene que alquilar su vehiculo, y lo unico que se puede rentar es un carro, asi que Cindy viajara en carro
Raquel tren carro avion barco
Juan tren carro avion barco
Mr. Jones tren carro avion barco
Cindy tren carro avion barco
3.- Juan se marea, asi que no puede viajar ni en avion ni en barco, entonces Juan viajara en tren
Raquel tren carro avion barco
Juan tren carro avion barco
Mr. Jones tren carro avion barco
Cindy tren carro avion barco
4.- Y ya por logica te queda que, Mr. Jones viajara en barco y Raquel viajara en avion
Raquel tren carro avion barco
Juan tren carro avion barco
Mr. Jones tren carro avion barco
Cindy tren carro avion barco
SOLUCION:
Raquel viajo en avion
Juan viajo en tren
Mr . Jones viajo en barco
Cindy viajo en carro
Espero que si le puedan entender al procedimiento, y que les sirva de algo =)
Saludos
domingo, 7 de noviembre de 2010
sábado, 6 de noviembre de 2010
REPORTE # 4 - LENGUAJES FUNCIONALES
Bueno compañeros, aqui les dejo unos programas que hize con algunos lenguajes funcionales.
Empeze con el lenguje R, y aqui mas o menos les explico en que consiste mi porgrama:
Mi programa trata de tener una matriz, y cambiarle su diagonal principal por ceros, a continuacion se los explico:
Primero declare una matriz del 1 al 16 con dimensiones de 4x4 con la funcion array
Ya que tenemos esta matriz, declaras otra matriz de indices, esta nos servira para sacar las coordendas de la diagonal que vamos a cambiar por ceros.
Aqui se extraen los numeros que seran cambiados en la matriz de 4x4
Mi segundo programa lo hize en Haskell y a continuacion les dejo unas caracteristicas de este lenguaje funcional y mi programa:
Haskell es un lenguaje funcional puro, de propósito general, que incluye muchas de las
últimas innovaciones en el desarrollo de los lenguajes de programación funcional
Hugs : es un intérprete. Ofrece una compilación rápida de los programas y un tiempo razonable de ejecución. También viene con una librería gráfica muy simple, lo que lo hace adecuado para quienes lo están aprendiendo. Sin embargo no es una implementación a despreciar, es una de las más livianas y compatibles.
GHC : "Glasgow Haskell Compiler" compila a código nativo en una variedad de arquitecturas y puede también compilar a C. Es, probablemente, uno de los compiladores más populares e incluso tiene unas cuantas librerías (por ejemplo OpenGL) que, aunque muy útiles, sólo funcionan bajo GHC.
nhc98 : es otro compilador con un mejor tiempo de ejecución que Hugs. Esta implementación se enfocó a minimizar la utilización de la memoria convirtiéndola en una buena opción para arquitecturas lentas o antiguas.
HBC : es otro compilador a código nativo de Haskell. Si bien no ha sido actualizado en el último tiempo sigue siendo bastante útil.
Helium : es un nuevo dialecto de Haskell. Se centró en ser muy fácil de aprender; por ello, no incluye soporte para todo el estándar de Haskell, haciendo que no sea totalmente compatible
Y aqui esta mi programa
Bueno lo que hace este programa es recibir tres números enteros y verifica si forman o no un triángulo, y si forman un triángulo, muestra que tipo de triángulo es, ya sea equilátero, isóceles, escaleno o de pitágoras
Y por ultimo aqui les dejo unos tutoriales de Haskell, espero que les sirva
http://www2.ucsp.edu.pe/~apaz/apuntes/node23.html
http://www.lcc.uma.es/~blas/pfHaskell/gentle/intro.html
http://horru.lsi.uniovi.es/~labra/FTP/IntHaskell98.pdf
Empeze con el lenguje R, y aqui mas o menos les explico en que consiste mi porgrama:
Mi programa trata de tener una matriz, y cambiarle su diagonal principal por ceros, a continuacion se los explico:
Primero declare una matriz del 1 al 16 con dimensiones de 4x4 con la funcion array
Ya que tenemos esta matriz, declaras otra matriz de indices, esta nos servira para sacar las coordendas de la diagonal que vamos a cambiar por ceros.
Aqui se extraen los numeros que seran cambiados en la matriz de 4x4
Y por ultimos sustituimos estos elementos por ceros
Mi segundo programa lo hize en Haskell y a continuacion les dejo unas caracteristicas de este lenguaje funcional y mi programa:
Haskell es un lenguaje funcional puro, de propósito general, que incluye muchas de las
últimas innovaciones en el desarrollo de los lenguajes de programación funcional
Incorpora, además, otras características interesantes como el tratamiento sistemático de la
sobrecarga, la facilidad en la definición de tipos abstractos de datos, el sistema de
entrada/salida puramente funcional y la posibilidad de utilización de módulos.Y aqui esta mi programa
triangulo::Int->Int->Int->String
triangulo a b c | a+b | a==b&&b==c&&c==b="triangulo equilatero"
| a==b||a==c||b==c="triangulo isoceles"
| (a^2 + b^2)==c^2||a^2 + c^2==b^2||c^2 + b^2==a^2="triangulo rectangulo"
|otherwise="triangulo escaleno"
Bueno lo que hace este programa es recibir tres números enteros y verifica si forman o no un triángulo, y si forman un triángulo, muestra que tipo de triángulo es, ya sea equilátero, isóceles, escaleno o de pitágoras
Y por ultimo aqui les dejo unos tutoriales de Haskell, espero que les sirva
http://www2.ucsp.edu.pe/~apaz/apuntes/node23.html
http://www.lcc.uma.es/~blas/pfHaskell/gentle/intro.html
http://horru.lsi.uniovi.es/~labra/FTP/IntHaskell98.pdf
Suscribirse a:
Entradas (Atom)