1 / 26

Computación II

Computación II. UNIDAD I Revisión de conceptos fundamentales de programación. Presentación de la unidad. Objetivos: Comprender los conceptos básicos de programación. Saber reconocer las diferentes formas de programación. Comprender las propiedades fundamentales de la Orientación a Objetos.

vilina
Download Presentation

Computación II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computación II UNIDAD I Revisión de conceptos fundamentales de programación

  2. Presentación de la unidad • Objetivos: • Comprender los conceptos básicos de programación. • Saber reconocer las diferentes formas de programación. • Comprender las propiedades fundamentales de la Orientación a Objetos. • Valorizar las ventajas de la O.O. • Familiarizarse con C++. Prof. Ing. M.C.Sambuelli

  3. Presentación de la unidad • Contenidos: • Conceptos fundamentales de algoritmos. • Herramientas para el desarrollo y mantenimiento de programas. • Diferentes formas de programación. • Propiedades fundamentales de la programación OO • Entornos de programación OO • El lenguaje C++ Prof. Ing. M.C.Sambuelli

  4. Concepto Características Algoritmos Partes Herramientas No Estructurado Procedural Formas de Programación Estructurado Modular Características Paradigma OO Entornos de Programación C++ Prof. Ing. M.C.Sambuelli

  5. Conceptos Fundamentales de Algoritmos • Algoritmo • Secuencia finita de instrucciones • Reglas que describen las operaciones a realizar para una tarea determinada Es fundamental que la secuencia este ordenada. La especificación del orden en que los enunciados son ejecutados se conoce como control del programa. Prof. Ing. M.C.Sambuelli

  6. Conceptos Fundamentales de Algoritmos • Características Fundamentales: • Preciso: Indicar el orden de realización de cada paso. • Bien definido: bajo las mismas circunstancias, la ejecución del algoritmo debe dar el mismo resultado. • Finito: debe terminar en algún momento. Prof. Ing. M.C.Sambuelli

  7. Conceptos Fundamentales de Algoritmos • Partes: • Entrada • Proceso • Salida Prof. Ing. M.C.Sambuelli

  8. Ejemplo: Diseñar un algoritmo para saber si un numero “n” es primo o no. Entrada: entero positivo n Salida: es primo – no es primo Proceso: • Inicio • Poner x = 2 (variable que representa a los divisores del numero que se busca) • Dividir n por x • Si n/x es entero => n es primo; ir al punto 7 Si n no es entero => continuar • Sumar 1 a x • Si x = n => n es primo Si n!=x =>ir al punto 3 7. Fin Prof. Ing. M.C.Sambuelli

  9. Herramientas para el desarrollo y mantenimiento de programas • Seudocódigo: • Lenguaje artificial e informal que auxilia en el desarrollo de algoritmos. • Similar al ingles/español coloquial; cómodo y amigable. • Consiste solo en caracteres e incluye sólo enunciados de acción. Prof. Ing. M.C.Sambuelli

  10. Herramientas para el desarrollo y mantenimiento de programas • Diagrama de flujo: • Representación grafica de un algoritmo o porción de un algoritmo. • Se traza utilizando ciertos símbolos de uso especial conectados entre sí por flechas, conocidas como líneas de flujo. Prof. Ing. M.C.Sambuelli

  11. x = 2 n/x SI Es entero? Print: Primo NO x+1 NO SI x=n Prof. Ing. M.C.Sambuelli

  12. Diferentes Formas de Programación • Programación No Estructurada: • Programas extensos dentro de una función principal que utilizan variables de tipo global. • Engorrosos de mantener y actualizar. • Artesanales. Prof. Ing. M.C.Sambuelli

  13. Diferentes Formas de Programación • Programación Estructurada: • Programas escritos deacuerdo a unas reglas y conjunto de técnicas. • Incorpora los conceptos de: • Recursos abstractos: descomponer acciones complejas en acciones mas simples. • Diseño descendente: jerarquía de problemas. • Estructuras básicas de control: especifica el orden en que se van ejecutando las acciones. DATOS + ALGOTIMOS = PROGRAMAS Prof. Ing. M.C.Sambuelli

  14. Diferentes Formas de Programación • Programación Estructurada: • Programación Procedural: • El programa se descompone en procedimientos o funciones . • Trozos de código que realizan una tarea determinada. • Cada procedimiento tiene su propio conjunto de datos. • Programación Modular • Agrupación de procedimientos en módulos según su función. • Cada módulo tiene su propio conjunto de datos. Prof. Ing. M.C.Sambuelli

  15. Diferentes Formas de Programación • Programación Estructurada: • Desventajas: Debilidad en la resolución de problemas complejos • Funciones y/o procedimientos tienen acceso ilimitado a variables globales. • Proporciona un modelo pobre del mundo real. Prof. Ing. M.C.Sambuelli

  16. Diferentes Formas de Programación • Paradigma de Orientación a Objetos • Conjunto finito de objetos que contienen datos y operaciones sobre esos datos. Se comunican entre si mediante mensajes. • Datos protegidos de modificaciones accidentales. • Los objetos pueden saber como comunicarse unos con otros mediante interfaces bien definidas, pero no se les permite saber los detalles de funcionamiento de otros objetos. • Los objetos poseen estados. El estado de un objeto se encuentra determinado por el valor concreto de cada una de sus propiedades. Prof. Ing. M.C.Sambuelli

  17. Diferentes Formas de Programación Objetos Datos/atributos/propiedades Métodos/funciones miembro Interfaz Propiedades/atributos + métodos = objetos Prof. Ing. M.C.Sambuelli

  18. Propiedades fundamentales de la Orientación a Objetos • Abstracción • Técnica de programación que permite definir nuevos tipos de datos adecuados a la aplicación. • En el proceso de abstracción es cuando se deciden las características y comportamientos del modelo. • Los tipos de datos son abstracciones; en esencia son formas de representar el mundo real. • Los nuevos tipos de datos definidos por el usuario se llaman Tipo de Datos Abstractos (TAD) • Un TAD es un modelo con un numero de operaciones que afectan ese modelo. TAD = representación (datos) + operaciones (funciones y procedimientos) Prof. Ing. M.C.Sambuelli

  19. Propiedades fundamentales de la Orientación a Objetos • Encapsulado: • Proceso de agrupar datos y operaciones relacionadas bajo la misma unidad de programación. • El objeto encapsula propiedades y métodos que no forman parte de su interfaz y las reserva para uso interno. • Ocultación de datos: • Permite separar el aspecto de un componente, definido por la interfaz con el exterior, de los detalles de su implementación. • La definición de las operaciones sobre los datos es invisible a los usuarios. Prof. Ing. M.C.Sambuelli

  20. Propiedades fundamentales de la Orientación a Objetos • Jerarquía: • Propiedad que permite la ordenación de las abstracciones. Generalización /especialización <<es-un>> (herencia) Agregación <<tiene-un>><<parte de>> Prof. Ing. M.C.Sambuelli

  21. Propiedades fundamentales de la Orientación a Objetos • Generalización: • Es una abstracción en la que un conjunto de objetos de propiedades similares se representa mediante un objeto genérico. • Especialización: • Proceso inverso a la generalización. • Se definen nuevas abstracciones a partir de otras ya existentes. • Agregación: • Concepto que permite el agrupamiento físico de estructuras relacionadas lógicamente. • Permite la descripción de modelos del mundo real que se componen de otros modelos. Prof. Ing. M.C.Sambuelli

  22. Propiedades fundamentales de la Orientación a Objetos generalización agregación Persona casa Empleado tiene habitación tejas Informático vereda puerta pared Es un Programador especialización Prof. Ing. M.C.Sambuelli

  23. Propiedades fundamentales de la Orientación a Objetos • Herencia: • Relación entre clases donde una clase comparte la estructura o comportamiento definidas en una (herencia simple) o mas clases. (herencia múltiple) • Propiedad por la cual instancias de una subclase pueden acceder tanto a datos como a comportamientos asociados con la clase. • Siempre es transitiva. Prof. Ing. M.C.Sambuelli

  24. Propiedades fundamentales de la Orientación a Objetos • Polimorfismo: • Propiedad que indica la posibilidad de que una entidad tome muchas formas. • Implica la posibilidad de tomar un objeto de un tipo e indicarle que ejecute una acción, esta acción se ejecutara de diferente forma según sea el objeto al cual se aplica. Prof. Ing. M.C.Sambuelli

  25. Entornos de Programación OO Agol Simula smalltalk Basic CLU Pascal C C++ Visual Basic Ada Object Pascal Actor Objkective C Borland Pascal Ada 95 Delphi java Prof. Ing. M.C.Sambuelli

  26. El Lenguaje C++ • C++ es una extensión de C con características mas potentes. Originalmente llamado “C con clases” • En C++ un objeto es un elemento individual con propia identidad. Una clase es una descripción general de un conjunto de objetos similares; todos los objetos de una clase comparten los mismos atributos y las mismas operaciones sobre esos atributos. Prof. Ing. M.C.Sambuelli

More Related