0% encontró este documento útil (0 votos)
171 vistas11 páginas

Tipos de Datos Abstractos TDA

El documento describe los conceptos fundamentales de los tipos de datos abstractos (TDA), incluyendo su definición, objetivos, importancia y proceso de construcción. Un TDA se compone de una especificación y una implementación, y provee una interfaz que permite realizar operaciones sobre los datos de manera abstracta sin revelar detalles de la implementación subyacente. Las operaciones de un TDA se clasifican en constructoras, modificadoras y analizadoras. La primera etapa en la definición de un nuevo TDA es establecer su interfaz a través de palabras reserv
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
171 vistas11 páginas

Tipos de Datos Abstractos TDA

El documento describe los conceptos fundamentales de los tipos de datos abstractos (TDA), incluyendo su definición, objetivos, importancia y proceso de construcción. Un TDA se compone de una especificación y una implementación, y provee una interfaz que permite realizar operaciones sobre los datos de manera abstracta sin revelar detalles de la implementación subyacente. Las operaciones de un TDA se clasifican en constructoras, modificadoras y analizadoras. La primera etapa en la definición de un nuevo TDA es establecer su interfaz a través de palabras reserv
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

INSTITUTO TECNOLOGICO SUPERIOR

DE TIERRA BLANCA

Clave: 30EIT0008N
Materia: Estructura de Datos

 Alumno: Aldair Maceo Fernández

 Profesora: Eva Mora Colorado

 No. Control: 218N0051

 Grupo: 302-A

 Carrera: Ingeniería en Sistemas


Computacionales

 Investigación: Tipos de Datos Abstractos

30 de agosto del 2022

1
INTRODUCCION
Para comenzar esta investigación se explicará el concepto de abstracción, ya que
puede resultar un poco difícil al principio, pero conforme uno se adentra en el tema se
va comprendiendo cada vez mejor.
La abstracción es en forma general la consideración de ciertas partes seleccionadas de
todo un complejo, haciendo de lado las partes sobrantes. La abstracción da la
posibilidad de considerar una resolución de un cierto problema en el cual no tenemos
idea de como esta resuelto. La mayoría del tiempo solo nos va a interesar el cómo su
se utiliza.

INDICE

¿QUE ES UN TDA?
3
OBJETIVOS E IMPORTANCIA DE LOS TDA
4
ENCAPSULAMIENTO Y CONSTRUCCION DE UN TDA
5
CLASIFICACION DE LAS OPERACIONES DE UN TDA
6
¿QUE ES LO PRIMERO QUE HAY QUE HACER PARA DEFINIR LA INTERFAZ?
7
ESPECIFICACION DE UN TDA
8
ESPECIFICACION SEMIFORMAL Y ESPECIFICACION FORMAL
9

2
¿QUE ES UN TDA?
Un Tipo de dato abstracto (en adelante TDA) es un conjunto de datos u objetos al cual
se le asocian operaciones. El TDA provee de una interfaz con la cual es posible realizar
las operaciones permitidas, abstrayéndose de la manera en cómo estén
implementadas dichas operaciones. Esto quiere decir que un mismo TDA puede ser
implementado utilizando distintas estructuras de datos y proveer la misma
funcionalidad.
Cuando se usa en un programa de computación, un TDA es representado por su
interfaz, la cual sirve como cubierta a la correspondiente implementación. La idea es
que los usuarios de un TDA tengan que preocuparse sólo por la interfaz, pero no por la
implementación, ya que esta puede ir cambiando con el tiempo y, si no existiera
encapsulación, afectar a los programas que usan el dato. Esto se basa en el concepto
de Ocultación de información, una protección para el programa de decisiones de diseño
que son objeto de cambio. Se puede decir que un TAD es un tipo de dato, que se
agrega al lenguaje de programación, para representar un elemento involucrado en el
problema que se desea resolver. De esta forma se le permite al lenguaje que se le
acerque al mundo del problema, manejando los datos que allí se encuentran. En el
proceso de desarrollo de software, dentro del mundo del problema casi siempre es
posible identificar entidades que permiten expresar la solución en términos más
sencillos, más fáciles de mantener y de probar.
Un tipo abstracto de datos se compone de:
 Una especificación
 Una implementación

El TDA proporciona una interfaz que permite realizar operaciones en otras palabras es
un modelo matemático que con operaciones juntos forman algoritmos dependiendo
las técnicas y análisis del programador y la implementación (utiliza
distintas estructuras de datos).

3
OBJETIVOS
 Determinar las posibles entidades a participar en un problema
 Identificar las características y comportamientos importantes de cada entidad
 Abstraer la definición y comportamiento de una entidad para crear un nuevo
TDA
 Aplicar un lenguaje formal parar definir un TDA

IMPORTANCIA DE LOS TDA


Cuando se usa en un programa de computación, un TDA es representado por su
interfaz, la cual sirve como cubierta a la correspondiente implementación. La idea es
que los usuarios de un TDA tengan que preocuparse solo por la interfaz, pero no por la
implementación, ya que esta puede ir cambiando con el tiempo y, si no existiera
encapsulación, afectar a los programas que usan el dato. Esto se basa en el concepto
de Ocultación de información, una protección para el programa de decisiones de diseño
que son objeto de cambio. La solidez de un TDA reposa en la idea de que la
implementación está escondida al usuario. Solo la interfaz es pública. Esto significa que
el TDA puede ser implementado de diferentes formas, pero mientras se mantenga
consistente con la interfaz, los programas que lo usan no se ven afectados.

4
ENCAPSULAMIENTO
El encapsulamiento consiste en aislar las cuestiones de implementación de las de
especificación, es decir, en esconder los detalles de implementación de un determinado
objeto, sea este un tipo de dato o un algoritmo, y mostrar tan sólo su especificación.
De este modo, nos centraremos en el qué y ocultaremos el cómo. Por ejemplo, en el
caso del tipo de datos REAL, el lenguaje proporciona al usuario la capacidad de definir
variables de este tipo, de acceder y modificar su contenido, de realizar operaciones
aritméticas con las mismas. Sin embargo, el usuario no tiene que preocuparse de cómo
se almacenan los distintos números reales, ni del tratamiento que es necesario realizar
con sus representaciones binarias para sumarlos o multiplicarlos. La técnica que se
utiliza para lograr la ocultación de la información es el encapsulamiento.
El uso de la abstracción y el encapsulamiento proporcionan varias ventajas a la hora de
desarrollar programas complejos o definir nuevos tipos de datos:
 Simplificación en el código resultante. El código obtenido es más sencillo de
entender al no tratar al mismo tiempo todos los detalles del problema.
 Reduce los errores al permitirnos trabajar con un código más sencillo.
 Facilita el mantenimiento del código al separar claramente las distintas
operaciones y permitirnos depurar cada una por separado.
 Permite cambiar la implementación de ciertas partes del código sin afectar al
resto.
 Permite reutilizar los tipos. Una vez definido un nuevo tipo de datos, puede ser
utilizado para la resolución de más de un problema. Para ello, la persona que
implementó los procedimientos de manipulación no tiene por qué ser la misma
que los use. Basta con que el usuario final entienda el significado del nuevo tipo
de datos y conozca la especificación de los procedimientos para su manejo. Esta
es una clara demostración de que la implementación puede quedar oculta para
el usuario final.

CONSTRUCCION DE UN TDA
Para construir un tipo abstracto se debe:
1. Establecer la definición del tipo.
2. Definir también las operaciones (funciones y procedimientos) que pueden operar
con dicho tipo.
3. Ocultar la presentación de los elementos del tipo de modo que solo se puede
trabajar con ellos usando los procedimientos definidos en 2.
4. Poder crear instancias múltiples del tipo.

5
La declaración de TDA requiere al menos el uso de dos palabras reservadas, las
cuales son:
Struct: Se die que struct permite crear un tipo de datos que este compuesto de uno o
varios elementos denominados campos. Los campos a su vez pueden ser variables de
tipos definidos por el lenguaje u otros TDA. Una vez definida esta estructura, para
ejemplificar y mostrar el grado de abstracción que puede lograrse, se describe ahora la
segunda de las palabras reservadas.
Typedef: Se utiliza para definir el “alias” o sinónimo de un tipo de datos.

Para el uso de TDA se utilizan las dos palabras reservadas en c++, que sirve para
crear tipo de datos denominados campos, en general las dos palabras reservadas que
son Struct y Typedef que sirven para crear nuevos tipos de datos que se pueden utilizar
como cualquier otro tipo de datos
.
CLASIFICACION DE LAS OPERACIONES DE UN TDA
Las operaciones que implementa un TDA se clasifican en tres grupos principales, de
acuerdo a la función que realiza sobre el objeto abstracto.

Constructoras: Son las operaciones encargadas de realizar la creación de elementos


del TAD. En el TAD Matriz la operación constructora es CrearMat.
Modificadoras: Son aquellas operaciones que pueden alterar el estado de un elemento
del TAD. Se debe tener en cuenta que luego de realizar la operación modificadora
sobre el TAD, se debe seguir cumpliendo el invariante. En el TDA Matriz solo se
especificó una operación modificadora, la operación AsignarMat.
Analizadoras: Es una operación que realiza alguna consulta sobre el estado del objeto
y retorna algún tipo de información. En el TDA Matriz se tienen tres operaciones
analizadoras: InfoMat, FilasMat y ColsMat.
Adicionalmente a los tipos de operación básicos existen algunas subcategorías de
estas, que le agregan portabilidad al TDA. Dentro de estas operaciones se encuentran
las de Comparación, Copia, Destrucción, Salida a pantalla y Persistencia (son
operaciones que le permiten a la instancia del TDA persistir a la ejecución del programa
que lo utiliza).

6
¿QUE ES LO PRIMERO QUE HAY QUE HACER PARA DEFINIR LA INTERFAZ?
Definir la interfaz es decir el .h, en nuestro caso podría ser fracción
Por ejemplo, podría quedarnos algo así:
struct FraccionStruct;
typedef struct FraccionStruct* Fraccion;
Luego definimos la implementación, es decir las operaciones que podremos realizar
con
esta nueva estructura. Las cuales podrían ser:
Fraccion crear (int n, int d);
int numerador (Fraccion x);
int denominador (Fraccion x);
Fraccion sumar (Fraccion x, Fraccion y);
Fraccion restar (Fraccion x, Fraccion y);
Fraccion multiplicar (Fraccion x, Fraccion y);
Fraccion dividir (Fraccion x, Fraccion y);
int iguales (Fraccion x, Fraccion y);

Fraccion simplificar (Fraccion fracción);


void imprimir (Fraccion x);

Relación con el main:


Sin importarnos los detalles de cómo se va a implementar esto, ya estaríamos en
condiciones de hacer una aplicación de ejemplo que use estas fracciones. Por ejemplo:

#include <stdio.h>
#include <stdlib.h>
#include "fraccion.h"

7
int main(void) {
Fraccion dosQuintos = crear(2, 5);
imprimir(dosQuintos);
Fraccion suma = sumar(dosQuintos, crear(2,5));
imprimir(suma);
Fraccion sumaSimplificada = simplificar(suma);
imprimir(sumaSimplificada);

return 0;
}

Pero bien, claramente todo lo escrito arriba no haría nada puesto que no le asignamos
un comportamiento a cada una de las funciones o procedimientos descriptos en él .h,
así que ahora es lo que hay que realizar, vamos a crear el archivo fracción:

#include <stdlib.h>
#include <stdio.h>

ESPECIFICACION DE UN TDA
La especificación de un TDA debe cumplir con que es precisa, es general, es legible y
no presenta ambigüedad
Una especificación para un tipo abstracto de datos consta de:
— La identificación del conjunto de valores posibles y,
— La especificación pre/post de cada una de las operaciones.
Inicialmente la especificación de un TAD parte de una metodología semi - formal,
donde se especifican Tipo, Sintaxis y Semántica del TAD que se está modelando.

8
ESPECIFICACION SEMIFORMAL
TDA: Nombre del Tipo
Sintaxis: Sintaxis de las operaciones
operación(listado de tipo de argumentos): tipo del resultado
Semántica: Efecto de las operaciones
operación(valores concretos) =>expresión del resultado
ESPECIFICACION FORMAL
De manera formal el TAD se puede especificar de la a partir del siguiente esquema:
Especificación TAD
TAD: Nombre
Descripción objeto abstracto (Gráfica o Textual)
Invariante del TAD

Operaciones:
operacion1(listado de tipo de argumentos): tipo del resultado

operación(listado de tipo de argumentos): tipo del resultado

Prototipo operacion1
/*Descripción operación*/
{precondiciones: ...}
{postcondiciones: ...}

Las precondiciones y postcondiciones pueden referirse, únicamente, a los elementos


que componen el objeto abstracto y a los argumentos que recibe. No pueden incluir
ningún otro elemento del contexto en el cual se van a ejecutar. En la especificación de
las operaciones, se debe considerar implícito en la precondición y postcondición, que el
objeto abstracto sobre el cual se va a operar cumple el invariante.
Es importante proporcionar un abreve descripción de cada operación, de manera que el
cliente pueda darse una rápida idea de los servicios que un TAD ofrece, sin necesidad
de entrar a hacer una interpretación de su especificación formal. Al seleccionar los
nombres de las operaciones se debe tener en cuenta que no pueden existir dos
operaciones con el mismo nombre en un programa, incluso si pertenecen a TAD
diferentes. Por esta razón es recomendable agregar un mismo sufijo a todas las
operaciones de un TAD, de tal forma que las identifique.

9
CONCLUSION
Para finalizar esta investigación podemos decir que el TDA O Tipos de Datos
Abstractos nos proporcionar una interfaz que nos permite realizar operaciones en otras
palabras es un modelo matemático que con operaciones juntos forman algoritmos
dependiendo nuestras técnicas y la implementación. Aunque no entendí muy bien lo de
encapsulamiento, pienso que lo explique de una forma interesante, así como sus
especificaciones y sea semiformal o formal.
REFERENCIAS
1.- Estructuras de datos y TDA - Estructura de datos AED-1026 SC3D. (s. f.). Estructura de

Datos. Recuperado 29 de agosto de 2022, de

https://sites.google.com/site/estructuradedatosaed1026sc3d/home/estructuras-de-datos-y-

tda

Alexander, E. (s. f.). 1.3 uso de tipos de datos abstractos. 1.3. Recuperado 29 de agosto de 2022,

de https://es.slideshare.net/erwin_alexander/13-uso-de-tipos-de-datos-abstractos

Estructura de Datos. (s. f.). 1.2. Recuperado 29 de agosto de 2022, de

https://estructuradedatosbalv.zyrosite.com/about-me-copy-copy-ehjecMOmuA

Golfieri, J. (s. f.). TDA. Guía TDA. Recuperado 29 de agosto de 2022, de

https://www.studocu.com/es-mx/document/universidad-nacional-de-lanus/programacion-

de-computadoras/guia-practica-tda-unidad-7tipos-de-datos-abstractos-tda-definicion-e-

implementacion-en/4632292

Programación, A. B. Y. (s. f.). TDA (Tipos de Datos Abstractos). TDA. Recuperado 29 de agosto

de 2022, de http://blogalgoritmosyprogramacion.blogspot.com/2012/07/tda-tipos-de-

datos-abstractos.html

TADS. (s. f.). tdas. Recuperado 29 de agosto de 2022, de

http://artemisa.unicauca.edu.co/%7Enediaz/EDDI/cap04.htm#ancla4_6

10
TIPOS DE DATOS ABSTRACTOS ESTRUCTURAS DE DATOS. (s. f.). TIPOS DE DATOS

TDA. Recuperado 29 de agosto de 2022, de https://slidetodoc.com/tipos-de-datos-

abstractos-estructuras-de-datos-objetivos/

Tipos de Datos Abstractos TDA. (s. f.). Tipos de Datos Abstractos. Recuperado 29 de agosto de

2022, de

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro9/tipos_de_datos_abstractos_td

a.html

11

También podría gustarte