paradigmas programacion rufino

54
UNIVERSIDAD NACIONAL HERMILIO VALDIZÁ Curso-LENGUAJES DE PROGRAMACIÓ Mg. Agustín Rojas Flore 3: “PARADIGMAS DE PROGRAMACIÓN”

Upload: agustin-rojas

Post on 24-Dec-2014

359 views

Category:

Education


1 download

DESCRIPTION

Educacion

TRANSCRIPT

Page 1: Paradigmas programacion rufino

UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN

Curso-LENGUAJES DE PROGRAMACIÓN

Mg. Agustín Rojas Flores

3:“PARADIGMAS DE PROGRAMACIÓN”

Page 2: Paradigmas programacion rufino

PROGRAMACIÓN ESTRUCTURADA

• Programación estructurada: • consiste en un conjunto de reglas para escribir programas de tal manera

que sean legibles y fáciles de modificar.

• Reglas a seguir para la programación estructurada:a) Características de algoritmos estructurados

b) ¿Cómo construir un algoritmo estructurado?

c) Estructuras algorítmicas estructuradas

Page 3: Paradigmas programacion rufino

A) CARACTERÍSTICAS DE UN ALGORITMO ESTRUCTURADO• Finito: El algoritmo debe tener un número finito de pasos.

• Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución.

• Legibles: El texto que lo describe debe ser claro, de forma que permita entenderlo y leerlo fácilmente.

• Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.

Page 4: Paradigmas programacion rufino

CARACTERÍSTICAS DE UN ALGORITMO ESTRUCTURADO• Modulares:

• La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños.

• Único punto de entrada, único punto de salida: • A los algoritmos y a los módulos que lo integran, se entra por un solo

punto (inicio) y se sale por un solo punto (fin)

Page 5: Paradigmas programacion rufino

B) ¿CÓMO CONSTRUIR ALGORITMOS ESTRUCTURADOS?

• Definición y análisis del problema: datos de entrada y salida (resultados)

• Aplicar la técnica de: “divide y vencerás”, que consiste en descomponer el problema en subproblemas más sencillos

• Resolución de los subproblemas: realización de los algoritmos correspondientes a los subproblemas

• Depurar (prueba de validez) el algoritmo resultante

Page 6: Paradigmas programacion rufino

C)ESTRUCTURAS ALGORÍTMICAS O DE CONTROL• Secuenciales: cada acción se realiza una sola vez y en un determinado orden

• Condicionales (selectivas): permiten seleccionar una acción a realizar entre varias alternativas

• Iterativas (repetitivas): una determinada acción se realiza más de una vez

Page 7: Paradigmas programacion rufino

EJEMPLO• Calcular la media de una serie de números positivos, suponiendo que los datos se leen

desde un terminal.

• Un valor de cero —como entrada— indicará que se ha alcanzado el final de la serie de números positivos.

• El primer paso a dar en el desarrollo del algoritmo es descomponer el problema en una serie de pasos secuenciales.

• Para calcular una media se necesita sumar y contar los valores. Por consiguiente, el algoritmo en forma descriptiva sería

Page 8: Paradigmas programacion rufino

• algoritmo media

• inicio

• variables

• entero: n, c, s;

• real: media;

• C← 0;

• S←0;

• Hacer

• leer(N)

• Si N <> 0 Entonces

• S←S+N;

• C←C+1;

• fin si

• Mientras N <>0

• si C>0 entonces

• media ← S/C

• escribe(media)

• sino

• escribe('no datos')

• fin si

• fin

Page 9: Paradigmas programacion rufino

PARADIGMA ORIENTADO A OBJETOS• La programación orientada a objetos aporta un nuevo enfoque a los retos que se

plantean en la programación estructurada cuando los problemas a resolver son complejos. Al contrario que la programación procedimental que enfatiza en los algoritmos, la POO enfatiza en los datos. En lugar de intentar ajustar un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el lenguaje al problema.

Page 10: Paradigmas programacion rufino

• Los lenguajes orientados combinan en una única unidad o módulo, tanto los datos como las funciones que operan sobre esos datos. Tal unidad se llama objeto. Si se desea modificar los datos de un objeto, hay que realizarlo mediante

• las funciones miembro del objeto. Ninguna otra función puede acceder a los datos. Esto simplifica la escritura, depuración y mantenimiento del programa.

Page 11: Paradigmas programacion rufino

PRINCIPIOS BÁSICOS DE ORIENTACIÓN A OBJETOS

Orientación a ObjetosAbstracción

Jerarquía

Modularidad

Polimorfismo

Encapsulación

Page 12: Paradigmas programacion rufino

¿QUÉ ES ABSTRACCIÓN?

• Es el proceso de capturar los detalles fundamentales de un objeto mientras se suprimen o ignoran otros detalles.

• • Se enfatizan características comunes que interesan

• • Se ignoran otras características

Page 13: Paradigmas programacion rufino

La Abstracción Minimiza la Complejidad

Page 14: Paradigmas programacion rufino

¿QUÉ ES ENCAPSULACIÓN?

• Es la capacidad de esconder los detalles de como funciona un objeto (la implementación), detrás de una interface

• • Solo se necesita conocer la interface para poder usar el objeto

• • El usuario no se ve afectado si se cambia o mejora el funcionamiento interno del objeto, mientras se mantenga la interface

Page 15: Paradigmas programacion rufino
Page 16: Paradigmas programacion rufino

Vol+

Sens3 => Vol++=> DAC31.out=2.1=> Amp27.gain=1.3=> OSD, Pref, ...

Sens3 => Vol++=> DAC31.out=2.1=> Amp27.gain=1.3=> OSD, Pref, ...

Sens => VolUp =>=> Settings.vol++=> DAC23.out=0.7=> Amp02.gain=1.7=> OSD, Pref, ...

Sens => VolUp =>=> Settings.vol++=> DAC23.out=0.7=> Amp02.gain=1.7=> OSD, Pref, ...

Page 17: Paradigmas programacion rufino

¿QUE ES POLIMORFISMO?

Es la habilidad de esconder diferentes implementaciones tras una sola interface

Page 18: Paradigmas programacion rufino

• Ejemplo2: Operación “Abrir”

Permite al analista hablar el lenguaje del cliente. Evita asignar identificadores artificiosos para distinguir las

operaciones. Contribuye a la reutilización de código.

Puerta PlazoPuertoCuenta

Abrir()Abrir() Abrir()Abrir()

Page 19: Paradigmas programacion rufino

¿QUÉ ES MODULARIDAD?

• Es la capacidad de particionar algo complejo y difícil de manejar, en partes más sencillas y fáciles de manejar

Page 20: Paradigmas programacion rufino
Page 21: Paradigmas programacion rufino

¿QUÉ ES JERARQUÍA?

• La capacidad de manejar niveles de abstracción

Page 22: Paradigmas programacion rufino
Page 23: Paradigmas programacion rufino

¿QUÉ ES HERENCIA?

• Es la capacidad de los elementos de una jerarquía, de transmitir sus características desde los niveles mas abstractos a los más concretos

Page 24: Paradigmas programacion rufino

HERENCIA

• Uno puede hacer representaciones generales de un objeto y después relacionarlas con otros objetos, para que cada uno tenga características mas especificas

• Estas son las relaciones que puede tener un objeto

Animal

Mamífero

Canino

Firulais

Lassie

Felino

Garfield

Felix

Ovíparo

Reptil

Page 25: Paradigmas programacion rufino

OTRO EJEMPLO DE HERENCIA:

Page 26: Paradigmas programacion rufino

¿QUÉ ES UN OBJETO?

Informalmente, un objeto representa a una entidad, ya sea física, conceptual o software

Page 27: Paradigmas programacion rufino
Page 28: Paradigmas programacion rufino

UNA DEFINICIÓN MÁS FORMAL

• Un objeto es un concepto, abstracción o cosa con fronteras definidas y con sentido para una aplicación

• Un objeto es algo que tiene:

• Estado

• Comportamiento

• Identidad

Page 29: Paradigmas programacion rufino

UN OBJETO TIENE ESTADO

• El estado de un objeto es una de las posibles condiciones en que un objeto puede existir

• El estado de un objeto normalmente cambia con el tiempo

• El estado de un objeto es usualmente implementado por un conjunto de propiedades llamadas atributos, mas los enlaces que el objeto pueda tener con otros objetos

• El estado lo establecen los valores de los atributos

Page 30: Paradigmas programacion rufino
Page 31: Paradigmas programacion rufino

UN OBJETO TIENE COMPORTAMIENTO

• El comportamiento determina como un objeto actúa y reacciona.

• El comportamiento define la manera en la que un objeto responde a las peticiones de otros objetos.

• El comportamiento visible de un objeto se modela con un conjunto de mensajes a los que el puede responder

• Los mensajes se implementan como las operaciones del objeto.

Page 32: Paradigmas programacion rufino
Page 33: Paradigmas programacion rufino

UN OBJETO TIENE IDENTIDAD

• Cada objeto tiene una identidad única, aun si su estado en un momento dado, es idéntico al de otros objetos

Page 34: Paradigmas programacion rufino
Page 35: Paradigmas programacion rufino

EJEMPLO:

• Objeto: Televisor Atributos: Pantalla, Antena, Color, Marca, Bocina, Sintonizador. Comportamiento (métodos): Encender, Apagar, Cambiar canal Estado de un atributo: Marca=sony. El estado es la asignación de un valor a un atributo.

Page 36: Paradigmas programacion rufino

¿QUÉ SON CLASES?

Cuando se han identificado muchos objetos en un dominio, decimos que una clase es una abstracción que describe un grupo de objetos que tienen:• • propiedades en común (atributos)• • comportamiento en común (operaciones)• • relaciones comunes con otros objetos (asociaciones)• • semántica en común (descripción breve)

• Una clase es una abstracción porque:• • enfatiza características relevantes al sistema• • suprime otras características

Page 37: Paradigmas programacion rufino

CLASE CARRO

Page 38: Paradigmas programacion rufino

LA RELACIÓN ENTRE CLASES Y OBJETOS

• Una clase en una definición abstracta de un objeto• Define la estructura y comportamiento de cada objeto en la

clase

• Sirve como una plantilla para crear objetos

• Un objeto es una instancia concreta de una clase• • Los objetos pueden agruparse en clases

Page 39: Paradigmas programacion rufino
Page 40: Paradigmas programacion rufino

CLASES Y OBJETOS

Page 41: Paradigmas programacion rufino

Vehículo

Punto

Figura

Animal

(1,3)

(2,2)

(2,1)

(5,2.5)

Platero:Animal

Page 42: Paradigmas programacion rufino
Page 43: Paradigmas programacion rufino

EJERCICIOIdentifique los elementos de la siguiente lista, indicando cuales son objetos y cuales son clases. En el caso de los objetos, indicar cual sería la clase a la que pertenecen.

• Contestador telefónico de Mario• Caja de Ahorro• Servidor FTP• Misil nuclear• Botón de llamado al ascensor• Máquina de Fax del Depto. de Ventas• Vehículo Espacial Ariadne• Apollo XIII• Fondo de contingencia de la compañía• Lanzador espacial Columbus• Teléfono rojo de la oficina oval de la Casa Blanca• Registro de Impuestos Federales

Page 44: Paradigmas programacion rufino

EJERCICIO 2En la siguiente lista, identificar cuales son atributos y cuales son clases. Intente asociar los atributos con las clases a las que podrían pertenecer.

• Autopista• Nombre• Población• Número• Paciente• Tratamiento• Cantidad adeudada• Enfermedad• Período orbital• País• Coordenadas• Ultima Fecha de paso• Satélite

Page 45: Paradigmas programacion rufino

Clase Objetos

• Niño Alejandro

• Mamá Gloria

• Papá Alexis

Responsabilidades

• Nombre

• Edad

• Juguetes

• Cepillarse los dientes

• Avisar que tiene sueño

• Nombre

• Dormir al niño

• Nombre

• Arrancar el carro

• Leer el periódico

• Cuidar a los niños

OTRO EJEMPLO:

Page 46: Paradigmas programacion rufino

RB - 2004 46

ACTIVIDADES:1. IDENTIFIQUE UNA CLASE QUE AGRUPE TODOS ESTOS OBJETOS2. AGRUPE DIVERSOS OBJETOS EN DISTINTAS CLASES

Page 47: Paradigmas programacion rufino

RB - 2004 47

Representando un objeto

MaríaEdadDirecciónAmigo

Bailar() PedirAJorgeQueBaile() Saltar() Caminar() MoverMiCabeza() MoverMisBrazos MoverMiCintura......

Nombre:

Atributos:

Acciones:

Page 48: Paradigmas programacion rufino

RB - 2004 48

Representando una clase

PersonaEdadDirecciónAmigo

Bailar() PedirA_un_amigoQueBaile()Saltar()Caminar()MoverCabeza()MoverBrazosMoverCintura......

Nombre:

Atributos:

Acciones:

Page 49: Paradigmas programacion rufino

MÉTODOS• Los métodos de una clase son funciones ó procedimientos propios de la clase que

pueden tener acceso a los atributos de la misma para realizar las operaciones para los que son programados.

• Cada método recibe ciertos parámetros y retorna su resultado en un dato de cierto tipo, dependiendo de estos parámetros que recibe el método y el tipo del dato que retorna, podemos tener métodos con el mismo nombre y serán diferenciados por el tipo de sus parámetros (polimorfismo).

Page 50: Paradigmas programacion rufino

• Los parámetros o argumentos son una forma de intercambiar información con el método. Pueden servir para introducir datos para ejecutar el método (entrada) o para obtener o modificar datos tras su ejecución (salida).

• En <tipo retorno dato> se indica cuál es el tipo de dato del objeto que el método devuelve, y si no devuelve ninguno se ha de escribir void en su lugar.

• Como nombre del método se puede poner en <nombreMétodo> cualquier identificador válido.

Page 51: Paradigmas programacion rufino

DEFINICIÓN DE MÉTODOS EN PSEUDOCÓDIGO

Nombre_Método (parámetros): Tipo retorno dato

• Cuerpo del método

• Ejemplo:

• Método calcularFactorial (numero : entero) : entero

• Declaraciones Variables

• fac, i, numero:Entero

• Fac<-1;

• Para i<- 1 hasta numero hacer

• fac = fac * i

• FinFor

• retornar fac

• Fin Método calcularFactorial

Page 52: Paradigmas programacion rufino

FUNCIONES EN EL PARADIGMA ESTRUCTURADO

Nombre_funcion (lista_parametros): tipo de dato retorno

• Inicio

• declaración de variables.

• sentencias;

• ;

• ;

• regresa valor o expresión;

• Fin

Page 53: Paradigmas programacion rufino

EJEMPLOCalcularFactorial(numero : entero) : entero

• Inicio

• Declaraciones Variables

• fac, i, numero:Entero

• Fac<-1;

• Para i<- 1 hasta numero hacer

• fac = fac * i

• FinFor

• retornar fac

• Fin calcularFactorial

Page 54: Paradigmas programacion rufino

Los lenguajes de programación estructurada:

• Están orientados a acciones.

• La unidad de programación es la función.

La programación orientada a objetos:

• Encapsula datos (atributos) y métodos (comportamiento) en

objetos que están relacionados entre sí.

• La unidad de programación es la clase.

PROGRAMACIÓN ORIENTADA A OBJETOS VS

PROGRAMACIÓN ESTRUCTURADO