Presentacion unidad u1_estructura_de_datos_victor_uex

13
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”

Transcript of Presentacion unidad u1_estructura_de_datos_victor_uex

Page 1: 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”

Page 2: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 3: Presentacion unidad u1_estructura_de_datos_victor_uex

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

Page 4: Presentacion unidad u1_estructura_de_datos_victor_uex

•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.

Page 5: Presentacion unidad u1_estructura_de_datos_victor_uex

•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;

Page 6: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 7: Presentacion unidad u1_estructura_de_datos_victor_uex

•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.

Page 8: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 9: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 10: Presentacion unidad u1_estructura_de_datos_victor_uex

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

Page 11: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 12: Presentacion unidad u1_estructura_de_datos_victor_uex

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.

Page 13: Presentacion unidad u1_estructura_de_datos_victor_uex

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.