Autor Tema: Concepto de tipos abstractos de datos  (Leído 5048 veces)

Mayen Olivares

  • Sin experiencia
  • *
  • Mensajes: 48
    • Ver Perfil
Concepto de tipos abstractos de datos
« en: 28 de Septiembre 2011, 09:12 »
Hola estoy estudiando c++ y no acabo de entender el concepto de tipos abstractos de datos, si alguien me pudiera aclarar de alguna manera o poner algún ejemplo por favor.

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1950
    • Ver Perfil
Re:Concepto de tipos abstractos de datos
« Respuesta #1 en: 29 de Septiembre 2011, 10:03 »
Hola Mayen, el concepto de tipo abstracto de datos o TAD no es un concepto fácil de explicar. Voy a tratar de hacerlo y de poner un ejemplo, pero no te preocupes si no lo entiendes de primeras, eso nos ha pasado a muchos. Lo que debes tratar es de ir haciendo ejercicios que te permitirán ir entendiéndolo poco a poco. Los TADs son propios de la programación orientada a objetos, y esta no es precisamente fácil de asimilar.

Un tipo abstracto de datos se define como una agrupación de una colección de valores (variables) y una colección de operaciones de manipulación válidas.

Supongamos que vamos a trabajar con el concepto "mes del año". Podríamos definir el mes como:

a) Una variable tipo int: por ejemplo febrero sería febrero = 2;
b) Un tipo abstracto de datos: febrero tendría una serie de valores, por ejemplo febrero.texto = "febrero", febrero.numero = "2", febrero.temperatura = "frio"... donde cada valor es de un tipo (por ejemplo int, string, float o lo que sea. A su vez febrero tendría unas operaciones disponibles, por ejemplo febrero.calcularDias(2015) nos podría devolver los días que tiene el mes de febrero en el año 2015.

Los tipos abstractos de datos se basan habitualmente en principios de la programación orientada a objetos como el ocultamiento de la información. Por ejemplo, tú como programador es posible que puedas usar el tipo e invocar sus métodos o funciones, pero sin embargo no podrás consultar el código (ni modificarlo) de dichos métodos o funciones.




Mayen Olivares

  • Sin experiencia
  • *
  • Mensajes: 48
    • Ver Perfil
Re:Concepto de tipos abstractos de datos
« Respuesta #2 en: 30 de Septiembre 2011, 09:08 »
Pues la verdad es que no me queda muy claro para qué voy a definir un mes como tipo abstracto de datos. Si quiero calcular cuántos días tiene febrero en 2015 puedo usar una función y ya está.

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1950
    • Ver Perfil
Re:Concepto de tipos abstractos de datos
« Respuesta #3 en: 04 de Octubre 2011, 07:48 »
Hola Mayen, el uso de tipos abstractos de datos es una forma o filosofía de programación. No siempre en un programa que usa tipos abstractos de datos en el que uses "meses" tendrás que definirlos como tipos abstractos de datos. En algunas ocasiones, podrás hacerlo como enteros, en otros como cadenas de texto, en otros como enumerados... El programador o analista-programador ha de elegir los tipos de datos que usa en su programa.
En programación orientada a objetos el uso de funciones tal y como se entienden en otros lenguajes es posible, pero no es lo más habitual. Lo más habitual es el uso de funciones inherentes a los objetos.
Todo esto puede resultarte un poco confuso inicialmente, la mejor manera de irlo asimilando es ir haciendo ejercicios al tiempo que se estudian los conceptos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".