Este documento presenta la evidencia de la unidad 1 de la clase Estructura de Datos del alumno Carlos Alberto Puc Moo. Explica conceptos como tipos de datos abstractos, modularidad, uso de tipos de datos abstractos, manejo de memoria estática y dinámica. En conclusión, resume que los tipos de datos abstractos permiten crear nuevos tipos de datos para el programa, la modularidad divide el programa en módulos independientes, y el manejo de memoria estática y dinámica se refiere a cómo se asigna la memoria antes y
1. INSTITUTO TECNOLOGICO SUPERIOR DE
FELIPE CARRILLO PUERTO
INGENIERIA EN SISTEMAS COMPUTACIONALES
ESTRUCTURA DE DATOS
EVIDENCIA DE LA UNIDAD 1
NOMBRE DEL ALUMNO: CARLOS ALBERTO PUC MOO
NOMBRE DEL DOCENTE: NIELS HENRYK ARANDA CUEVAS
INSTITUTO TECNOLOGICO SUPERIOR DR FALIPE CARRILLO PUERTO
28 DE SEPTIEMBRE DEL 2014
2. “TIPOS DE DATOS ABSTRACTOS”
(TDA)
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 lenguaje.
Como : int, float, double, boolean, string…
Un TDA es el elemento básico de la abstracción de datos. Debe verse como una caja negra,
pues la representación y la implementación deben permanecer “ocultas”, de forma que para
trabajar con los elementos de un TDA el único mecanismo permitido es el de usar las
operaciones definidas para dicho TDA.
La declaración de TDA’s requiere al menos el uso de dos palabras reservadas en
C++. La primera de ellas es la palabra reservada struct. struct define una estructura de datos;
se dice que struct permite crear un tipo de datos que está compuesto de uno o varios elementos
denominados campos.
struct Tipo_Persona
{
int edad;
double altura;
double peso;
char nombre[25];
};
3. MODULARIDAD
- La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o
entendido como la unión de varias partes que interactúan entre sí y que trabajan para
alcanzar un objetivo común, realizando cada una de ellas una tarea necesaria para la
consecución de dicho objetivo.
- Cada una de esas partes en que se encuentre dividido el sistema recibe el nombre
de módulo. Idealmente un módulo debe 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 través de unas entradas y salidas bien definidas.
4. USO DE TIPOS DE DATOS ABSTRACTOS
Usar el TDA permite aprovechar el nivel de abstracción en el
desarrollo de un problema.
Las operaciones que permitirá realizar son:
a) Unión
b) Intersección
c) Diferencia
5. Usar el TDA permite aprovechar el nivel de abstracción en el desarrollo de un
problema. Por ejemplo: Resolver el problema de verificación si la suma y
multiplicación de 2 números complejos producen el mismo número complejo. Solución
en pseudo lenguaje:
INICIO // Programa principal
X, Y COMPLEJO
A Booleano
X = CREAR_COMPLEJO(3,-5)
Y = CREAR_COMPLEJO(8,-3)
A = VERIFICAR1(X,Y)
Si A = verdadero entonces imprimir “Son iguales la suma y lamultiplicación”
Sino imprimir “NO son iguales la suma y la multiplicación”Fsi
FIN función VERIFICAR1 (X,Y: COMPLEJO): Booleano // Función Verificar1
Z1,Z2 COMPLEJO
Z1 = SUMAR (X,Y)
Z2 = MULTIPLICAR (X,Y)
RETORNAR IGUAL (Z1,Z2)
f.funciónfunción VERIFICAR2 (X,Y: COMPLEJO): Booleano // Función Verificar2
RETORNAR IGUAL (SUMAR (X,Y), MULTIPLICAR (X,Y) )f.función
Se provee al lector de otra versión función VERIFICAR2 que realiza la misma operación
6. MANEJO DE MEMORIA ESTATICA
Es la memoria que se reserva en el momento de la compilación
antes de comenzar a ejecutar el programa. Los objetos son
creados al iniciar el programa y destruidos al finalizar el mismo.
Mantienen la misma localización en memoria durante todo el
transcurso del programa hasta que son destruidos.
Los objetos administrados de este modo son: variables globales,
variables estáticas de funciones, miembros static de clases y
literales
de cualquier tipo.
7. MANEJO DE MEMORIA DINAMICA
La memoria dinámica se refiere a aquella memoria que no puede ser
definida ya que no se conoce o no se tiene idea del número de la variable a
considerarse, la solución a este problema es la memoria dinámica que
permite solicitar memoria en tiempo de ejecución, por lo que cuanta más
memoria se necesite, más se solicita al sistema operativo. El sistema
operativo maneja la memoria gracias al uso de punteros, por la misma
naturaleza del proceso nos impide conocer el tamaño de la memoria
necesaria en el momento de compilar.
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, evitándonos así perder datos o desperdiciar memoria si
hubiéramos tratado de definirla cantidad de memoria a utilizar en el
momento de compilar el programa.
8. CONCLUSION GENERAL
En esta presentación se incluye todos los temas vistos en
la primera unidad y mi conclusión es que los tipos de
datos abstractos es crear lo que quiere hacer el
programa y la modularidad es la declaración de datos
para que lo recopile el programa y el uso de tipos de
datos abstractos es darle orden al programa de lo que va
a hacer y el manejo de memoria estática es la reserva de
memoria cuando se esta recopilando la información antes
de ejecutar el programa y el manejo de memoria
dinámica es cuando se ejecuta el programa y el sistema
le permite usar mas memoria o menos memoria.