Programación III |
Final |
02 / 2005 | Altillo.com |
Se está estudiando una ley para que se efectúe la devolución de parte del IVA para todas las compras, sean estas con tarjetas o con efectivo. Ante esta alternativa la DGI está preparando un programa que permita controlar posibles evasiones impositivas mediante un control entre los ingresos recibidos por una persona (sueldos, facturaciones, etc) y los egresos de su grupo familiar (todas las compras y servicios pagados). Para ello se cuenta con los siguientes archivos:
INGRESOS: contiene un registro por cada cobro que haya recibido una persona (como ya se dijo, todos los montos facturados, los sueldos cobrados y cualquier otro ingreso que posea la persona)
Organización Indexada.
Clave Primaria: IN-TIPO-INSCR + IN-NRO-INSCR + IN-FEC-COBRO + IN-SECUENCIA
Clave Secundaria: IN-PROCESADO + IN-TIPO-INSCR + IN-NRO-INSCR (Admite duplicados)
Diseño
Campo | Tipo | Ancho | Desc |
IN-Registro | Nombre del registro | ||
in-procesado | C | 1 | Marca si el registro ha sido procesado o no (S/N) |
IN-TIPO-INSCR | C | 1 | Tipo de inscripción (L=Cuil / T=Cuit) |
IN-NRO-INSCR | N | 11 | Número de inscripción (Cuil o Cuit) |
IN-FEC-COBRO | N | 8 | Fecha de cobro (AAAAMMDD) |
IN-SECUENCIA | N | 3 | Para hacer única la clave |
IN-MONTO | N | 8 | Importe cobrado |
EGRESOS: contiene un registro por cada pago que haya efectuado una persona.
Organización Indexada. Clave primaria: EG-NRO-INSCR + EG-FEC-PAGO + EG-SECUENCIA
Diseño:
Campo | Tipo | Long | Desc |
EG-Reg | Nombre del registro | ||
EG-NRO-INSCR | N | 11 | Número de inscripción |
EG-FEC-PAGO | N | 8 | Fecha de pago AAAAMMDD |
EG-SECUENCIA | N | 3 | Para hacer única la clave |
EG-MONTO | N | 8 | Importe pagado |
GRUPFAM: en este archivo se relaciona a las personas que no tienen ingresos con aquellas personas que los tienen a cargo. Por ejemplo, si en una pareja trabaja solo el esposo y no la esposa ni los hijos, existirán registros con la relación entre aquel que trabaja y cada uno de los que no trabajan.
Organización relativa: IDR: GR-NRO-INSCR-1
Diseño:
Campo | Tipo | Ancho | Desc |
gr-Registro | Nombre del registro | ||
gr-nro-inscr-1 | N | 11 | Número de la inscripción de la persona que trabaja |
GR-NRO-INSCR-2 | N | 11 | Número de inscripción de la persona que NO trabaja |
GR-PROX | N | 5 | Puntero |
Se pide escribir un programa que genere un archivo secuencial con los datos de aquellas personas cuyo grupo familiar haya efectuado gastos por un monto superior al total de ingresos recibido por la persona que trabaja.
Debe tenerse en cuenta que algunas personas pueden tener solo CUIL o solo CUIT o tener ambos y por lo tanto podrían tener ingresos bajo un número y/o bajo el otro.
El total de gastos a considerar incluye todos los gastos efectuados por todos los integrantes del grupo familiar (trabajen o no).
Diseño del archivo:
SALIDA: Organización Secuencial. Tiene dos diseños de registro. Uno por cada persona que esté a cargo de otra y otro con el total de cobros.
Diseño:
Campo | Tipo | Ancho | Desc |
SA-Reg1 | Nombre del registro | ||
SA-nro-inscr-1 | N | 11 | Número de la inscripción de la persona que trabaja |
SA-NRO-INSCR-2 | N | 11 | Número de inscripción de la persona que NO trabaja |
SA-TOT-COMPRA | N | 8 | Total de las compras de esa persona |
SA-REG2 | Nombre del registro | ||
SA-NRO-INSCR1 | N | 1 | Número de inscripción de la persona que trabaja |
SA-TOT-COBROS | C | 30 | Total de los cobros de esa persona |
Se pide:
Jackson
Pseudocódigo
Codificación en ambos lenguajes de una RUTINA completa de acceso al archivo INGRESOS
Fórmula de hashing utilizada
Responder las siguientes preguntas y JUSTIFICAR
1- Un archivo relativo está siempre ordenado por su IDR?
2- En un archivo secuencial indexado que contiene dos tipos de registros distintos, debo definir una clave distinta para cada uno de ellos?
3- Cómo hace para dar de baja un registro que contiene un sinónimo en el área de overflow de un archivo relativo?