Vous allez désormais utiliser une structure de données supplémentaire, tab_rattrapages
.
Il s'agit d'un tableau 2D où les lignes correspondent aux étudiant-e-s et les colonnes aux cours.
Une cellule contient True
si, et seulement si,
l'étudiant-e correspondant à la ligne doit rattraper le cours correspondant à la colonne.
Au besoin récupérer la nouvelle version de RattrapageHelper.py.
Voici une représentation lisible de ce tableau:
ALP | DROIT | DWEB | FRTC | GESTION | MIRESE | MODE | TEPR | TQGE | |
---|---|---|---|---|---|---|---|---|---|
AREGAZRRO | True | False | False | True | False | False | False | False | False |
BUQOH-AKHSO | True | True | True | True | True | True | True | True | True |
GUFUJU | False | False | True | False | False | False | False | False | False |
GUKO-PAYQYJ | False | True | True | False | True | False | False | True | False |
HOEC | True | False | False | True | False | True | True | False | True |
HUJICY | True | False | False | True | False | False | False | False | False |
LJUOSOP | False | True | True | False | True | False | True | True | True |
MIJGYH | True | True | False | True | True | True | True | True | True |
PYGOOPY | True | True | True | True | True | True | True | True | True |
RYHXAH | False | True | True | False | True | True | True | True | True |
SIO | False | True | True | False | True | False | False | True | True |
UDVO | True | True | False | True | True | True | True | True | True |
VEMI | False | True | True | False | True | False | True | True | True |
VLEZUR | True | True | True | True | True | True | True | True | True |
YVEWOW | True | False | False | True | False | False | False | False | False |
ZASFA | True | True | True | True | True | True | True | True | True |
ZEEJ | False | True | True | False | True | False | True | True | True |
ZETHODE | True | False | False | True | False | True | False | True | False |
Ecrire une procédure Python qui demande à l'utilisateur un nom, puis un cours et qui indique si oui ou non l'étudiant doit faire le rattrapage. Afficher un message si le cours ou l'étudiant sont inconnus.
Quelques exemples:
Saisir étudiant-e: GUFUJU
Saisir cours: ALP
GUFUJU n'a pas besoin de faire le rattrapage ALP.
Saisir étudiant-e: HOEC
Saisir cours: FRTC
HOEC doit faire le rattrapage FRTC.
Saisir étudiant-e: HOEC
Saisir cours: MMA
Il n'y a pas de cours MMA à l'ESIG.
Saisir étudiant-e: MMA
Saisir cours: ALP
Il n'y a pas d'étudiant MMA à l'ESIG.
Ecrire une fonction Python qui détermine le cours où le plus d'étudiants doit passer le rattrapage. Ecrire aussi une procédure de test (appel+affichage).
Info : la réponse est
le cours TEPR
(avec 13 étudiants)
Supplément : Ecrire une variante qui indique le cours et le nombre d'étudiants. Pour cela, que devez-vous modifier : la fonction de calcul et/ou la procédure d'affichage ?
Ecrire une fonction Python qui crée un dictionnaire associant à chaque cours le nombre d'étudiants qui doivent passer le rattrapage. Ecrire aussi une procédure de test (appel+affichage).
Info : voici les résultats (ordre non significatif)
Cours | Nombre d'étudiants |
---|---|
ALP | 11 |
MIRESE | 9 |
MODE | 11 |
DROIT | 12 |
DWEB | 11 |
FRTC | 11 |
TQGE | 12 |
GESTION | 12 |
TEPR | 13 |
Supplément : Ecrire une variante de la fonction de l'Exo B.2 qui utilise ce dictionnaire.
Ecrire une fonction Python qui établit la liste des étudiants qui doivent passer un ou plusieurs rattrapages. Chaque nom ne doit apparaître qu'une fois. Ecrire aussi une procédure de test (appel+affichage).
Info : voici le résultat (ordre non significatif)
['HOEC', 'PYGOOPY', 'ZASFA', 'VLEZUR', 'ZETHODE', 'UDVO', 'BUQOH-AKHSO', 'AREGAZRRO', 'HUJICY', 'YVEWOW', 'MIJGYH', 'RYHXAH', 'LJUOSOP', 'VEMI', 'ZEEJ', 'GUKO-PAYQYJ', 'SIO', 'GUFUJU']
Pour cette question, vous aurez besoin du dictionnaire dicoDurées
de la partie A.
Ecrire une fonction Python qui range (et renvoie), dans un nouveau dictionnaire, la durée totale de rattrapage que doit passer chaque étudiant concerné.
Ecrire aussi une procédure de test (appel+affichage).
Info : voici le résultat (ordre non significatif)
étudiant | durée (en minutes) |
---|---|
HOEC | 660 |
PYGOOPY | 1020 |
ZASFA | 1020 |
VLEZUR | 1020 |
ZETHODE | 510 |
UDVO | 900 |
BUQOH-AKHSO | 1020 |
AREGAZRRO | 330 |
HUJICY | 330 |
YVEWOW | 330 |
MIJGYH | 900 |
RYHXAH | 690 |
LJUOSOP | 600 |
VEMI | 600 |
ZEEJ | 600 |
GUKO-PAYQYJ | 360 |
SIO | 420 |
GUFUJU | 120 |
Pour cette question, il sera beaucoup plus simple d'avoir recours au dictionnaire créé dans l'exercice précédent B.5. Ecrire une fonction Python qui détermine la durée de rattrapage la plus élevée. Ecrire aussi une procédure de test (appel+affichage).
Info : la réponse est
1020
Supplément : Modifier la fonction d'une façon ou d'une autre pour répondre à la question : qui sont les étudiants concernés par cette durée de rattrapage maximale ? (sous la forme d'une liste)
Info : la réponse est
Les étudiants passant 1020 minutes de rattrapage sont PYGOOPY, ZASFA, VLEZUR, BUQOH-AKHSO.