La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Facultad de Ingeniería

Presentaciones similares


Presentación del tema: "Facultad de Ingeniería"— Transcripción de la presentación:

1 Facultad de Ingeniería
Computación II UNIDAD I Revisión de conceptos fundamentales de programación Prof. Ing. M.C.Sambuelli

2 Presentación de la unidad
Facultad de Ingeniería 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 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 Formas de Programación Estructurado Modular
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
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 Es entero? Print: Primo x+1 x=n SI NO NO SI
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 CLU Pascal smalltalk C Basic Ada Object Pascal Actor Objkective C C++ Visual Basic 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


Descargar ppt "Facultad de Ingeniería"

Presentaciones similares


Anuncios Google