IUT R&T - 1ère année - Informatique
Programmation et algorithmique 2


TP n°3

A la fin du TP, envoyer sur l'ENT le programme contenant une solution de l'exercice ainsi que les algorithmes et tests associés (même principe que pour le TP1)

EXERCICE

  On veut gérer les résultats du championnat de ligue de football pour un certain nombre d'équipes inscrites et différents matchs. A chaque équipe inscrite au championnat, on associe un nom et un tableau de résultats avec un nombre de victoires, un nombre de défaites, un nombre de matchs-nuls, et un score total entier.

Une Equipe sera composée d'un nom et d'un tableau de résultats composé de quatre entiers. Les indices de ce tableau seront gérés par un type énuméré distinguant victoires, défaites, nuls et score.

1. Créer un type énuméré Indices ayant quatre valeurs symboliques : Victoires, Defaites, Nuls, Score.

2. Créer un type structuré Equipe composé d'un Nom et d'un tableau de Resultats.

3. Définir une variable Championnat qui est un tableau d'au plus Nmax équipes, Nmax étant définie par une directive de compilation.

4. Définir une variable N correspondant au nombre d'équipes inscrites. On aura donc initialement N=0, et toujours N≤Nmax.

5. Créer une fonction Inscrire qui fait inscrire par l'utilisateur une nouvelle équipe dans le championnat. Les valeurs de résultats et de score de la nouvelle équipe seront initialisées à 0, la variable N sera mise à jour en conséquence.

6. Créer une fonction ResultatMatch qui enregistre dans le championnat le résultat d'un match entre deux équipes données.

7. Pour chaque équipe, une victoire donne +3 points, une défaite −1, et un match-nul +1. Ecrire une fonction FinaliseSaison qui calcule le score de toutes les équipes du championnat à partir du nombre de victoires, défaites et nuls.

8. Ecrire une fonction Affichage qui affiche le résultat du championnat pour les N équipes inscrites.
Exemple :
Resultat:
Nom Victoires Defaites Nuls Score
Saint-Etienne 24 2 2 72
Paris 21 5 2 60
Monaco 17 8 3 46
Marseille 17 10 3 44
Lille 14 8 6 40


9. Ecrire une fonction nomdugagnant qui retourne le nom du gagnant du championnat.

10. Le programme principal effectuera la gestion complète du championnat. Ce programme sera testé sur un/des exemples (jeux d'essais) bien choisis.

*11. (pour aller plus loin) On veut réaliser tous les matchs possibles entre deux équipes. Le résultat de chaque match sera déterminé au hasard. Ajouter les fonctions nécessaires pour cela et lancer le championnat...
N.B. On a déjà utilisé srand(time(NULL)) et rand().
Remarque : Si cette question demande un temps de programmation non négligeable, elle fait par contre gagner du temps en automatisant les essais qui peuvent alors être réalisés en nombre illimité.