Introducción a las tablas Hash (I)
|
|
|
- Javier Revuelta Cáceres
- hace 9 años
- Vistas:
Transcripción
1 Introducción a las tablas Hash (I) Una tabla Hash es un contenedor asociativo (tipo Diccionario) que permite un almacenamiento y posterior recuperación eficientes de elementos (denominados valores) a partir de otros objetos, llamados claves. La forma ideal de realizar una búsqueda de un elemento en un contenedor sería aplicar una función matemática sobre el dato y que me devolviera directamente el lugar en el que se encuentra. Esto sería (1). Tablas Hash 1
2 Introducción a las tablas Hash (II) A esa función se le llama función hash. DATS Pepe Juan 0 1 Miguel Juan Pepe Marcos Raul Juan Manuel Jose Manuel Maria Romina Carmen Maria Jose Manuel Miguel Raul Marcos Juan Manuel Carmen 8 Romina 9 Tablas Hash 2
3 Introducción a las tablas Hash Esa función tendría que ser inyectiva. El problema es que encontrar una función de ese tipo no es nada sencillo. Cuando existe una función hash biyectiva decimos que tenemos un función hash perfecta. El conjunto de datos debe ser fijo y predeterminado. Para el resto de los casos tendremos funciones sobreyectivas, es decir, para dos claves distintas podremos obtener un mismo valor. En este caso se producen colisiones en el valor de la función hash. Dependiendo de la forma en la que se resuelvan esas colisiones tendremos encadenamiento separado o direccionamiento abierto. Tablas Hash 3
4 Funciones hash Se deben definir de manera que: Tome como valor todos y cada uno de los posibles valores. distribuyan de forma lo más aleatoria posible las claves, y minimice el número de colisiones. Partiendo de que el lugar disponible para colocar las claves es un vector dinámico de tamaño M, existen distintos tipos de métodos para determinar una función hash. Tablas Hash 4
5 Diseño de una función Hash Método de multiplicación: Consiste en multiplicar por un valor y luego quedarnos con algunos de los bits de la expresión binaria del dato. Tiene el inconveniente de que M sólo puede ser una potencia de 2. Método de división: Se calcula el resto módulo M a la clave, con M primo Método de multiplicación y división: h(x) = (ax + b) %M con a %M 0 Dependiendo del tipo de dato que sea la clave tenemos distintas posibilidades: Si es un entero podemos utilizar como función h(x) = x %M Si es un string h(x) = (x[0] x[n 1]) %M con n la longitud de x Tablas Hash 5
6 Encadenamiento separado Las coliciones se resuelven insertándolas en una lista. De esa forma tendríamos como estructura un vector de listas. Al número medio de claves por lista se le llama factor de carga y habrá que intentar que esté próximo a 1. 23,45,16,26,40,14,5,12,9,25 con h(x) = x % <26> <40 14> <16> <5> <45> <9> <23> <12 25> Tablas Hash 6
7 Direccionamiento abierto Utilizamos un vector como representación y cuando se produzca una colisión la resolvemos reasignándole otro valor hash a la clave hasta que encontremos un hueco. 23,45,16,26,40,14,5,12,9,25 con h(x) = x % L L L : casilla ocupada L: casilla libre B: casilla borrada Tablas Hash 7
8 Reasignación de casillas Para esta reasignación tenemos varias posibilidades: prueba lineal: h i (x) = (h(x) + i) %M donde i es el número de intento. Se producen agrupamientos primarios. prueba cuadrática: h i (x) = h(x) + i 2 donde i es el número de intento. Se producen agrupamientos dobles. hashing doble: Usamos una segunda función hash h (x) con lo que tendriamos h i (x) = (h(x) + i h (x)) %M. Esta función h (x) nunca podrá tomar el valor 0. Un ejemplo podría ser h (x) = q (x %q) con q siendo un número primo menor que M. Tablas Hash 8
9 Direccionamiento abierto Las búsquedas se hacen siguiente la misma secuencia de la función hash que se utilizó para la inserción. Los borrados dejan las casillas en un estado distinto al de libre u ocupado. Este estado permite que sean cosideradas como casillas libre para una inserción y como ocupadas para las búsquedas. Una vez que la tabla se llena se debe seleccionar un tamaño de tabla mayor que también sea primo y volver a insertar todas las claves (como cambia M también cambia la función hash). A este proceso se le llama rehashing Tablas Hash 9
10 Especificación del TDA tabla Hash /** TDA thah. Representa una tabla Hash que almacena elementos de tipo Tbase. Tbase debe tener definidas las operaciones: - Tbase & operator=(const Tbase & e); - bool operator!=(const Tbase & e); - bool opertaor==(const Tbase & e); */ Son mutables. Residen en memoria dinámica. Constuye una tabla de tama~no tama: El tama~no de la tabla */ thash(int tama); Tablas Hash 10
11 /** Constructor de copia */ thash(const thash &th); Inserta dato en la dato: El dato que se inserta Si la clave ya aparece en la tabla no se hace nada */ void insertar(tbase dato); Elimina la clave dato de la dato: El dato que se true si el elemento ha sido borrado Si la clave no aparece no se hace nada */ bool borrar(tbase dato); Tablas Hash 11
12 Comprueba si existe una dato: El dato que se elem: Si el elemento existe devuelve el dato true si el elemento aparece en la tabla */ bool Existe(Tbase dato, Tbase &elem) const; /** Destruye la tabla hash */ ~thash(); Tablas Hash 12
13 Ejemplo #include <fstream> #include <iostream> #include <cassert> #include <cstdlib> #include "thash.h" const int NUM = 80; const int VALR_MAX = 200 ; class indice { public: inline indice() {}; inline indice(int c, int pos= 0) {laclave = c; pos_fich = pos;}; inline int pos_fichero() const {return pos_fich;}; inline int clave() const {return laclave;}; inline int operator%(int M) {return laclave%m;}; inline int operator+(int sumando) Tablas Hash 13
14 {return laclave+sumando;}; inline bool operator==(indice dato) {return laclave==dato.laclave;}; inline bool operator<(indice dato) {return laclave<dato.laclave;}; friend ostream& operator<<(ostream &c, indice ind); private: int laclave, pos_fich; }; ostream& operator<<(ostream &c, indice ind) { cout << "(" << ind.clave() << ", " << ind.pos_fichero() << ")"; } return c; void generamos_datos(char *nombre) { // Escribimos un conjunto de datos enteros entre // 0 y VALR_MAX ofstream fich(nombre, ios::out ios::binary); assert(fich.is_open()); Tablas Hash 14
15 } int dato; for (int i= 0; i<num; i++) { dato = (int) (1.0*rand()*VALR_MAX/RAND_MAX); fich.write(&dato, sizeof(int)); } fich.close(); void insertar_tabla_hash(ifstream &fich, thash<indice> &th) { cout << "Datos: "; int aux_dato, aux_pos; while (!fich.eof()) { aux_pos = fich.tellg(); fich.read(&aux_dato, sizeof(int)); cout << aux_dato << " "; th.insertar(indice(aux_dato, aux_pos)); } cout << endl; } int main(int argc, char *argv[]) { thash<indice> th(23); int i; indice dato_aux; Tablas Hash 15
16 assert(argc>1); // Construimos ifstream fich(argv[1], ios::in ios::binary); if (!fich.is_open()) generamos_datos(argv[1]); insertar_tabla_hash(fich, th); fich.close(); // Borramos algunos elementos for (i= 35; i<134; i+=6) th.borrar(indice(i)); for (i=0; i<134; i++) if (th.existe(i, dato_aux)) cout << i << " aparece en el fichero en " << " la posición " << dato_aux.pos_fichero()<< endl; thash<indice>::iterador ite; fich.open(argv[1], ios::in ios::binary); assert (fich.is_open()); cout << endl << "pos dato" << endl; int k = 0, aux_dato; for (ite = th.begin(); ite!=th.end(); ++ite) { cout.width(2); Tablas Hash 16
17 cout << k << ": "; cout.width(3); cout << (*ite).clave(); fich.seekg((*ite).pos_fichero(), ios::beg); cout << " (" << fich.tellg() << ") "; fich.read(&aux_dato, sizeof(int)); cout.width(3); cout << aux_dato; cout << endl; // No se puede hacer esto *ite = 234 k++; } // Se podría utilizar el iterador para grabar // la tabla en un fichero índice fich.close(); } return 0; Tablas Hash 17
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO
#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );
ARCHIVOS EN C++ = FLUJOS DE ENTRADA/SALIDA. Ejemplo: cin y cout Tipos de ficheros: DE TEXTO y BINARIOS Biblioteca de gestión de ficheros (a incluir en los programas) #include Apertura de ficheros
ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).
ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la
Prof. Dr.Paul Bustamante
Prácticas de C++ Practica Nº 14 Informática II Fundamentos de Programación Prof. Dr.Paul Bustamante Practica Nº 14 Programación en C++ Pág. 2 ÍNDICE ÍNDICE... 2 1. Introducción... 2 1.1 Ejercicio 1: Grabando
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS Operaciones con ficheros en Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba
Tema 3: Ficheros en C++ Índice. Notas. Programación 2. Curso Notas
de : en C++ Programación 2, Curso 2016-2017 Índice de, 1 de de un fichero de (1/2) de un fichero de 2, de un fichero binario de un fichero binario 3 Control de errores de lectura/escritura Qué es un fichero
Librerías estándar en C++ STL: Standard Template Library. Álvaro Sánchez Miralles José Porras (Fidel Fernández)
Librerías estándar en C++ STL: Standard Template Library Álvaro Sánchez Miralles José Porras (Fidel Fernández) Cadenas de caracteres Es una clase que se encuentra en librería estandar Consta,
Tema 3: Ficheros en C++
de : en C++ Programación 2, Curso 2013-2014 Índice de, 1 de de un fichero de (1/2) de un fichero de 2, de un fichero binario de un fichero binario 3 Control de errores de lectura/escritura Qué es un fichero
ALMACENAMIENTO PERSISTENTE DE DATOS
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación ALMACENAMIENTO PERSISTENTE DE DATOS Tema 1 Programación II Programación II 0 Tema 1: ALMACENAMIENTO PERSISTENTE DE DATOS
TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
PROGRAMACIÓN AVANZADA. Prácticas de Problemas. Introducción
UNIVERSIDAD NACIONAL DE ENTRE RÍOS Facultad de Ingeniería PROGRAMACIÓN AVANZADA Prácticas de Problemas Introducción Versión 02 Objetivos Revisión de conceptos sobre: tipos de datos, cadenas, arreglos,
Análisis y Diseño de Algoritmos Tablas de Hash
Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase
Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:
Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para
Escuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder
1. Juego del Ahorcado
Solución Ex. Junio 06 GrA - Programación C++ Pág. 1 1. JUEGO DEL AHORCADO...1 2. CLASES...3 1. Juego del Ahorcado #include #include #include #include void Jugar(char
Plantillas: un mecanismo de polimorfismo
Plantillas: un mecanismo de polimorfismo UPCO ICAI Departamento de Electrónica y Automática 1 Polimorfismo a través de programación genérica Las plantillas permiten programar un clase o una función de
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.
ÁRBOLES PARCIALMENTE ORDENADOS
ÁRBOLES PARCIALMENTE ORDENADOS INTRODUCCIÓN - Un árbol A se dice parcialmente ordenado (APO) si cumple la condición de que la etiqueta de cada nodo es menor (de igual forma mayor) o igual que las etiquetas
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,
Entrada y salida de datos en C y C++
Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida
Tablas de dispersión (hash tables)
Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla
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
Fundamentos de la programación
Fundamentos de la programación 3E Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Recorridos 404 Un
Fundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Tema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios
Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto
Tipos de datos y operadores en C++
Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
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
1. Gestión de E/S. 2. Clases básicas. 3. E/S estándar. 4. Manejo de ficheros. Entrada/Salida en C++
Entrada/Salida en C++ 1. Gestión de E/S. 2. Clases básicas. 3. E/S estándar. 4. Manejo de ficheros. Lenguaje C++. Leng. Prog. II. Filiberto Pla y Jorge Badenas. Gestión de Entrada/Salida Principios generales
Programación 1 Tema 15. Trabajo con ficheros binarios
Programación 1 Tema 15 Trabajo con ficheros binarios Índice Ficheros binarios Diferencia con ficheros de texto Herramientas de C++ para trabajar con ficheros binarios Problemas básicos con ficheros binarios
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
Estructuras de Datos y Algoritmos (ITIS). TAD Tree. Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º
Estructuras de Datos y Algoritmos (ITIS) Ingeniería Técnica en Informática de Sistemas, Curso 2º PRÁCTICA 3 TAD TREE Árbol binario de búsqueda. Tabla de frecuencias. Uno de los mecanismos más sencillos
Tema 5 Archivos o Ficheros
Tema 5 Archivos o Ficheros Informática Grado en Física Universitat de València [email protected] [email protected] 1 Introducción: Concepto de Fichero Tipos de acceso a ficheros Tipos de ficheros:
Entrada y Salida vía Archivos
Entrada y Salida vía Archivos Lectura de un archivo de entrada Escritura en un archivo de salida Agustín J. González ELO329 1 Lectura de archivos de entrada Un archivo de entrada es una secuencia de bytes
Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz
Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat
Guía de Referencia Rápida de C++ (std)
Guía de Referencia Rápida de C++ (std) Programa C++ // Inclusión de bibliotecas // Utilización de espacios de nombre // Definición de Constantes y Tipos // Definición de subprogramas // cuerpo del programa
APUNTES PROII 2º PARCIAL.
APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración
Estructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++
IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string
Tema 2: La clase string. Índice. Notas. Programación 2. Curso Notas. Definición Declaración Entrada / salida Métodos Operaciones
: string Programación 2 Curso 2013-2014 Índice 1 Cadenas de caracteres en C 2 Entrada / salida 3 entre vectores de caracteres y string 4 5 Cadenas de caracteres en C En C, las cadenas de caracteres tienen
Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
Estructuras de datos: Tablas de dispersión
Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge [email protected] Referencias bibliográficas M. A. Weiss. Dispersión. En Estructuras de datos y algoritmos,
En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:
LABORATORIO #6 (Parte I y II) REGISTROS Y ARCHIVOS Parte I: Registros Un registro es una estructura de datos formado por un conjunto de elementos llamados campos, no necesariamente del mismo tipo y que
Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)
Examen escrito de Programación 1. Jueves 5 de febrero de 2015 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los dos problemas
Programación 1. Tema II. Diseño de programas elementales. Lección 7. Diseño modular y descendente de programas
Programación 1 Tema II. Diseño de programas elementales Lección 7. Diseño modular y descendente de programas 1 Objetivos de la lección : Aprender qué es un diseño modular de un programa Aprender a diseñar
Capítulo 3. Clasificación en Memoria Secundaria
Capítulo 3. Clasificación en Memoria Secundaria INTRODUCCIÓN Las memorias secundarias (cintas magnéticas, discos duros, ) se caracterizan en general porque el acceso es secuencial. Es decir, en un instante
Ejercicios propuestos de. Programación orientada a objetos. con C++ Cristina Cachero Pedro J. Ponce de León
de Programación orientada a objetos con C++ Cristina Cachero Pedro J. Ponce de León Departamento de Lenguajes y Sistemas Informáticos Universidad de Alicante Esta obra está bajo licencia Creative Commons
Programación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Diseño de Conjuntos y Diccionarios con Hashing
Diseño de Conjuntos y Diccionarios con Hashing Representación de Conjuntos y Diccionarios TAD Diccionario(clave, significado) Observadores básicos def?: dicc(clave, significado) bool obtener: clave c dicc(clave,
SEMINARIO C++ Introducción a la Programación Orientada a Objetos. Parte III v Cristina Cachero Pedro J. Ponce de León
SEMINARIO C++ Introducción a la Programación Orientada a Objetos Parte III v. 20070918 Cristina Cachero Pedro J. Ponce de León Depto. Lenguajes y Sistemas Informáticos - Universidad de Alicante ÍNDICE
PILAS. Prof. Ing. M.Sc. Fulbia Torres
S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS
TEMA 5: Subprogramas. Programación modular EJERCICIOS DE TRAZAS 1.- Escribir la traza y decir que imprime por pantalla cada uno de los siguientes programas: a.- /* Ejercicio de traza 1 */ int a, b, c;
Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas
Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje
Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas
Tema 9 Algoritmos sobre listas Programación 2015-2016 Programación - Tema 9: Algoritmos sobre listas 1 Tema 9. Algoritmos sobre listas Algoritmos sobre Arrays. Búsqueda. Inserción. Ordenación. Programación
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.
Programación II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Objetivos Diferenciar sobrecarga de operadores
Alonso Ramirez Manzanares Computación y Algoritmos 03.05
Tablas de hash (2) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 03.05 Tablas de hash: resolviendo colisiones por encadenamiento cuando el número de elementos en total es proporcional al número
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
Segundo parcial de Programación 2
Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas
ÁRBOLES BINARIOS DE BÚSQUEDA (ABB)
ÁRBOLES BINARIOS DE BÚSQUEDA (ABB) INTRODUCCIÓN - Un árbol binario de búsqueda (ABB) es un árbol binario con la propiedad de que todos los elementos almacenados en el subárbol izquierdo de cualquier nodo
TAD CONJUNTOS Y MULTICONJUNTOS
TAD CONJUNTOS Y MULTICONJUNTOS INTRODUCCIÓN Qué es un conjunto? Un conjunto en matemática es una colección de objetos. Los objetos no mantienen ninguna relación aparente entre ellos y tampoco están obligados
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 Colas MATERIAL Y EQUIPO NECESARIO: Papel y lápiz Se recomienda la comprobación de los ejercicios
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Empresa Videojuegos (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Rectangulo (1.0 pto.)... 3 1.3 Ejercicio
Tablas de Dispersión
Tablas de Dispersión Representación de datos especialmente diseñada para que las operaciones de acceso, inserción y borra por valor o campo clave sean eficientes (tiempo promedio constante, indepiente
Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos
Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos PARTE 1. Arreglos Unidimensionales o Vectores Un arreglo es una estructura de datos conformada por una sucesión de celdas,
Estructura de datos Tema 6: Tablas de dispersión (hashing)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash
SEGUNDO PARCIAL INFORMATICA II
SEGUNDO PARCIAL INFORMATICA II Tema 1 Hacer un programa en C++ que realice lo siguiente: a. Generar los primeros 100 números enteros comenzando en 1 y guardar los impares en una pila y los pares en una
Introducción rápida a la programación (estructurada ) con C++
Introducción rápida a la programación (estructurada ) con C++ A B No A? Si B A Los Bloques pueden ser una línea de código o un modulo (función o subrutina) que pueden estar contenido en otro archivo de
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Tema 6. Gestión dinámica de memoria
Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, [email protected] Estructuras de datos y de la
TEMA 4 El tipo conjunto
TEMA El tipo conjunto PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo conjunto. Definiciones generales. Diccionario.. Tabla de dispersión.. Trie.. Árboles de búsqueda digitales. Cola de prioridad.. Montículo..
Los lenguajes como C y C++ no definen una forma estandar de imprimir.
Los lenguajes como C y C++ no definen una forma estandar de imprimir. La razon es simple: el trabajo de impresion es una tarea específica de la plataforma, lo que implica: No hay una forma estandar de
324 MR Versión 1 Prueba Integral 1/3 Semana 10 Lapso 2015-2
324 MR Versión 1 Prueba Integral 1/3 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: Computación II CÓDIGO: 324 MOMENTO: Prueba Integral FECHA DE APLICACIÓN:
Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks
Temario detallado Programación básica en C++ Conceptos generales de lenguajes y compiladores Proceso de compilación de un programa en C++ bajo Code::Blocks Estructura básica de un programa en C++ Análisis
FICHEROS C++ TRANSVERSAL DE PROGRAMACIÓN BÁSICA
TRANSVERSAL DE PROGRAMACIÓN BÁSICA INGENIERÍA DE SISTEMAS En el presente documente se hace una breve presentación del manejo de ficheros y archivos bajo el lenguaje de c++. Aunque existe más información
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Prof. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: clase
Tema 2: La clase string
: string Programación 2 Curso 2013-2014 Índice 1 Cadenas de caracteres en C 2 Entrada / salida 3 entre vectores de caracteres y string 4 5 Cadenas de caracteres en C En C, las cadenas de caracteres tienen
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Tema 5. Estructura de datos Pila
Tema 5. Estructura de datos Pila http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la
