UTNianos

Versión completa: Algoritmos [Aporte] Parcial 4-12-09
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Parcial Integrador Fecha: 4/12/09

Algoritmos y Estructura de Datos


Una importante empresa que cuenta con casi 1000 teléfonos internos desea una estadística de su uso por llamadas internas (entre internos) y llamadas externas (con uso de la red telefónica pública), a la que se accede marcando “9”. Para este fin se solicita un algoritmo que realice las siguientes acciones:


1. Un listado por cada responsable, ordenado por su Nº de teléfono interno y día de la llamada, con las llamadas externas únicamente, realizadas desde su interno con el siguiente modelo:


Nombre del Responsable: xxxxxxxxxxx Interno: 999

Día Nº de destino Tiempo de llamada
99 99999999 99 99
99 99999999 99 99

Cantidad de llamadas externas: 9999 Tiempo empleado: 99999 segundos


2. Actualizar los campos: Cantidad de llamadas internas, llamadas externas y “Mes y Año”, del archivo Internos.DAT . Hacer una función MesAnio (mm, aa: Word): longint, que obtenga el dato a grabar en este último campo; tener presente que las llamadas corresponden al mes anterior al del proceso. Usar el procedimiento GetDate (aa, mm, dd, ss).

Para obtenerlo se cuenta con:

a) Un archivo Interno.DAT si ningún orden, con los siguientes internos habilitados donde cada registro contiene:

• Nº de Interno (999)
• Nombre del responsable (20 caracteres)
• Cantidad de llamadas internas (Word)
• Cantidad de llamadas externas (Word)
• Mes y año (mm aaaa)

No todos los internos están habilitados, por lo que no se registran llamadas desde los mismos.

b) Otro archivo Llamadas.DAT con orden cronológico, con los registros de las llamadas realizadas desde los distintos internos durante el mes anterior al proceso, conteniendo la siguiente información:

• Nº de interno (999)
• Día (byte)
• Nº de destino (longint)
• Tiempo de llamada (9999 segundos)

Restricciones:
* Memoria estática para arrays: 8KB.
* Para la creación del array debe usar el procedimiento Insertar_Ordenado_En_Vector, con sus correspondientes parámetros. Para la búsqueda en el Vector, hacerlo con el procedimiento Búsqueda_Binaria.
* Memoria dinámica: Nodos de 11 bytes por Filesize (Llamadas.DAT)
* Se permite una lectura secuencial a cada archivo y 2 accesos directos al archivo Interno.DAT para la actualización solicitada.

Se solicita desarrollar la estrategia y el algoritmo cuyo programa Principal estará formado solo por la invocación a procedimientos. Todos los procedimientos y funciones que se invoquen deben ser desarrollados sin omitir los parámetros.
Se puede hacer esto sin arrays y nodos, etc?
Te respondo con otra pregunta (jajaja creo que por eso la gente me odia =P):

Cómo lo resolverías?
Desde ya olvidate de todas las restricciones que dan

Con lo que vos sabés hasta ahora; se te ocurre alguna manera de resolución?

Nunca hay una única solución para un mismo problema. El tema es que a veces determinadas estructuras te hacen la vida más feliz. Cuando se ve listas, es como que se simplifica mucho más la vida

Sabiendo hasta archivos nomás, se me hace que es más rebuscadito
URLs de referencia