IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Tournoi de football [matchs de poule]


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Tournoi de football [matchs de poule]
    Désolé d'abuser à ce point de votre gentillesse mais je passe sur un autre exercice et pour le coup je n'ai même pas un but de code à vous proposer, je cale à 100%. Voici l'énoncé:

    On souhaite implémenter une gestion (fortement simplifiée) des tableaux de classement lors d’un tournoi de foot. On se concentre à la phase dite des “matchs de poule”.
    On ne regardera qu’un seul groupe avec quatre équipes participantes (#define N 4).
    Les équipes de cette poule sont représentées par un tableau de chaînes de caractères intitulé équipes. On l’initialise avec les noms de quatre équipes au début du programme principal. Une équipe est ainsi associée à un numéro qui correspond à sa place dans le tableau équipes (0 à 3).

    1. Ecrivez le code pour initialiser le tableau équipes avec les noms des quatre équipes de la même poule.
    Aide : Utilisez le type string pour les noms des équipes qui sont des chaînes de caractère constantes.
    Un deuxième tableau intitulé classement stockera le nombre de points. Il contiendra une case par équipe. Ce tableau sera mis à jour après chaque match. Le gagnant se placera en première position, le deuxième en deuxième position, etc. du tableau. On affichera ce tableau après chaque match, en associant les noms d’équipes à la bonne place dans le classement.

    2. Ecrivez une fonction initialiser_classement qui initialise les points dans le classement à zéro.

    3. Ecrivez une fonction afficher_classement qui prend en argument le tableau d’équipes et le tableau de classement et affiche, à un moment donné, le nom de l’équipe, sa position dans le classement et le nombre de points obtenus jusque-là.
    L’affichage souhaité est donné ci-dessous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    angleterre no. : 1 : 6
    espagne no. : 2 : 4
    france no. : 3 : 3
    grece no. : 4 : 1
    4. Quel type d’algorithme sera nécessaire pour mettre en place la mise à jour du tableau ? Ecrivez une fonction mise_a_jour qui met à jour le tableau et insérez-la au bon endroit dans la fonction match.

    5. Ecrivez une fonction match qui attribue des points.
    On modélise l’issue d’un match par les index des deux équipes (entre 0 et 3) et par un entier 0,1,2 indiquant s’il s’agit d’un match nul (égalité entre équipes) ou si la première ou la deuxième a gagné. Cet entier est tiré au hasard (utiliser la fonction de la bibliothèque CINI prévue à ce propos).
    Un match gagné apportera 3 points, un match nul apportera un point, un match perdu aucun point. Ce nouveau score sera attribué aux deux équipes impliquées dans le match. Il faut prévoir l’affichage du score qui s’effectuera dans le programme principal. Il faut également mettre à jour le classement pour prendre en compte le nouveau score (appel de la fonction mise_a_jour).

    6. Ecrivez le programme principal. Il faut faire de sorte que chaque équipe joue contre chaque autre équipe. L’affichage souhaité est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Match angleterre contre espagne : 0
    Match france contre espagne : 2
    Match france contre angleterre : 0
    Match grece contre espagne : 2
    Match grece contre angleterre : 2
    Match grece contre france : 1
    7. On souhaite étendre la gestion à plusieurs groupes de poules (par exemple, quatre groupes intitulés A,B,C et D). Répondez aux questions suivantes, en donnant des bouts de code C :
    – Comment en tenir compte ? Faut-il modifier la structure des boucles ?
    – Comment faut-il modifier le tableau représentant le classement ?
    – Comment faire (sans disposer de tableau ASCII) pour afficher une lettre majuscule représentant le groupe dans la fonction afficher_tableau ?


    Donc des la première question je n'ai aucune idée de comment intégrer ma suite de caractère à un tableau. En me renseignant par si par là je suis tombé sur une fonction strcopy il me semble mais je ne suis pas censé l'utiliser je pense. comment implémenter que telle case d'un tableau (numéro d'équipe) représente telle chaîne de caractère ?

    Et plus ou moins pareil pour le reste j'ai des bribes d'idées mais je n'arrive pas à les mettre en place j'ai l'impression qu'il me manque quelque chose.

    Donc serait possible qu'une âme charitable me donne quelques conseils sur la marche à suivre ? ( je ne demande absolument pas que l'on écrive le code à ma place bien entendu mais que l'on me mette sur la bonne voie).

    Merci d'avance,

  2. #2
    Membre confirmé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Points : 616
    Points
    616

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je vous montre mon état d'avancement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    #include <cini.h>
    #define N 4
     
    void initialiser_classement (int classement[], int taille) {
    	int i;
     
    	for (i = 0; i < taille; i++) {
    		classement[i]=0;
    	}
    }
     
    void afficher_classement (string equipes[], int classement[],int ordre[], int taille) {
    	int i;
     
    	for (i = 0; i < taille; i++) {
    		printf("%s : ", equipes[i]);
    		printf("%d : ", ordre[i]);
    		printf("%d \n", classement[i]);
    	}
    }
     
     
    int main() {
     
    	string equipes[N] = {"France","Allemagne","Angleterre","Espagne"};
    	int ordre[N] = {1,2,3,4};
    	int classement[N] = {4,0,0,0};
     
    	initialiser_classement(classement, N);
     
    	afficher_classement(equipes, classement,ordre, N);
     
    	return 0;
    }
    Je suis donc à a question 4 sans aucune conviction car je ne pense pas que lorsque mes tableaux auront des valeurs, ma fonction Afficher_classement me l'affichera dans l'ordre. Ensuite je suppose que pour la mise à jour il faut que j'utilise l'algorithme de Tri par insertion, mais je ne vois pas comment attribuer un ordre ( de 1 à 4) en fonction du classement (points reçu).

    Encore merci d'avance,

    PS: Merci beaucoup LinuxUser car même si je t'avoue que tes liens sur du C++ ne m'ont pas vraiment débloqué, ils m'ont tout de même permis de vérifier plusieurs de mes syntaxes et de me rendre compte que j'avais fait une faute de frappe sur mon code.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    vraiment personne pour m'aider a attribuer une equipe à un ordre et à un score ? car pour le moment j'ai mes fonctions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void echanger(string equipes[], int classement[], int i, int j) {
    	int aux; 
     
    	aux = classement[i];
    	equipes[i] = equipes[j];
    	classement[i] = classement[j];
    	equipes[j] = equipes[i];
    	classement[j] = aux;
     
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    void mise_a_jour (string equipes[], int classement[], int taille) {
     
    	int i, ifin, i_max; 
    	for (ifin = taille-1 ; ifin > 0 ; ifin--) {
         /* recherche de l’indice de la case contenant 
          le max dans un tableau d'indices [0.. ifin] */ 
          i_max = 0; 
          for (i = 1 ; i <= ifin ; i++) { 
             if (classement[i] < classement[i_max]) { 
                i_max = i;
    		}
    	}
    	if (i_max != ifin) {
            /* le max n’est pas dans la derniere case */
             echanger(equipes, classement, i_max, ifin);
    	 } 
     }
    }
    Ces fonctions me trient mon classement mais pas du tout mon tableau d’équipe, donc soit j'ai commis une erreur, soit je dois utiliser mon tableau ordre d'une autre façon.

    Merci,

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ta fonction d'échange est incorrecte quant aux noms d'équipe.
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <algorithm>
    #include <string>
    using namespace std;
     
    void echanger(string equipes[], int classement[], size_t i, size_t j) {
    	swap(classement[i], classement[j]);
    	equipes[i].swap(equipes[j]);
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Habillage des infos pour un match de football
    Par Arbooch dans le forum API graphiques
    Réponses: 1
    Dernier message: 26/03/2010, 21h45
  2. la gestion du tournoi de match championnat nationnal
    Par foot.c dans le forum Débuter
    Réponses: 6
    Dernier message: 02/05/2008, 11h44
  3. modelisation d'un tournoi de football
    Par GTJuanpablo dans le forum Diagrammes de Classes
    Réponses: 7
    Dernier message: 09/06/2006, 20h50
  4. "Match nul"
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 17/06/2003, 10h27
  5. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo