Algoritmos Y Estructura De Datos - Dr. Oscar Bruno

3y ago
89 Views
7 Downloads
1.56 MB
47 Pages
Last View : 14d ago
Last Download : 3m ago
Upload by : Emanuel Batten
Transcription

Algoritmos y estructurade datosAsignatura anual, código 082021MODULO 3 Struct y FILEDepartamento de Ingeniería en Sistemas de InformaciónUniversidad Tecnológica Nacional FRBAUTN FRBAPágina 1

Tabla de contenidoEstructura de datos: Flujos y Registros . 4Introduccion . 4Tipos de Datos . 4Estructura tipo Registro . 7Estructura tipo Archivo . 9Archivos y flujos . 9Archivos de texto: . 10Operaciones simples . 10Patrones algorítmicos con archivos de texto . 11Archivos binarios: . 12Definiciones y declaraciones: . 14Operaciones simples . 14ConvertirBinario Texto . 15ConvertirTexto Binario . 15AgregarRegistrosABinarioNuevo . 16AgregarRegistrosABinarioExistente . 16RecorrerBinarioV1 . 16RecorrerBinarioV2 . 17RecorrerBinarioV3 . 17CorteControlBinario . 18ApareoBinarioV1 . 18ApareoBinarioV2 . 19ApareoBinarioPorDosClaves. 20BusquedaDirectaArchivo . 21BusquedaBinariaArchivo . 21BusquedaBinariaArchivoV2 . 22El archivo como estructura auxiliar . 23GenerarBinarioOrdenadoPUP . 23GenerarIndicePUP . 25Implementacione en C/C . 27Operaciones sobre archivos . 27UTN FRBAPágina 2

Grabar un archivo de caracteres . 28Leer un archivo de caracteres . 28Archivo de registros . 29Grabar un archivo de registros. 29Leer un archivo de registros . 30Acceso directo a los registros de un archivo . 30Cantidad de registros de un archivo . 31Plantillas para archivos. 33Templates . 33Template: read . 33Template: write . 33Template: seek . 33Template: fileSize . 33Template: filePos . 34Template: busquedaBinaria . 34Ejemplos . 34Lectura y Escritura en Archivos de Bloques a través de Flujos . 36Archivos de Bloques de Tamaño Constante. 36C ifstream, ofstream y fstream . 40Abrir los ficheros . 40Leer y escribir en el fichero . 41Cerrar los ficheros . 41Ejemplos Archivos de texto . 41Ejemplo Archivo binario . 42Acceso directo . 42UTN FRBAPágina 3

Estructura de datos: Flujos y Registros1Objetivos de aprendizajeDominando los temas del presente trabajo Usted podrá.1. Entender el concepto de estructura de dato.2. Profundizar en el conocimiento de estructuras con posiciones contiguas de memoria dedatos no homogeneos.3. Conocer estructuras que permiten la persistencia del dato mas alla de la aplicacion.4. Comenzar con las combinaciones de estructuras.IntroduccionHasta ahora trabajamos con datos simples, cuyas características son: tienen un único nombre paraun único dato, y son indivisibles en datos más elementales. Por otro lado las estructuras de datostiene la característica de tener un único nombre para más de un dato, es divisible en miembrosmás elementales y existen medios u operadores de acceso a cada uno de esos miembros. Puedenalojarse en memoria principal o secundaria, por lo que pueden o no persistir a la aplicación y sermás o menos eficiente en su acceso o recorrido. En este apartado, después de una brevedescripción de los tipos de datos se abordara las estructuras tipos registro y los flujos de datos.Las estructuras de datos, por su forma de creación y permanencia en memoria pueden serestáticas (creadas en tiempo de declaración, ejemplos registro, array) o dinámicas (creadas entiempo de ejecución, ejemplos estructuras enlazadas con asignación dinámica en memoria)Por su persistencia pueden ser de almacenamiento físico (archivos) o temporal (array, registros).Nos ocuparemos aquí de estructuras de almacenamiento físico, archivos, estructura de dato quese utiliza para la conservación permanente de los datos. Desde el punto de vista de la jerarquía delos datos, una computadora maneja bits, que para poder manipularlos como caracteres (digitos,letras o caracteres especiales), se agrupan en bytes. Asi como los caracteres se componen de bits,los campos pueden componerse como un conjunto de bytes. Asi pueden conformarse losregistros, o srtuct en C. Asi como un registro es un conjunto de datos relacionados, un archivo esun conjunto de registros relacionados. La organización de estos registros en un archivo de accesosecuencial o en un archivo de acceso directo.Tipos de DatosIdentifica o determina un dominio de valores y el conjunto de operaciones aplicables sobre esosvalores.1. Primitivos.2. Derivados.3. Abstractos.UTN FRBAPágina 4

Los algoritmos operan sobre datos de distinta naturaleza, por lo tanto los programas queimplementan dichos algoritmos necesitan una forma de representarlos.Tipo de dato es una clase de objeto ligado a un conjunto de operaciones para crearlos ymanipularlos, un tipo de dato se caracteriza por1. Un rango de valores posibles.2. Un conjunto de operaciones realizadas sobre ese tipo.3. Su representación interna.Al definir un tipo de dato se esta indicando los valores que pueden tomar sus elementos y lasoperaciones que pueden hacerse sobre ellos.Al definir un identificador de un determinado tipo el nombre del identificador indica la localizaciónen memoria, el tipo los valores y operaciones permitidas, y como cada tipo se representa de formadistinta en la computadora los lenguajes de alto nivel hacen abstracción de la representacióninterna e ignoran los detalles pero interpretan la representación según el tipo.Como ya vimos, los tipos de datos pueden ser.1. Estáticos: Ocupan una posición de memoria en el momento de la definición, no la liberandurante el proceso solamente la liberan al finalizar la aplicación.a. Simples: Son indivisibles en datos mas elementales, ocupan una única posiciónpara un único dato de un único tipo por vez.i. Ordinales: Un tipo de dato es ordinal o esta ordenado discretamente sicada elemento que es parte del tipo tiene un único elemento anterior(salvo el primero) y un único elemento siguiente (salvo el ultimo).1. Enteros: Es el tipo de dato numérico mas simple.2. Lógico o booleano: puede tomar valores entre dos posibles:verdadero o falso.3. Carácter: Proporcionan objetos de la clase de datos que contienenun solo elemento como valor. Este conjunto de elementos estaestablecido y normatizado por el estándar ASCII.ii. No ordinales: No están ordenados discretamente, la implementación espor aproximación1. Reales: Es una clase de dato numérico que permite representarnúmeros decimales.b. Cadenas: Contienen N caracteres tratados como una única variable.c. Estructuras: Tienen un único nombre para mas de un dato que puede ser delmismo tipo o de tipo distinto. Permiten acceso a cada dato particular y sondivisibles en datos mas elementales.Una estructura es, en definitiva, un conjunto de variables no necesariamente delmismo tipo relacionadas entre si de diversas formas.Si los datos que la componen son todas del mismo tipo son homogéneas,heterogéneas en caso contrario.Una estructura es estática si la cantidad de elementos que contiene es fija, es decirno cambia durante la ejecución del programai. Registro: Es un conjunto de valores que tiene las siguientescaracterísticas:Los valores pueden ser de tipo distinto. Es una estructura heterogénea.Los valores almacenados se llaman campos, cada uno de ellos tiene unidentificador y pueden ser accedidos individualmente.UTN FRBAPágina 5

El operador de acceso a cada miembro de un registro es l operador punto (.)El almacenamiento es fijo.ii. Arreglo: Colección ordenada e indexada de elementos con las siguientescaracterísticas:Todos los elementos son del mismo tipo, un arreglo es una estructurahomogénea.Los elementos pueden recuperarse en cualquier orden, simplementeindicando la posición que ocupa dentro de la estructura, esto indica que elarreglo es una estructura indexada.El operador de acceso es el operador []La memoria ocupada a lo largo de la ejecución del programa es fija, poresto es una estructura estática.El nombre del arreglo se socia a un área de memoria fija y consecutiva deltamaño especificado en la declaración.El índice debe ser de tipo ordinal. El valor del índice puede verse como eldesplazamiento respecto de la posición inicial del arreglo.Los arreglos pueden ser de varias dimensiones. Esta dimensión indica lacantidad de índices necesarias para acceder a un elemento del arreglo.El arreglo lineal, con un índice, o una dimensión se llama vector.El arreglo con 2 o mas índices o dimensiones es una matriz. Un grupo deelementos homogéneo con un orden interno en el que se necesitan 2 omas índices para referenciar a un elemento de la estructura.iii. Archivos: Estructura de datos con almacenamiento físico en memoriasecundaria o disco.Las acciones generales vinculadas con archivos sonAsignar, abrir, crear, cerrar, leer, grabar, Cantidad de elementos, Posicióndel puntero, Acceder a una posición determinada, marca de final delarchivo, definiciones y declaraciones de variables.Según su organización pueden ser secuenciales, indexados.1. Archivos de texto: Secuencia de líneas compuestas por cero uno omas caracteres que finalizan con un carácter especial que indica elfinal de la línea. Los datos internos son representados encaracteres, son mas portables y en general mas extensos.2. Archivos de tipo o binarios: secuencia de bytes en surepresentación interna sin interpretar. Son reconocidos comoiguales si son leídos de la forma en que fueron escritos. Sonmenos portables y menos extensos.2. Dinámicos: Ocupan direcciones de memoria en tiempo de ejecución y se instancian através de punteros. Esta s instancias pueden también liberarse en tiempo de ejecución. Eltema de puntadores y estructuras enlazadas (estructuras relacionadas con este tipo dedato se analizan en detalle en capítulos siguentes)a. Listas simplemente enlazadas: cada elemento sólo dispone de un puntero, queapuntará al siguiente elemento de la lista o valdrá NULL si es el último elemento.b. Pilas: son un tipo especial de lista, conocidas como listas LIFO (Last In, First Out: elúltimo en entrar es el primero en salir). Los elementos se "amontonan" o apilan,de modo que sólo el elemento que está encima de la pila puede ser leído, y sólopueden añadirse elementos encima de la pila.UTN FRBAPágina 6

c. Colas: otro tipo de listas, conocidas como listas FIFO (First In, First Out: El primeroen entrar es el primero en salir). Los elementos se almacenan en fila, pero sólopueden añadirse por un extremo y leerse por el otro.d. Listas circulares: o listas cerradas, son parecidas a las listas abiertas, pero el últimoelemento apunta al primero. De hecho, en las listas circulares no puede hablarsede "primero" ni de "último". Cualquier nodo puede ser el nodo de entrada ysalida.e. Listas doblemente enlazadas: cada elemento dispone de dos punteros, uno apunta al siguiente elemento y el otro al elemento anterior. Al contrario que laslistas abiertas anteriores, estas listas pueden recorrerse en los dos sentidos.f. Árboles: cada elemento dispone de dos o más punteros, pero las referenciasnunca son a elementos anteriores, de modo que la estructura se ramifica y creceigual que un árbol.g. Árboles binarios: son árboles donde cada nodo sólo puede apuntar a dos nodos.h. Árboles binarios de búsqueda (ABB): son árboles binarios ordenados. Desde cadanodo todos los nodos de una rama serán mayores, según la norma que se hayaseguido para ordenar el árbol, y los de la otra rama serán menores.i. Árboles AVL: son también árboles de búsqueda, pero su estructura está másoptimizada para reducir los tiempos de búsqueda.j. Árboles B: son estructuras más complejas, aunque también se trata de árboles debúsqueda, están mucho más optimizados que los anteriores.k. Tablas HASH: son estructuras auxiliares para ordenar listas.l. Grafos: es el siguiente nivel de complejidad, podemos considerar estas estructurascomo árboles no jerarquizados.m. Diccionarios.Estructura tipo RegistroRegistro: Es un conjunto de valores que tiene las siguientes características:Los valores pueden ser de tipo distinto. Es una estructura heterogénea.Los valores almacenados se llaman campos, cada uno de ellos tiene un identificador y pueden seraccedidos individualmente.El operador de acceso a cada miembro de un registro es l operador punto ( . )El almacenamiento es fijo.DeclaracionGenéricaNombreDelTipo TIPO TipoDato1 Identificador1; ; TipoDatoN IdentificadorN TipoRegistro TIPO Entero N; Real Y //declara un tipoTipoRegistro Registro; // define una variable del tipo declaradoEn Cstruct NombreTipo {Tipo Identificador;Tipo Identificador;}struct TipoRegistro {int N;double Y;};//declara un tipoUTN FRBAPágina 7

TipoRegistro Registro; //define una variableEjemplo de estructuras anidadas en Cstruct TipoFecha {intD;intM;intA;};//declara un tipo fechastruct TipoAlumno {intstringTipoFecha};TipoAlumno Alumno;Legajo;Nombre;Fecha//declara un tipo Alumno con un campo de tipo FechaAlumno es un registro con tres miembros (campos) uno de los cuales es un registro de TipoFecha.El acceso es:NombreTipo datoAlumnoRegistroRegistro total del alumnoAlumno.LegajoEnteroCampo legajo del registro alumno que es un enteroAlumno.NombreCadenaCampo nombre del registro alumno que es una cadenaAlumno.FechaRegistroCampo fecha del registro alumno que es un registroAlumno.Fecha.DEnteroCampo dia del registro fecha que es un enteroAlumno.Fecha.MEnteroCampo mes del registro fecha que es un enteroAlumno.fecha.AEnteroCampo anio del registro alumno que es un enteroPosiciones contiguas de memoria de datos no homogéneos, cada miembro se llama campo. Parasu implementación en pascal se debe:a) Declaración y definición de un registrostruct NombreDelTipo {tipo de dato Identificador;tipo de dato Identificador;} Nombre del identificador;b) Operador de Acceso.NombreDelIdentificador.Campo1 {Acceso al miembro campo1}c) Asignacióni) Interna: puede ser(1) Estructura completa Registro1 Registro2(2) Campo a campo Registro.campo Valorii) Externa(1) Entrada(a) Teclado: campo a campo Leer(Registro.campo)(b) Archivo Binario: por registro completo Leer(Archivo, Registro)(2) Salida(a) Monitor: Campo a campo Imprimir(Registro.campo)(b) Archivo Binario: por registro completo Imprimir(Archivo, Registro)UTN FRBAPágina 8

Estructura tipo Archivo1Estructura de datos con almacenamiento físico en disco, persiste mas allá de la aplicación y suprocesamiento es lento. Se

3. Conocer estructuras que permiten la persistencia del dato mas alla de la aplicacion. 4. Comenzar con las combinaciones de estructuras. Introduccion Hasta ahora trabajamos con datos simples, cuyas características son: tienen un único nombre para un único dato, y son indivisibles en datos más elementales. Por otro lado las estructuras de datos

Related Documents:

relacional para capturar mejor el significado de los datos, para disponer de los conceptos de la orientación a objetos y para disponer de capacidad deductiva. El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos de los datos: o Estructura de datos. o Integridad de datos. o Manejo de datos.

SGBD. Modelo E-R 2 Durante el desarrollo de un sistema de información, se han de modelar tanto los datos empleados por el sistema como los procesos que realizan tareas sobre esos datos: Modelado de datos Representación gráfica del modelo de datos Diccionario de datos Modelado de procesos Diagramas de flujo de datos Diagramas de estados (automatas finitos)

2 Algunas de las facilidades que proporciona el sistema manejador de base de datos a los usuarios son: Agregar Nuevos Archivos a la Base de Datos. Agregar Nuevos Registros a los Archivos existentes. Recuperación de Datos. Actualización de Datos. Borrar registros. Borrar Archivos. Proporcionar los mecanismos para el control del acceso concurrente a los datos.

Etapa I un panorama general de las estructuras de datos realizando algoritmos simples. Etapa II identificación de las tecinas para la realización del análisis y diseño de algoritmos. Etapa III se involucra el diseño para la resolución de problemas recursivos. Etapa IV conoceremos los diferentes tipos de ordenamientos y búsqueda de datos.

¶Indice Presentaci¶on xix Tema I Algoritmos e introducci¶on a Pascal 1 Cap¶‡tulo 1 Problemas, algoritmos y programas 3 1.1 Soluci¶on de problemas mediante .

Estudio comparativo de los algoritmos de cifrado de flujo RC4, A5 y SEAL (2002) Silvana Bravo, realizo una descripción de los algoritmos de cifrado de flujo RC4, A5 y SEAL. Adicionalmente realizó pruebas a cada uno de los algoritmos para identificar la velocidad descifrado de los mismos, llegando a la conclusión que SEAL es el más rápido 1

Eficiencia 19 Algoritmos que resuelven el mismo problema frecuentemente tienen una eficiencia diferente - Más significativas que las diferencias por HW o SW Algoritmos de ordenamiento - InsertionSort c 1n 2 para ordenar n elementos, c 1 es constante no dependiente de n - MergeSort c 2nlgn, donde lgn es log2n y c2 es otra constante que no depende de n - c 1 c2

Although adventure tourism is rapidly growing South Africa, research on the subject in this region is relatively limited. A few studies have examined issues and challenges facing the adventure tourism industry as a whole. Rogerson (2007) noted some of the challenges facing the development of adventure tourism in South Africa. One was the lack of marketing, particularly marketing South Africa .