sábado, 20 de noviembre de 2010

Reporte 5

Lenguajes multiparadigma.
Un lenguaje de programación multiparadigma es el cual soporta más de un paradigma de programación. Según lo describe Bjarne Stroustrup, permiten crear “programas usando más de un estilo de programación”.
El objetivo en el diseño de estos lenguajes es permitir a los programadores utilizar el mejor paradigma para cada trabajo, admitiendo que ninguno resuelve todos los problemas de la forma más fácil y eficiente posible.
Por ejemplo, lenguajes de programación como C++, Genie, Delphi, Visual Basic o PHP, combinan el paradigma imperativo con la orientación a objetos. Incluso existen lenguajes multiparadigma que permiten la mezcla de forma natural, como en el caso de Oz, que tiene subconjuntos (particularidad de los lenguages lógicos), y otras características propias de lenguages de programación funcional y de orientación a objetos. Otro ejemplo son los lenguajes como Scheme (paradigma funcional) o Prolog (paradigma lógico), que cuentan con estructuras repetitivas, propias del paradigma imperativo.



OZ.
Oz es un lenguaje de programación multi-paradigma y lenguaje de programación esotérico.
Oz fue originalmente desarrollado en el laboratorio de Programación de Sistemas en la Universidad de Saarland por Gert Smolka y sus estudiantes a comienzos de 1990. En 1996 el desarrollo de Oz continuó en cooperación con el grupo de investigación de Seif Haridi en el Instituto Sueco de Ciencias de la Computación. Desde 1999, Oz ha sido continuamente desarrollado por un grupo internacional, el Consorcio Mozart, que estuvo compuesto originalmente por la Universidad de Saarland, el Instituto Sueco de Ciencias de la Computación, y la Universidad Católica de Louvain. En 2005, la responsabilidad de gestionar el desarrollo de Mozart fue transferida a un grupo base, el Tablero Mozart, con el propósito expreso de abrir el desarrollo de Mozart a una comunidad mayor.
Oz tiene una implementación de gran calidad, el Sistema de Programación Mozart, que fue liberado bajo una licencia de Código Abierto por el Consorcio Mozart. Mozart ha sido portado a diferentes plataformas como Unix, FreeBSD, Linux, Microsoft Windows, y Mac OS X.
El lenguaje de programación Oz es el interfaz de usuario del sistema de composición musical mediante restricciones Strasheela

Ejemplo:
Este programa  sencillo compara las tres variables que le damos e indica cual es el maximo.

local Max X Y Z in
   
proc {Max X Y Z}
      
if X >= Y then Z = X else Z = Y end
   
end
   X = 5
   Y = 10
   {Max X Y Z} {Browse Z}
end

Bilbiografias:
http://es.wikipedia.org/wiki/Oz_(lenguaje_de_programaci%C3%B3n)
http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_multiparadigma
http://www.mozart-oz.org/documentation/tutorial/

Reporte 4

R.

R es un lenguaje y entorno de programación para análisis estadístico y gráfico.
Se trata de un proyecto de software libre, resultado de la implementación GNU del premiado lenguaje S. R y S-Plus -versión comercial de S- son, probablemente, los dos lenguajes más utilizados en investigación por la comunidad estadística, siendo además muy populares en el campo de la investigación biomédica, la bioinformática y las matemáticas financieras. A esto contribuye la posibilidad de cargar diferentes bibliotecas o paquetes con finalidades específicas de cálculo o gráfico.
R se distribuye bajo la licencia GNU GPL y está disponible para los sistemas operativos Windows, Macintosh, Unix y GNU/Linux.
Caracteristicas
R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación y agrupamiento, etc.) y gráficas.
Al igual que S, se trata de un lenguaje de programación, lo que permite que los usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de las funciones de R están escritas en el mismo R, aunque para algoritmos computacionalmente exigentes es posible desarrollar bibliotecas en C, C++ o Fortran que se cargan dinámicamente. Los usuarios más avanzados pueden también manipular los objetos de R directamente desde código desarrollado en C. R también puede extenderse a través de paquetes desarrollados por su comunidad de usuarios.
R hereda de S su orientación a objetos. La tarea de extender R se ve facilitada por su permisiva política de lexical scoping.

Ejemplo:
 En este ejemplo realice unas matrices pero ademas de eso saque la matriz traspuesta con la t y tambien saque su deteminante con la funcion det. Claro esta que esto ya viene en el lenguaje r
Como lo gre esto primero le di la funcion matrix a una variable en este caso m despues con las funciones ya mencionadas utilice la variable y el lenguaje hizo todo el trabajo.

Ejemplo 2:
En este ejemplo se usa la funcion ts: "ts" (serie de tiempo) a partir de un
vector (serie de tiempo ´unica) o u na matriz (serie multivariada). Las opciones que caracterizan un objeto de este tipo son:
ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class, names)

Donde podemos ver que ordena los años en los meses es como un tipo calendario.

Lisp

El Lisp (o LISP) es una familia de lenguajes de programación de computadora de tipo funcional con una larga historia y una sintaxis completamente entre paréntesis. Especificado originalmente en 1958 por John McCarthy y sus colaboradores en el Instituto Tecnológico de Massachusetts, el Lisp es el segundo más viejo lenguaje de programación de alto nivel de extenso uso hoy en día; solamente el FORTRAN es más viejo. Al igual que el FORTRAN, el Lisp ha cambiado mucho desde sus comienzos, y han existido un número de dialectos en su historia. Hoy, los dialectos Lisp de propósito general más ampliamente conocidos son el Common Lisp y el Scheme.
El Lisp fue creado originalmente como una notación matemática práctica para los programas de computadora, basada en el cálculo lambda de Alonzo Church. Se convirtió rápidamente en el lenguaje de programación favorito en la investigación de la inteligencia artificial (AI). Como uno de los primeros lenguajes de programación, el Lisp fue pionero en muchas ideas en ciencias de la computación, incluyendo las estructuras de datos de árbol, el manejo de almacenamiento automático, tipos dinámicos, y el compilador auto contenido.
El nombre LISP deriva del "LISt Processing" (Proceso de LIStas). Las listas encadenadas son una de las estructuras de datos importantes del Lisp, y el código fuente del Lisp en sí mismo está compuesto de listas. Como resultado, los programas de Lisp pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear una nueva sintaxis de lenguajes de programación de dominio específico empotrados en el Lisp.

Ejemplo:
En este se realiza el facotrial de un numero.

viernes, 19 de noviembre de 2010

Programacion orientada a objetos

Materia: Lenguajes de Programacion.


C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.
Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.

Ejemplos:
Programa que calcula el promedio de un salon y los alumnos sobresalientes del mismo.


Java

Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.
Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.
Java fue pensado originalmente para utilizarse en cualquier tipo de electrodoméstico pero la idea fracasó. Uno de los fundadores de Sun rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito. Una de los primeros triunfos de Java fue que se integró en el navegador Netscape y permitía ejecutar programas dentro de una página web, hasta entonces impensable con el HTML.
Actualmente Java se utiliza en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en cualquier lenguaje se puede hacer también en Java y muchas veces con grandes ventajas. Para lo que nos interesa a nosotros, con Java podemos programar páginas web dinámicas, con accesos a bases de datos, utilizando XML, con cualquier tipo de conexión de red entre cualquier sistema. En general, cualquier aplicación que deseemos hacer con acceso a través web se puede hacer utilizando Java.
Ejemplo: Esto es el juego de piedra papel o tijera.

import javax.swing.*;
import java.util.Random;
public class seleccion{
   public static void main(String[] args){

                int varUs,varCom;
                //            do{
        do{
        String Us = JOptionPane.showInputDialog(null,"Telcclee 1-Piedra, 2-Papel, 3-Tijera");
        varUs = Integer.parseInt(Us);
        }while(varUs >= 3);

        Random generator = new Random();
        varCom = (generator.nextInt(3)+1);
       
        JOptionPane.showMessageDialog(null,varUs + "  " + varCom);
        if(varUs == 1){
            if(varCom == 1){
               JOptionPane.showMessageDialog(null,"Piedra  vs Piedra: Empate!");
            }else{
                  if(varCom == 2){
                      JOptionPane.showMessageDialog(null,"Piedra  vs Papel: Perdiste!");
                  }else{
                                     if(varCom == 3){
                        JOptionPane.showMessageDialog(null,"Piedra  vs Tijera: Ganaste!");
                                     }//
                  }//
                    }//
                 
        }else{
            if(varUs == 2){
                  if(varCom == 1){
                      JOptionPane.showMessageDialog(null,"Papel  vs Piedra: Ganaste!");
                  }else{
                      if(varCom == 2){
                           JOptionPane.showMessageDialog(null,"Papel  vs Papel: Empate!");
                      }else{
                                        if(varCom == 3){
                            JOptionPane.showMessageDialog(null,"Papel  vs Tijera: Perdiste!");
                         }//
                      }//
                  } //
             
            }else{
                               if(varUs == 3){
                    if(varCom == 1){
                        JOptionPane.showMessageDialog(null,"Tijera  vs Piedra: Perdiste!");
                     }else{
                         if(varCom == 2){
                           JOptionPane.showMessageDialog(null,"Tijera  vs Papel: Ganaste!");
                          }else{
                                            if(varCom == 3){
                                                       
                             }//
                                                }//
                                   } //
                               }//
                    }//
             
                }//
                // String resp =JOptionPane.showMessageDialog(null,"Desea Coninuar? 1 si,,, 0 no!");
                // int r = Integer.parseInt(resp);
                //            }while(r == 1);
   }//
}
Lo cargamos con javac nombre del archivo.java, despues java nombre del archivo el programa corre y luego te pide que escogas del 1 al 3 piedra, papel, tijera.


En este caso yo escogi papel, y la maquina con el random escogio piedra y me indica que gane.

viernes, 12 de noviembre de 2010

Lenguajes de Programacion.

Proyecto 6

FORTRAN
Fortran es lenguaje de propósito general, principalmente orientado a la computación matemática, por ejemplo en ingeniería. Fortran es un acrónimo de FORmula TRANslator, y originalmente fue escrito con mayúsculas como FORTRAN. Sin embargo la tendencia es poner sólo la primera letra con mayúscula, por lo que se escribe actualmente como Fortran. Fortran fue el primer lenguaje de programación de alto nivel. El desarrollo de Fortran inicio en la decada de 1950 en IBM y han habido muchas versiones desde entonces. Por convención, una versión de Fortran es acompañada con los últimos dos dígitos del año en que se propuso la estandarización.
Un programa de Fortran es una secuencia de líneas de texto. El texto debe de seguir una determinada sintaxis para ser un programa válido de Fortran.Las líneas que comienzan con el caracter "c" son comentarios y no tienen otro propósito más que hacer los programas más legibles.
Un programa de Fortran por lo general consiste de un programa principal o main (o manejador) y posiblemente varios subprogramas ( o procedimientos o subrutinas). Por el momento se considerara que todas las sentencias están en el programa principal; los subprogramas se revisarán más adelante. La estructura del programa principal es:
      program name
      declarations
      statements
      stop
      end

Ejemplo: Codigo sencillo que resulve un sistema de ecuaciones lineales de 2X2.
Program Ecua_linales2
implicit none
real*4 x,y,a1,b1,a2,b2,c1,c2
write(*,*)'***********Bienvenidos**************'
write(*,*)''
write(*,*)'Este programa resuelve un sistema de ecuaciones de la forma'
write(*,*)'a1*X+b1*Y=c1'
write(*,*)'a2*X+b2*Y=c2'
read(*,*)a1,b1,c1,a2,b2,c2
if (a1==a2 .and. b1==b2) then
write(*,*)'Son lineas paralelas'
else
x=(c1*b2-c2*b1)/(a1*b2-a2*b1)
y=(a1*c2-a2*c1)/(a1*b2-a2*b1)
write(*,*)'Las soluciones son:','X=',x,'Y=',y
end if
end program

PASCAL


PASCAL, es un compilador que permite usar cualquiera de los tres enfoques en la solucion de problemas de informacion que puedan y deban ser resueltos empleando el computador y el lenguaje aunque se repite este curso esta enfocado al primer modelo.
Identificadores son conjuntos de letras y/o numeros que se utilizan para simbolizar todos los elementos que en un programa, son definibles por el usuario (programador o ingeniero de software) del mismo, como son las variables donde se almacenan datos, funciones( pequenos modulos con
 codigo), etiquetas, clases, objetos, etc.
En PASCAL un identificador es una palabra compuesta de letras y/o numeros de hasta 32 caracteres significativos, empezando siempre con una letra.
Una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecucion de un programa.
Existen ciertas reglas en cuanto a variables:
Claras y con referencia directa al problema.
No espacios en blanco, ni simbolos extranos en ellas.
Se pueden usar abreviaturas, pero solo de caracter general.
No deben ser palabras reservadas del lenguaje.
Ejemplos de buenas variables:
Nombre, Edad, SdoDiario, IngMensual, Perimetro, Calif1, etc.
Programa:  Realiza la operacion de una figura segun las medidas que se le den.
http://www.lawebdelprogramador.com/codigo/codigo.php?idp=1212&id=32&texto=Fortran
#!/usr/bin/pascal

program progl;

var

area,base,altura :real;

begin

write('Dame base : ');

readln(base);

write('Dame altura : ');

readln(altura);

area := base * altura;

writeln('El area es = ');
readln;
end.

 C. 
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portátiles dependientes del compilador o del sistema operativo.
 Programa:
#include<stdio.h>
/*Matriz N*M que cuenta los positivos los negativos y los neutros*/

main(){
       int N, M;
       printf("Proporcina el numero de Filas: ");
       scanf("%d", &N);
       printf("Proporcina el numero de Columnas: ");
       scanf("%d", &M);
      
       int A[N][M], i, j, CP, CN, CC;
       for(i=0;i<=N-1;i++){
                           for(j=0;j<=M-1;j++){
                                               printf("A[%d][%d]= ", i+1, j+1);
                                               scanf("%d", &A[i][j]);
                                               }
                                               }
                                                CP = 0;
                                                CN = 0;
                                                CC = 0;
                                               for(i=0;i<=N-1;i++){
                                                                   for(j=0;j<=M-1;j++){
                                                                                       if (A[i][j]==0) CC=CC+1;
                                                                                       if (A[i][j]>0) CN=CN+1;
                                                                                       }
                                                                                       }
                           for(i=0;i<=N-1;i++){
                                               for(j=0;j<=M-1;j++){
                                                                   printf("%d  ", A[i][j]);
                                                                   }
                                                                   printf("\n");
                                                                   }

                                                                   printf("\nSe repite: %d", NV);
       getch();
       }//Fin de main


Bibliografias:

http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)
En esta pagina encontre el programa de fortran: