La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estructuras de datos y algoritmos

Presentaciones similares


Presentación del tema: "Estructuras de datos y algoritmos"— Transcripción de la presentación:

1 Estructuras de datos y algoritmos
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos

2 CONTENIDO ¿Qué es un tipo de dato? ¿Qué es un tipos de dato abstracto (TDA)? ¿Cuál es el ciclo de vida de un TDA? Ejemplos de TDA

3 Tipos de datos Algunos tipos de datos que se encuentran en los lenguajes de programación son: int float double char cadena de caracteres(String) arreglos.

4 Tipos de datos Considere el tipo de datos int Cuáles números pertenecen a este tipo de dato Cuántos elementos tiene Qué operaciones se pueden realizar sobre enteros

5 Tipos de datos El tipo de datos int es un subconjunto de los números enteros. Son finitos. int  Z Algunas de las operaciones que están permitidas sobre enteros son: +: int x int → int - : int x int → int * : int x int → int / : int x int → double %: int x int → double

6 Tipos de datos El tipo de datos float es un subconjunto de los números reales. Son finitos. float  R Algunas de las operaciones que están permitidas sobre flotantes son: +: float x float → float -: float x float → float *: float x float → float /: float x float → float

7 Tipos de datos El tipo de datos String (cadena de caracteres) cadena = <carácter0,carácter1, … , caráctern-1> Algunas de las operaciones que están permitidas sobre cadenas de caracteres son: strlen : cadena → int + : cadena x cadena → cadena

8 Tipos de datos Desde un enfoque orientado a objetos, considere el tipo Automóvil, definido de la siguiente manera Automovil = (motor, baul, areapasajeros, chasis,carroceria) Automovil Vehiculo Algunas de las operaciones que están permitidas sobre un Automovil encender : Automovil x Llave → Automovil acelerar : Automovil x Intensidad → Automovil

9 Tipos de datos En todos los tipos definidos considerados anteriormente se tienen en cuenta dos aspectos Proposiciones lógicas que indican qué elementos pertenecen, o no, al tipo Conjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipo

10 Tipos de datos Un tipo de datos define el conjunto de valores válidos del tipo y las operaciones que se pueden aplicar al tipo.

11 Tipos de datos Un Tipo de Dato Abstracto debe definir dos partes: El invariante Un conjunto de operaciones.

12 Tipos de datos El invariante. El invariante es una proposición que expresa el conjunto de valores válidos del TDA. Permite saber qué elementos pertenecen al TDA y qué elementos no. Un invariante también expresa la estructura abstracta del TDA.

13 Tipos de datos Se 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 más independiente posible de su implementación

14 Tipos de datos Un conjunto de operaciones Una operación 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.

15 Tipos de datos Un TDA puede estar compuesto por otros TDAs. En términos formales, un TDA se define como el par (invariante , operaciones), donde invariante es una proposición (que tiene un valor verdadero o falso) y operaciones es el conjunto de las operaciones del TDA.

16 Tipos de datos ¿Que 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 concreta

17 Tipos de datos ¿Que 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 impresión del sello o molde.

18 Tipos de datos Considere el TDA Automóvil. A partir de este TDA podemos definir cualquier cantidad de instancias. Cada una con valores concretos que permiten diferenciar una instancia de otra

19 El ciclo de vida de un TDA, se compone de tres etapas: Diseño
Tipos de datos El ciclo de vida de un TDA, se compone de tres etapas: Diseño Implementación Uso. DISEÑO IMPLEMENTACION USO

20 Tipos de datos DISEÑO Se describe cómo 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 diseño del TDA responde a las preguntas: ¿Cómo es el TDA?. ¿Cómo es la estructura del TDA? ¿Cuál es el conjunto de valores válidos? ¿Cuáles son sus operaciones?

21 Tipos de datos DISEÑO Proposiciones lógicas que indican qué elementos pertenecen, o no, al tipo Conjunto de operaciones o acciones que se pueden realizar sobre los elementos del tipo Por cada operación se debe establecer el dominio y el codominio

22 DISEÑO (Documento formal)
Tipos de datos DISEÑO (Documento formal) 1. Nombre: La letra inicial en mayúscula el resto en minúsculas. 2. Descripción del TDA: Una frase en lenguaje natural describiendo el TDA. 3. Invariante de TDA: Una proposición lógica que expresa el conjunto de valores válidos del TDA. 4. Las operaciones 4.1 Nombre de operación: Todas las letras en minúscula a excepción de las operaciones constructoras que tienen el mismo nombre del TDA. 4.1.1 Descripción: Una frase en lenguaje natural describiendo la operación. 4.1.2 Descripción operacional: La descripción en términos del dominio y codominio de la operación. 4.1.3 Precondición: Una proposición lógica 4.1.4 Poscondición: Una proposición lógica.

23 Tipos de datos IMPLEMENTACION La implementación consiste en tomar el diseño del TDA y convertirlo en algo real, en nuestro caso es llevarlo a un lenguaje de programación. La implementación de un TDA no es única; dado un diseño de un TDA es posible implementarlo de diversas formas,

24 Diferentes implementaciones pueden representar el mismo TDA
Tipos de datos IMPLEMENTACION DISEÑO IMPLEMENTACION 1 USO IMPLEMENTACION 2 Diferentes implementaciones pueden representar el mismo TDA IMPLEMENTACION 3 IMPLEMENTACION 4

25 Tipos de datos USO El uso de un TDA se refiere a cuando se utiliza en una aplicación 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 más fácil construir un software complejo. Para hacer esto es solo unir las implementaciones que necesitemos de la forma adecuada y se tiene la aplicación.

26 Tipos de datos USO En el caso en que se presenten errores en la implementación de un TDA es más fácil corregir un error pues es solo corregir en este y automáticamente quedará corregido en todo el software que lo utilice, ya que los errores están modularizados. La reutilización y la modularidad hacen las implementaciones de los TDA una herramienta poderosa para el desarrollo de software de calidad.

27 Diversos usos de la implementación de un TDA.
Tipos de datos IMPLEMENTACION IMPLEMENTACION USO 1 USO 2 Diversos usos de la implementación de un TDA. USO 3 USO 4

28 Tipos de datos TDA Complejo Un número complejo es un objeto matemático que se puede representar como una pareja ordenada, por ejemplo (2,3) o como el polinomio 2 + 3i , donde i es la unidad básica de los números imaginarios. Los números complejos tienen operaciones como las de suma, resta y multiplicación. 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)

29 Tipos de datos TDA Complejo(Invariante) Para establecer el invariante debemos responder a las dos preguntas: ¿Cómo es la estructura del TDA? El TDA Complejo contiene dos partes: la real y la imaginaria.

30 Tipos de datos TDA Complejo(Invariante) ¿Cuál es el conjunto de valores válidos? Se puede expresar en términos del conjunto de valores válidos de cada una de las partes del TDA, es decir, la primera parte de un Complejo es un número que pertenece al conjunto de los números reales y las segunda es un número imaginario. Formalmente se puede expresar como: Complejo=(real, imaginario), real  R л imaginario  I

31 Tipos de datos TDA Complejo(Operaciones) ¿Cuáles son sus operaciones? sumar: Complejo x Complejo → Complejo restar: Complejo x Complejo → Complejo obtenerReal: Complejo → R obtenerImaginario: Complejo → I Complejo: R x I → Complejo (Operación de construcción) Las operaciones sumar y restar tienen como dominio el producto cartesiano de Complejos y como rango un Complejo.

32 Tipos de datos TDA Complejo (Documento final) TDA Complejo Descripción: El TDA Complejo representa al concepto matemático de número complejo, es decir, un número que tiene una parte real y otra imaginaria. Invariante: Complejo=(real, imaginario), real  R л imaginario  I Operaciones:

33 Tipos de datos TDA Complejo (Documento final) Operación: Complejo Descripción: Construye un número complejo con base en un real real y un imaginario imaginario. Descripción operacional: Complejo: R x I → Complejo Precondición: real  R л imaginario  I Poscondición: Complejo = (real, imaginario)

34 Tipos de datos TDA Complejo (Documento final) Operación: Sumar Descripción: Suma dos números complejos. Descripción operacional: sumar: Complejo x Complejo → Complejo Precondición: otro  Complejo Poscondición: sumar = (real + otro.real, imaginario + otro.imaginario)

35 Tipos de datos TDA Complejo (Documento final) Operación: ObtenerReal Descripción: Retorna la parte real del número complejo. Descripción operacional: obtenerReal: Complejo → R Precondición: Poscondición: obtenerReal = real

36 Tipos de datos IMPLEMENTACION

37 Tipos de datos public class Complejo{ double real; double imaginario; public Complejo(double r, double i) { real = r; imaginario = i; }

38 Tipos de datos public 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; }

39 Tipos de datos public double obtenerReal(Complejo C1) {
return C1.real; }

40 Tipos de datos USO

41 Tipos de datos TDA RACIONAL TDA Racional Descripción: El TDA Racional representa al concepto matemático de número racional, es decir, un número que tiene un numerador y un denominador, ambos valores deben ser de tipo entero. Invariante: Operaciones:


Descargar ppt "Estructuras de datos y algoritmos"

Presentaciones similares


Anuncios Google