Computación II
UNIDAD I
Revisión de conceptos fundamentales de programación
Prof. Ing. M.C.Sambuelli
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
• 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++
Presentación de la unidad
Prof. Ing. M.C.Sambuelli
Formas de ProgramaciónEstructurado
Partes
Características
Concepto
Herramientas
Algoritmos
No EstructuradoProcedural
Modular
Paradigma OO
Características
Entornos de Programación
C++
Prof. Ing. M.C.Sambuelli
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
• 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.
Conceptos Fundamentales de Algoritmos
Prof. Ing. M.C.Sambuelli
• Partes:– Entrada– Proceso– Salida
Conceptos Fundamentales de Algoritmos
Prof. Ing. M.C.Sambuelli
• Ejemplo: Diseñar un algoritmo para saber si un numero “n” es primo o no.
Entrada: entero positivo nSalida: es primo – no es primo
Proceso:1. Inicio2. Poner x = 2 (variable que representa a los divisores del numero
que se busca)3. Dividir n por x4. Si n/x es entero => n es primo; ir al punto 7
Si n no es entero => continuar5. Sumar 1 a x6. Si x = n => n es primo
Si n!=x =>ir al punto 37. Fin
Prof. Ing. M.C.Sambuelli
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
• 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.
Herramientas para el desarrollo y mantenimiento de programas
Prof. Ing. M.C.Sambuelli
x = 2
n/x
Es entero?
x+1
x=n
Print: Primo
SI
SINO
NO
Prof. Ing. M.C.Sambuelli
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
• 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.
Diferentes Formas de Programación
DATOS + ALGOTIMOS = PROGRAMAS
Prof. Ing. M.C.Sambuelli
• 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.
Diferentes Formas de Programación
Prof. Ing. M.C.Sambuelli
• 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.
Diferentes Formas de Programación
Prof. Ing. M.C.Sambuelli
• 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.
Diferentes Formas de Programación
Prof. Ing. M.C.Sambuelli
Diferentes Formas de Programación
Objetos
Datos/atributos/propiedades
Métodos/funciones miembro
Interfaz
Propiedades/atributos + métodos = objetos
Prof. Ing. M.C.Sambuelli
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
• 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.
Propiedades fundamentales de la Orientación a Objetos
Prof. Ing. M.C.Sambuelli
• Jerarquía: – Propiedad que permite la ordenación de las
abstracciones.
Propiedades fundamentales de la Orientación a Objetos
Generalización /especialización <<es-un>> (herencia)
Agregación <<tiene-un>><<parte de>>
Prof. Ing. M.C.Sambuelli
• 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.
Propiedades fundamentales de la Orientación a Objetos
Prof. Ing. M.C.Sambuelli
Propiedades fundamentales de la Orientación a Objetos
Programador
Informático
Empleado
Persona
Es un
generalización
especialización
casa
habitación tejas
puertavereda pared
agregación
tiene
Prof. Ing. M.C.Sambuelli
• 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.
Propiedades fundamentales de la Orientación a Objetos
Prof. Ing. M.C.Sambuelli
• 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.
Propiedades fundamentales de la Orientación a Objetos
Prof. Ing. M.C.Sambuelli
Entornos de Programación OOAgol
Simula
smalltalkCLU Pascal C Basic
Ada Object Pascal Actor Objkective C C++ Visual Basic
Ada 95
Borland Pascal
Delphi
java
Prof. Ing. M.C.Sambuelli
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.
Top Related