ARCHIVOS DIRECTOS Y DATOS COMPLEJOS
AlbertJose917 de Mayo de 2015
3.213 Palabras (13 Páginas)290 Visitas
ARCHIVOS DIRECTOS Y DATOS COMPLEJOS
DATOS COMPEJOS:
LISTAS
Son colecciones de elementos, donde cada uno de ellos, además de almacenar información, almacena la dirección del siguiente elemento. Una lista es una estructura lineal de datos. Es decir, cada uno de sus componentes y un predecesor únicos, con excepción del último y del primero.
Las listas pueden implementarse mediante arreglos, resultando así una estructura estática. También puede ser una memoria dinámica (La cantidad de memoria ocupada puede modificarse durante la ejecución del programa). Una lista enlazada o encadenada es una colección de elementos ó nodos, en donde cada uno contiene datos y un enlace o liga.
A continuación se muestra el esquema de una lista:
GRAFOS
Un grafo es un conjunto de puntos (vértices) en el espacio, que están conectados por un conjunto de líneas (aristas).
Los grafos son estructuras de datos dinámicas no lineales, utilizadas comúnmente en el análisis de redes, en diseño de circuitos eléctricos, en estrategias de mercados, cartografía, mapas conceptuales, matemáticas, planificación de procesos y muchas área del conocimiento.
Aristas
Son las líneas con las que se unen las aristas de un grafo y con la que se construyen también caminos.
Si la arista carece de dirección se denota indistintamente {a, b} o {b, a}, siendo a y b los vértices que une.
Si {a ,b} es una arista, a los vértices a y b se les llama sus extremos.
Aristas Adyacentes: Se dice que dos aristas son adyacentes si convergen en el mismo vértice.
Aristas Paralelas: Se dice que dos aristas son paralelas si vértice inicial y el final son el mismo.
Aristas Cíclicas: Arista que parte de un vértice para entrar en el mismo.
Cruce: Son dos aristas que cruzan en un punto.
Vértices
Son los puntos o nodos con los que está conformado un grafo. Llamaremos grado de un vértice al número de aristas de las que es extremo. Se dice que un vértice es 'par' o 'impar' según lo sea su grado.
Vértices Adyacentes: si tenemos un par de vértices de un grafo (U, V) y si tenemos un arista que los une, entonces U y V son vértices adyacentes y se dice que U es el vértice inicial y V el vértice adyacente.
Vértice Aislado: Es un vértice de grado cero.
Vértice Terminal: Es un vértice de grado 1.
ÁRBOLES
Es una estructura de datos formada por nodos los cuales están conectados por aristas. Un árbol se define como un tipo de grafo que no contiene ciclos.
Árbol Vacío: Un árbol puede estar vacío; es decir no contener ningún nodo.
Raíz: es el nodo que está al tope del árbol. Un árbol solo tiene una raíz.
Camino: es la secuencia de nodos que hay que visitar para llegar de un nodo a otro de un árbol.
Padre: En un árbol toda rama va de un nodo n1 a un nodo n2, se dice que n1 es padre de n2.
Hijo: todo nodo puede tener más de una arista que lo lleva a otro nodo por debajo de él. Estos nodos que se encuentran por debajo de un nodo dado se llaman hijos.
Hojas: son aquellos nodos que no tienen hijos. En un árbol solo puede haber una raíz pero puede haber muchas hojas.
Subárbol: Cualquier nodo se puede considerar como la raíz de un subárbol.
ARCHIVOS DIRECTOS O DE DISPERSIÓN
Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro. Sin embargo, aquí no hay concepto de ordenamiento secuencial.
Aprovecha la capacidad de los discos para entrar a cualquier bloque de dirección que se va a utilizar y eso requiere de un campo clave para cada registro como los métodos anteriores. A diferencia que su ordenamiento no es secuencial.
Son usados a menudo donde se necesita un acceso rápido, donde se la ejemplos son las guías telefónicas, tablas de precios, horarios y listas de nombres.
LA ESTRUCTURA DE UN ARCHIVO DIRECTO
Un archivo directo consiste en una colección de registros de longitud fija almacenados uno al lado del otro en un dispositivo de almacenamiento de acceso directo. El almacenamiento de este tipo de archivos se restringe a los DASD, tales como discos y tambores, porque el acceso a registros se hace generalmente en orden aleatorio.
Cada registro en un archivo de organización directa hace referencia por un número entero de dirección, el cual indica su distancia o desplazamiento desde el origen del archivo. Al primer registro en un archivo relativo se le asigna el valor 1, 2 al siguiente y así sucesivamente. De este modo, la dirección relativa de un valor entero que refleja su posición respecto al primer registro del archivo.Un archivo de organización relativa puede crearse con un programa en un lenguaje de alto nivel si es que el método de acceso del sistema operativo central es capaz de manejar esta organización, y si el compilador del lenguaje de interface con tal método de acceso.
Pues esta forma nos permite acceder de forma directa dando más funciones, probablemente rapidez en la búsqueda de datos
PARA DECLARAR UN ARCHIVO DE ACCESO DIRECTO
Se realiza con las palabras reservadas FILE OF, su sintaxis es la siguiente:
VariableArchivo : FILE OF TipoElementos;
Esta declaración se realiza en la sección correspondiente a la declaración de las variables.
Ejemplo:
PROGRAM Archivo_Tipeado;
VAR
Archivo : FILE OF Integer;
BEGIN
END.
Normalmente no se desea crear archivos que puedan almacenar un solo tipo de datos ya que se requerirían varios archivos, por ejemplo para alguna base de datos: uno para los nombres, otro para apellidos, otro para la edad, etc. Para evitar este inconveniente es posible usar registros del tipo RECORD, que permiten grabar en un solo registro un grupo de datos que pueden ser de diferentes tipos, uno de tipo INTEGER, uno de tipo STRING, etc. Los registros del tipo record deben ser declarados antes de las variables en una sección llamada TYPE con el siguiente formato:
La sección TYPE se escribe antes de la declaración de las variables.
Como ejemplo, si se quiere crear un archivo el que se guarden el nombre, domicilio, edad y estado civil de un grupo de personas, el primer paso a realizar es crear un registro que contenga todos estos campos:
TYPE
Datos = RECORD
Nombre : String[40];
Domicilio : String[60];
Edad : Integer;
EdoCivil : String[10];
END;
El siguiente paso es declarar un archivo del tipo Datos así como una variable del mismo tipo de los que se utilizarán en el archivo:
VAR
Archivo : FILE OF Datos;
Persona : Datos;
ARCHIVOS ALEATORIOS:
Es aquel en donde los datos se guardan en registros mediante una estructura definida de tipo Type (estructura definida por nosotros) también llamada UDT. Estos permiten acceder a cualquier parte del fichero en cualquier momento, como si fueran arrays en memoria. Las operaciones de lectura y/o escritura pueden hacerse en cualquier punto del archivo. En general se suelen establecer ciertas normas para la creación, aunque no todas son obligatorias:
• Abrir el archivo en un modo que te permita leer y escribir. Esto no es imprescindible, es posible usar archivos de acceso aleatorio sólo de lectura o de escritura.
• Abrirlo en modo binario, ya que algunos o todos los campos de la estructura pueden no ser caracteres.
• Usar funciones como fread y fwrite, que permiten leer y escribir registros de longitud constante desde y hacia un fichero.
• Usar la función fseek para situar el puntero de lectura/escritura en el lugar apropiado de tu archivo.
Los Archivos Aleatorios a diferencia de los archivos secuenciales, los archivos aleatorios almacenan datos en forma de registros, para leer datos de un archivo secuencial había que leer todo el archivo, es decir que no podíamos leer por ejemplo los datos que estuviesen en la línea 35 del mismo sin antes pasar por todos los datos anteriores, por eso su nombre de archivo secuencial.
Grabar datos en archivos aleatorios
Para grabar datos en un archivo de acceso aleatorio se utiliza la sentencia Put.
Un ejemplo paso a paso:
Primero declaramos una estructura de datos que contendrá la información de cada registro:
Private Type t_empleados
nombre As String * 15
apellido As String * 15
dirección As String * 30
edad As Integer
End Typ
Leer datos en archivos aleatorios
Para leer los registros o datos de un archivo aleatorio se utiliza la sentencia Get. Esta sentencia es exactamente igual que Put, pero la diferencia es que en vez de grabar los datos los recupera para poder utilizarlos luego en el programa
Ventaja de los archivos de acceso aleatorio
En comparación con los archivos de acceso secuencial, puede guardar significativamente la cantidad de espacio
...