Donat un llistat d’estudiants i un llistat de titulacions, volem assignar els estudiants a les titulacions en funció de les seves notes de selectivitat i veure la nota de tall de cada titulació juntament amb el nombre de places lliures.
Per a cada estudiant es disposa de la informació següent: el seu nom (un text), el seu DNI (un enter únic de 8 dígits com a molt), la seva nota de selectivitat (un real entre 5 i 10 amb dos dígits decimals de precisió), i una llista de titulacions (textos sense repeticions) en ordre de preferència.
Per a cada titulació es disposa de la informació següent: el seu nom (un text) i el seu nombre de places disponibles.
El procés d’assignació és el següent: Els estudiants es processen segons la seva nota (de la més alta a la més baixa, i de DNI més baix a DNI més alt en cas d’empat per nota). Cada estudiant és assignat a la primera titulació de les seves preferències que encara tingui places lliures. Si cap de les seves titulacions preferides té places lliures, l’estudiant no reb cap assignació.
La nota de tall d’una titulació és la nota de selectivitat més baixa dels estudiants assignats, o zero si no n’hi ha cap d’assignat.
Descarregue-vos el fitxer code.py. Les estructures de
dades i les funcions per llegir-les ja se us donen implementades. El
programa principal també. Per tant, la vostra feina és completar les
funcions no implementades que el programa principal utilitza.
Especifiqueu adientment aquestes funcions amb un docstring.
L’entrada conté les llistes d’estudiants i de titulacions.
La sortida ha de generar dos llistats, cadascun començant per tres
guions. El primer llistat dóna l’assignació de titulació de cada
estudiant, juntament amb el seu DNI i nom, ordenat per DNI. Si no té cap
titulació assignada cal escriure None. El segon llistat
dóna, per cada titulació, el seu nom, la seva nota de tall i el nombre
de places lliures, i està ordenat per nota de tall decreixent (i per
ordre alfabètic del nom de la titulació en cas d’empat).
Autoria: Jordi Petit
Generació: 2026-01-25T11:56:48.820Z
© Jutge.org, 2006–2026.
https://jutge.org