Está en la página 1de 8

PROCESOS MÚLTIPLES CON

ARCHIVOS
Mezcla
TIPOS DE MEZCLA

DIRECTA INDIRECTA
Formato de los igual distinto
registros de los
Ficheros de Entrada
Formato de los igual al de los ficheros de igual a alguno de los
registros entrada ficheros de entrada o una
del Fichero de Salida combinación de estos

Cantidad de registros es igual a la sumatoria de las no es posible predecir


del Fichero de Salida cantidades de los registros de
los ficheros de entrada:
n
# As = S # Ai
i=1
CICLO DE APAREO INCLUYENTE
MIENTRAS (Clave1 <> HV) o (Clave2 <> HV) o .... (ClaveN <> HV) HACER

PROCESO

FMientras.

Para este ciclo presentamos subacciones


nuevas para Leer los registros por archivo.
Subaccion Leer_Archivo1 Es
Leer(Archivo1, Reg_Archivo1)
Si FDA(Archivo1) entonces
Reg_Archivo1.clave:= HV
Fin Si
Fin Subaccion
CICLO DE APAREO EXCLUYENTE
MIENTRAS NO FDA (Arch 1) y NO FDA(Arch 2) HACER

PROCESO de registros comunes

FMientras.

MIENTRAS NO FDA (Arch 1) HACER ** Uno de estos ciclos


por cada fichero
PROCESO de Registros del Arch 1 interviniente **

Fmientras.

MIENTRAS NO FDA (Arch 2) HACER

PROCESO de Registros del Arch 2

FMientras.
Para tener en cuenta

Si hay más de 2 ficheros se necesitarán más ciclos, además del


ciclo principal. Por ej: para 3 ficheros se necesitarán 7 ciclos:
1 - Condición: NO FDA (Arch 1) y NO FDA (Arch 2) y NO FDA (Arch
3) - Ciclo principal que procesa registros comunes.
2 - Condición: NO FDA (Arch 1) y NO FDA (Arch 2)
3 - Condición: NO FDA (Arch 1) y NO FDA (Arch 3)
4 - Condición: NO FDA (Arch 2) y NO FDA (Arch 3)
5 - Condición: NO FDA (Arch 1)
6 - Condición: NO FDA (Arch 2)
7 - Condición: NO FDA (Arch 3)
ENUNCIADO: Ejercicio 2.16

Construir un algoritmo que a partir de un fichero de películas nuevas conteniendo:

P_Nuevas
NRO_PELICULA TITULO GENERO CANT_COPIAS FECHA_ESTRENO

y otro fichero de peliculas existentes, ambos ordenados por película,

Películas
NRO_PELICULA TITULO GENERO CANT_COPIAS FECHA_ESTRENO

Genere un único archivo (con el mismo formato de los


ficheros de entrada) que contenga todas las películas.
Considerar que hay un solo registro por película y no se
repiten entre ficheros.
Accion 2.16 Es
Ambiente
Fecha = Registro
DD: 1…31
MM: 1…12
AA: 2000…2020
Fin Registro
Pelicula = Registro
Nro_Pel: N(6)
Titulo: AN(30)
Genero: AN(15)
Cant_Copias: N(3)
Fecha_Estreno: Fecha
Fin Registro
Arch_Act, Peliculas, P_Nuevas: Archivo de Pelicula
R_A, R_P, R_PN: Pelicula
Algoritmo
Abrir e/(Peliculas); Leer(Peliculas,R_P)
Abrir e/(P_Nuevas); Leer(P_Nuevas, R_PN)
Abrir s/(Arch_Act);
Mientras NFDA(Peliculas) y NFDA(P_Nuevas) hacer
Si R_P.Nro_Pel < R_PN.Nro_Pel entonces
Mientras R_P.Nro_Pel < R_PN.Nro_Pel hacer
R_A:=R_P; Escribir(Arch_Act, R_A)
Leer(Peliculas, R_P) Qué tipo de
Fin Mientras ciclo es?
Sino
Mientras R_P.Nro_Pel > R_PN.Nro_Pel hacer
R_A:=R_PN; Escribir(Arch_Act, R_A)
Leer(P_Nuevas, R_PN)
Fin Mientras
Fin Si
Fin Mientras
Mientras NFDA(Peliculas) hacer
R_A:=R_P; Escribir(Arch_Act, R_A) Por qué son
Leer(Peliculas, R_P) necesarios estos
Fin Mientras ciclos fuera del
Mientras NFDA(P_Nuevas) hacer primer ciclo?
R_A:=R_PN; Escribir(Arch_Act, R_A)
Leer(P_Nuevas, R_PN)
Fin Mientras
Cerrar(Peliculas); Cerrar(P_Nuevas); Cerrar(Arch_Act);
Fin Acción

También podría gustarte