Upload
patriciau
View
211
Download
0
Embed Size (px)
Citation preview
Algorítmica y Programación I
Archivos
Algorítmica y Programación I
Algorítmica y Programación I
Hasta aquí hemos manipulado datos (información) contenidos en variables cuyos tipos son simples o estructurados. Estos tipos de variables se almacenan en memoria RAM, y esa información se almacena mientras el algoritmo que las utilice se esté ejecutando. Es evidente que se necesita tener información perpetua para todos los procesos que se realicen por medio de una computadora, por lo que surge la necesidad de un “almacén”para contenerlos. Esto se logra por medio de un archivo, el que se guardará en algún soporte no volátil: disco, cinta, zip, diskette, pen_drive y otros. En cualquiera de estos, la información queda preservada aunque el programa finalice.El archivo es la estructura de datos también conocida como estructura de almacenamiento, y se asocia a un dispositivo de memoria auxiliar permanente donde se archiva la información.
Algorítmica y Programación I
Definiciones:
Un archivo es una colección de registros semejantes, guardados en dispositivos de almacenamiento secundario de la computadora.
Un archivo es una estructura de datos que guarda una colección de elementos del mismo tipo en un dispositivo de almacenamiento secundario de una computadora.
Podemos observar que un archivo es una estructura de datos homogénea. Se caracteriza por:
• crecimiento ( se incorporan nuevos elementos )
• modificaciones que se efectúan sobre él (se pueden alterar datos o quitar).
Algorítmica y Programación I
Administración de archivosEn un disco rígido se puede almacenar un gran número de archivos (físicos)
S.O.
Sistema encargado de los detalles de almacenamiento.
Un programa procesa archivos (lógicos) independientemente del lugar físico en el que estáalmacenado
Programa XXX
Algorítmica y Programación I
El programa referencia indirectamente al archivo físico, utilizando para ello un nombre lógico, que se denomina archivo lógico
Algorítmica y Programación I
Antes de que el programa pueda operar sobre un archivo, el SO debe recibir instrucciones para hacer un enlace entre el nombre lógico que utilizará el algoritmo y el archivo físico. Cada lenguaje tiene su propia instrucción (o conjunto de instrucciones) para ese fin.
Algorítmica y Programación I
Operaciones básicas sobre archivos
• ABRIR• CERRAR• LEER• GRABAR
Algorítmica y Programación I
ABRIR ( archivo ): Esta operación debe ser usada previamente a cualquier otra, para preparar la utilización de archivo.
Para Lectura: Esta operación se utiliza cuando el archivo ya está creado y se
desea acceder a la información que se encuentra en él.
Para Escritura: Esta operación se utiliza cuando el archivo no existe y se
necesita crearlo para grabar información en él.
Es necesario aclarar el tipo de apertura del archivo.
Ejemplo
Abrir (Facultad ) -- Para lectura {se abre un archivo existente}
Abrir (Facultad) -- Para escritura { se abre un archivo que no
existe}
La apertura de un archivo establece una posición corriente en el mismo, la cual indica el dato que va a ser leído, o el lugar sobre el que va a ser escrito. Todos los lenguajes la utilizan para operar con los archivos, aunque cada uno lo maneja de manera diferente.
Algorítmica y Programación I
CERRAR ( archivo ): Se utiliza esta operación una vez que se ha terminado de
procesar la información de un archivo. Éste ha sido abierto para lectura o para
escritura.
Ejemplo
Cerrar (Facultad) -- se cierra el archivo que se abrió previamente
Cualquier acceso que se pretenda realizar sobre un archivo cerrado será no válido
Al cerrarse un archivo, se graba una marca en éste que señala el fin de
archivo
Algorítmica y Programación I
LEER( archivo, dato ): Se utiliza para leer dato desde el archivo. Dato está en
la posición actual (o corriente) de archivo. Esta lectura colocará el contenido
de dato del archivo en una variable del mismo tipo. Si se trata de un registro,
lee un registro desde el archivo, y lo almacena en una variable del mismo tipo
registro.
Es importante aclarar que con cada realización de la operación Leer, el
indicador de posición actual se irá modificando hasta avanzar hacia el fin-de-
archivo.
Ejemplo
Leer(Facultad, Profesor) -- coloca en la variable Profesor
-- información de un registro del archivo Facultad
Algorítmica y Programación I
GRABAR( archivo, dato ): Se utiliza para agregar un registro en el archivo,
colocando la información de la variable registro en un registro del archivo.
Aclaramos que con cada operación Grabar que se realiza, se irá actualizando
la marca de fin-de-archivo.
Ejemplo
Grabar (Facultad, Profesor) -- agrega información de la variable
-- profesor en el archivo Facultad
Algorítmica y Programación I
FIN ( archivo ): Esta operación (función) se utiliza para detectar el fin del archivo. En caso de que sea falso, podemos continuar leyendo información desde el archivo. Si es verdadero, indica que se llegó al final.
Una función para procesar archivos
Algorítmica y Programación I
Soportes que permiten acceso directo
Soportes que permiten sólo acceso secuencial
Los soportes y el acceso
Algorítmica y Programación I
Técnicas de organización y acceso a un archivo
• acceso secuencial
• acceso directo
Según la manera en que se organizan los registros podemos tener:
Algorítmica y Programación I
Técnicas de organización y acceso a un archivo
• Secuencial
• Directo
• Secuencial indexado
De acuerdo a su organización, un archivo puede ser:
Algorítmica y Programación I
El acceso secuencial permite acceder a los registros o elementos uno tras
otro, en el orden físico en que están guardados.
El acceso secuencial permite acceder a los registros o elementos uno tras
otro, en el orden físico en que están guardados.
El acceso directo permite acceder a un registro determinado, sin
necesidad de haber accedido a sus predecedores.
El acceso directo permite acceder a un registro determinado, sin
necesidad de haber accedido a sus predecedores.
La organización define la manera en que los registros se distribuyen sobre el almacenamiento secundario:• en la Organización Secuencial, los registros se graban en forma consecutiva, y se recuperan en el mismo orden.• en la Organización Directa, los registros se recuperan desde su posición k-ésima, la que debe conocerse previamente• la Organización Secuencial Indexada utiliza estructuras de datos auxiliares para permitir un acceso seudo-directo.
La organización define la manera en que los registros se distribuyen sobre el almacenamiento secundario:• en la Organización Secuencial, los registros se graban en forma consecutiva, y se recuperan en el mismo orden.• en la Organización Directa, los registros se recuperan desde su posición k-ésima, la que debe conocerse previamente• la Organización Secuencial Indexada utiliza estructuras de datos auxiliares para permitir un acceso seudo-directo.
Algorítmica y Programación I
Procesamiento de un archivo
Podemos manipular un archivo en el soporte magnético en el que estáalmacenado, como para buscar información, imprimirla, corroborarla, etc.
Algorítmica y Programación IAlgorítmica y Programación I
Procesamiento de un archivo
Para procesar un archivo es suficiente con acceder a éste y recuperar la información. Cada lenguaje de programación tiene sus instrucciones de apertura, acceso, lectura, grabación y cierre.Nosotros veremos que para manipular la información de un archivo a fin de ordenarla o realizar una búsqueda binaria, es conveniente bajar el archivo a un vector, y una vez allí, se puede: • ordenar el vector mediante cualquiera de los métodos que hemos visto.• realizar sobre esa estructura todas las operaciones necesarias.• almacenar esa información en un soporte.
Algorítmica y Programación IAlgorítmica y Programación I
El tipo estructurado que emplearemos es el arreglo unidimensional (un vector), donde cada elemento de éste será un registro que contendrá la información de cada registro lógico del archivo que estemos procesando. TiposT_Reg_Persona = Registro
Nombre : cadena (20)Edad : enteroEstado_Civil : cadena (25)Salario :flotante
FinRegistro
T_Archi_Persona = archivo de T_Reg_Persona --información en dispositivo de
-- almacenamiento secundario
T_Vec_Persona = arreglo (100) de T_Reg_Persona -- información en memoria
-- de acceso directo
VariablesProfesor : T_Reg_PersonaFacultad : T_Archi_Persona -- permite mantener información del
-- personal de la Facultad
InfoFacultad : T_Vec_Persona
La estructura de Datos
Algorítmica y Programación IAlgorítmica y Programación I
Bajar un archivo: la información de un archivo -existente en almacenamiento secundario (disco, cinta, etc.)- se almacena en una variable del tipo estructurado.
Procedimiento BajarArchivo( Facu : ArchivoPersona;InfoFacu :T_Vec_Persona;
CantPersonas : entero )VariablesRegi : T_Reg_PersonaI : enteroComienzaI � 0 -- inicialmente suponemos que no existe información en el archivoAbrir (Facu) -- Para lecturaMientras no Fin(Facu) Hacer
ComienzaI � I+1Leer (Facu, Regi)InfoFacu (I) � Regi -- coloco en la posición I-esima del vector la
-- información del registro leídoTermina
CantPersonas � I -- tenemos i-elementos en el vector de registrosCerrar (Facu)Termina
Algorítmica y Programación IAlgorítmica y Programación I
Subir un archivo: se graba la información desde memoria central sobre un archivo que se encuentra en almacenamiento secundario.
Procedimiento SubirArchivo( Facu : ArchivoPersona, InfoFacu : T_Vec_Persona,
CantPersonas : entero )
VariablesRegi : T_Reg_PersonaI : enteroComienzaAbrir (Facu) --Para escrituraPara I � 1 hasta CantPersonas Hacer -- coloco los i-elementos del vector en
-- el archivo
comienzaRegi ← InfoFacu (I )Grabar (Facu, Regi ) -- grabo el i-esimo elemento del vector en el archivo.
-- Esta operación también modifica la marca fin-de-archivo
termina
Cerrar ( Facu )Termina
… seguiremos en la próxima con más aspectos de los archivos…..