Accion Actualizar_Clientes es:
Ambiente
Fecha = Registro
dia: 1...31
mes: 1...12
anio: n(4)
Fin Registro
Clientes = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
nom_y_ape: an(100)
saldo_actual: real
fecha_alta: Fecha
fecha_baja: Fecha
Fin Registro
Clientes_Act, Arch_Clientes: Archivo de Clientes ordenado por Clave
reg_clientes: Clientes
Movimientos = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
cod_mov: 0...99
nom_y_ape: an(100)
fecha_mov: Fecha
monto: real
detalle: an(100)
categoria: 1...6
tipo: ("I", "E")
Fin Registro
Arch_Mov: Archivo de Movimientos ordenado por Clave y cod_mov
reg_mov: Movimientos
Subaccion Leer_Mae es:
Leer(Arch_Clientes, reg_clientes)
Si FDA(Arch_Clientes) entonces
reg_clientes.Clave := HV
Fin Si
Fin Subaccion
Subaccion Leer_Mov es:
Leer(Arch_Mov, reg_mov)
Si FDA(Arch_Mov) entonces
reg_mov.Clave := HV
Fin Si
Fin Subaccion
Subaccion Proceso_Modif es:
Mientras (reg_clientes.Clave = reg_mov.Clave) hacer
Si (cod_mov = 0) entonces
Esc("Error. El usuario ya se encuentra dado de alta.")
Sino
Si (cod_mov > 0 o cod_mov < 99) entonces
Segun reg_mov.tipo hacer
I: reg_clientes.saldo_actual :=
reg_clientes.saldo_actual + reg_mov.monto
E: reg_clientes.saldo_actual :=
reg_clientes.saldo_actual - reg_mov.monto
Fin Segun
Sino
Si (cod_mov = 99) entonces
reg_clientes.fecha_baja := reg_mov.fecha_mov
Fin Si
Fin Si
Leer_Mov
Fin Mientras
Esc(Clientes_Act, reg_clientes)
Leer_Mae
Fin Subaccion
Subaccion Proceso_Alta es:
Si (cod_mov = 0) entonces
reg_clientes.id_sucursal := reg_mov.id_sucursal
reg_clientes.id_cliente := reg_mov.id_cliente
reg_clientes.nom_y_ape := reg_mov.nom_y_ape
reg_clientes.saldo_actual := 0
reg_clientes.fecha_alta := reg_mov.fecha_mov
reg_clientes.fecha_baja := ""
cont_altas := cont_altas + 1
Leer_Mov
Proceso_Modif
Fin Si
Fin Subaccion
Proceso
Abrir E/(Arch_Clientes)
Abrir E/(Arch_Mov)
Abrir S/(Clientes_Act)
Leer_Mae
Leer_Mov
cont_altas := 0
Mientras (reg_clientes.Clave <> HV o reg_mov.Clave <> HV) hacer
Si (reg_clientes.Clave < reg_mov.Clave) entonces
Esc(Clientes_Act, reg_clientes)
Leer_Mae
Sino
Si (reg_clientes.Clave = reg_mov.Clave) entonces
Proceso_Modif
Sino
Proceso_Alta
Fin Si
Fin Si
Fin Mientras
Esc("Total de Altas: ", cont_altas)
Cerar(Arch_Clientes)
Cerar(Arch_Mov)
Cerar(Clientes_Act)
Fin Accion
Punto 2
Accion Informe_Banco es:
Ambiente
Fecha = Registro
dia: 1...31
mes: 1...12
anio: n(4)
Fin Registro
Clientes = Registro
Clave = Registro
id_sucursal: n(5)
id_cliente: n(6)
Fin Registro
nom_y_ape: an(100)
saldo_actual: real
fecha_alta: Fecha
fecha_baja: Fecha
Fin Registro
Clientes_Act, Arch_Clientes: Archivo de Clientes ordenado por Clave
reg_clientes: Clientes
Sucursales = Registro
id_suc: n(5)
nom_suc: an(100)
direccion: an(100)
localidad: an(100)
Fin Sucursales
Arch_Suc: Archivo de Sucursales indexado por id_suc
reg_suc: Sucursales
M: arreglo de [1...16, 1...4] de enteros
i: 1...16
j: 1...4
Proceso
Para i = 1 hasta 16 hacer
Para j = 1 hasta 5 hacer
M[i, j] := 0
Fin Para
Fin Para
Abrir E/(Arch_Clientes)
Abrir E/(Arch_Suc)
Leer(Arch_Clientes, reg_clientes)
reg_suc.id_suc := reg_clientes.Clave.id_suc
Leer(Arch_Suc, reg_suc)
Si EXISTE entonces
Mientras (reg_suc.id_suc = reg_clientes.Clave.id_suc) hacer
//itero sobre las filas
Para i = 1 hasta 16 hacer
Segun (reg_clientes.saldo_actual) hacer
< 100000:
M[i, 3] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
< 1500000:
M[i, 2] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
> 1500000:
M[i, 1] := M[i, j] + 1
M[i, 4] := M[i, 4] + 1
M[16, j] := M[16, j] + 1
Fin Segun
Fin Para
Leer(Arch_Clientes)
Fin Mientras
Sino
Esc("Sucursal no encontrada")
Fin Si
Esc("CATEGORIA DIAMANTE CATEGORIA ORO CATEGORIA ESTANDAR TOTAL POR
SUCURSAL")
Para i = 1 hasta 16 hacer
Si i = 16 entonces
Esc("TOTAL POR CATEGORIA)
Sino
Esc("Sucursal: ", i)
Fin Si
Para j = 1 hasta 4 hacer
Esc(M[i, j])
Fin Para
Fin Para
Cerar(Arch_Clientes)
Cerar(Arch_Mov)
Fin Accion