Ayuda con tarea python

11 views
Skip to first unread message

Wilber Arias

unread,
May 22, 2022, 7:03:48 PM5/22/22
to PHP Latinoamérica

Buenas tardes alguien me podría colaborar con este problema de una clase.

La Universidad de software AllStacks necesita un sistema de información para

gestionar los pensums o currículos de los programas que ofrece, ya que este

será la base sobre la que se construirá un el sistema de matrículas. Usted hace

parte del equipo de desarrollo y su Jefe le encargó implementar la

funcionalidad de modificar una materia de un pensum, además, le dió la

especificación de la definición de las estructuras de datos.

Dado que un pensum tiene 𝑛 semestres y estos son ordinales, es decir,

primero está el semestre 1, luego está el semestre 2 y así, este es

representado por una lista donde cada posición será un semestre, este no

puede ser una tupla dado que necesitamos modificarlo.

Cada semestre es, a su vez, una colección, esta vez de materias, estas tienen

un código que las permite identificar y no son ordinales, por lo tanto los

semestres serán representados como diccionarios donde las claves serán los

códigos de las materias y en las claves estarán las materias.

Por último tenemos a las materias, dado que necesitamos almacenar el

nombre y cantidad de créditos de las mismas, también usaremos diccionarios.

A continuación se le muestra un ejemplo de un pensum de un programa de 3

semestres que solo se le añadieron materias en el primer semestre:

pensum = [
{‘0123’: {‘nombre’: ‘intro a la ing’, ‘créditos’: 2},
‘4567’: {‘nombre’: ‘inglés’, ‘créditos’: 1}},
{}, {}
]

Como se mencionó, solo 2 materias fueron añadidas al primer semestre, la

primera tiene código: 0123, nombre: intro a la ing y créditos 2, la segunda tiene

código: 4567, nombre: inglés y créditos 1.

TAREAS

Dado un pensum como el ya descrito, para implementar la funcionalidad debe:

● Validar que el número del semestre donde está la materia que el

usuario modificar si corresponde a un semestre.

● Validar que el semestre que se desea modificar no esté vacío.

● Validar que el código de la materia a modificar esté en el semestre

seleccionado por el usuario.

Luego de las validaciones puede proceder a modificar el nombre y créditos de

la materia seleccionada por los valores proporcionados por el usuario.

FORMATO DE ENTRADA

Las entradas de la función 𝑚𝑜𝑑𝑖𝑓𝑖𝑐𝑎𝑟_𝑚𝑎𝑡𝑒𝑟𝑖𝑎 están escritas en la plantilla de la

solución, por favor NO eliminarlas o modificarlas, esto podría resultar en un

fallo en su calificación.

● 𝑝𝑒𝑛𝑠𝑢𝑚 es la referencia a la estructura que se desea modificar.

● 𝑠𝑒𝑚𝑒𝑠𝑡𝑟𝑒 es el número (int) del semestre en el que se encuentra la

materia que desea modificar el usuario.

● 𝑚𝑎𝑡𝑒𝑟𝑖𝑎 es el código de la materia (string) que desea modificar el

usuario.

● 𝑛𝑜𝑚𝑏𝑟𝑒 es el nuevo nombre (string) que desea el usuario para la materia

seleccionada.

● 𝑐𝑟𝑒𝑑𝑖𝑡𝑜𝑠 es la nueva cantidad de créditos (int) que desea el usuario para

la materia seleccionada.

FORMATO DE SALIDA

La salida de esta función está escrita en la plantilla de la solución, por favor NO

eliminarlas.

La salida es la variable mensaje, si en la validación encuentra que el semestre

es inválido, usted debe guardar en esta variable EXACTAMENTE “Ingrese un

semestre válido”; si en la validación encuentra que el semestre es vacío, usted

debe guardar en esta variable EXACTAMENTE “El semestre no tiene materias”;

si en la validación encuentra que el el código de la materia no está en el

semestre seleccionado, usted debe guardar en esta variable EXACTAMENTE

“La materia no existe”; en caso de pasar todas las validaciones y lograr

modificar la materia, usted debe guardar en esta variable EXACTAMENTE

“Modificada con éxito”.

NOTAS:

  1. Recuerde que para el usuario el primer semestre o semestre 1 se

encuentra en la posición con índice cero en el pensum, usted debe tener

esto en cuenta para convertir la entrada del usuario apropiadamente .

  1. Si en la validación se encuentra alguna entrada incorrecta, no se debe

modificar el pensum y se debe escribir el mensaje de error

correspondiente al caso en la variable mensaje como se indicó en la

sección Formato de Salida.

EJEMPLO

Suponiendo que se tiene el pensum de tres semestres presentado

anteriormente:

Note que los semestres 4 y 0 no existen, el pensum solo tiene 3 semestres,

para ingresar un semestre válido, el usuario tendría que ingresar un número

entero entre 1 y 3, ambos incluídos. Además, es importante notar que el

mensaje de salida es el correspondiente a la validación que falla.

Aunque 2 es un semestre válido, este no tiene materias, por lo tanto no se

puede realizar la modificación satisfactoriamente.

Aunque 1 es un semestre válido y con materias, en este semestre no hay una

materia con el código 2345, por lo tanto no se puede realizar la modificación

satisfactoriamente.

Observe que ahora todas las entradas fueron validadas y no se detectó ningún

error, sólo entonces se efectuó la modificación en el pensum.

en el momento ya llevo parte del codigo desarrollado pero no se si esta corrector

este seria el codigo:

pensum[semestre + 1][materia][“nombre”] = nombre
pensum[semestre + 1][materia][“creditos”] = creditos
mensaje = “la materia éxito…”

ACÁ TERMINA LA FUNCIÓN modificar_materiaNO MODIFIQUES LA SIGUIENTE LÍNEA

return mensaje

pensum = [
{‘0123’: {‘nombre’: ‘intro a la ing’,‘créditos’: 2}, ‘4567’: {‘nombre’: ‘inglés’, ‘creditos’: 1}},
{},
{}
]

si alguien me puede colaborar se los agradecería.

Reto 2.pdf
Reply all
Reply to author
Forward
0 new messages