Está en la página 1de 5

Estructura de datos. Ing. Jesus Zertuche Rodriguez. Investigacin: Tipos de dato abstractos (TDA). Modulacin. Uso de TDA.

Manejo de memoria esttica. Manejo de memoria dinmica.

Ing. En sistemas computacionales. Luis Armando Zelher Puente No. Control: 11430256 z_de_libra92@hotmail.com

Tipos de datos abstractos. (TAD) Tipo abstracto de datos Un tipo de dato abstracto (TDA) o Tipo abstracto de datos (TAD) es un modelo compuesto por una coleccin de operaciones denidas sobre un conjunto de datos para el modelo. Abstraccin Lo primero que debemos enfrentar antes de programar es a un problema. Como los problemas son complejos, debemos analizar solo lo mas importante. Luego de separar los detalles generales de los especicos podemos obtener un modelo abstracto de problema.

Modularidad La modularidad descompone un programa en un pequeo nmero de abstracciones independientes unas de otras pero fciles de conectar entre s. Un mdulo se caracteriza principalmente por su interfaz y su implementacin. La programacin modular sigue el criterio de ocultacin de informacin: si no se necesita algn tipo de informacin, no se debe tener acceso a ella. Aspectos importantes La modularidad es un aspecto muy importante en los TAD, ya que es el reejo de la independencia de la especicacin y la implementacin. Es la demostracin de que un TAD puede funcionar con diferentes implementaciones. Adems de esto, la programacin modular ofrece otras ventajas, como por ejemplo un mejor reparto del trabajo y una deteccin de fallos mucho mejor.

Uso de TDA
1. Recogen mejor la semantica de los tipos. Al agrupar la representacion junto a las operaciones que definen su comportamiento,y forzar a utilizar el TAD a traves de estas operaciones se evitan errores en el manejo del tipo de datos (Por ejemplo, la divisin por 0 en el caso del TAD Racional). 2. Abstraccion: Separa la especificacion (que hace) de la implementacion (como lo hace). Los usuarios de un TAD no necesitan conocer sus detalles de implementacion. Como consecuencia: a) Se favorece la extensibilidad del codigo: Es posible modificar y mejorar la implementacion del TAD sin afectar a los dems modulos que lo utilizan. b) Aumenta la facilidad de uso. c) Aumenta la legibilidad del codigo que usa el TAD. 3. Produce codigo reutilizable. 4. Favorece la ausencia de errores, al reutilizar codigo ya probado
MANEJO DE MEMORIA ESTTICA

Es la memoria que se reserva en el momento de la compilacin antes de comenzar a ejecutar el programa. Los objetos son creados al iniciar el programa y destruidos al finalizar el mismo. Mantienen la misma localizacion en memoria durante todo el transcurso del programa hasta que son destruidos. Los objetos administrados de este modo son: variables globales, variables estticas de funciones, miembros static de clases y literales de cualquier tipo. El inconveniente de la reserva esttica es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema.

Tampoco se adapta bien a la memoria real disponible del ordenador en que se esta ejecutando el programa. Las estructuras de datos estticas: Son aquellas en las que el tamao ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamao durante la ejecucindel programa. Estas estructuras estn implementadas en casi todos los lenguajes. Su principal caracterstica es que ocupan solo una casilla de memoria, por lo tanto una variable simple hace referencia a un nico valor a la vez, dentro de este grupo de datos se encuentra: enteros, reales, caracteres, bolanos, enumerados y subrangos (los ltimos no existen en algunos lenguajes de programacin) La forma ms fcil de almacenar el contenido de una variable en memoria en tiempo de ejecucin es en memoria esttica o permanente a lo largo de toda la ejecucin del programa. No todos los objetos (variables) pueden ser almacenados estticamente. Para que un objeto pueda ser almacenado en memoria esttica su tamao (nmero de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilacin. Como consecuencia de esta condicin no podrn almacenarse en memoria esttica: Los objetos correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilacin no se sabe el nmero de variables que sern necesarias. Las estructuras dinmicas de datos tales como listas, rboles, etc. ya que el nmero de elementos que las forman no es conocido hasta que el programa se ejecuta. MANEJO DE MEMORIA DINMICA Es tambin llamada almacenamiento libre (freestore) y en estos casos el programador solicita (new) memoria para almacenar un objeto y es responsable de liberarla (delete) para que pueda ser reutilizada por otros objetos. Es aquella que se reserva en tiempo de ejecucin despus de leer los datos y de conocer el tamao exacto del problema a resolver. El sitio donde se almacenan los objetos se le denomina HEAP =

MONTCULO pero el sitio preciso donde se encuentra tal montculo depende del compilador y el tipo de puntero utilizado en l reservade memoria dinmica. Puntero (apuntador): un puntero o apuntador es un tipo especial de variable que almacena el valor de una direccin de memoria la cual puede ser de una variable individual, de un elemento de un arreglo, una estructura u objeto de una clase y se anota de la siguiente manera: Tipo de apuntador + nombre de la variable. Int * Pint; puntero a un entero. Char * Pchar; puntero de carcter. Fecha * Pfecha; puntero objeto de la clase fecha. Independientemente del tamao del objeto apuntado por una variable puntero el valor almacenado por esta sera el de una nica direccin de memoria, por este motivo no existen diferencias sintcticas entre punteros a elementos individuales y punteros a elementos a un arreglo o una clase. Sintxis para requerir y liberar memoria dinmica
Variable individual Array de elementos Reserva de memoria int * a = new int; int * a = new int [N]; delete [] a; Liberacin de memoria delete a;

También podría gustarte