Programación Estructurada
PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 9 Nombre: Tipos de datos abstractos Contextualización Conforme los lenguajes de programación evolucionan, nuevas técnicas aparecen para lograr un código fuertemente diseñado, modular y especializado. Uno de los conceptos que hasta la fecha se siguen ocupando es el de la abstracción. A que nos referimos con abstracción? Supongamos que yo te pido que pienses en un elefante. Tu mente rápidamente forma la figura de un elefante con su tamaño, color, forma, trompa, etc. Sin tener que definirlo, la pura palabra elefante se asocias con características distintivas que lo definen (a él y a todos los elefantes), a eso se le llama abstracción. La evolución de los lenguajes de programación para la solución de problemas cada vez más grandes y específicos, han orillado a implementar estrategias de programación que emulan este tipo de concepciones en los códigos. La abstracción de datos es una constante en los programas que hoy en día se utilizan y que seguramente seguirán perfeccionándose debido a su utilidad.
PROGRAMACIÓN ESTRUCTURADA 2 Introducción al Tema En la sesión anterior, cuando se hablaba de arreglos multidimensionales se recomendaba que no rebasaran las 3 dimensiones, ya que muchas dimensiones convertirían en abstracto un dato. El objetivo de los arreglos es obtener una descripción sobre un dato, a mayor profundidad mayor detalle debido a sus características, sin embargo, es difícil de seguir las líneas en planos abstractos formados por arreglos multidimensionales. El modelo de dato abstracto permite definir las características de un objeto de forma que con sólo nombrarlo en el programa implique que todas sus características están disponibles para el uso. El Tipo de Dato Abstracto se puede definir como un modelo matemático compuesto por una colección de operaciones y elementos definidos. En esta sesión comenzaremos con una nueva unidad llamada tipos de datos abstractos y nos enfocaremos a la implementación de éstos.
PROGRAMACIÓN ESTRUCTURADA 3 Explicación 5.1 Implementación de un tipo de dato abstracto Un T.D.A. (tipo de dato abstracto), visto desde la parte de líneas de código, es representado como una función, es decir, se invoca y se obtienen resultados de él. Las operaciones dictadas dentro de un T.D.A. se dictan de forma local, es decir, los valores que en él se encuentran no afectan al resto del código, y las operaciones contenidas en el son propias y sólo entregan un resultado, a la contención de estos operadores se le conoce como encapsulamiento. El encapsulamiento de un T.D.A. debe tener un funcionamiento completo, es decir, no llevar a cabo tareas a medias, lo cual garantiza su portabilidad. Si consideramos que los tipos de datos abstractos son una representación junto con sus operaciones, es más natural encapsularlos de una forma conjunta. Para la implementación de un T.D.A. se recomiendan los siguientes pasos: 1. Diseñar la estructura de datos que definen al objeto/tarea a abstraer. 2. Crear funciones por cada operación que se realizara dentro del T.A.D. 3. Definir el tipo de operaciones que realizara el T.D.A. pueden ser tres tipos: Constructora: Crea elementos, declara variables, objetos etc. Modificadora: Operaciones que deben alterar el estado del T.A.D.
PROGRAMACIÓN ESTRUCTURADA 4 Analizadora: Valida el dato pasado para trabajar o no con él. Es importante recordar que, al igual que los arreglos, los T.A.D. también consumen memoria, para ayudar a la elasticidad del uso de la memoria, se pueden utilizar los operadores new y delete para asignar dinámicamente memoria o liberarla cuando ya no se utilice el T.A.D. Una vez enlistadas las operaciones y acciones que realizara el T.A.D. se escoge una representación interna dependiendo del lenguaje sobre el cual se desea crear. La representación deberá ocultarse utilizando métodos de ocultamiento de información propios de cada lenguaje. Usualmente la implementación del T.D.A. se debe implementar en un módulo separado, el cual será enlazado al programa principal. Se debe definir un fichero cabecera con la definición de las operaciones y la declaración del tipo.
PROGRAMACIÓN ESTRUCTURADA 5 Conclusión Los T.D.A. ciertamente son un tipo de datos difíciles de crear, debido a su complejidad de uso y su exigencia de diseño que no cualquier programador es capaz de desarrollar, la idea de implementar T.D.As, es para la especialización de operaciones complejas que sean repetitivas a los largo de un programa y que con una sola llamada puedan heredarse todas sus características que puedan ser utilizadas a lo largo del código del programa. Los T.D.A más comunes de implementar llevan una estricta relación con las estructuras de datos conocidas como pilas y colas, donde por lo regular se permiten almacenar datos a procesar en algún momento del programa.
PROGRAMACIÓN ESTRUCTURADA 6 Para aprender más No conoces las estructuras de datos de pilas y colas? Pilas. Es una estructura donde se permiten almacenar datos de un mismo tipo en la cual se lleva un comportamiento de extracción conocido como LIFO (last in-first out /primero en entrar-primero en salir), donde el proceso del T.D.A deberá llevar los siguientes procesos: 1. Crear pila 2. Meter dato 3. Sacar dato 4. Destruir pila 5. Vaciar pila Colas. Es una estructura de datos del mismo tipo de acceso por posición, con un comportamiento de extracción conocido como FIFO (fisrst in first out/ primero en entrar- primero en salir), donde el proceso del T.D.A deberá llevar los siguientes procesos: 1. Creación. 2. Transformación. 3. Observación. 4. Iteradores.
PROGRAMACIÓN ESTRUCTURADA 7 Actividad de Aprendizaje Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar la siguiente actividad. Instrucciones Realiza un programa en C donde se emula la inserción y extracción de un dato en una pila, donde los datos ingresados por el usuario se almacenen y se impriman posteriormente en el orden que dicta una pila. Convertir en imagen en formato JPG el código Subirlo a la plataforma de la asignatura Esta actividad te ayudará a comprender la función de los Tipos de datos Abstractos en el lenguaje C, así como su correcta utilización, lo cual te facilitará a entender las siguientes sesiones. Esta actividad representa el 5% de tu calificación y se tomará en cuenta lo siguiente: Tus datos generales. Título. Programa en C de la inserción y extracción del dato de la pila. Ortografía y redacción. Referencias bibliográficas
PROGRAMACIÓN ESTRUCTURADA 8 Bibliografía Garrido, A; (2006). Abstracción y estructuras de datos en C++, España: Delta publicaciones. Gómez, A; (2008), Introducción a la computación, México: Cengage Learning. Harvey, M; (2004), C / C++ y Java cómo programar, México: Pearson Educación. Rice, P. (s/f). Desarrollo humano, estudio del ciclo vital, Pearson Prentice Hall.