Anda di halaman 1dari 3

Resumen

Un TDA es un tipo de dato definido por el programador que se puede manipular de un modo similar a
los tipos de datos definidos por el sistema.
Est formado por un conjunto vlido de elementos y un nmero de operaciones primitivas que se
pueden realizar sore ellos.
Un TDA es el elemento sico de la astracci!n de datos. "u desarrollo es independiente del lenguaje
de programaci!n utilizado# aunque este puede aportar mecanismos que faciliten su realizaci!n. Dee
verse como una caja negra.
En un TDA e$isten dos elementos diferenciados%
& 'a (nterfaz de utilizaci!n
& 'a representaci!n

)ara construir un tipo astracto deemos%
*. E$poner una definici!n del tipo. +. Definir las operaciones ,funciones y procedimientos- que
. permitan operar con instancias de ese tipo.
.. /cultar la representaci!n de los elementos del tipo de modo
que s!lo se pueda actuar sore ellos con las operaciones
proporcionadas.
0 Tipos sicos de operaciones en un TDA
1onstructores% 1rean una nueva instancia del tipo.
Transformaci!n% 1amian el valor de uno o ms elementos de una instancia del tipo.
/servaci!n% 2os permiten oservar el valor de uno o varios elementos de una instancia sin
modificarlos.
(teradores% 2os permiten procesar todos los componentes en un TDA de forma secuencial.
'a modularidad
es la capacidad que tiene un sistema de ser estudiado# visto o entendido como la uni!n de varias partes
que interactan entre s3 y que traajan para alcanzar un ojetivo comn# realizando cada una de ellas
una tarea necesaria para la consecuci!n de dic4o ojetivo.
1ada una de esas partes en que se encuentre dividido el sistema recie el nomre de m!dulo.
(dealmente un m!dulo dee poder cumplir las condiciones de caja negra# es decir# ser independiente del
resto de los m!dulos y comunicarse con ellos ,con todos o s!lo con una parte- a trav5s de unas entradas
y salidas ien definidas# es decir# se sae que entra y que sale pero no como se procesa.
Un principio ampliamente difundido e importante para resolver prolemas es el de 6dividir para
reinar7# es decir
separar el prolema en partes# en prolemas ms peque8os# para as3 enfrentarlos y resolverlos en un
tama8o ms
accesile y fcil de manejar.
Este principio tiene una directa aplicaci!n en la programaci!n de computadoras# para lo cual muc4os
lenguajes
de programaci!n cuentan con una caracter3stica adecuada% la modularidad. Estos lenguajes permiten
escriir
programas compuestos de porciones o partes que se conocen como m!dulos# muc4as veces nomrados
tami5n
como suprogramas# surutinas# procedimientos# funciones# entre otros. En todos los casos# los
principios generales
y elementales que los goiernan son los mismos# an cuando algunos tengan caracter3sticas distintas y
mayores o
menores prestaciones% todos permiten separar un programa en partes ms peque8as y reusar esos trozos
de programa
o m!dulos ya escritos para resolver prolemas similares.
Un m!dulo de programa tiene dos partes ien diferenciadas% la definici!n del m!dulo y la invocaci!n o
llamada
al m!dulo.
'a definici!n de un m!dulo es donde se dice qu5 es lo que el mismo 4ar# es decir# cules sern sus
efectos al ser
invocado# es decir cuando se ejecute.
Una invocaci!n o llamada ocurre cuando se usa el m!dulo. En el punto del programa donde se 4ace la
invocaci!n al m!dulo es donde# en tiempo de ejecuci!n del programa# se ejecutarn las acciones
comprendidas en la
definici!n del m!dulo.
En un programa# por cada m!dulo# 4ar una nica definici!n# ya que astar con una vez para decirse
qu5 es lo
que el m!dulo 4ace. "in emargo# puede 4aer ms de una invocaci!n al mismo# ya que una soluci!n
puede usarse
tantas veces como sea necesario. )or supuesto# podr3a no usarse nunca# es decir no invocarse nunca#
pero entonces#
9para qu5 se defini!:
Uso del TDA
Usar el TDA permite aprovec4ar el nivel de astracci!n en el desarrollo de un prolema.)or ejemplo%
;esolver el prolema de verificaci!n si la suma y multiplicaci!n de +nmeroscomplejos producen el
mismo nmero complejo. "oluci!n en pseudo lenguaje%
(2(1(/ << )rograma principal =# > 1/?)'E@/A Aooleano= B 1;EA;C1/?)'E@/,.#&D- > B
1;EA;C1/?)'E@/,E#&.-A B FE;(G(1A;*,=#>-"i A B verdadero entonces imprimir 6"on iguales
la suma y lamultiplicaci!n7"ino imprimir 62/ son iguales la suma y la multiplicaci!n7GsiG(2funci!n
FE;(G(1A;* ,=#>% 1/?)'E@/-% Aooleano << Gunci!n Ferificar*H*#H+ 1/?)'E@/H* B "U?A;
,=#>-H+ B ?U'T()'(1A; ,=#>-;ET/;2A; (IUA' ,H*#H+-f.funci!nfunci!n FE;(G(1A;+ ,=#>%
1/?)'E@/-% Aooleano << Gunci!n Ferificar+ ;ET/;2A; (IUA' ,"U?A; ,=#>-# ?U'T()'(1A;
,=#>- -f.funci!n"e provee al lector de otra versi!n funci!n FE;(G(1A;+ que realiza la misma
operaci!n sore los nmeros complejos. 2ote que FE;(G(1A;* no es una operaci!n del TDA
Manejo de memoria esttica
'a forma ms fcil de almacenar el contenido de una variale en memoria en tiempo de ejecuci!n es en
memoria esttica o permanente a lo largo de toda la ejecuci!n del programa. / sea# que no se modifica
al menos en tiempo de ejecuci!n.
2o todos los ojetos ,variales- pueden ser almacenados estticamente.
)ara que un ojeto pueda ser almacenado en memoria esttica su tama8o ,nmero de ytes necesarios
para su almacenamiento- 4a de ser conocido en tiempo de compilaci!n# como consecuencia de esta
condici!n no podrn almacenarse en memoria esttica%
'as t5cnicas de asignaci!n de memoria esttica son sencillas. 'a asignaci!n de memoria puede 4acerse
en tiempo de compilaci!n y los ojetos estn vigentes desde que comienza la ejecuci!n del programa
4asta que termina.
En los lenguajes que permiten la e$istencia de suprogramas# y siempre que todos los ojetos de estos
suprogramas puedan almacenarse estticamente se aloja en la memoria esttica un registro de
activaci!n correspondiente a cada uno de los suprogramas.
Estos registros de activaci!n contendrn las variales locales# parmetros formales y valor devuelto por
la funci!n.
La memoria dinmica
es un espacio de almacenamiento que se solicita en tiempo de ejecuci!n. De esa manera# a medida que
el proceso va necesitando espacio para ms l3neas# va solicitando ms memoria al sistema operativo
para guardarlas. El medio para manejar la memoria que otorga el sistema operativo# es el puntero#
puesto que no podemos saer en tiempo de compilaci!n d!nde nos dar 4uecos el sistema operativo ,en
la memoria de nuestro )1-.
Un dato importante es que como tal este tipo de datos se crean y se destruyen mientras se ejecuta el
programa y por lo tanto la estructura de datos se va dimensionando de forma precisa a los
requerimientos del programa# evitndonos as3 perder datos o desperdiciar memoria si 4ui5ramos
tratado de definirla cantidad de memoria a utilizar en el momento de compilar el programa.

Anda mungkin juga menyukai