Algorítmica III
Archivo Secuencial Indexado
Integrantes:
Guillermo Martínez
Gustavo Lublín
Roque Vera
Oscar Arias
Archivo
n Archivo de
Desbordamiento
Principal
Operaciones De Archivos Secuenciales
Indexados
Los archivos secuenciales son utilizados en aplicaciones de proceso
de lotes y son óptimos para dichas aplicaciones si se procesan todos
los registros. La organización secuencial de archivos es la única que
es fácil de usar tanto en disco como en cinta. Para las aplicaciones
interactivas que incluyen peticiones o actualizaciones de registros
individuales, los archivos secuenciales ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en un
orden secuencial simple de los registros. La organización física del
archivo en una cinta o disco se corresponde exactamente con la
ubicación lógica del archivo. En este caso, el procedimiento para
ubicar los nuevos registros en un archivo de pila separado, llamado
archivo de registro o archivo de transacciones. Periódicamente, se
realiza una actualización por lotes que mezcla el archivo de registro
con el archivo maestro para producir un nuevo archivo en secuencia
correcta de claves. Las operaciones que se realizan son:
Desventajas
- Desaprovechamiento del espacio por quedar huecos intermedio
cada vez que se actualiza el archivo.
Los soportes que se utilizan para esta organización son los que
permiten el acceso directo, los discos magnéticos. Los soportes de
acceso secuencial no pueden utilizarse, ya que no dispone de
direcciones para sus posiciones de almacenamiento.
Ejemplos de utilización en pseudocódigos
Consulta
Tenemos un fichero DATOS.DAT que está indexado por el campo DNI
y tiene la siguiente estructura: CI, NOMBRE, APELLIDOS, DIRECCIÓN,
CIUDAD.
Crear un programa que nos permita consultar un registro siempre que
queramos.
Variables
num= introducir el CI a buscar
res= para buscar más datos
Pseudocódigo
res="S"
abrir DATOS asociado a CI
mientras res="S"
num=0
cls
en 8,20 imprime "C.I. a buscar: "
en 8,38 introduce num
buscar num
si found ()
en 10,12 imprime "Nombre: ", nombre
en 12,28 imprime "Apellidos: ", apellidos
en 14,55 imprime "Dirección: ", direccion
en 16,69 imprime "Ciudad: ", ciudad
else
en 12,20 imprime "No está"
en 16,20 imprime "Pulse RETURN para continuar"
detener-listado
fin si
res=espacios(1)
hacer mas
fin mientras
cerrar DATOS
cerrar índices
fin del programa
Variables
num=para introducir el ci del nuevo registro.
res=para seguir introduciendo más registros.
Pseudocódigo
res="S"
abrir DATOS asociado a CI, APELLIDOS, CIUDAD
hacer mientras res="S"
CLS
en 5,10 introduce "C.I.: ", num
buscar num
si found()
en 10,10 imprime "Alta duplicada"
en 15,10 imprime "Pulse ENTER para continuar"
detener-listado
else
en 7,5 introduce "Nombre: ", nombre
en 9,5 introduce "Apellidos: ", apellidos
en 11,5 introduce "Dirección: ", direccion
en 13,5 introduce "Ciudad: ", ciudad
ci=num
posicionarse al final del fichero de datos
escribir registro
fin si
res= ""
hacer MAS
fin mientras
cerrar fichero de DATOS
cerrar fichero de indices
fin
Bajas
Hacer un programa que nos permita dar bajas en el fichero DATOS.DAT, que
está indexado por los campos CI,APELLIDOS y CIUDAD, controlando las
bajas inexistentes.
Variables
num=para introducir el ci a dar de baja
res=para seguir introduciendo más registros
Pseudocódogo
res="S"
abrir DATOS asociado a CI, APELLIDOS, CIUDAD
mientras res="S"
cls
en 5,10 imprime "C.I.: "
en 5,15 introduce num
buscar num
si found()
en 7,5 introduce "Nombre: ", nombre
en 9,5 introduce "Apellidos:", apellidos
en 11,5 introduce "Dirección: ", direccion
en 13,5 introduce "Ciudad: ", ciudad
res=""
mientras res <> "S" and res <> "N"
res=""
en 20,44 introduce "Deseas borrarlo (S/N): ", res
fin mientras
si res="S" or res="s"
borrar registro
fin si
else
en 12,10 imprime "Baja inexistente"
en 16,10 imprime "Pulse ENTER para continuar"
detener-listado
fin si
res=""
hacer MAS
fin mientras
cerrar fichero de DATOS
cerrar fichero de indices
fin
Listado
Tenemos el fichero DATOS.DAT, que está indexado por el campo
APELLIDOS, cuyos campos son:
Hacer un programa que nos permita listar, por pantalla, todos los registros
del fichero, controlado el salto de página cuando llegue a la línea 20
(veinte).
Variables
fi=controlador de las filas
Pseudocódigo
Abrir DATOS asociado a APELLIDOS
fi=22
hacer mientras no sea EOF()
si fi=22
hacer CABECERA
fin del if
en fi,2 imprime ci
en fi,12 imprime nombre
en fi,28 imprime apellidos
en fi,55 imprime direccion
en fi,69 imprime ciudad
fi=fi+1
si fi=20
en 22,20 imprime "Pulse ENTER para continuar"
detener-listado
fi=22
fin si
leer siguiente registro
fin mientras
cerrar DATOs
cerrar indices
fin
Conclusión
Este trabajo nos ha sido de mucha utilidad ya que durante su realización
comprendimos la enorme ventaja de los archivos secuenciales indexados y
como utilizarlos. Ya que con estos conocimientos podremos seguir
avanzando en el largo camino de la programación.
Esperamos que este trabajo que fue realizado con mucho esfuerzo y esmero
por parte de los integrantes del grupo sea del agrado y provecho de todo
aquel que guste de leerlo.
Bibliografía
Metodología de la Programación a través de Pseudocódigo. M. Angel
Rodríguez Almeida. Editorial McGraw-Hill.
www.geocities.com
www.itnuevolaredo.edu.mx