09/02/2018 UNIVERSIDAD AUTÓNOMA DE SINALOA Facultad de Informática Culiacán CURSO: Estructura de Datos Aprendiendo a construir soluciones a problemas del mundo real, aplicando las Estructuras de Datos. Instructor: MC. Gerardo Gálvez Gámez Febrero de 2018 Unidad I• FIC-UAS Unidad I.- ESTRUCTURAS FUNDAMENTALES DE DATOS ▫ Tipos de datos. Tipos de datos simples. Tipos de datos abstractos. Representación. ▫ Estructuras de datos. Definición. Clasificación. Lineales y no lineales. Dinámicas y estáticas. 1 09/02/2018 Unidad I• FIC-UAS DATO • Información significado. en bruto, no procesado y sin ningún • Dado un enunciado, evento o acción, los datos ▫ Permiten representar sus actores o participantes ▫ Analizándolos, se podrá obtener resultados deseados • Analicemos el siguiente hecho: ▫ La estudiante de nombre: Judith Pérez de 22 años, tiene un promedio de 7.5 • Podemos tomar los siguientes datos ▫ Nombre: Judith Pérez ▫ Edad: 22 ▫ Promedio: 7.5 -> Cadena -> Entero -> Real Unidad I• FIC-UAS INFORMACIÓN • Es el resultado deseado luego de procesar los datos. • Los datos, al ser procesados, se convierten en información útil o resultados. Datos de salida(se muestran en el monitor) Empleado Horas Juan, Perez 160 Pedro, Rodriguez 155 Juan, Perez Luis, Pozo 120 Pedro, Rodriguez $310 Luis, Pozo $240 Valor por hora = $2 Datos de entrada(ingresados x teclado) $320 Procesamiento: Calcular salarios 2 09/02/2018 Unidad I• FIC-UAS ¿Cómo representar los datos? • Los seres humanos: ▫ Usamos lenguaje natural o símbolos ▫ Ejemplo: Para representar números, usamos el sistema decimal Para representar palabras, usamos el abecedario • La computadora: ▫ Usa conjuntos de 1s y 0s ▫ El dato más pequeño en la computadora es Un 1 ó un 0 -> bit ▫ El conjunto de 8 bits -> 1 byte Unidad I• FIC-UAS TIPOS DE DATOS • Los datos se clasifican en TIPOS • Son de diferentes dominios. Ejemplo: ▫ Edad, Año de Nacimiento, Número de multas Tienen dominio numérico ▫ Nombre, Dirección, Número de Cedula, Caen en el dominio de la información tipo texto • Y las operaciones permitidas para dicho dominio: Un conjunto de valores y operaciones definidas sólo para esos valores 3 09/02/2018 Unidad I• FIC-UAS TIPOS DE DATOS • Un tipo de dato es el conjunto de valores: ▫ Al que puede pertenecer una constante ▫ Que puede asumir una variable o expresión ▫ Que puede ser generado por un Método • De una constante, variable o expresión: ▫ Se puede deducir su tipo de dato ▫ Ya sea de su forma o de su declaración ▫ Sin necesidad que se ejecute ningún proceso • Las operaciones entre datos: ▫ Necesitan participantes (argumentos) de determinado tipo ▫ Producen resultados de otro o el mismo tipo Unidad I• FIC-UAS Tipo de Dato • Es un atributo de una parte de los datos que indica a la computadora (y/o al programador) algo sobre la clase de datos, sobre lo que se va a procesar. • Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se pueden realizar. Tipos de Datos Maquina (0-1) Tipos de Datos Primitivos •Numéricos •Lógicos •Alfanuméricos Tipos de Datos Abstractos 4 09/02/2018 Unidad I• FIC-UAS TIPOS DE DATOS SIMPLES(Básicos) Los podemos distinguir fácilmente, están en el diario vivir: El Sr. Vera de 63 años tiene cedula No. 0908815533, y paga $120 de impuestos Son tipos de datos simples: Que permiten representar información numérica, Alfanumérico (caracteres) ó lógicos. NOMBRE CONJUNTO DE VALORES OPERACIONES Enteros Negativos y positivos sin decimal Sumar, restar, dividir, multiplicar, residuo Reales Negativos y positivos, con decimal Sumar, restar, dividir, multiplicar Lógicos Verdadero o Falso(1 o 0) And, Or, Not Alfanuméricos Letras, números, especiales, juntos forman una cadena Sumar carácter + entero restar, multiplicar por entero Unidad I• FIC-UAS Tipos de Datos Abstractos • Abstracción.- Proceso mental mediante el cual se extraen los rasgos esenciales de algo para representarlos mediante un lenguaje gráfico o escrito. • Proceso de simplificar un problema complejo enfocándose tan sólo en los aspectos relevantes para la solución. • En el desarrollo de software esto significa centrarse en lo que es y hace un objeto, antes de decidir cómo debería ser implementado. 5 09/02/2018 Unidad I• FIC-UAS Abstracción de Datos • Técnica o metodología estructuras de datos. que permite diseñar • Consiste en representar bajo ciertos lineamientos de formato, las características esenciales de una estructura de datos. • No se considera implementación los detalles específicos de Unidad I• FIC-UAS Estructura de Datos • Es cualquier colección o grupo de datos organizados de tal forma que tengan asociados un conjunto de operaciones para poder manipularlos. • Ejemplo los Arreglos: ▫ Son un conjunto de datos del mismo tipo. ▫ Con métodos claros de acceso. ▫ Con diversas operaciones. 6 09/02/2018 Unidad I• FIC-UAS Unidad I• FIC-UAS Tipo de Dato Abstracto (TDA) • Es la creación o diseño de una nueva estructura de datos aplicando la técnica y metodología de la abstracción, que podrá implementarse en cualquier lenguaje y aplicarse en cualquier concepto. 7 09/02/2018 Unidad I• FIC-UAS Tipo de Dato Abstracto (TDA) • Es un conjunto de valores y operaciones asociadas que se especifican de manera precisa, independientes de alguna implementación en particular. • El TDA define la interface a la abstracción de datos sin especificar detalles de la implementación. Unidad I• FIC-UAS Tipo de Dato Abstracto (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 válido de elementos y un número de operaciones primitivas que se pueden realizar sobre ellos. • Una vez definido se podrán declarar variables de ese tipo y operar con ellas utilizando las operaciones que aporta el tipo. 8 09/02/2018 Unidad I• FIC-UAS Tipo de Dato Abstracto Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de dato. Si en el modelo se encapsula la representación de los atributos y la implementación de las operaciones, el tipo de dato es abstracto. La interface describe qué pueden hacer los objetos de una clase, la implementación establece cómo lo hacen. Unidad I• FIC-UAS Para construir un tipo abstracto debemos Exponer una definición del tipo. 2. Definir las operaciones (funciones y procedimientos) que permitan operar con instancias de ese tipo. 3. Ocultar la representación de los elementos del tipo de modo que sólo se pueda actuar sobre ellos con las operaciones proporcionadas. 4. Poder hacer instancias múltiples del tipo. 9 09/02/2018 Unidad I• FIC-UAS Representación de TDA • Un TDA es representado por su interfaz, la cual sirve como cubierta a la correspondiente implementación. • La idea es que los usuarios de un TDA tengan que preocuparse sólo por la interfaz, pero no por la implementación, ya que esta puede ir cambiando con el tiempo Unidad I• FIC-UAS Representación • La solidez de un TDA reposa en la idea de que la implementación está escondida al usuario. Solo la interfaz es pública. • Lo anterior significa que el TDA puede ser implementado de diferentes formas, pero mientras se mantenga consistente con la interfaz, los programas que lo usan no se ven afectados. 10 09/02/2018 Unidad I• FIC-UAS Implementación • Una vez definido el TAD se escoge una representación interna utilizando los tipos que proporciona el lenguaje y/o otros TAD ya definidos previamente. • La representación deberá ocultarse utilizando los mecanismos que nos proporcione el lenguaje. Ocultamiento de Información. • Normalmente la implementación del tipo se realiza en un módulo aparte que será enlazado al programa principal. Unidad I• FIC-UAS Clasificación de las Estructuras de Datos 11 09/02/2018 Unidad I• FIC-UAS Estructuras de Datos Lineales y No Lineales. Estructuras de datos lineales: Cada componente tiene un único sucesor y un único predecesor con excepción del último y el primero. Estructura de datos no lineal.-Cada componente puede tener varios sucesores y varios predecesores. Unidad I• FIC-UAS Estructuras de Datos Estáticas y Dinámicas • Las estructuras de datos estáticas: ▫ Son aquellas en las que el tamaño ocupado en memoria se define antes que el programa se ejecute y el mismo no puede ser modificado durante la ejecución. Ejemplo: Arreglo, cadenas, estructuras. • Las estructuras de datos dinámicas: ▫ No tienen limitaciones en cuanto al tamaño de memoria ocupada. Para utilizar este tipo de estructuras necesitamos usar un tipo de dato específico llamado puntero. Ejemplo: Pilas, colas, Lista, árbol, grafo. 12 09/02/2018 Unidad I• FIC-UAS FIN Unidad I ¿Preguntas? Unidad I• FIC-UAS Ejemplificación de los elementos teóricos abordados, en un lenguaje de programación. Pág. 29 libro Cairo, ejemplo 1.11. 13 09/02/2018 Unidad I• FIC-UAS Unidad I• FIC-UAS Actividad #1 • Aplicando la abstracción de datos, diseñe la estructura de dato, que permita representar las características esenciales de un alumno, si se requiriera el guardar su número de cuenta y nombre, así como también, las calificaciones de sus tres parciales correspondientes, en la materia de Estructura de Datos. 14 09/02/2018 Unidad I• FIC-UAS Actividad #2 • Tomando como referencia el tipo dato obtenido en la actividad anterior, diseñe una aplicación (interfaz) que permita registrar los datos de más de un alumno. Unidad I• FIC-UAS FIN Ejercicios ¿Preguntas? 15