Você está na página 1de 26

Arreglos Registros Tipo Abstracto de Datos

Estructuras de datos y tipos abstractos de datos


Unidad 1

Luis Lastra Cid llastra@virginiogomez.cl


Instituto Profesional Virginio Gmez

2009-1

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Arreglos
Que es un arreglo? Los arreglos son una coleccion de variables del mismo tipo que se referencian utilizando un nombre comun. Un arreglo consta de posiciones de memoria contigua. La direccin ms baja corresponde al primer elemento y la ms alta al ltimo. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un ndice.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Arreglos
String? Los llamados strings en C no existen como tal, son solo un arreglo de caracteres, los cuales tienen como unica diferencia el caracter de corte en el ltimo elemento \0. Deben recordar que la posicin comienza desde 0 y que cada elemento char utiliza un byte de memoria. Si necesitan exactamente 10 letras deben declarar el arreglo con 11 direcciones de memorias asignadas.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplirijillo
Cuenta Letras 1 2 3 4 5 6 7 8 9 10 11 i n t l e t r a s ( char a r r [ ] ) { i n t i , c =0; f o r ( i =0; i <max ; i ++){ i f ( a r r [ i ] ! = \0 ) c++; else break ; } p r i n t f ( " \n Posee % l e t r a s " , c ) ; i return ( c ) ; }

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Registros
Registros/estructuras Una estructura es un tipo de dato compuesto que permite almacenar un conjunto de datos de diferente tipo. Los datos que contiene una estructura pueden ser de tipo simple (caracteres, nmeros enteros o reales, etc.) o a su vez de tipo compuesto (arreglos, estructuras, listas, etc.). de que sirven? Usualmente, las estructuras nos sirven para representar abstractamente una parte de un problema, generando as, un modelo acorde a las necesidades de la situacin y no un modelo con detalles que no usaremos.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplirijillo
Cuenta Letras 1 2 3 4 5 6 7 8 9 10 11 struct tribu_urbana { char nombreT [ 2 0 ] ; char b a n d a s T i p i c a s [ 3 ] [ 3 0 ] ; }; struct persona { char nombre [ 2 0 ] ; char r u t [ 1 2 ] ; struct tribu_urbana t r ib u ; }; typedef s t r u c t persona persona ; persona x ;

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Antonces podemos representar a ....

Figura: Metalero

Figura: EMO

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

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.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

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.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

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.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplo grco

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplo grco

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplo grco

Figura: Abstraccin Gatuna

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Que debemos considerar? Datos afectados.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Que debemos considerar? Datos afectados. Operaciones identicadas.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Otro ejemplo Que pasa si necesitamos hacer una abstraccin de un perro? Que datos afectados veremos? Que operaciones identicadas podemos apreciar? Todo esto depende de las necesidades de nuestro modelo a realizar.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Perreando? Ok! hagamos entonces una abstraccin con los datos y operaciones mas genericas de un perro. Nuestro objetivo es generar un modelo que se aplique a todos los perros existentes, donde por ende, debe ser abstracto. Hagamos algo sencillo, no nos compliquemos.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Perreando? Ok! hagamos entonces una abstraccin con los datos y operaciones mas genericas de un perro. Nuestro objetivo es generar un modelo que se aplique a todos los perros existentes, donde por ende, debe ser abstracto. Hagamos algo sencillo, no nos compliquemos. Denitivamente .... perreando Nuestro perro tiene nombre, raza y la cantidad de ladridos que da. Nuestro perro Ladra y Come.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Perreando? Ok! hagamos entonces una abstraccin con los datos y operaciones mas genericas de un perro. Nuestro objetivo es generar un modelo que se aplique a todos los perros existentes, donde por ende, debe ser abstracto. Hagamos algo sencillo, no nos compliquemos. Denitivamente .... perreando Nuestro perro tiene nombre, raza y la cantidad de ladridos que da. Nuestro perro Ladra y Come. Excelente! Ahora tenemos un modelo abstracto de nuestro perro.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Representacin de un TAD
TAD Boolean ( VALORES: booleanos; Operaciones: Not, And, Or) Sintaxis * TRUE: Boolean * FALSE: Boolean Not(Boolean) Boolean And(Boolean, Boolean) Boolean Or(Boolean, Boolean) Boolean Semntica e de tipo boolean Not(true) False Not(False) True And(e,True) e And(e,False) False Or(e,True) True Or(e, False) e

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Representacin de un TAD
TAD Enteros positivos ( VALORES: Numeros Enteros positivos Booleanos; Operaciones: Cero, Sucesor, Antecesor, Suma, Resta, Producto) Sintaxis * Cero: Entero * Sucesor(Entero): Entero * Antecesor(Entero) Entero Suma(Entero, Entero) Entero Resta(Entero, Entero) Entero Producto(Entero, Entero) Entero Semntica m,n de tipo entero Sucesor(Antecesor(n)) n Suma(n, Sucesor(m)) Sucesor(Suma(n,m)) Resta(n, Cero) n Resta(n,Sucesor(m) Antecesor(resta(n,m)) Producto(n, Sucesor(m)) Suma(Producto(n,m),n) Sucesor(n) = Sucesor(m) n = m
Luis Lastra | http://www.severus.cl Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
Ocultacin de la informacin o Encapsulamiento Proteccin de la implementacin en caso de modicacin. Proteger una decisin de diseo supone proporcionar una interfaz estable que proteja el resto del programa de la implementacin. Esto reere a permitir la extensibilidad del cdigo sin necesidad de grandes modicaciones a cada parte del programa en si. Quienes usen nuestro cdigo deben saber que es lo que hace, pero no es necesario saber como lo hace.

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplo grco

Figura: Encapsulamiento Gatuno

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

TAD
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.
Luis Lastra | http://www.severus.cl Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Ejemplo grco

Figura: Modularidad Gatuna

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Arreglos Registros Tipo Abstracto de Datos

Basta de palabrerias
Como aplicamos todo esto en C? La respuesta es tan sencilla como que deben realizar una libreria esttica para ejemplicar todo lo anteriormente comentado. En el archivo tar.gz que acompaa a esta presentacin est la respuesta, indicaciones y ejemplos.
A Hecho con LTEX

Luis Lastra | http://www.severus.cl

Estructura de Datos 2009-1

Você também pode gostar