Vous êtes sur la page 1sur 4

‫المعهد التحضيري للدراسات الهندسية بالمنار‬

Institut Préparatoire aux Etudes d’Ingénieurs – El Manar

Département : Mathématiques et Informatique


Examen 1
Année Universitaire : 2022/2023
Matière : Informatique (1ère Année MP, PC, PT) Date : 13/12/2022
Nombre des pages : 4 Durée : 2 heures

NB : Le correcteur tiendra compte de la clarté de la présentation et l’indentation des programmes.


Problème : 20 points (2+2+4+4+4+4)
Dans ce problème on se propose d'informatiser un championnat quelconque de football comportant N
équipes. Par exemple, au premier tour de la coupe du monde les équipes sont affectées dans des groupes de
4 équipes, on s’intéressera à un seul groupe à la fois :
Par exemple le Groupe D de la coupe du monde QATAR 2022, les résultats et le classement sont présentés
ans la figure suivante (extrait du site officiel coupe du monde Qatar 2022)

Description :
Les noms des différentes équipes sont stockés dans une liste nommée Equipes.

Une rencontre entre deux équipes A et B est représentée par la liste [< indice de A >, < indice de B >] où :
< indice de A > : Indice de l'équipe A dans la liste Equipes.
< indice de B > : Indice de l'équipe B dans la liste Equipes.
Toutes les rencontres entre les différentes équipes sont stockées dans une liste nommée Rencontres.
Exemple : La liste [0,2] représente la rencontre entre l'équipe d'indice 0 ('TUNISIE') et l'équipe d'indice 2
(‘AUSTRALIE’).

Rencontres= [ [0,1] , [0,2] , [0,3], [1,2], [1,3], [2,3] ]

Le résultat d'une rencontre entre deux équipes A et B est représenté par une liste définie comme suit :
[< indice A >, < indice B >, < résultat >, < buts A >, < buts B >] où:

1/4
< indice A > : Indice de l'équipe A dans la liste Equipes.

< indice B > : Indice de l'équipe B dans la liste Equipes.

< résultat > : Un entier qui représente le résultat de la rencontre entre les deux équipes A et B : 0 : match
nul, 1 : victoire de l'équipe A et 2 : victoire de l'équipe B.

< buts A > : Nombre de buts marqués par l'équipe A.

< buts B > : Nombre de buts marqués par l'équipe B.

Les résultats des différentes rencontres entre les équipes sont stockés dans une liste Resultats qui est une
liste de listes.
Exemple :
Resultats =[ [0,1,1,1,0], [0,2,2,0,1],[0,3,0,0,0], [1,2,1,4,1] ,[1,3,1,2,1], [2,3,1,1,0] ]

La liste [0, 1, 1, 1,0] représente le résultat de la rencontre entre l'équipe d'indice 0 (la TUNISIE) et l'équipe
d'indice 1 (la France) avec victoire de la TUNISIE 1 à 0.
Les informations des matchs joués par toutes les équipes sont représentées par un dictionnaire Res_equipes
ayant comme clés les éléments de la liste Equipes. A chacune des clés de Res_equipes, on associe une liste
contenant dans l’ordre :
• le nombre de points cumulé (à calculer : une victoire vaut 3 points, un match nul vaut 1 point et une
défaite vaut 0 point)
• Le nombre de matchs joués,
• le nombre de victoires,
• le nombre de matchs nuls,
• le nombre de défaites,
• le nombre de buts marqués
• le nombre de buts encaissés.
• et le score « goal average » qui est le résultat de la soustraction des buts encaissés des buts
marqués.
Exemple :

La liste [4,3, 1, 1, 1, 1, 1,0] représente les informations relatives aux matchs joués de la ‘TUNISIE’.
Les équipes sont classées selon l'ordre décroissant du total des points cumulés. En cas d'égalité des points
entre deux ou plusieurs équipes, la première classée est celle qui a le score « goal average » le plus élevé.
Le classement est stocké dans un dictionnaire ayant les noms des équipes comme clés et des listes comme
valeurs, chaque liste contient dans l’ordre : le rang de l’équipe, le nombre de points, le score « goal
average ».

2/4
Nomenclature
Nom Type Description
N <int> Nombre des équipes
Equipes <Iist> Liste des noms des équipes
Rencontres <Iist> Liste de toutes les rencontres (liste de listes)
Resultats <Iist> Liste des résultats de toutes les rencontres (liste de listes)
Res_equipes <dict> Dictionnaire contenant les informations des matchs joués par toutes les équipes

Cls <dict> Dictionnaire contenant les informations sur le classement des équipes

Travail demandé :
Ecrire en python :
1. la fonction Saisie_Equipes, qui permet de saisir et retourner dans une liste les noms de N équipes.

2. la fonction Generer_Rencontres, qui permet de générer la liste de toutes les rencontres.

3. la fonction Saisie_Resultats, qui permet de saisir, dans une liste, les résultats des différentes
rencontres en faisant les contrôles nécessaires.

3/4
4. la fonction Resultats_Equipes, qui permet de générer un dictionnaire contenant les informations des
matchs joués par toutes les équipes.

5. la fonction nommée Classement, qui permet de générer un dictionnaire contenant le classement des
équipes selon l'ordre décroissant du total des points cumulés. En cas d'égalité des points entre deux ou
plusieurs équipes, on se réfère au « goal average » (nombre de buts marqués – nombre de buts encaissés).
Pour ce faire on vous propose de suivre le processus suivant :
- Créer la liste de tuples Score, chaque élément de Score est un tuple contenant dans l’ordre : le
nombre de points cumulé, le « goal average » et le nom de l’équipe ;
- Trier puis renverser la liste Score ( il suffit d’utiliser les méthodes prédéfinies de la class list : sort()
et reverse() ) ;
- Utiliser la liste Score pour remplir le dictionnaire Cls.
Exemple : Score=[ [6,3,’FRANCE’] , [4 ,0,’TUNISIE’] , [6 ,1,’AUSTRALIE’] , [1,-1,’DANEMARK’] ]

6. la fonction Afficher_classement, qui affiche les noms des équipes dans l’ordre, chaque nom d’équipe
sera précédé par son rang.

4/4

Vous aimerez peut-être aussi