viernes, 12 de noviembre de 2010

Reporte #7


Lenguajes Orientados a Objetos

La programación Orientada a Objetos (OO) es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas. El uso de este tipo de programación comenzó en la década de los 90's; amplio varios conceptos ya conocidos de programación, e implemento características esenciales para este tipo de programación.

Origen:
Los conceptos de la programación OO tienen su origen en Simula 67, un lenguaje, que como su nombre lo dice, diseñado para hacer simulaciones de naves y fue creado por los noruegos Ole-Johan Dahl y Kristen Nygaard. La idea era agrupar diferentes tipos de naves en varias clases de objetos, para que cada clase fuera responsable de definir sus propios datos y comportamientos, todo esto fue mejorado tiempo después en Smalltalk un lenguaje diseñado para in sistema totalmente dinámico en el cual los objetos se pudieran crear y modificar en marcha del programa, es decir, en tiempo de ejecución.

Conceptos:
  • Clase: Son las propiedades y comportamientos de un tipo de objeto, y y a partir de estas la creación de un nuevo objeto.
  • Herencia: Son los atributos y operaciones, heredadas o transferidas de una clase hacia otra, por lo que la clase a la que se le heredo puede usar los mismos métodos y variables publicas. Mientras que los componentes privados también son heredados, pero se mantienen escondidos al programador.
  • Objeto: Es una instancia de una clase, y se define como un conjunto de propiedades o atributos (datos) y de comportamientos o funcionalidades (métodos) los mismos que consecuentemente reaccionan a eventos.
  • Método: Es un algoritmo asociado a un objeto y se ejecuta al recibir el mensaje del algoritmo, es decir, para que sirve, que puede eventos hacer, y que cambiara de un objeto.
  • Evento: Es un suceso en el sistema ocasionado por la interacción del usuario con la maquina y se define como la reacción que puede desencadenar un objeto.
  • Mensaje: Es aquel que va dirigido a un objeto, mediante un evento generado el cual le dice que método ejecutar.
  • Propiedad o Atributo: Es un contenedor de tipo de datos asociados a un objeto, y se definen como las características predeterminadas de un objeto, cuyo valor puede ser modificado por la ejecución de un método.
  • Estado Interno: Es una variable que se declara como privada, se utiliza para indicar distintas situaciones posibles para el objeto y solo pueden ser alteradas o accedidas a ellas por algún método.
  • ID de un objeto: Un objeto es representado por medio de tablas o entidades las cuales se componen de sus atributos y funciones correspondientes a este.
Características:
  • Abstracción: Extrae las características esenciales de un objeto y mediante la abstracción se pueden armar nuevos conjuntos de clases.
  • Encapsulamiento: Reúne todos los elementos pertenecientes a un mismo objeto, también se puede decir que encapsular, es ocultar detalles del código los cuales no sean de tanta importancia conocer.
  • Modularidad: Es la propiedad que permite subdividir una aplicación en partes más pequeñas llamadas módulos, y cada uno de estos módulos deben ser lo más independiente posible de otros módulos, pero tienen conexiones con otros módulos que les permite estar interrelacionados con el programa en si.
  • Ocultamiento: Es una manera de aislar los objetos del exterior, es decir, del usuario o de otros objetos, para proteger las propiedades de un objeto de quien no tenga derecho de acceder a ellas.
  • Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando.
  • Recolección de basura: Es una técnica que se encarga de destruir automáticamente, y por lo tanto, desvincular o liberar la memoria asociada a objetos sin trascendencia.


Smalltalk


Smalltalk es un lenguaje de programación que permite realizar tareas, de computación mediante la interacción con un entorno de objetos virtuales, se puede decir, que Smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envió de mensajes entre ellos.
Este lenguaje consiste únicamente de objetos que puede ser desde un simple numero, como el 7, hasta un servidor web.

Características:
  • Orientación a objetos Pura.
  • Tipado Dinámico, se dice así cuando una misma variable puede tomar valores de distinto tipo en distintos momentos, estas son más propias de lenguajes interpretados.
  • Interacción entre objetos mediante envío de mensajes.
  • Herencia simple y raíz común.
  • Recolección de basura.
  • Compilación o Interpretación en tiempo de ejecución.
  • Múltiples Implementaciones.

C++

C++ es un lenguaje de programación diseñado a mediados de los 80's por Bjarne Stroustrup. La intención era extender el lenguaje "C" hacia la Orientación de Objetos. También se considera a este lenguaje como multiparadigma, ya que como es inicialmente imperativo, y como extensión de "C" es orientado a objetos, también permite una programación estructurada y la programación genérica.

Programa:
  1. #include (stdio.h)
  2. #include (conio.h)
  3. int main()
  4. {
  5. int dpto;
  6. float pag, tot;
  7. printf("DEPARTAMENTOS: \n1.Ropa \n2.Comestibles \n3.Perfumeria");
  8. printf("\n\nDe que departamento es la compra?: ");
  9. scanf("%d", &dpto);
  10. printf("\n\nCuanto fue el total a pagar por el cliente?: $");
  11. scanf("%f", &pag);
  12. switch(dpto)
  13. {
  14. case 1: if(pag>=100)
  15. tot=pag-(pag*0.05);
  16. break;
  17. case 2: if(pag>=100)
  18. tot=pag-(pag*0.035);
  19. break;
  20. case 3: if(pag>=100)
  21. tot=pag-(pag*0.08);
  22. break;
  23. default: printf("\aNO EXISTE ESE DEPARTAMENTO");break;
  24. }
  25. printf("\nEl total a pagar es de: $ %.2f", tot);
  26. getche();
  27. }

Explicación:
Este programa lo que hace es otorgar descuentos en los precios totales de compra de una tienda departamental, a partir de $100 de compra, pero no lo hace en general, el descuento se aplica diferente, dependiendo de el departamento del cual es comprada la mercancía, por lo tanto podemos decir que cada departamento es una clase y al elegir un tipo de departamento se le asigna un evento para el cual calcular el monto total a pagar esto es posible mediante la instrucción switch que asigna casos diferentes, que pueden ser asignadas a las clases.

Pantalla







8 comentarios:

  1. Hola ricky! Me parece muy bien tu reporte, y el ejemplo que agregaste junto con lo que imprime.
    Saludos!

    ResponderEliminar
  2. muy bien tu reporte, la informacion lo complementa muy bien, y las imagenes ayudan mucho.

    ResponderEliminar
  3. Bien la información, solo te faltarón los ejemplos de OO, el código que pusiste es C y no es un lenguaje OO.

    Saludos

    ResponderEliminar
  4. Te falto un codigo, y como dice mi compañero, no esta muy enfocado a OO

    ResponderEliminar
  5. te falto una pantalla de ejecucion del lenguaje smalltalk y codigo tambien referencias :(

    ResponderEliminar
  6. que onda riky esta muy bien tuu reporte aunque creo que te falto otro programa por ahi

    ResponderEliminar
  7. HOLA!!

    mm creo que te falto un codigo, aunque tu info es muy buena ..

    =)

    ResponderEliminar
  8. No están completos los programas y no son OO (es C y no C++). Desgraciadamente, no te puedo dar mucho por esto.

    Calificación: 1/4

    ResponderEliminar