Documentos de Académico
Documentos de Profesional
Documentos de Cultura
U.I
TECNICATURA UNIVERSITARIA EN
PROGRAMACIÓN
ASIGNATURA:
ALGORITMOS Y ESTRUCTURAS DE
DATOS I
UNIDAD I
Apartado 8
1
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
ÍNDICE
Introducción ................................................................................................................................ 3
Actividades ............................................................................................................................... 11
2
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
Introducción
La organización secuencial indexada mantiene similitudes con el esquema de actualización de
archivos indexados, aunque seremos capaces de realizar operaciones más complejas de las que
podíamos hacer con esta otra organización.
(1): al tratarse de un archivo secuencial indexado, la clave significa ahora tanto orden como
acceso.
(2): el archivo de novedades (secuencial) no tiene por qué estar ordenado para llevar a cabo la
actualización de un maestro de tipo secuencial indexado.
(3): la clave en este archivo tiene el nombre identificacion, es decir que es del mismo tipo que el
campo clave de ArchMae.
(4): responde a los 3 tipos de movimientos posibles: alta(A), baja(B) y modificación (M).
3
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
El marco general del esquema de actualización para
INICIO ActualizacionSecIndexadoConInforme
Variables
reg: regNov
archM: archivo de regMaestro
archN: archivo de regNov
(1): al abrir al archivo como de entrada/salida en forma dinámica, podremos utilizar los
operadores de acceso directo para la actualización, y luego los de búsqueda inexacta para llevar
a cabo el informe final.
4
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
Proced PosibleAlta (val reg: registro de RegNovedad)
VAR LOCAL: regM: registro de RegMaestro
Ahora, una vez finalizada la actualización, se procede a la generación del informe. Como se abrió
al archivo de forma dinámica, podemos hacer uso del operador de acceso inexacto posicionarse()
y leerSig() para llevar a cabo un recorrido secuencial a partir del registro en el que se posicionó
posicionarse() hasta que lleguemos al final del archivo:
INICIO Informe es
VAR LOC: fin: lógico, reg: regMaestro, claveDeseada: tClave
(1): posicionarse() ubicará el puntero frente al primer registro de clave mayor o igual a la
deseada, y de no haber ninguna le asignará a fin el valor verdadero.
(2): como se solicita recorrer todos los registros desde aquellos con clave mayor o igual a la
ingresada por el usuario, no hace falta agregar más nada en el Mientras, más allá del control de
fin de archivo.
5
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
Ejemplo - Actualización con alternativa
En este caso, realizaremos un ejercicio en el que hay que actualizar un archivo secuencial
indexado, pero con la particularidad de que la lógica de este implica tener que, ante cierta
circunstancia específica, realizar una búsqueda inexacta, explotando las posibilidades que esta
organización de archivos nos brinda.
Vayamos al enunciado:
6
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
Comentarios:
- Finalmente, nos piden que por fin de proceso encontremos el artículo de mayor stock
valorizado. Esto no lo pudimos hacer a medida que leíamos el archivo de movimientos, ya que
nada nos aseguraba que pasaríamos por absolutamente todos los registros del archivo
ARCHSTOCK, así que vamos a hacer uso de la capacidad de recorrido secuencial de los archivos
Secuencial Indexados para hacer esto directamente en Informe() cuando ya se hayan procesado
todos los movimientos, lo cual llevaremos a cabo aplicando un corte de control. Para cada
artículo nuevo con el que nos vayamos topando en nuestro recorrido, iremos a buscar al
ARCHIVOARTICULOS el PrecioUnitario correspondiente (archivo Indexado, es decir, de acceso
directo).
INICIO ejemplo_actualizacion_con_alternativa
Variables:
Arch: archivo de RegMov
ArchA: archivo de RegArt
ArchS: archivo de RegStock
reg: registro de RegMov
tClave = REGISTRO
* articulo: cadena[4]
* deposito: cadena[4]
fReg
Abrir(arch), E, Secuencial
Abrir(archA), E, Directo
Abrir(archS), E/S, Dinámico
7
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
8
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
fSegun U.I
fProced
'2': Alternativa(reg)
fSegun
fProced
9
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
Proced Informe ()
VAR LOCALES: regS: registro de RegStock, regA: registro de RegArt, fin: lógico,
MAXART, artAnt: cadena[4]
SU, SUMAX: real
cont: entero
Id: tClave
existe: lógico
/* como hay que recorrer el archivo completamente para encontrar el producto de mayor
stock valorizado, se le asigna blanco a todos los campos de la clave */
Id.articulo ← b
Id.deposito ← b
10
TECNICATURA UNIVERSITARIA EN PROGRAMACIÓN
Algoritmos y Estructuras de Datos I - Unidad I - 8
U.I
Actividades
Le pedimos que a continuación realice los ejercicios de la Práctica N° 3
11