Altillo.com > Exámenes > UBA - Ingeniería > Algoritmos y Programación II

Algor y prog II

Final

Lic. Carolo

5 / 8 / 2002

Altillo.com

Práctica
1. Un sistema de administración de gastos mantiene TDA árbol binario, cuyos elementos tienen:
· Código de cliente (clave de ordenamiento)
· Lista de gastos
· Cola de pagos sin acreditar.

Cada elemento de la lista de gastos tiene
· Fecha 
· Descripción del concepto
· Monto
· Estado: Pagado / No pagado

Cada elemento de la cola de pagos sin acreditar, tiene
· Fecha
· Monto

Se pide:
Desarrollar un procedimiento abstracto, ACREDITACION_ DE_ PAGOS, que dada la estructura descripta y el código de un cliente, acumule los pagos indicados en la cola de ese cliente y con ese importe total, registre poniendo en estado "pagado" todos los comprobantes en la lista que puedan cancelarse con dicho total. El proceso devuelve el saldo de pagos que quedara sin aplicar y el saldo de gastos sin cancelar. Los gastos se cancelan en su totalidad o no se cancelan, por lo cual, puede ser que ambos saldos queden positivos. (Por ejemplo, si queda un total de pagos de $100 y un gasto de $150).
Aclaración: al final del proceso, la cola de pagos queda vacía.

Definir y devolver los errores de excepción que crea convenientes, como por ejemplo que no exista el codigocódigo de cliente.

Nota: Los procedimientos de búsqueda y/o actualización y/o inserción en el árbol deberán ser realizados en forma recursiva. Tener en cuenta que en las estructuras ordenadas no debe recorrerse de mas si se busca por la clave y si un TDA AB, se encuentra ordenado por uno de sus campos dicho orden corre por cuenta del procedimiento abstracto y no por cuenta de las primitivas.

2.-Definir un TDA AB árbol binario. Se pide definir el TDA utilizando punteros y desarrollar una primitiva ELIMINAR_CTE que recibe como parámetro el arbolárbol, y elimina del mismo el registro corriente dejando en su lugar al hijo izquierdo y de no tener hijo izquierdo queda el hijo derecho en su lugar.

Entregar la resolución de la Teoría y la Práctica en hojas separadas.
Práctica
1. Un sistema de administración de gastos mantiene TDA árbol binario, cuyos elementos tienen:
· Código de cliente (clave de ordenamiento)
· Lista de gastos
· Cola de pagos sin acreditar.

Cada elemento de la lista de gastos tiene
· Fecha 
· Descripción del concepto
· Monto
· Estado: Pagado / No pagado

Cada elemento de la cola de pagos sin acreditar, tiene
· Fecha
· Monto

Se pide
Desarrollar un procedimiento abstracto, ACREDITACION_DE_PAGOS, que dada la estructura descripta y el código de un cliente, realice la acreditación de todos los pagos indicados en la cola de pago. Por cada uno de los pagos, registraráa poniendo en estado "pagado" todos los comprobantes en la lista que puedan cancelarse con ese monto. Los gastos se cancelan en su totalidad o no se cancelan. Si queda un saldo, se acumula en una variable a devolver. El proceso devuelve el saldo total de gastos pendientes de gastos y el saldo total de pagos que no se pudieron aplicar.
Aclaración: al final del proceso, la cola de pagos queda vacía.

Definir y devolver los errores de excepción que crea convenientes como por ejemplo que no exista el codigocódigo de cliente.

Nota: Los procedimientos de búsqueda y/o actualización y/o inserción en el árbol deberán ser realizados en forma recursiva. Tener en cuenta que en las estructuras ordenadas no debe recorrerse de mas si se busca por la clave y si un TDA AB, se encuentra ordenado por uno de sus campos dicho orden corre por cuenta del procedimiento abstracto y no por cuenta de las primitivas.

2.-Definir un TDA ABO el cual es igual que un árbol binario (TDA AB) pero en el registro que almacena posee un campo "clave", por el cual se ordena el arbolárbol (menores a izquierda, mayores a derecha). Se pide definir el TDA utilizando punteros y desarrollar la primitiva INSERTAR que recibe como parámetros el arbolárbol, el registro a insertar y devuelve una variable de error indicando si se pudo realizar la operación.

Entregar la resolución de la Teoría y la Práctica en hojas separadas.