Estructura de datos Tema 6: Tablas de dispersión (hashing)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Estructura de datos Tema 6: Tablas de dispersión (hashing)"

Transcripción

1 Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero

2 ÍNDICE Conceptos básicos Funciones hash Implementación de tablas hash Manejo de desbordamiento Análisis de tablas hash

3 CONCEPTOS BÁSICOS Las tablas hashing constituyen un TAD especialmente indicado para la manipulación y almacenamiento de la información en memoria secundaria. Cualquier tabla es una asociación de celdas. Las tablas hashing son tablas que relacionan claves con posiciones de memoria donde se almacenan atributos. La idea básica consiste en transformar las claves en direcciones de memoria mediante una función de transformación. Estas direcciones pueden hacer referencia a memoria primaria, en cuyo caso tendríamos un array, pero en general las tablas de dispersión aprovechan su potencial para la implementación en memoria secundaria.

4 EJEMPLO Supóngase que se quiere desarrollar una aplicación para registrar los participantes en un congreso. Se esperan alrededor de 3000 participantes y se requerirá almacenar los datos de cada uno, como nombre, apellidos, DNI o pasaporte, etc. Se utilizará como campo clave el primer apellido. Suponiendo que los apellidos pueden tener hasta 16 caracteres, habrá claves posibles (con un alfabeto de 26 caracteres). Problema: Cómo asignar una clave de todas las posibles a una dirección de memoria. Solución: Una función de transformación. Pero, cómo es esa función?

5 CONCEPTOS BÁSICOS Conclusión: Las tablas hashing se aplican cuando el conjunto de claves posibles es mucho mayor que el de claves reales a almacenar. Definición: Dado un conjunto de claves posibles, X, y un conjunto de direcciones de memoria, D, una función de transformación, H(x), es una aplicación suprayectiva del conjunto de claves posibles en el conjunto de direcciones de memoria. H: X D Definición: El TAD tabla de dispersión es un tipo de datos homogéneo de tamaño fijo, Ttabla, compuesto por un número fijo de componentes, denominadas celdas, a las que se accede mediante una dirección de memoria resultante de una función de transformación. Sobre este TAD se definen los operadores Insertar, Buscar y Eliminar.

6 CONCEPTOS BÁSICOS Se dice que dos claves distintas x 1 y x 2 son sinónimas para una función de transformación H(x) si H(x 1 ) = H(x 2 ). Se dice que se ha producido un desbordamiento cuando una nueva clave se aplica a una dirección de memoria completamente ocupada. Se dice que se ha producido una colisión cuando dos claves distintas se aplican sobre la misma celda. En el caso habitual en el que una celda contiene un único registro el desbordamiento y la colisión se producen simultáneamente.

7 CONCEPTOS BÁSICOS Se denomina densidad de claves al cociente entre el número de claves en uso, m, y el número total de llaves posibles, n x. Se denomina factor de carga, (o densidad de carga), α, al cociente entre el número de claves en uso y el número total de registros almacenables en la tabla de dispersión. Así: α = m s. b donde s es el número de registros por bloque y b es el número de bloques que hay en la tabla de dispersión.

8 FUNCIONES HASH Características: a) Fáciles de calcular. b) El valor que calcula depende de la clave. c) Producir el menor nº de colisiones porque hace que la ocupación de los bloques sea equiprobable. Funciones uniformes que dividen el conjunto de claves posibles en grupos de claves aproximadamente iguales. Métodos de construcción: 1. División 2. Plegado 3. Compresión 4. Extracción 5. Otros...

9 FUNCIONES HASH: MÉTODO DIVISÓN f (x) = X mod M. a) Cuidar el elegir M b) Espacio de direcciones: [0, M-1] Si el conjunto de claves es numérico y acabado en cero, no se puede elegir M = 10. Si las claves son cadenas de caracteres. Con M = 2 k y k 24, todas las cadenas que tengan los tres últimos caracteres iguales se asignan a la misma dirección. Esto sucede porque las potencias de M tienen divisores. Elegir M primo.

10 FUNCIONES HASH: MÉTODO PLEGADO Para las funciones de plegado: Dividir la clave en partes iguales y sumarlas. La suma de las partes puede realizarse de dos formas a) Plegado por desplazamiento. b) Plegado por las fronteras. El plegado por desplazamiento consiste en sumar las partes directamente. El plegado por las fronteras consiste en plegar el identificador por las fronteras de las partes y sumar los dígitos coincidentes. Si la claves es una cadena de caracteres, los dígitos de cada carácter vienen determinados por el valor decimal de la secuencia de cotejo correspondiente (ASCII, EBCDIC, etc.)

11 FUNCIONES HASH: MÉTODO PLEGADO a) Cadena de ocho caracteres representada por los números de orden dentro de la secuencia de cotejo correspondiente. b) Plegado por desplazamiento. c) Plegado en las fronteras en base decimal. d) Plegado en las fronteras en base binaria. e) Detalle del plegado en base binaria.

12 FUNCIONES HASH: MÉTODO COMPRESIÓN Dividir la clave en componentes, traducir su número de cotejo a binario y aplicar la operación xor y al resultado la operación resto de división entera. Ejemplo: C = Cadena de caracteres. C = David D = A = V = I = D = XOR = 122 mod 26 = 18

13 FUNCIONES HASH: MÉTODO EXTRACCIÓN Método de la mitad del cuadrado: Si tenemos claves numéricas (si no las transformamos), calculamos su cuadrado y nos quedamos con algún número de la zona central del resultado. Nos quedamos con tantos dígitos como necesitemos para mapear el array. Ejemplo: Array con N = C = 340 i 2 = H (C) = 56 C = 521 i 2 = H (C) = 14

14 Informal ESPECIFICACIÓN DEL TAD TABLA HASH TAD TablaHash (VALORES: Atributos almacenados en las posiciones resultado de una transformación Hash de claves; OPERACIONES: Inicializar, Hash, Buscar, Insertar, Eliminar) Inicializar TablaHash Efecto: Crea una tabla hash vacía. Hash (Clave) Posicion Efecto: Devuelve la transformación adecuada a partir de la clave. Buscar (TablaHash, Clave) Atributo, Boolean Efecto: Si la clave está en la tabla, devuelve el atributo correspondiente y un valor lógico llamado error a false. En caso contrario error valdrá true. Excepción: Error si la clave no está en la tabla. Insertar (TablaHash, Clave, Atributo) TablaHash, Boolean Efecto: Si la posición no está libre, el valor lógico error vale true. En caso contrario en la posición Hash (clave) se almacena el par (clave, atributo). Excepción: Error si hay colisión, desbordamiento o tabla llena. Eliminar (TablaHash, Clave) TablaHash, Boolean Efecto: Si la clave existe en la tabla, se deja vacía esa posición y se actualiza error a false. En caso contrario, error vale true. Excepción: Error si la clave no está en la tabla.

15 IMPLEMENTACIÓN Clave: Cadenas de caracteres en mayúsculas. Función hash: Primer carácter de la clave. unit TADHash; interface const npares =...; vacia =...; type cadena =...; tatributo =...; posicion = 1..npares; par = record clave: cadena; atributo: tatributo; end; TablaHash = array [posicion] of par; procedure Inicializar (var T: TablaHash); function Hash (c: cadena): posicion; procedure Buscar (T: TablaHah; c: cadena; var atrib: tatributo; var error: boolean); procedure Insertar (var T: TablaHash; c: cadena; atrib: tatributo; var error: boolean); procedure Eliminar (var T: TablaHah; c: cadena;

16 IMPLEMENTACIÓN implementation procedure Inicializar; var pos: posicion; for pos := 1 to npares do T [pos].clave := vacia; end; function Hash; Hash := (ord (c [1]) ord ( A ) + 1 end; procedure Buscar; var pos: poscicion; pos := Hash (c); if T [pos].clave = c then atrib := T [pos].atributo; error := false end else error := true end;

17 IMPLEMENTACIÓN procedure Insertar (var T: TablaHash; c: cadena; atrib: tatributo; var error: boolean); var pos: posicion; pos := Hash (c); if T [pos].clave = c then error := true else error := false; T [pos].clave := c; {elimina clave T [pos].atributo := atrib anterior} end; end;

18 IMPLEMENTACIÓN procedure Eliminar (var T: TablaHah; c: cadena; var error: boolean); var pos: posicion; pos := Hash (c); if T [pos].clave = c then error := false; T [pos].clave := vacia end else error := true end; end.

19 MANEJO DE DESBORDAMIENTO Encontrar posiciones donde ubicar el área de desbordamiento de una tabla. Esto puede hacerse de dos formas: a) Encadenamiento cerrado o interno. b) Encadenamiento abierto o externo. En el primer caso, el área de desbordamiento se ubica dentro de la tabla, comportándose como un método estático, y en el segundo caso, se ubica en listas enlazadas asociadas a cada bloque de la tabla.

20 MANEJO DE DESBORDAMIENTO Encadenamiento cerrado o interno: La exploración puede expresarse como: dirección = f(x) + g(x) donde: a) f(x): función de dispersión b) g(x): función de tratamiento de sobrecargas. Según la forma de g(x) puede hablarse de: 1. Exploración lineal: g(x) = i; 1< i < TamañoTabla 2. Exploración cuadrática: g(x) = i 2 ; 1< i < TamañoTabla 3. Retransformación o rehashing: La función de exploración es una familia de funciones de dispersión que se examinan sucesivamente en un orden dado. g(x) = f i (x); 1< i < m

21 MANEJO DE DESBORDAMIENTO Encadenamiento cerrado o interno: Ejemplo: Considerando la tabla circular, la dirección vendrá dada por (f(x) + g(x)) mod TamañoTabla a) La exploración lineal tiende a colocar las claves poco uniformemente a lo largo de la tabla, de forma que las sobrecargas van llenando bloques cercanos a los ocupados. b) La exploración cuadrática hace examinar los bloques: f(x), (f(x)+i 2 ) mod TamañoTabla y (f(x) i 2 ) mod TamañoTabla con 1 i (TamañoTabla - 1) / 2 Cuando TamañoTabla es un nº primo de la forma 4j + 3 con j entero, esta exploración tiende a recorrer todos los bloques de la tabla. [Radke 1970].

22 MANEJO DE DESBORDAMIENTO Encadenamiento cerrado o interno: c) Retransformación: (varios tipos) Lineal: H i (x) = (H i-1 (x) + k) mod N k = constante N = número de elementos de la tabla Aleatoria: H i (x) = (H i-1 (x) + A i ) mod N A i = nº aleatoria entre N-1 números aleatorios. Mixtas: H i (x) = (H i-1 (x) + F (i, x)) mod N Aplican a su vez otra función de transformación que dependa de la clave. Son menos eficientes.

23 MANEJO DE DESBORDAMIENTO Encadenamiento cerrado o interno: Ejercicio: Calcular las funciones de retransformación lineal para una tabla circular donde la función de dispersión inicial es el ordinal del primer carácter de las cadenas de caracteres que comienzan con A : k = 3 y N = 26 Solución: H 0 = Hash (primer carácter) H 0 = 1 H 1 (x) = (H 0 (x) +3) mod 26 H 1 (A) = (1 + 3) mod 26 = 4 H 2 (A) = (4 + 3) mod 26 = 7

24 MANEJO DE DESBORDAMIENTO Tanto la exploración lineal, como la cuadrática o el rehashing requieren comprobaciones sucesivas con los elementos de la tabla hash. Muchas de ellas pueden evitarse utilizando otras estrategias de tratamiento de colisiones. La más elemental consiste en mantener una lista asociada a cada bloque de la tabla hash, para almacenar todos los sinónimos que no pueden insertarse en el bloque correspondiente. La implementación más adecuada es una lista enlazada ya que el número de sobrecargas es desconocido a priori. Ésta es la estrategia del encadenamiento abierto o externo que requiere disponer en cada bloque de espacio para almacenar un enlace.

25 MANEJO DE DESBORDAMIENTO Encadenamiento abierto o externo: const npares =...; vacia =...; type cadena =...; tatributo =...; posicion = 1..npares; enlace = ^par; par = record clave: cadena; atributo: tatributo; sig: enlace; end; Tabla = array [posicion] of par;

26 IMPLEMENTACIÓN procedure Inicializar (var T: Tabla); var pos: posicion; for pos := 1 to npares do T [pos].clave := vacia; T [pos].sig := nil end end;

27 IMPLEMENTACIÓN procedure Buscar (T: Tabla; c: cadena; var atrib: tatributo; var error: boolean); var pos: poscicion; p: enlace; pos := Hash (c); if T [pos].clave = c then{está en 1º registro bloque} atrib := T [pos].atributo; error := false end else p := T[pos].sig; error := true; while (p <>nil) and error do{recorr bloque} if p^.clave = c then error := false else p := p^.sig; if not error then atrib := p^.atributo end; end;

28 IMPLEMENTACIÓN procedure Insertar (var T: Tabla; c: cadena; atrib: tatributo; var error: boolean); var pos: posicion; p: enlace; procedure Ins (var p: enlace; c: cadena; atrib: tatributo; var error: boolean); {Inserta nuevo nodo en lista de desbordamiento} if p = nil then error := false; new (p); p^.clave := c; P^.atributo := atrib; P^.sig := nil; end else if (p^.clave = c) then error := true else Ins (p^.sig, c, atributo, error); end; {Programa principal} pos := Hash (c); if T [pos].clave = c then error := true {ya está en bloque} else if T [pos].clave = vacia then {si bloque vacío} error := false; T [pos].clave := c; T [pos].atributo := atrib end; else Ins (T[pos].sig, c, atrib, error); {recorro el end; bloque}

29 IMPLEMENTACIÓN procedure Eliminar (var T: Tabla; c: cadena; var error: boolean); var pos: posicion; procedure Sup (var p: enclace; c: cadena; var error: boolean); var q: enlace; if p = nil then error := true else if p^.clave = c then q := p; p:= p^.sig; dispose (q); error := false; end else Sup (p^.sig, c, error) end; {Programa principal} pos := Hash (c); if T [pos].clave = vacia then error := true else if T [pos].clave = c then {si hay colisión} error := false; (sigue)...

30 IMPLEMENTACIÓN if T[pos].sig = nil then T [pos].clave = vacia else {si está al principio y no hay más} {si está al principio del bloque} p := T[pos].sig; T [pos].clave := p^.clave; T [pos].atributo := p^.atributo; T [pos].sig := p^.sig; dispose (p); end end {del 2º if} else Sup (T [pos].sig, c, error); {sigue por la lista end; enlazada a ese bloque}

31 ANÁLISIS DE TABLAS HASH El factor de carga de la tabla es m/n, donde m es el número de índices distintos que se han almacenado en la tabla y N es el tamaño de la matriz que se emplea para implementarla. Si suponemos que todos los índices, todos los punteros y todos los valores almacenados en la tabla ocupan una cantidad de espacio constante, entonces la tabla ocupa un espacio que está en O (N + m) y la longitud media de la lista es igual al factor de carga. Así un incremento de N reduce la longitud pero incrementa el espacio. Si se mantiene el factor de carga entre ½ y 1, la tabla ocupa un espacio que está en O (m), lo cual es óptimo salvo un pequeño factor cte, y la longitud media de la lista es menor que 1, lo cual implica un acceso eficiente a la tabla.

32 ANÁLISIS DE TABLAS HASH Resulta tentador mejorar este esquema sustituyendo las N listas de colisión por árboles equilibrados, pero no merece la pena si el factor de carga se mantiene en valores pequeños. El factor de carga se mantiene en valores pequeños mediante una redispersión. Cuando el factor de carga supera el valor uno, se dobla el tamaño de la matriz empleada para implementar la tabla de dispersión. La función de dispersión cambia para doblar su alcance, y todas las entradas que están en la tabla se redistribuyen a sus nuevas posiciones en alguna lista de la matriz mayor. La redistribución es costosa pero infrecuente así, no incrementa mucho el tiempo de acceso a la tabla. Cada vez que el factor de carga sobrepasa el valor uno, se reorganiza la tabla y el factor de carga vuelve a valer ½.

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras

Más detalles

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad: El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

Práctica 7. TAD aplicación

Práctica 7. TAD aplicación bjetivos. Práctica 7. TAD aplicación Se trata de construir el TAD APLICACIN con una implementación acotada. Se introducen la dispersión (hashing) y las cachés como técnicas de implementación para mejorar

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Programación en Pascal

Programación en Pascal Programación en Pascal Segunda parte de la asignatura. El profesor: Nombre:. Despacho: Edificio de la ETSII 2ª Planta. Correo electrónico: fdoperez@ull.es. Miércoles, Viernes: 3.30 a 5.30. Objetivos: Aprender

Más detalles

Estructura de datos (arreglos) Vectores y Matrices

Estructura de datos (arreglos) Vectores y Matrices Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

MÉTODOS DE ORGANIZACIÓN Y ACCESO A DATOS INTRODUCCIÓN. NO : ESTRUCTURA. OPERACIONES. MANTENIMIENTO. : ESTRUCTURA. OPERACIONES. MANTENIMIENTO. MÉTODOS DE ORGANIZACIÓN Y ACCESO A DATOS : ESTRUCTURA. OPERACIONES.

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Tablas de Dispersión (Hashing Tables)

Tablas de Dispersión (Hashing Tables) Tablas de Dispersión (Hashing Tables) Las tablas de dispersión o hashing tables (en inglés) es una técnica que se utiliza para implementar inserciones, eliminaciones y búsquedas en un tiempo medio constante.

Más detalles

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo

Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo Algoritmos de Búsqueda y Ordenación. Rosalía Laza Fidalgo. Departamento de Informática. Universidad de Vigo Complejidad Cómo podemos medir y comparar algoritmos, si estos se ejecutan a distintas velocidades

Más detalles

Tema 2. Organizaciones de ficheros y estructuras de acceso

Tema 2. Organizaciones de ficheros y estructuras de acceso Tema 2. Organizaciones de ficheros y estructuras de acceso Ficheros y Bases de Datos 10 de junio de 2002 1. Introducción Este documento contiene preguntas del tema 2 recogidas por estudiantes de la asignatura

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24 Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

14. ÁRBOLES. 14.1 Fundamentos y terminología básica

14. ÁRBOLES. 14.1 Fundamentos y terminología básica Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Cómo nombrar variables ( 2&

Cómo nombrar variables ( 2& &'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción

Más detalles

Representación de Datos. Una Introducción a los Sistemas Numéricos

Representación de Datos. Una Introducción a los Sistemas Numéricos Representación de Datos Una Introducción a los Sistemas Numéricos Tipos de Datos Datos Texto Número Imagen Audio Video Multimedia: Información que contiene números, texto, imágenes, audio y video. Como

Más detalles

Introducción a la Programación Ingenieria en Informática Junio 2008

Introducción a la Programación Ingenieria en Informática Junio 2008 Introducción a la Programación Ingenieria en Informática Junio 2008 Ejercicio 1 [2 puntos] Escribe un programa que reciba el fichero binario.dat, fichero binario de enteros positivos y devuelva un fichero

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

Comencemos a programar con. Entrega 09

Comencemos a programar con. Entrega 09 Comencemos a programar con VBA - Access Entrega 09 Estructuras de Control Eduardo Olaz 09-2 Estructuras de Control. Las estructuras de control son segmentos de código que nos permiten tomar decisiones

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Parte II: Estructuras de datos y algoritmos

Parte II: Estructuras de datos y algoritmos Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

Tema 4.- Pilas y Colas

Tema 4.- Pilas y Colas Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

3. ESTRUCTURAS DE DATOS NO LINEALES

3. ESTRUCTURAS DE DATOS NO LINEALES 3. ESTRUCTURAS DE DATOS NO LINEALES 3.1 Conjuntos 3.2 Árboles 3.3 Grafos 1 3.1 Conjuntos Índice Introducción Especificación del TAD TipoConjunto Implementaciones del TAD TipoConjunto Programación usando

Más detalles

!" #$!"# $ % &!" ' $ *()"! $ ' + ), -./#" # $ $ + %& $ '00( $ -0 102 / 0+), 0""(# $ /3-4 - 5 6-7 8-0 2 / '0 0-7 8 + 0 /3 ' - -7 8 + 0' - 0

! #$!# $ % &! ' $ *()! $ ' + ), -./# # $ $ + %& $ '00( $ -0 102 / 0+), 0(# $ /3-4 - 5 6-7 8-0 2 / '0 0-7 8 + 0 /3 ' - -7 8 + 0' - 0 !" #$!"# $ % &!" ' "()"# $ *()"! $ ' + ), -./#" # $ $ + %& $ '00( $ -0 102 / 0+), 0""(# $ -' ' /3-4 - 5 '+!" "()"5*()" 6-7 8-0 2 / '0 0-7 8 + 0 /3 10'-10 ' - -7 8 + 0' - 0 0 0 *0 " "( + 2/ "()"*()" '!"

Más detalles

SISTEMAS DE NUMERACIÓN (11001, 011) 1.2 1.2 0.2 0.2 1.2 0.2 1.2 1.2 = + + + + + + + = 1 1 4 8 (32,12)

SISTEMAS DE NUMERACIÓN (11001, 011) 1.2 1.2 0.2 0.2 1.2 0.2 1.2 1.2 = + + + + + + + = 1 1 4 8 (32,12) SISTEMAS DE NUMERACIÓN 1. Expresa en base decimal los siguientes números: (10011) ; ( 11001,011 ) 4 (10011) = 1. + 0. + 0. + 1. + 1. = 16 + + 1 = 19 (11001, 011) 1. 1. 0. 0. 1. 0. 1. 1. 4 1 = + + + + +

Más detalles

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS GUIA DE ESTUDIO: ARCHIVOS DIRECTOS Introducción: Una característica común de los tipos de datos que hemos visto hasta ahora es que la información que cargamos se mantiene vigente solamente mientras está

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Examen escrito de Programación 1

Examen escrito de Programación 1 Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento

Más detalles

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Introducción a la Programación 11 O. Humberto Cervantes Maceda Introducción a la Programación 11 O Humberto Cervantes Maceda Recordando En la sesión anterior vimos que la información almacenada en la memoria, y por lo tanto aquella que procesa la unidad central de

Más detalles

Instrumentación Virtual con LabVIEW

Instrumentación Virtual con LabVIEW Instrumentación Virtual con LabVIEW ESTRUCTURAS ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de selección de CASE Controles Visibles Variables Locales y Globales Personalizar controles 1.- ENTORNO DE

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Procesamiento Digital de Imágenes. Compresión de imágenes

Procesamiento Digital de Imágenes. Compresión de imágenes FICH, UNL - Departamento de Informática - Ingeniería Informática Procesamiento Digital de Imágenes Guía de Trabajos Prácticos 8 Compresión de imágenes 2010 1. Objetivos Analizar las características y el

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Capitulo 12. Tira de bits

Capitulo 12. Tira de bits Capitulo 12. Tira de bits 12.1 Representación de números naturales (enteros positivos) base 10 base 2 base 16 decimal binario hexadecimal 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000

Más detalles

Programación de Sistemas

Programación de Sistemas Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

Más detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Analisis de algoritmos

Analisis de algoritmos Analisis de algoritmos Eficiencia Es la capacidad de disponer de un recurso. En el caso de los algoritmos, la eficiencia se logra haciendo el mejor uso posible de los recursos del sistema. Recursos Qué

Más detalles

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional Estructuras de Almacenamiento Nivel FísicoF Nivel Lógico Modelo Entidad-Relación y Modelo Relacional El nivel en el que se deben mover los usuario es el nivel lógico El objetivo de un sistema de bases

Más detalles

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A. Archivo: Concepto Para poder acceder a determinada información en cualquier momento, se necesitará que ella esté depositada en soportes físicos los cuales la almacenan en forma permanente. Este es el caso

Más detalles

Semántica Denotacional

Semántica Denotacional Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos Ejercicios: Clases y Objetos 1. Crea una clase Complejo que permita trabajar con números complejos (parte real y parte imaginaria). Incluye los siguientes métodos: constructores

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

Representación de la Información

Representación de la Información Representar: Expresar una información como una combinación de símbolos de un determinado lenguaje. Trece -> símbolos 1 y 3 Interpretar: Obtener la información originalmente representada a partir de una

Más detalles

Resumen del lenguaje de programación Visual Basic.NET

Resumen del lenguaje de programación Visual Basic.NET Resumen del lenguaje de programación Visual Basic.NET Contenidos del tema. 1. Datos y Constantes en VBNet....3 Tipos de datos...3 Tipos de Datos definidos por el usuario...5 Declaración de variables...

Más detalles

Clase 31. Hashing (Dispersión) Motivación

Clase 31. Hashing (Dispersión) Motivación Clase 31 Hashing (Dispersión) Motivación Podemos realizar una búsqueda en un tiempo mejor que O( lg n )? La operación de memoria de un ordenador lo realiza en mucho menos tiempo: toma una clave (la dirección

Más detalles

Contenidos. Archivos en C++ Archivos en C++ Introducción

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

Tema 2 : Códigos Binarios

Tema 2 : Códigos Binarios Tema 2 : Códigos Binarios Objetivo: Conocer diferentes códigos binarios Conocer algunos códigos de detección y corrección de errores. Códigos alfanuméricos 1 Códigos Binarios A la representación de cifras,

Más detalles

Algoritmos. Autor: José Ángel Acosta Rodríguez

Algoritmos. Autor: José Ángel Acosta Rodríguez Autor: 2006 ÍNDICE Página Índice 1 Problema 1. Movimiento de figuras geométricas.2 Problema 2. Conversión decimal a binario....3 Problema 3. Secuencias binarias..4 Problema 4. Conversión a binario a octal...

Más detalles

3 CONJUNTOS, BOLSAS Y FUNCIONES. FUNCIONES DE DISPERSIÓN

3 CONJUNTOS, BOLSAS Y FUNCIONES. FUNCIONES DE DISPERSIÓN 3 CONJUNTOS, BOLSAS Y FUNCIONES. FUNCIONES DE DISPERSIÓN 3.1 EL TAD CONJUNTO. El TAD Conjunto es una colección de elementos distintos (todos del mismo tipo) junto con una serie de procedimientos de acceso.

Más detalles

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4 by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com, informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Octubre-Diciembre 2009 Identificando

Más detalles

Estructura para la toma de decisiones

Estructura para la toma de decisiones Estructura para la toma de decisiones Los procedimientos de Visual Basic pueden probar condiciones y, dependiendo de los resultados, realizar diferentes operaciones. Entre las estructuras de decisión que

Más detalles

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005

Ingeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005 Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 7: VALIDACIÓN

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 7: VALIDACIÓN Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 7: VALIDACIÓN TÉCNICAS DE PRUEBA DEL SOFTWARE Introducción Aspectos psicológicos de las pruebas Flujo de información de la prueba

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Tema 5 Sentencias de control de flujo. Fundamentos de Informática Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación

Más detalles

Archivos. Teoría de Sistemas Operativos. Archivos. Archivos. Archivos. Archivos. Administración de Archivos

Archivos. Teoría de Sistemas Operativos. Archivos. Archivos. Archivos. Archivos. Administración de Archivos Teoría de Sistemas Operativos Administración de Sistemas de :: punto de vista del usuario Nombre Consiste en una serie de símbolos (letras y números principalmente). Sirven de referencia para el usuario

Más detalles

Programación básica C++

Programación básica C++ Programación en Lenguaje C++ Programación básica C++ 6.3.1 Declaración de variables Introducción 6 Las variables sirven para identificar un determinado valor. Es importante tener en cuenta, que una variable

Más detalles

Práctica 6: Utilización de Registros y Vectores

Práctica 6: Utilización de Registros y Vectores Práctica 6: Utilización de Registros y Vectores Objetivos de la práctica El objetivo de esta práctica es ejercitarse en el empleo de estructuras de datos de tipo registro y vector para modelar datos, así

Más detalles

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Estructura de Datos y de la Información. Pilas y expresiones aritméticas Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES OBJETIVO: El estudiante desarrollará aplicaciones mediante la implementación de estructuras de datos basadas en Pilas. MATERIAL Y EQUIPO NECESARIO: Papel y lápiz Se recomienda la comprobación de los ejercicios

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.2 Operaciones aritmético-lógicas en Pascal 3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES

Más detalles

Trabajo Práctico N 4: Diseño por Contratos

Trabajo Práctico N 4: Diseño por Contratos 1. Defina los contratos de las siguientes clases: Trabajo Práctico N 4: Diseño por Contratos a. La clase Fecha representa una fecha en el formato dia, mes y año. Especificar los contratos para asegurar

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

 ##$ % & '( % & )*+),$ -##$ -!- $! -./ - 0WebClass1-2 ! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

Tema 1. Representación de la información MME 2012-20131

Tema 1. Representación de la información MME 2012-20131 Tema 1 Representación de la información 1 Índice Unidad 1.- Representación de la información 1. Informática e información 2. Sistema de numeración 3. Representación interna de la información 2 Informática

Más detalles

Visual Basic for Applications

Visual Basic for Applications Visual Basic for Applications en MS Excel 1 Las Macros en MS Excel. Para qué sirve una macro en Excel? Una macro nos ayuda a automatizar aquellas tareas que hacemos repetidamente. Una macro es una serie

Más detalles

2 Métodos combinatorios

2 Métodos combinatorios 2 Métodos combinatorios Las pruebas pueden aplicarse de muchas maneras, es decir, existen diferentes formas de preparar casos de prueba. En este capítulo se presentan dos formas de prueba muy fáciles de

Más detalles

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)

Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5. Representación de la información Contenidos 1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5. Conversiones

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles