Unidad 1 Definiciones Básicas

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

2.1.1 Definición. Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes.
Base de Datos Unidad I Introducción.
Arquitecturas de BD Modelo ANSI/SPARC
Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
funciones Por: Carlos Alberto García Acosta
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Estructuras de Datos (ARRAYS)
1.1 Concepto de Tipo de Datos Abstracto.
Estructuras de datos y algoritmos
Tipo de Dato Abstracto Tipos de datos:
Unidad académica: Ingenierías
PROGRAMACION DE ESTRUCTURAS DE DATOS
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS NOTA IMPORTANTE: Para complementar.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Windows XP sp3.
Teoría de lenguajes y compiladores
Arreglos Ing. Nahiby Castillo.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
ESPACIOS VECTORIALES.
Estructuras de Datos Especificación formal de Listas.
Tema 2. Abstracciones y Especificaciones.
TAD_Ana Lilia Laureano/UAM-A1 Tipos Abstractos de Datos y Asertos Ana Lilia Laureano Cruces Universidad Autónoma Metropolitana-Azcapotzalco.
Tema 6: Clases Antonio J. Sierra.
Tipos de Datos abstractos
Álgebra elemental.
Bases de Datos.
UNIDAD I Conceptos Básicos.
Guia datos de información
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Índice. Revisando conceptos acerca de la memoria.
Facultad de Ciencias de la Computación MC Beatriz Beltrán Martínez
TIPOS DE DATOS ABSTRACTOS
ESTRUCTURA DE DATOS EN JAVA
Clase 10: Estructuras de datos y arreglos.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Introducción a los tipos de datos abstractos
1.1 Concepto y terminología
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Aplicación de estructuras de datos
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
Capítulo 7 Gestión de memoria.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Tipos de Datos abstractos
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Vectores y Matrices.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Estructura de datos I CIS - UABJB.
Teoría de lenguajes y compiladores
Introducción a los TADs
Computación I. CI-2125 Tema VII
Lic. Carla Aguirre Montalvo
TIPOS DE DATOS ABSTRACTOS
MEMORIA DINÁMICA.
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
Tipos de Datos abstractos
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Tipos de Datos abstractos
Tipos de Datos abstractos
Unidad 1 Definiciones Básicas
Tipos de Datos abstractos
Transcripción de la presentación:

Unidad 1 Definiciones Básicas M.C. José Andrés Vázquez Flores FCC/Primavera 2014

Abstracción Es un proceso mental mediante el cual se extraen los rasgos esenciales de una problemática mediante descripción simplificada de la realidad. Abstracción de datos: determinación de un conjunto de objetos organizados (estructuras de datos) y el conjunto de operaciones que se puede efectuar sobre ellos. En este proceso se omiten los detalles específicos de la implementación. 4/11/2017

Tipos de Datos Abstracto (TDA) Una estructura de datos es la manera de organizar los datos para realizar operaciones sobre ellos de forma eficiente. El TDA es un tipo de dato organizado que consiste en la declaración de la estructura de datos más el conjunto de operaciones en las que interviene tal estructura. El usuario de un TDA invoca esas operaciones para crear, destruir, manipular y consultar información del tipo de datos abstracto. 4/11/2017

Objetivo de los TADs El fin que persigue el concepto de TDA es separar el uso del tipo de dato, de su implementación. Para conseguir este objetivo, la definición de un TDA se divide en dos partes: Especificación Implementación TDA Especificación Implementación Estructuras de datos Algoritmos Sintáctica Semántica

: Especificación Sintáctica ¿Qué hace? Especificación de las entidades y sus propiedades (interface) Definir el nombre de las entidades abstractas. Definir el nombre de las operaciones indicando el dominio (argumentos) y el codominio o rango (los valores de retorno)

Especificación Semántica ¿Cómo lo hace? Descripción de la representación del objeto (estructura de los datos) y desarrollo de las operaciones. Definir el significado de cada operación usando los símbolos definidos en la especificación sintáctica.

Especificación semántica. Cont La especificación semántica puede ser de dos tipos: (1) Informal, a través del lenguaje natural (2) Formal, rigurosa y fundamentada matemáticamente. Además: {P} Pre-condición: condiciones que deben cumplirse antes de realizar la operación. {Q} Post- condición: condiciones que se cumplen una vez realizada la operación. La notación usual {P} S {Q} donde S es la función o procedimiento.

Especificación de un TDA La especificación de un TDA consiste en establecer las propiedades que lo definen. Para especificar un TDA es necesario describir: Los valores que pueden tomar los datos de ese tipo Todas las operaciones realizables sobre ellos. Una especificación debe poseer 4 propiedades: Ser precisa - solo dice lo imprescindible Ser general - es adaptable a diferentes contextos Ser legible - transmite a los usuarios del tipo y al implementador el comportamiento del tipo no ambigua - evita dobles interpretaciones

Ejemplo: TDA Bolsa Tipo: Bolsa Definición: Es una colección no ordenada de elementos con repetición Sintaxis: CrearBolsa() → Bolsa BolsaVacia → Bolsa BolsaLLena → Bolsa Poner(Bolsa, elemento) → Bolsa EsVacia(Bolsa) → Boolean Retirar(Bolsa, elemento) → Bolsa Reciclar(Bolsa)->Plástico Semántica: b es Bolsa, e, f son elementos CrearBolsa() = BolsaVacia { precondición n/a,postcondición: devuelve una bolsa vacía } EsVacia(CrearBolsa()) = Verdadero { precondición: existencia de una bolsa, postcondición: devuelve verdadero si la bolsa no tiene elementos, falso en otro caso} EsVacia(Poner(CrearBolsa(), e)) = Falso Retirar(BolsaVacia, e) = Error { precondición: la bolsa no está vacía , postcondición:elimina el elemento e de la bolsa B } Retirar(Poner(CrearBolsa(),f), e) = f si f = e Poner(BolsaLlena, e) = Error { precondición: la bolsa no está llena, poscondición añade el elemento e a la bolsa }

Ejemplo:TDA Fracción Tipo: Fracción Definición: Una fracción es un par ordenado de enteros, siempre y cuando la segunda componente sea distinta de cero. Tipo abstracto Racional = (e(1), e(2)) Sintaxis: ConstruirFracción(a,b:Entero) → Fracción Numerador (r: Fraccion) → entero Denominador (r: Fraccion) → entero multiplicar(r1, r2: Fraccion) → Fraccion Semantica: ConstruirFracción(a,b:Entero)=Fraccion { precondición: b ≠ 0, postcondición: e(1) = a AND e(2) = b } Numerador (r: Fraccion) = entero { precondición: debe existir una fracción, postcondición: Numerador = e(1) } Denominador (r: Fraccion) =entero { precondición: debe existir una fracción,postcondición: Denominador = e(2) } multiplicar(r1, r2: Fraccion) =Fraccion { precondición: deben existir dos fracciones, multiplicar=construirFraccion(Numerador(r1) * Numerador(r2), Denominador(r1)*Denominador(r2)), postcondición: una nueva fracción

Notación Toda descripción de un TDA consiste en dos partes : Datos: Esta parte describe la estructura de los datos usada en el TDA de una manera informal. Operaciones: Esta parte describe las operaciones válidas para este TDA, por lo tanto, describe su interface. Usamos la operación especial constructor para describir las acciones que se van a ejecutar una vez que una entidad de este TDA es creada y destructor para describir las acciones que se van a efectuar cuando una entidad es destruida.

Tipos de Estructuras respecto a memoria Estáticas: Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa. los arreglos y las estructuras. Dinámicas: Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución. las listas, los grafos y los árboles. 4/11/2017

Tipos de estructuras respecto a la organización Por posición: Pilas, Colas y Listas Por valor: árboles

Organización para guardar los elementos de la estructura Existen cuatro tipos de organización para los datos de una estructura: Lineal: Jerárquica: Red: Sin relación: 4/11/2017

Funciones básicas para las estructuras de datos Constructoras: crean la estructura. Acceso: son la base para desarrollar una serie de operaciones sobre la estructura porque permite navegar en ella. Destructoras: devuelven al sistema los recursos asignados a la estructura de datos. 4/11/2017

Operaciones efectuadas en estructuras de datos Navegar por la estructura: realizar el recorrido de la estructura. Modificación: permite variar total o parcialmente el contenido de los elementos de la estructura. Consulta de información: permite obtener información de uno o más elementos de la estructura. Búsqueda: determina si un elemento se encuentra o no en la estructura. Inserción: se incluye un nuevo elemento en la estructura Eliminación: permite suprimir elementos de la estructura. 4/11/2017

Tipos de organización Organización Lógica: Involucra todo aquello que tenga que ver con las partes de cada elemento, tipo de los elementos, referencia a alguno o algunos elementos, cantidad de los elementos que contiene la estructura, relaciones entre los elementos, etc. Organización Física: Se refiere a todo aquello que tenga que ver con la ubicación de la información en la memoria y la forma de almacenarla de acuerdo a sus dominios. 4/11/2017

Ejemplo Organización Lógica: Arreglo de un índice; Inicio: 1, Fin: 50; Tipo de elementos: Entero;   Organización Física: Almacenamiento: Secuencial Dirección Inicial: dir(A) Tamaño del elemento: 2 bytes; Número de elementos: 50; Eliminación de un elemento: Por desplazamiento Por marca 4/11/2017

Arreglos Organización Lógica: Organización Física: Dimensiones. Límite inferior y superior de cada dimensión. Tipo de elementos.  Organización Física: Dirección inicial (de un intervalo de memoria) Tamaño de los elementos. Orden de las dimensiones. Desplazamientos . 19 4/11/2017

Arreglo Recuperación de uno de sus elementos. Las operaciones con los arreglos son: Recuperación de uno de sus elementos. Actualización de un elemento. Ambas operaciones se realizan en función de los índices que señalan la ubicación del elemento. 20 4/11/2017

Intervalo de memoria: [DirA, DirA+19] Arreglos Sea A un ARREGLO [1..20] con elementos de tipo Carácter. Reserva un intervalo de memoria de 20 lugares consecutivos a partir de una dirección que denotaremos por DirA. A[1] A[2] A[3] A[20] DirA DirA+1 DirA+2 DirA+19 Intervalo de memoria: [DirA, DirA+19] 21 4/11/2017

Tipos de ED y sus dominios El REGISTRO proporciona heterogeneidad en este producto cartesiano; por ejemplo: Sea x un REGISTRO con los campos y de tipo ENTERO z de tipo REAL tiene como dominio Dom (x) = Z X R, cuyos elementos son de la forma (a,b) a Z y bR. 4/11/2017

Tipos de ED y sus dominios En general, tenemos que por ejemplo: Sea k un REGISTRO con los campos l de tipo booleano m de tipo x Dom(k) = B X Dom(x) Para poder generalizar esto último, se deben considerar los elementos de referencia, para ello consideremos que en el siguiente ejemplo el operador ^ define tales elementos. 4/11/2017

Tipos de ED y sus dominios Sea p un REGISTRO con los campos xc, yc de tipo Real Sea l-p un REGISTRO con los campos punto de tipo p sp de tipo ^l-p Dom (l-p) define un dominio recursivo: Dom (l-p) = Dom (p) x Dom (^l-p) Los elementos de Dom (^l-p) son de la forma Dom(^l-p) = {nil} U [Dom (l-p)]. 4/11/2017

Polinomio de Direccionamiento Suponiendo que el direccionamiento sea a nivel de bytes. Las operaciones se reducen al cálculo del Polinomio de Direccionamiento (Pd). El Pd obtiene la dirección absoluta de un elemento del arreglo dados sus índices.  25 4/11/2017

Polinomio de Direccionamiento Por ejemplo: Si nos referimos a A[7] Pd (A[7]) = DirA + 6 Pd (A[x]) = DirA + x-1. En general se tiene que si B es un ARREGLO [1..5] con elementos de tipo T Pd (B[x]) = DirB + (x-1) lt; con lt igual a la longitud en bytes asignada al tipo T. 26 4/11/2017

Polinomio de Direccionamiento Para almacenar los elementos de una matriz en la memoria que es lineal, podemos hacerlo por columnas o por renglones. Matriz de 3X4, n=3, m=4 11 12 13 14 21 22 23 24 31 32 33 34 27 4/11/2017

Polinomio de Direccionamiento Por columnas: Dirección Elemento 100=dir 11 101=dir+1 21 1ª. Columna 102=dir+2 31 103=dir+3 12 104=dir+4 22 2ª. Columna 105=dir+5 32 106=dir+6 13 107=dir+7 23 3ª. Columna 108=dir+8 33 109=dir+9 14 110=dir+10 24 4ª. Columna 111=dir+11 34 28 4/11/2017

Polinomio de Direccionamiento Para la dirección del elemento C[i][j] y el almacenamiento por columnas, el PD es: PD(C[i][ j])=DirC+[n*(j-1)+(i-1)]*T Si el almacenamiento se hubiese realizado por renglones, entonces el PD quedaría como: pd(C[i,j])=dirC+[m*(i-1)+(j-1)]*T 29 4/11/2017

Polinomio de direccionamiento para un arreglo tridimensional Sean p el número de piso, r el número de renglones y c el número de columnas. Pd(C[i,j,k])= DirC + (i-1)*r*c +(j-1)*c + (k-1) 4/11/2017