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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Á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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

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

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

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

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental] ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental] Action script es el lenguaje de programación que lleva incorporado el software de creación multimedia Macromedia

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

El lenguaje C: Elementos básicos del lenguaje

El lenguaje C: Elementos básicos del lenguaje Facultad de Ciencias Exactas, Ingeniería y Agrimensura Departamento de Sistemas e Informática Escuela de Electrónica Informática II El lenguaje C: Elementos básicos del lenguaje Este material debe utilizarse

Más detalles

LINUX - El intérprete de órdenes II

LINUX - El intérprete de órdenes II LINUX - El intérprete de órdenes II Objetivos: Se pretende introducir al alumno en el uso del intérprete de órdenes bash de LINUX. Ejecución de órdenes en el intérprete de órdenes Orden simple Como ya

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

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

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

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

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

TEMA 3 Representación de la información

TEMA 3 Representación de la información TEMA 3 Representación de la información Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción Para que el ordenador ejecute programas necesita dos tipos

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

!" #$!"# $ % &!" ' $ *()"! $ ' + ), -./#" # $ $ + %& $ '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

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

1 Estructura básica de un programa C++

1 Estructura básica de un programa C++ Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.

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

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

INSTITUTO TECNOLOGICO EL LLANO LICENCIATURA EN INFORMATICA ESTRUCTURA DE DATOS I

INSTITUTO TECNOLOGICO EL LLANO LICENCIATURA EN INFORMATICA ESTRUCTURA DE DATOS I Presentación de la Materia: Programa de Estudios Horar io Lunes 08:30 10:30 Material: Apuntes ftp://ftp.paginasprodigy.com Usuario; tmx9714074 Contraseña: 11466 Softwa re: Java C++ Visual Basic 6 Visual

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

Apellidos Nombre DNI

Apellidos Nombre DNI Apellidos Nombre DNI Examen de Arquitectura de Computadores (Telemática) Convocatoria de Junio: 25 5 2 Se dispone de un programa escrito en ensamblador encargado de transformar un número escrito en decimal

Más detalles

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL

EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL EJERCICIOS DE LENGUAJES Y PARADIGMAS DE PROGRAMACIÓN (CUESTIONES DE EXAMEN) PROGRAMACIÓN FUNCIONAL María Alpuente y María José Ramírez 1 LENGUAJES Y PARADIGMAS: INTRODUCCIÓN 1. Indica cuál de las siguientes

Más detalles

U i n d id d a 3. El Element os á bá i s cos de un programa

U i n d id d a 3. El Element os á bá i s cos de un programa Programación Digital U id d 3 El t bá i Unidad 3. Elementos básicos de un programa 1. Concepto de Programa Es un conjunto de instrucciones (órdenes dadas a la computadora), que producirán la ejecución

Más detalles

Sistemas de numeración, operaciones y códigos.

Sistemas de numeración, operaciones y códigos. Tema : Sistemas de numeración, operaciones y códigos. Para representar ideas, los seres humanos (al menos los occidentales) utilizamos cadenas de símbolos alfanuméricos de un alfabeto definido. En el mundo

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

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos. Introducción a la ciencia de la computación y a la programación 1. La computadora CONTENIDOS 2. Entidades primitivas para el desarrollo de algoritmos. 3. Metodología a seguir para la resolución de problemas

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

Introducción a la programación en R

Introducción a la programación en R Programación en R 1 Introducción a la programación en R Qué es un programa de ordenador? Un programa de ordenador consiste en una secuencia de instrucciones que un ordenador pueda entender. El procesador

Más detalles

Representación de la Información en una Computadora

Representación de la Información en una Computadora Representación de la Información en una Computadora Sistemas de Numeración El sistema de numeración que utiliza el hombre es el sistema decimal (de base 10). Lo creamos en forma natural porque tenemos

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

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador.

Tiempo de Compilación. Programa fuente. Secuencia. de caracteres. Scanner. Secuencia. de símbolos Parser. Compilador. ORGANIZACIÓN DE LA MEMORIA EN TIEMPO DE EJECUCIÓN Compilador Tiempo de Compilación Programa fuente Secuencia de caracteres Scanner Secuencia de símbolos Parser Árbol sintáctico Analizador semántico Generador

Más detalles

MICROSOFT EXCEL 2007 NIVEL AVANZADO. Contenido

MICROSOFT EXCEL 2007 NIVEL AVANZADO. Contenido MICROSOFT EXCEL 2007 NIVEL AVANZADO GUÍA TEÓRICO-PRÁCTICA N 1 FORMULAS y FUNCIONES AVANZADAS Contenido INTRODUCCIÓN...2 CONCEPTOS BÁSICOS...2 Fórmulas Algebraicas...2 Precedencia de los operadores en las

Más detalles

Uso de archivos en C++

Uso de archivos en C++ CICLO 02-2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº 11 Nombre de la práctica: Uso de archivos en C++ Lugar de ejecución: Laboratorio de Informática

Más detalles

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid Tema 4: Sistemas de Numeración. Codificación Binaria Ingeniería Informática Universidad Autónoma de Madrid 1 O B J E T I V O S Sistemas de Numeración. Codificación Binaria Conocer los diferentes sistemas

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

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

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

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 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

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

CIDEAD. 2º BACHILLERATO. Tecnología Industrial II. Tema 17.- Los circuitos digitales. Resumen

CIDEAD. 2º BACHILLERATO. Tecnología Industrial II. Tema 17.- Los circuitos digitales. Resumen Tema 7.- Los circuitos digitales. Resumen Desarrollo del tema.. Introducción al tema. 2. Los sistemas de numeración.. El sistema binario. 4. Códigos binarios. 5. El sistema octal y hexadecimal. 6. El Álgebra

Más detalles

Solución - Examen Marzo de 2003

Solución - Examen Marzo de 2003 Solución - Examen Marzo de 2003 Problema 1 Se debe responder a las cuestiones aquí planteadas de manera concisa (no más de 15 renglones por pregunta. En todos los casos debe justificar su respuesta. Pregunta1

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

Sistemas de Numeración

Sistemas de Numeración Sistemas de Numeración Objetivo: Conoce los sistemas de numeración diferentes al decimal Ser capaces de transformar una cifra de un sistema a otro 1 Introducción El sistema de numeración usado de forma

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles