Presentacion unidad u1_estructura_de_datos_victor_uex
Transcript of Presentacion unidad u1_estructura_de_datos_victor_uex
Instituto Tecnológico De Felipe Carrillo Puerto
Maestro: Niels Henryk Aranda Cuevas
Materia: Estructura de Datos
Alumno: Víctor Manuel Uex Mis
Carrera: Ingeniería en Sistemas Computacionales
Tema: Tipo de datos abstractos (TDA)
Semestre: 3
Aula: J-4
Grupo: “B”
DATOS ABSTRACTOS
•Definición: es un tipo de dato creado por el
programador, puede contener varios tipos de datos propios del lenguaje.
•Creación: fuera del mainse define, se escribe “struct”
seguido del nombre de nuestro dato, y entre llaves se declaran los componentes de nuestro dato. Ejemplo: dato abstracto alumno que registre nombre y edad.
structalumno{stringnombre;intedad;};
1) Definir también las operaciones (funciones y procedimientos) quepueden operar con dicho tipo
‘’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’‘1) Establecer la definición del tipo.
CREACIÓN
•Para la construcción de tipos abstractos se debe:1) Establecer la definición del tipo
2) Definir también las operaciones (funciones y procedimientos) quepueden operar con dicho tipo
3) Ocultar la presentación de los elementos del tipo de modo que sólo sepuede trabajar con ellos usando los procedimientos definidos en el paso 2
4) Poder crear instancias múltiples del tipo
•Para declarar TDA se necesita de dos palabras reservadas en C++.•Una de ellas es struct, permite crear un tipo de datos compuestos de uno o varios elementos llamados campos. Ejemplo:StructTipo_Alumno{stringnombre;intedad;doble altura;doble peso;}•En este caso se creó un nuevo tipo de dato llamado “Tipo alumno”, conformado con 4 elementos: cadena, entero, y dos números dobles.
•La segunda palabra reservada estypedef, esta se utiliza para definir el “alias” o sinónimo de nuestro tipo de datos.Ejemplo:typedefstructTipo_AlumnoAlumno;
•Esta sentencia define un nuevo tipo de dato llamado “Alumno” que contiene la misma estructura y elementos que la estructura Tipo_Alumnodefinido anteriormente. Con esto existiría un nuevo tipo en el lenguaje llamado alumno.
•La sintaxis de las dos palabras claves es:Structidentificador_1{nombre_del_tipoelemento_1;nombre_del_tipoelemento_;…nombre_del_tipoelemento_3;};Typedefstructdentificador_1 sinónimo;
OPERACIONES SOBRE UN TDA
•Generalmente pueden clasificarse en:1.Construcción: crean nueva instancia del tipo.
2.Transformación: cambia uno o más elementos del tipo:
3.Observación: permite determinar el valor de uno o más elementos de un tipo sin modificarlos.
4.Iteradores: permiten procesar todo los elementos de un TDA en forma secuencial.
•No se analizará la creación cada operación.
•Forma en que se puede acceder cada uno de los elementos de una estructura de datos:Gabriel.edad35;Antonio. Altura= 1.76;Después del nombre de la estructura, para acceder a los elementos de dicha estructura se utiliza un punto y el nombre del elemento al que se quiera acceder.Cuando se logra acceder, los elementos de estas estructuras se pueden manipular como cualquier otra variable de su mismo tipo.
APLICACIONES DE TDA
•Las aplicaciones comunes son la definición de una lista o una pila.
Una pila es una colección dinámica de datos de un mismo tipo, en la que los elementos se insertan y se extraen por el mismo extremo.
Una lista igual es una colección dinámica de datos de un mismo tipo, para acceder a cada uno de los elementos es posición. Cada elemento tiene un único predecesor (excepto el primero) y un único sucesor (excepto el ultimo)
No entraremos en detalle con estas aplicaciones.
MEMORIA
•La memoria se refiere a parte de los componente que forman una computadora, estas retienen datos informáticos durante un determinado intervalo de tiempo.
ESTÁTICA •Una variable está tica no cambia su valor durante la vida del
proceso en ejecución.
•Los valores de variables estáticas se pueden establecer una ves
(durante el tiempo de ejecución) o se puede cambiar en
múltiples ocasiones durante la ejecución del programa.
PROGRAMACIÓN DINÁMICA•Es un método para reducir el tiempo de ejecución de un
algoritmo mediante la utilización de subproblemas superpuestos
y subestructuras óptimas.
•En 1953 el matemático Richard Bellman inventó la
Programación Dinámica, la cual se utiliza para optimizar
problemas complejos que pueden ser discretizados y
secuencializados.
MEMORIA ESTÁTICA
•Es la 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.
Consideraciones
Error en tiempo de ejecución de índice fuera de rango.
Se debe conocer de antemano el tamaño de la estructura.
Se guarda en memorias adyacentes, ejemplo: vectores,
matrices, cubos, registros, archivos.
Ventajas:
Lógica simple.
Optimo para resolver problemas pequeños y
medianos.
Desventajas:
No se puede modificar el tamaño de la estructura
en tiempo de ejecución
No es optima con grandes cantidades de datos
Desperdicio de memoria cuando se utiliza la
totalidad del tamaño
MEMORIA DINÁMICA
•Es aquella que no puede ser definida ya que no se conoce o no se tiene idea del numero de la variable a considerarse.
•La memoria dinámica permite solicitar memoria en tiempo de ejecución al sistema operativo.
•Este tipo de datos se crean y se destruyen mientras se ejecuta el programa, así la estructura de datos se dimensiona de acuerdo a los requerimientos del programa, evitando perder datos o desperdiciar memoria.
Consideraciones:
Manejo transparente del tamaño de la estructura.
Se guarda donde encuentra espacio.
No se guarda necesariamente en memoria
adyacente.
Ventajas
El tamaño de la estructura no infiere en la lógica
del programa
desventajas
Las estructuras de datos son una forma avanzada
de manejar datos en tiempo de ejecución.
CONCLUSIONES
•En esta unidad vimos los tipos de datos abstractos que sirven para crear nuevos tipos de datos según lo requiera el programa, por ejemplo un tipo de dato llamado “producción” que contenga stringparanombre_producto;intpara cantidad; y floatpara tiempo_elaboración.
•Otro tema que analizamos es la memoria estática, la cual no
cambia de valor durante la ejecución del programa, es fácil de utilizar para programas que no sean muy complejos. Y la desventaja es que se desperdicia la memoria que no se ocupe y si se pasa del limite ocurre un desbordamiento de memoria.
•Esto se puede utilizar en programas pequeños en los que se sepa
la cantidad de memoria necesaria, por ejemplo; un programa para una escuela que lleve el registro de un determinado número de maestros o alumnos.
•En el caso de la memoria dinámica aquella que puede ser definida
en el momento de la ejecución ya que no se conoce, es decir, durante el tiempo de ejecución se puede pedir memoria al sistema operativo. En el caso de este tipo de memoria no se guarda en un determinado lugar o en uno definido, se guarda donde haya espacio.