[ Foro de Python ]

ayuda con un problema

28-Dec-2020 04:59
Invitado (leyton )
0 Respuestas

me pueden ayudar con la resolucion de esto porfavor


A raíz de su buen comportamiento durante el año 2020, el Viejo Pascuero ha decidido
encomendarle a usted el desarrollo del software de gestión de regalos, para lo cual le hace
entrega de los siguientes elementos:
? Archivo “bondad.txt”.
? Archivo “pedidos.txt”.
Adicionalmente, como regalo, le hace entrega del módulo Jojojo.py, el cual contiene
algunas funciones que necesitará, sabiendo que están más allá de sus conocimientos
actuales.
El archivo “bondad.txt”, elaborado por el Departamento de Calificación del Nivel de Bondad,
contiene en cada línea el nombre completo de un niño y una nota entre 1.0 y 7.0 por cada
mes del año. Las notas están separadas por una coma.
Ejemplo:
bondad.txt
Aquiles Baeza,5.1,2.0,4.8,7.0,6.1,4.7,6.1,5.4,3.8,3.7,6.6,6.1
Esteban Quito,6.1,6.6,6.3,7.0,6.0,6.8,6.7,5.5,5.4,6.3,6.5,6.8
Elsa Payo,3.0,2.1,3.9,4.5,3.6,4.2,3.7,4.8,1.3,1.5,2.4,3.3
Armando Casas,5.8,6.1,7.0,5.2,4.0,3.6,5.1,6.9,5.4,4.0,3.6,1.2
El archivo “pedidos.txt”, creado por el Departamento de Cartas y Pedidos, contiene en cada
línea el nombre completo de un niño y la lista de regalos que pidió. Los elementos del
archivo están separados por una coma.
Ejemplo:
pedidos.txt
Aquiles Baeza,bicicleta,pelota de futbol,celular,xbox,camion,televisor
Esteban Quito,transformer,lego
Elsa Payo,monster high,my little pony,hello kitty,Barbie
Zacarias Labarca del Rio,nintendo switch
28 de diciembre de 2020
4
Se le solicita crear el listado de regalos a repartir, el cual debe ser almacenado en el archivo
“regalos.txt”, que en cada línea contenga el nombre completo del niño y los regalos que
recibirá, con los elementos separados por una coma.
Ejemplo:
regalos.txt
Aquiles Baeza,bicicleta
Esteban Quito,transformer,lego
Elsa Payo,carbon
Zacarias Labarca del Rio,nintendo switch
La cantidad máxima de regalos que recibe cada niño se determina de acuerdo a la siguiente
tabla, dependiendo de la bondad anual promedio de cada niño:
Bondad promedio Regalos
6.5 – 7.0 5
6.0 – 6.4 4
5.5 – 5.9 3
5.0 – 5.4 2
4.0 – 4.9 1
1.0 – 3.9 Carbón
Note que aquellos niños que se portaron mal no reciben regalos, sino carbón. A su vez, los
regalos que el niño recibe serán tomados de la lista de pedidos en orden de aparición.
Tenga en cuenta que:
? Si el niño pidió menos regalos de los que podría recibir, solo recibe lo que pidió.
? Si un niño no pidió regalos, pero debe recibir a lo menos uno porque se portó bien, se
le asigna como regalo una bicicleta.
? Si alguien pidió regalos, pero no figura en el archivo “bondad.txt”, no debe ser
considerado.
Implemente el programa que ayuda al Viejo Pascuero en su asignación de regalos.
Indicaciones adicionales
Para poder usar el módulo Jojojo, copie el archivo Jojojo.py en la misma carpeta en que se
encuentre el código fuente de su programa. Este módulo cuenta con dos funciones:
? leer_archivo(nombre_archivo): recibe como entrada un string con el nombre del
archivo a leer, incluyendo la extensión. Dicho archivo debe estar en la misma
carpeta que el código fuente de su programa. Entrega como salida una lista de
strings con cada línea del archivo, incluyendo el salto de línea final

? escribir_archivo(nombre_archivo, lineas): recibe como entradas el nombre del
archivo a leer (incluyendo la extensión) y una lista con las líneas de texto a escribir
en el archivo. Cada línea debe contener el salto de línea final. No entrega una salida,
pero crea el archivo de texto con el contenido en la misma carpeta que el código
fuente de su programa.
No copie las funciones en su código, pues como no son de su autoría, debe importarlas
desde el módulo entregado. Del mismo modo, no puede modificar el contenido del módulo
“Jojojo.py” pues su solución será probada con las funciones del módulo como le fue
originalmente entregado.
Para el bloque principal, considere como entrada la lectura de archivos y como salida, la
escritura del archivo solicitado.
Tenga en cuenta que el uso de funciones en la solución es OBLIGATORIO.
La solución debe funcionar para cualesquiera archivos de entrada que respeten el formato
establecido, y no solo para los que se proporcionan como ejemplo, independiente de la
cantidad de registros (filas) que estos contengan.
Restricciones de implementación
Para esta prueba, se prohíbe el uso de las siguientes herramientas de programación:
? Funciones y métodos para ordenar o para obtener máximos y mínimos.
? Las funciones nativas map() y filter().
? Tipos de dato conjunto y diccionario.
? Ciclos for y listas por comprensión.
? Uso de strings con formato, ya sea utilizando la sintaxis de llaves {, } o de porcentaje %.
? Construcciones para manejo de excepciones (try, except).
? Definición de sus propias funciones/métodos para leer o escribir archivos.
? Programación orientada a objetos, es decir, definición de clases y métodos.
El uso de alguna de estas herramientas significará la nota mínima.




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)