La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 1 Definiciones Básicas

Presentaciones similares


Presentación del tema: "Unidad 1 Definiciones Básicas"— Transcripción de la presentación:

1 Unidad 1 Definiciones Básicas
M.C. José Andrés Vázquez Flores FCC/Primavera 2014

2 Abstracción Es un proceso mental mediante el cual se extraen los rasgos esenciales de una problemática mediante descripción simplificada de la realidad. Abstracción de datos: determinación de un conjunto de objetos organizados (estructuras de datos) y el conjunto de operaciones que se puede efectuar sobre ellos. En este proceso se omiten los detalles específicos de la implementación. 4/11/2017

3 Tipos de Datos Abstracto (TDA)
Una estructura de datos es la manera de organizar los datos para realizar operaciones sobre ellos de forma eficiente. El TDA es un tipo de dato organizado que consiste en la declaración de la estructura de datos más el conjunto de operaciones en las que interviene tal estructura. El usuario de un TDA invoca esas operaciones para crear, destruir, manipular y consultar información del tipo de datos abstracto. 4/11/2017

4 Objetivo de los TADs El fin que persigue el concepto de TDA es separar el uso del tipo de dato, de su implementación. Para conseguir este objetivo, la definición de un TDA se divide en dos partes: Especificación Implementación TDA Especificación Implementación Estructuras de datos Algoritmos Sintáctica Semántica

5 : Especificación Sintáctica
¿Qué hace? Especificación de las entidades y sus propiedades (interface) Definir el nombre de las entidades abstractas. Definir el nombre de las operaciones indicando el dominio (argumentos) y el codominio o rango (los valores de retorno)

6 Especificación Semántica
¿Cómo lo hace? Descripción de la representación del objeto (estructura de los datos) y desarrollo de las operaciones. Definir el significado de cada operación usando los símbolos definidos en la especificación sintáctica.

7 Especificación semántica. Cont
La especificación semántica puede ser de dos tipos: (1) Informal, a través del lenguaje natural (2) Formal, rigurosa y fundamentada matemáticamente. Además: {P} Pre-condición: condiciones que deben cumplirse antes de realizar la operación. {Q} Post- condición: condiciones que se cumplen una vez realizada la operación. La notación usual {P} S {Q} donde S es la función o procedimiento.

8 Especificación de un TDA
La especificación de un TDA consiste en establecer las propiedades que lo definen. Para especificar un TDA es necesario describir: Los valores que pueden tomar los datos de ese tipo Todas las operaciones realizables sobre ellos. Una especificación debe poseer 4 propiedades: Ser precisa - solo dice lo imprescindible Ser general - es adaptable a diferentes contextos Ser legible - transmite a los usuarios del tipo y al implementador el comportamiento del tipo no ambigua - evita dobles interpretaciones

9 Ejemplo: TDA Bolsa Tipo: Bolsa
Definición: Es una colección no ordenada de elementos con repetición Sintaxis: CrearBolsa() → Bolsa BolsaVacia → Bolsa BolsaLLena → Bolsa Poner(Bolsa, elemento) → Bolsa EsVacia(Bolsa) → Boolean Retirar(Bolsa, elemento) → Bolsa Reciclar(Bolsa)->Plástico Semántica: b es Bolsa, e, f son elementos CrearBolsa() = BolsaVacia { precondición n/a,postcondición: devuelve una bolsa vacía } EsVacia(CrearBolsa()) = Verdadero { precondición: existencia de una bolsa, postcondición: devuelve verdadero si la bolsa no tiene elementos, falso en otro caso} EsVacia(Poner(CrearBolsa(), e)) = Falso Retirar(BolsaVacia, e) = Error { precondición: la bolsa no está vacía , postcondición:elimina el elemento e de la bolsa B } Retirar(Poner(CrearBolsa(),f), e) = f si f = e Poner(BolsaLlena, e) = Error { precondición: la bolsa no está llena, poscondición añade el elemento e a la bolsa }

10 Ejemplo:TDA Fracción Tipo: Fracción
Definición: Una fracción es un par ordenado de enteros, siempre y cuando la segunda componente sea distinta de cero. Tipo abstracto Racional = (e(1), e(2)) Sintaxis: ConstruirFracción(a,b:Entero) → Fracción Numerador (r: Fraccion) → entero Denominador (r: Fraccion) → entero multiplicar(r1, r2: Fraccion) → Fraccion Semantica: ConstruirFracción(a,b:Entero)=Fraccion { precondición: b ≠ 0, postcondición: e(1) = a AND e(2) = b } Numerador (r: Fraccion) = entero { precondición: debe existir una fracción, postcondición: Numerador = e(1) } Denominador (r: Fraccion) =entero { precondición: debe existir una fracción,postcondición: Denominador = e(2) } multiplicar(r1, r2: Fraccion) =Fraccion { precondición: deben existir dos fracciones, multiplicar=construirFraccion(Numerador(r1) * Numerador(r2), Denominador(r1)*Denominador(r2)), postcondición: una nueva fracción

11 Notación Toda descripción de un TDA consiste en dos partes :
Datos: Esta parte describe la estructura de los datos usada en el TDA de una manera informal. Operaciones: Esta parte describe las operaciones válidas para este TDA, por lo tanto, describe su interface. Usamos la operación especial constructor para describir las acciones que se van a ejecutar una vez que una entidad de este TDA es creada y destructor para describir las acciones que se van a efectuar cuando una entidad es destruida.

12 Tipos de Estructuras respecto a memoria
Estáticas: Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa. los arreglos y las estructuras. Dinámicas: Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución. las listas, los grafos y los árboles. 4/11/2017

13 Tipos de estructuras respecto a la organización
Por posición: Pilas, Colas y Listas Por valor: árboles

14 Organización para guardar los elementos de la estructura
Existen cuatro tipos de organización para los datos de una estructura: Lineal: Jerárquica: Red: Sin relación: 4/11/2017

15 Funciones básicas para las estructuras de datos
Constructoras: crean la estructura. Acceso: son la base para desarrollar una serie de operaciones sobre la estructura porque permite navegar en ella. Destructoras: devuelven al sistema los recursos asignados a la estructura de datos. 4/11/2017

16 Operaciones efectuadas en estructuras de datos
Navegar por la estructura: realizar el recorrido de la estructura. Modificación: permite variar total o parcialmente el contenido de los elementos de la estructura. Consulta de información: permite obtener información de uno o más elementos de la estructura. Búsqueda: determina si un elemento se encuentra o no en la estructura. Inserción: se incluye un nuevo elemento en la estructura Eliminación: permite suprimir elementos de la estructura. 4/11/2017

17 Tipos de organización Organización Lógica: Involucra todo aquello que tenga que ver con las partes de cada elemento, tipo de los elementos, referencia a alguno o algunos elementos, cantidad de los elementos que contiene la estructura, relaciones entre los elementos, etc. Organización Física: Se refiere a todo aquello que tenga que ver con la ubicación de la información en la memoria y la forma de almacenarla de acuerdo a sus dominios. 4/11/2017

18 Ejemplo Organización Lógica: Arreglo de un índice; Inicio: 1, Fin: 50;
Tipo de elementos: Entero; Organización Física: Almacenamiento: Secuencial Dirección Inicial: dir(A) Tamaño del elemento: 2 bytes; Número de elementos: 50; Eliminación de un elemento: Por desplazamiento Por marca 4/11/2017

19 Arreglos Organización Lógica: Organización Física: Dimensiones.
Límite inferior y superior de cada dimensión. Tipo de elementos.  Organización Física: Dirección inicial (de un intervalo de memoria) Tamaño de los elementos. Orden de las dimensiones. Desplazamientos . 19 4/11/2017

20 Arreglo Recuperación de uno de sus elementos.
Las operaciones con los arreglos son: Recuperación de uno de sus elementos. Actualización de un elemento. Ambas operaciones se realizan en función de los índices que señalan la ubicación del elemento. 20 4/11/2017

21 Intervalo de memoria: [DirA, DirA+19]
Arreglos Sea A un ARREGLO [1..20] con elementos de tipo Carácter. Reserva un intervalo de memoria de 20 lugares consecutivos a partir de una dirección que denotaremos por DirA. A[1] A[2] A[3] A[20] DirA DirA+1 DirA+2 DirA+19 Intervalo de memoria: [DirA, DirA+19] 21 4/11/2017

22 Tipos de ED y sus dominios
El REGISTRO proporciona heterogeneidad en este producto cartesiano; por ejemplo: Sea x un REGISTRO con los campos y de tipo ENTERO z de tipo REAL tiene como dominio Dom (x) = Z X R, cuyos elementos son de la forma (a,b) a Z y bR. 4/11/2017

23 Tipos de ED y sus dominios
En general, tenemos que por ejemplo: Sea k un REGISTRO con los campos l de tipo booleano m de tipo x Dom(k) = B X Dom(x) Para poder generalizar esto último, se deben considerar los elementos de referencia, para ello consideremos que en el siguiente ejemplo el operador ^ define tales elementos. 4/11/2017

24 Tipos de ED y sus dominios
Sea p un REGISTRO con los campos xc, yc de tipo Real Sea l-p un REGISTRO con los campos punto de tipo p sp de tipo ^l-p Dom (l-p) define un dominio recursivo: Dom (l-p) = Dom (p) x Dom (^l-p) Los elementos de Dom (^l-p) son de la forma Dom(^l-p) = {nil} U [Dom (l-p)]. 4/11/2017

25 Polinomio de Direccionamiento
Suponiendo que el direccionamiento sea a nivel de bytes. Las operaciones se reducen al cálculo del Polinomio de Direccionamiento (Pd). El Pd obtiene la dirección absoluta de un elemento del arreglo dados sus índices.  25 4/11/2017

26 Polinomio de Direccionamiento
Por ejemplo: Si nos referimos a A[7] Pd (A[7]) = DirA + 6 Pd (A[x]) = DirA + x-1. En general se tiene que si B es un ARREGLO [1..5] con elementos de tipo T Pd (B[x]) = DirB + (x-1) lt; con lt igual a la longitud en bytes asignada al tipo T. 26 4/11/2017

27 Polinomio de Direccionamiento
Para almacenar los elementos de una matriz en la memoria que es lineal, podemos hacerlo por columnas o por renglones. Matriz de 3X4, n=3, m=4 27 4/11/2017

28 Polinomio de Direccionamiento
Por columnas: Dirección Elemento 100=dir 101=dir ª. Columna 102=dir+2 31 103=dir+3 12 104=dir ª. Columna 105=dir+5 32 106=dir+6 13 107=dir ª. Columna 108=dir+8 33 109=dir+9 14 110=dir ª. Columna 111=dir 28 4/11/2017

29 Polinomio de Direccionamiento
Para la dirección del elemento C[i][j] y el almacenamiento por columnas, el PD es: PD(C[i][ j])=DirC+[n*(j-1)+(i-1)]*T Si el almacenamiento se hubiese realizado por renglones, entonces el PD quedaría como: pd(C[i,j])=dirC+[m*(i-1)+(j-1)]*T 29 4/11/2017

30 Polinomio de direccionamiento para un arreglo tridimensional
Sean p el número de piso, r el número de renglones y c el número de columnas. Pd(C[i,j,k])= DirC + (i-1)*r*c +(j-1)*c + (k-1) 4/11/2017


Descargar ppt "Unidad 1 Definiciones Básicas"

Presentaciones similares


Anuncios Google