3ra Evaluación I Término 2018-2019. 14-Septiembre-2018 /CCPG001
(Editado para tarea, se mantiene el objetivo de aprendizaje)
Tema 1 (40 puntos). En una empresa de transporte de carga (trailers) se registran para cada fecha, el código de los choferes que manejaron en una ruta.
El registro genera un archivo "rutasManejadas2018.txt"
en el formato mostrado:
id_ruta, id_chofer, fecha Guayaquil-Cuenca,SMS,17-05-2018 Guayaquil-Cuenca,AGB,18-05-2018 Guayaquil-Cuenca,SMZ,17-05-2018 Guayaquil-Daule,EVN,17-05-2018 Guayaquil-Daule,AAQ,18-05-2018
Por lo rutinario del trabajo, se ha recomendado que los choferes no repitan una ruta para los últimos n días a partir de una fecha. Para seguir la recomendación se requiere implementar:
a) La función cargarDatos(narchivo) que recibe un archivo de registro y retorna una tupla con:
– un conjunto con los choferes que trabajaron en las fechas del archivo (id_chofer)
– los datos del archivo en un diccionario con la estructura mostrada.
{'17-05-2018': {'Guayaquil-Cuenca': ['SMS', 'SMZ', ...], 'Guayaquil-Daule': ['EVN', ...]}, '18-05-2018': {'Guayaquil-Cuenca': ['AGB', ...], 'Guayaquil-Daule': ['AAQ', ...]}}
b) La función encontrarChoferes(datos, loschoferes, unafecha, unaruta, n), que para seguir la recomendación, encuentra aquellos choferes que no manejaron en una ruta, durante los n dias anteriores a una fecha.
c) La función grabarArchivo(datos, loschoferes, unafecha, unaruta, n) que crea un archivo con el resultado de la función anterior con el formato mostrado. El nombre del archico generado se conforma como: «unaruta_unafecha.txt»
Nombre de archivo: Guayaquil-Cuenca_19-05-2018_2.txt
Para la ruta Guayaquil-Cuenca los choferes disponibles para la fecha 19-05-2018 que no hayan manejado 2 dias anteriores son: EVN AAQ
d) Genere todos los archivos para todas las rutas disponibles.
NOTA: Para administrar las fechas, usted ya dispone de una función calcularFecha(unafecha,n) que recibe una fecha y los n días anteriores y determina la fecha pasada. El formato de fecha se maneja en el mismo formato de fecha que el archivo.
>>> calcularFecha('19-05-2018',2) '17-05-2018'
Rúbrica: Literal a (12 puntos), Literal b(16 puntos), Literal c y d (12 puntos)
Referencia: Archivo original 3raEvaI_Term2018.pdf