7_Estructuras de Control y Tipos Definidos Por El Usuario-POO-ES

43
Estructuras de control y Tip defnidos por el usuario Mtro. José David Uc Sala 3/12/15 POO TDA 1 !"etivo de la sesi#n . : Comprender el concepto de tipos d abstractos mediante la comprensión del concepto y un e apoye en la comprensión.

description

ui90tfryugtuiuh

Transcript of 7_Estructuras de Control y Tipos Definidos Por El Usuario-POO-ES

Presentacin de PowerPoint

Estructuras de control y Tipos definidos por el usuarioMtro. Jos David Uc Salas29/01/2015POO TDA1Objetivo de la sesin. : Comprender el concepto de tipos de datos abstractos mediante la comprensin del concepto y un ejemplo que apoye en la comprensin.

2IntroduccinAbstraccinEs "ignorancia selectivaDecidir que es importante y que no lo esEnfocarse y depender de lo que ES importanteIgnorar y no depender de lo que NO ES importanteEl propsito de la abstraccin no es ser poco especifico, es ms bien crear un nuevo nivel, en el cual se puede ser absolutamente preciso.Edsger Dijkstra

29/01/2015POO TDA2Abstraccin para resolver problemasLa mejor abstraccin es aquella que hace simples las cosas complejasRescatar y resaltar los conceptos fundamentalesEsconder los aspectos no importantesEjemplo: Detalles de la implementacin29/01/2015POO TDA3Mientras ms perfecta es una mquina, ms oculto se encuentra su funcionamiento. Al parecer, la perfeccin no se logra cuando no hay ms que aadir, si no cuando no haya ms que quitar.Antoine de Saint - Exupry

Abstraccin de datosEs una tcnica poderosa de programacinPermite "inventar" o "definir" nuevos tipos de datosObservando e identificando identidades del mundo real: objetosOcultando datos irrelevantes para la resolucin de problemasGracias a esto se pueden disear programasMs cortos, legibles y flexiblesEsto nuevos tipos de datos se conocen como:TIPOS ABSTRACTOS DE DATOS (TDA)29/01/2015POO Principios-24

Trata de representar entidades del mundo real: objetosEspecificando el QUE y no el COMOSe compone de:Comportamiento OperacionesLos TDAs existen para proveer operacionesEjemplo: Un carro, es til porque se le puede manejarManejar es un comportamiento u operacin del TDA CarroEstadoSe refiere al funcionamiento interno del TDAUn TDA correctamente creado mantiene su estado OCULTOEjemplo: No nos interesa como el CARRO funciona, solo nos interesa que funcione29/01/2015POO TDA5Tipos de Datos AbstractosAlgunos tipos de datos que se encuentran en los lenguajes de programacin son:intfloatdoublecharcadena de caracteres(String)arreglosTipos de Datos Abstractos29/01/2015POO TDA6

Considere el tipo de datos intCules nmeros pertenecen a este tipo de datoCuntos elementos tieneQu operaciones se pueden realizar sobre los enterosTipos de Datos Abstractos

El tipo de datos int es un subconjunto de los nmeros enteros. Son finitos.int ZAlgunas de las operaciones que estn permitidas sobre enteros son: +: int x int int - : int x int int * : int x int int/ : int x int double %: int x int doubleTipos de Datos Abstractos

El tipo de datos float es un subconjunto de los nmeros reales. Son finitos.float RAlgunas de las operaciones que estn permitidas sobre flotantes son: +: float x float float -: float x float float *: float x float float /: float x float float Tipos de Datos Abstractos

El tipo de datos String (cadena de caracteres) cadena =

Algunas de las operaciones que estn permitidas sobre cadenas de caracteres son: strlen : cadena int + : cadena x cadena cadena Tipos de Datos Abstractos

Desde un enfoque orientado a objetos, considere el tipo Automvil, definido de la siguiente manera Automovil = (motor, baul, areapasajeros, chasis,carroceria)Automovil Vehiculo

Algunas de las operaciones que estn permitidas sobre un Automovil encender : Automovil x Llave Automovil acelerar : Automovil x Intensidad Automovil Tipos de Datos AbstractosEn todos los tipos definidos considerados anteriormente se tienen en cuenta dos aspectosProposiciones lgicas que indican qu elementos pertenecen, o no, al tipoConjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipo

Tipos de Datos AbstractosUn tipo de datos define el conjunto de valores vlidos del tipo y las operaciones que se pueden aplicar al tipo.

Tipos de Datos AbstractosUn Tipo de Dato Abstracto debe definir dos partes:

El invariante

Un conjunto de operaciones.

Tipos de Datos AbstractosEl invariante.

El invariante es una proposicin que expresa el conjunto de valores vlidos del TDA. Permite saber qu elementos pertenecen al TDA y qu elementos no.

Un invariante tambin expresa la estructura abstracta del TDA.

Tipos de Datos AbstractosSe dice que la estructura es abstracta porque se trata de que el TDA tenga un nivel alto de generalidad

Una de las formas para que esto se cumpla es que el TDA debe ser lo ms independiente posible de su implementacin

Tipos de Datos AbstractosUn conjunto de operaciones

Una operacin es algo que se le puede hacer al TDA.

El conjunto de las operaciones define el comportamiento del TDA, esto es, define lo que se puede hacer o no con el TDA.

Tipos de Datos AbstractosUn TDA puede estar compuesto por otros TDAs.

En trminos formales, un TDA se define como el par (invariante , operaciones), donde invariante es una proposicin (que tiene un valor verdadero o falso) y operaciones es el conjunto de las operaciones del TDA.

Tipos de Datos AbstractosQue es una instancia de TDA?

Una instancia de TDA, o simplemente instancia, es un elemento que pertenece al TDA.

El TDA es abstracto mientras que la instancia es concretaTipos de Datos AbstractosQue es una instancia de TDA?

Un TDA es como un molde, o un sello, que define como ser la forma y comportamiento de los elementos que le pertenecen.

Una instancia, por su parte, es la impresin del sello o molde.

Tipos de Datos AbstractosEl ciclo de vida de un TDA, se compone de tres etapas:

DiseoImplementacinUso.DISEOIMPLEMENTACIONUSOTipos de DatosDISEOSe describe cmo va a ser el TDA, su invariante y sus operaciones.

Es en esta etapa cuando el TDA es verdaderamente abstracto, en las otras etapas comienza a ser real.

La etapa de diseo del TDA responde a las preguntas: Cmo es el TDA?. Cmo es la estructura del TDA?Cul es el conjunto de valores vlidos?Cules son sus operaciones?Tipos de DatosDISEO

Proposiciones lgicas que indican qu elementos pertenecen, o no, al tipo

Conjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipoPor cada operacin se debe establecer el dominio y el codominioTipos de Datos AbstractosDISEO (Documento formal)

1. Nombre: La letra inicial en mayscula el resto en minsculas. 2. Descripcin del TDA: Una frase en lenguaje natural describiendo el TDA. 3. Invariante de TDA: Una proposicin lgica que expresa el conjunto de valores vlidos del TDA. 4. Las operaciones 4.1 Nombre de operacin: Todas las letras en minscula a excepcin de las operaciones constructoras que tienen el mismo nombre del TDA.

4.1.1 Descripcin: Una frase en lenguaje natural describiendo la operacin. 4.1.2 Descripcin operacional: La descripcin en trminos del dominio y codominio de la operacin. 4.1.3 Precondicin: Una proposicin lgica 4.1.4 Poscondicin: Una proposicin lgica. Tipos de Datos AbstractosIMPLEMENTACION

La implementacin consiste en tomar el diseo del TDA y convertirlo en algo real, en nuestro caso es llevarlo a un lenguaje de programacin.

La implementacin de un TDA no es nica; dado un diseo de un TDA es posible implementarlo de diversas formas,Tipos de Datos AbstractosIMPLEMENTACION

DISEOIMPLEMENTACION 1USOIMPLEMENTACION 2IMPLEMENTACION 3IMPLEMENTACION 4Diferentes implementaciones pueden representar el mismo TDATipos de Datos AbstractosUSO

El uso de un TDA se refiere a cuando se utiliza en una aplicacin para resolver una problema especifico.

Los diversos usos de un TDA es una prueba de la generalidad de este.

Tener un conjunto de TDAs reutilizables hace mucho ms fcil construir un software complejo. Para hacer esto es solo unir las implementaciones que necesitemos de la forma adecuada y se tiene la aplicacin.

Tipos de Datos AbstractosUSO

En el caso en que se presenten errores en la implementacin de un TDA es ms fcil corregir un error pues es solo corregir en este y automticamente quedar corregido en todo el software que lo utilice, ya que los errores estn modularizados.

La reutilizacin y la modularidad hacen las implementaciones de los TDA una herramienta poderosa para el desarrollo de software de calidad.

Tipos de Datos AbstractosIMPLEMENTACION

IMPLEMENTACIONUSO 1USO 2USO 3USO 4Diversos usos de la implementacin de un TDA.Tipos de Datos AbstractosTDA Complejo

Un nmero complejo es un objeto matemtico que se puede representar como una pareja ordenada, por ejemplo (2,3) o como el polinomio 2 + 3i , donde i es la unidad bsica de los nmeros imaginarios.

Los nmeros complejos tienen operaciones como las de suma, resta y multiplicacin. Si tenemos dos complejos c1=(r1,i1) y c2=(r2,i2), las operaciones se pueden definir de la siguiente manera:C1 + C2 = (r1 + r2, i1 + i2)C1 - C2 = (r1 - r2, i1 - i2)Tipos de Datos AbstractosTDA Complejo(Invariante)

Para establecer el invariante debemos responder a las dos preguntas:

Cmo es la estructura del TDA?

El TDA Complejo contiene dos partes: la real y la imaginaria.

Tipos de Datos AbstractosTDA Complejo(Invariante)

Cul es el conjunto de valores vlidos?

Se puede expresar en trminos del conjunto de valores vlidos de cada una de las partes del TDA, es decir, la primera parte de un Complejo es un nmero que pertenece al conjunto de los nmeros reales y las segunda es un nmero imaginario. Formalmente se puede expresar como:

Complejo=(real, imaginario), real R imaginario ITipos de Datos AbstractosTDA Complejo(Operaciones)

Cules son sus operaciones? sumar: Complejo x Complejo Complejo restar: Complejo x Complejo Complejo obtenerReal: Complejo R obtenerImaginario: Complejo I Complejo: R x I Complejo (Operacin de construccin)Las operaciones sumar y restar tienen como dominio el producto cartesiano de Complejos y como rango un Complejo. Tipos de Datos AbstractosTDA Complejo (Documento final)

TDA Complejo

Descripcin: El TDA Complejo representa al concepto matemtico de nmero complejo, es decir, un nmero que tiene una parte real y otra imaginaria.

Invariante: Complejo=(real, imaginario), real R imaginario I

Operaciones:Tipos de Datos AbstractosTDA Complejo (Documento final)

Operacin: Complejo

Descripcin: Construye un nmero complejo con base en un real real y un imaginario imaginario. Descripcin operacional: Complejo: R x I Complejo Precondicin: real R imaginario I Poscondicin: Complejo = (real, imaginario)Tipos de Datos AbstractosTDA Complejo (Documento final)

Operacin: Sumar

Descripcin: Suma dos nmeros complejos. Descripcin operacional: sumar: Complejo x Complejo Complejo Precondicin: otro Complejo Poscondicin: sumar = (real + otro.real, imaginario + otro.imaginario)

Tipos de Datos AbstractosTDA Complejo (Documento final)

Operacin: ObtenerReal

Descripcin: Retorna la parte real del nmero complejo. Descripcin operacional: obtenerReal: Complejo R Precondicin:

Poscondicin: obtenerReal = realTipos de Datos AbstractosIMPLEMENTACION

Tipos de Datos Abstractospublic class Complejo{

double real; double imaginario;

public Complejo(double r, double i) { real = r; imaginario = i; } Tipos de Datos Abstractospublic Complejo sumar(Complejo C1, Complejo C2){

Complejo C3 = new Complejo(0,0); C3.real = C1.real + C2.real; C3.imaginario = C1.imaginario + C2.imaginario; return C3; }

Tipos de Datos Abstractospublic double obtenerReal(Complejo C1) { return C1.real; }

Tipos de Datos AbstractosUSO

Tipos de Datos AbstractosTDA RACIONAL

TDA Racional

Descripcin: El TDA Racional representa al concepto matemtico de nmero racional, es decir, un nmero que tiene un numerador y un denominador, ambos valores deben ser de tipo entero.Invariante: Operaciones:

Tipos de Datos Abstractos