Upload
others
View
17
Download
0
Embed Size (px)
Citation preview
20/07/2012
1
Programación Estructurada
Dr. Héctor Saldaña Aldana
Objetivos específicos de aprendizaje
Al finalizar esta unidad el alumno será capaz de organizar y utilizar archivos secuenciales, directos e indexados
20/07/2012
2
Introducción
Hemos trabajado arreglos de datos en memoria RAMmemoria RAM.
Inconvenientes: Limitación de la memoria.
Trabajar con datos generados en la memoria.
No persistencia de los datos.
Sólo aplicaciones sencillas.
Introducción
Para tratar con grandes cantidades de informacióninformación
Que sean persistentes en el tiempo
Guardados en dispositivos externos (discos CD, DVD, cintas magnéticas, memorias electrónicas, etc.)
Se requiere de una estructura de datos llamada ARCHIVO.
20/07/2012
3
Introducción
Podemos almacenar:P ( C C J Vi l B i Programas (en C, C++, Java, Visual Basic, etc.)
Gráficos
Textos
Datos
I á Imágenes
Audio y video
Definición
Una Archivo es una estructura de almacenamiento de datos externaalmacenamiento de datos externa
Es una memoria externa (a diferencia de la RAM que es interna)
Características: Persistencia
Su uso requiere transferirlos a la memoria interna
20/07/2012
4
Estructura
Están formados por REGISTROS Formato preestablecido Formato preestablecido Cantidad finita e indeterminada Residen en un dispositivo de
almacenamiento externo La información está almacenada en forma
permanente (en teoría) Son independientes de los programas que
los usan Alta capacidad de almacenamiento
Registros lógicos y físicos
Registrológico
Simple
Complejo
20/07/2012
5
Registros lógicos y físicos
Un registro físico es el fragmento de archivo que el sistema operativo puedearchivo que el sistema operativo puede transferir en una sola operación de entrada o salida
Estructura de los registros
Un registro lógico está dividido enC Campos○ Subcampos
Para diferenciar un registro de otro se utiliza un campo llamado campo llave
Permite identificar de manera unívoca a cada uno de los registros del archivo
Ejemplos Archivo de alumnos
20/07/2012
6
Estructura de los registros
Longitud de los registrosFij Fija
Variable
Nombre del archivo Externo (SO)
Interno (programa)
Tipos de archivos
Según su función
Permanentes○ De situación○ De constantes○ Históricos
De movimientos○ Temporales
De Trabajo○ *.bak
20/07/2012
7
Tipos de archivos
Según su función
Movimientos
Trabajo ○ De situación
○ De constantes
○ Históricos
20/07/2012
8
Acceso secuencial
Para accesar un registro dentro del archivo de datos se deben recorrerarchivo de datos, se deben recorrer todos los registros precedentes. Por ejemplo: Archivos en una cinta
magnética
Acceso directo
En este modo se pueden accesar los registros del archivos de datos deregistros del archivos de datos de manera directa, es decir, no se tiene que al principio del archivo y recorrerlo hasta llegar al registro deseado.
Sólo es posible en dispositivos que permiten accesos direccionables. Por ejemplo: Discos duros, diskettes, CD’s,
etc.
20/07/2012
9
Acceso directo
El acceso se puede hacer por medio de:U ú d i t Un número de registro
Llave de acceso (clave de acceso)
Clasificación de archivos
Por el modo de accesarlos:A hi i l Archivos secuenciales
Archivos de acceso directo
Archivos secuenciales indexados
20/07/2012
10
Operaciones sobre archivos
No actúan sobre los registros sino sobre el archivo completoel archivo completo Creación del archivo Lectura de los registros del archivo Clasificación u ordenación Actualización○ ABC (Altas, Bajas y Cambios)( , j y )
Partición Fusión o mezcla Borrado de archivo
20/07/2012
11
Las operaciones sobre los registros de un archivos son las más importantesun archivos son las más importantes, pues es allí en donde está el verdadero procesamiento de la información: Consulta Modificación Borrado○ Por marca○ Real
Inserción
Archivos secuenciales
Se crean para cualquier tipo de dispositivo de almacenamientodispositivo de almacenamiento
Los registros son secuenciales (tienen posiciones consecutivas en la memoria)
Tienen el mismo orden en el que fueron introducidas
Se pueden ver como una lista lineal
20/07/2012
12
Archivos secuenciales
Acceso: depende del tipo de almacenamiento:almacenamiento: No Direccionable○ Hay que leer o pasar por todos los anteriores
Direccionable○ Acceso mediante un número de registro
Archivos secuenciales
Estos archivos pueden implementarse en Di iti di i bl ( i t t ) Dispositivos no direccionables (cintas, etc)
Dispositivos direccionables (discos, CD’s, etc.) Archivos secuenciales ligados (lista enlazada)
Ventajas
Desventajas
20/07/2012
13
Creación
Usando un simple editor de textosBl k d t (Wi d ) Block de notas (Windows)
gedit (Linux)
Entornos integrados (IDE’s)
Por medio de un programa
Pseudocódigo para crear un archivo secuencial
inicioabrir archivo para escribirleer(condicion)mientras (condicion sea cierta)leer(datos)escribir en registro de archivo(datos)l ( di i )leer(condicion);
fin_mientrascerrar archivo
fin
20/07/2012
14
Recorrido de un archivo secuencial El archivo fue creado y existe
Puede recorrerse desde el primer registro hasta el último
Después del último registros hay una marca de FIN DE ARCHIVO (EOF: EndOfFile)
Se puede recorrer el archivo mientras no se detecte esta marca de EOF.
Pseudocódigo de recorrido
<RECORRIDO>i i iinicioabrir archivoSi hay error de apertura
escribir(**Error de apertura**)en otro casoleer registro de archivomientras (no EOF)<procesar registro>p gleer registro de archivo(registro)
Fin mientrascerrar archivo
Fin_Sifin
20/07/2012
15
Búsqueda secuencialUn subprograma de búsqueda esté o no ordenado
INTERFAZPropósito: Buscar secuencialmente un elemento de un archivoEntradas: El elemento a buscar y el nombre del archivoPrecondiciones: ninguna Salidas: un número enteroPostcondiciones: los siguientes valores:
- Número de registro que ocupa el elemento buscado
- -1 si el elemento no se encuentra- 0 hubo un error de apertura de archivo
Pseudocódigo de búsquedaEntero BusquedaSecAr(CampoBuscado, NomArchivo)Inicioentero Ind =-1, NumReg=0entero Ind 1, NumReg 0Ttipo registro /*Tipo de registro: básico o definido*/ abrir NomArchivo para leerSi error de aperturaInd =0
en otro casoleer registro de NomArchivo(registro)Mientras (no EOF & Ind==-1)NumReg++Si(CampoRegiustro == CampoBuscado)Ind = NumReg
FinSileer registro de NomArchivo(registro)
FinMientras
20/07/2012
16
Pseudocódigo de búsquedaCerrar NomArchivo
FinSIRegresar(Ind)
FinBuscar
Los archivos deben estar abiertos el menor tiempo posiblemenor tiempo posible La apertura bloquea el archivo y nadie más
lo puede accesar
La apertura de archivos puede hacerse dentro de los subprogramas o en el
i i lprograma principal