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

26
Computación II UNIDAD I Revisión de conceptos fundamentales de programación

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

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

Computación II

UNIDAD I

Revisión de conceptos fundamentales de programación

Page 2: 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++.

Page 3: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 4: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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++

Page 5: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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.

Page 6: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 7: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

Prof. Ing. M.C.Sambuelli

• Partes:– Entrada– Proceso– Salida

Conceptos Fundamentales de Algoritmos

Page 8: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 9: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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.

Page 10: Computación II UNIDAD I Revisión de conceptos fundamentales de programació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

Page 11: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

Prof. Ing. M.C.Sambuelli

x = 2

n/x

Es entero?

x+1

x=n

Print: Primo

SI

SINO

NO

Page 12: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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.

Page 13: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 14: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 15: Computación II UNIDAD I Revisión de conceptos fundamentales 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

Page 16: Computación II UNIDAD I Revisión de conceptos fundamentales 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

Page 17: Computación II UNIDAD I Revisión de conceptos fundamentales 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

Page 18: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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)

Page 19: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 20: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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>>

Page 21: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 22: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 23: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 24: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 25: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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

Page 26: Computación II UNIDAD I Revisión de conceptos fundamentales de programación.

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.