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 :

course de dada


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut course de dada
    Bonjour je viens de commencé le c++ en septembre j'ai un petit exo à faire.
    Le voici l'utilisateur doit entrer un nombre de chevaux et une distance d a parcourir ensuite a chaque nouveau caractère tapé on choisi un cheval au hasard que l'on fait avancé d'une case le programme s'arrête quand l'un des chevaux est arrivé.

    Il doit affiché quelque chose du genre
    A D
    -----------------------------
    1 : C |
    2 : C |
    3 : C |


    Et si le cheval 2 est choisi par exmple on a
    A D
    -----------------------------
    1 : C |
    2 : *C |
    3 : C |


    Voila le code que j'ai pour l'instant écrit

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include<iostream>
    using namespace std;
    int maxi(int t1[]){
    	int k=t1[0];
    	int i, nbreche;
    	for(i=1;i<nbreche;i++ ){
    		if (t1[i]>k){
    			k=t1[i];
    			i=i+1;
    		}
     
    	}
    	return k;
    }
    void affichage(int t1[],int nbreche,int d){
    	int l=1;
    	cout << "    D";
     
    		for (int j=1; j<d; j++)   // boucle affichage 1ère ligne
    			cout << " ";
    		cout << "A" << endl;
    		cout << "  ";
    		for (int j=1; j<d+4; j++)  // boucle affichage 2ème ligne
    			cout << "-";
    		cout << endl;
     
    		while (l<=nbreche){            // boucle affichage des chevaux
    			cout << l << " : ";
    			int r=0;
    			while (r<t1[l-1]){
    				cout<<"*";
    				r=r+1;
    			}
    			cout<<"C";
    			int s=1;
    			while (s<d-t1[l])
    				cout<<" ";
    			cout<<"|"<<endl;
    			l=l+1;
    		}
    		cout << "  ";
    	 	for (int i=1; i<d+4; i++)   // boucle affichage dernière ligne ligne
    			cout << "-";
    		cout << endl;
    }
     
    int main(void){
    	int nbreche,d, k=0, ale;
    	int t1[nbreche];
    	char c;
    	cout << "Combien y a t'il de participant au tiercé quarté quinté+ d'aujourd'hui ?" << endl;
    		cin >> nbreche;
    		while (nbreche>=10){
    			cout << "entrer un nombre inférieur a 10" << endl;
    			cin >> nbreche;}
    		cout << "Quelle est la distance du parcours ?" << endl;
    		cin >> d;
    	while (k<nbreche)
    		t1[k]=0;
    	int m=maxi(t1);
    	cin>>m;
    	while (m<d){
    		cin>>c;
    		srand(time(NULL));
    		ale=(rand() %nbreche)+1;
    		t1[ale]=t1[ale]+1;
    		affichage(t1,nbreche,d);
     
    	}
    }
    Il compile mais rien à l'execution je pense que le problème vient de l'appel à mes fonctions mais je ne sais pas .

    Merci à vous.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour et bienvenu,
    Je n'ai pas tout lu, mais les deux premières lignes de ton main me posent question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	int nbreche,d, k=0, ale;
    	int t1[nbreche];
    Ca compile ??? Je comprendrais que ça ne marche pas car quelle est la taille de t1 i.e. quelle est la valeur de nbreche ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    bonjour
    nbreche est rentrée par l'utilisateur ensuite. Mais c'est vrai que je trouve cela bizarre mais je ne vois pas ce qui cloche .
    Oui oui il compile

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Ou alors je pourrais déclarer mon tableau main apres avoir lu la valeur de nbreche?

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    En théorie, il me semble que ce n'est pas standard de faire int t1[nbreche]; si nbreche n'est pas une constante.
    Bon, souvent tes variables ne sont pas initialisées. Ensuite, ne soit pas radin ou fainéant : tu peux donner des noms à tes variables qui font plus de 3 caractères
    Voici un début repris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int main(void){
    	cout << "Combien y a t'il de participant au tiercé quarté quinté+ d'aujourd'hui ?" << endl;
                    int nombre_chevaux(0);
    		cin >> nombre_chevaux;
    		while (nombre_chevaux>=10){
    			cout << "entrer un nombre inférieur a 10" << endl;
    			cin >> nombre_chevaux;}
    		cout << "Quelle est la distance du parcours ?" << endl;
                    int distance(0);
    		cin >> distance;
            std::vector<int> t1(nombre_chevaux,0);
            int le_max=*std::max_element (t1.begin(),t1.end());
    Je te laisse continuer

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Je te laisse continuer
    Pour cela, je te conseille de faire un petit tour sur la page tutoriels ou sur la F.A.Q. et de regarder ce qui concerne le C++ en général et la S.T.L. en particulier (conteneur, algorithme, etc).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Bonjour oui j'voue le prof m'as dit aussi que j'étasi fénéant pour les noms. Je ne comprend pas
    int nombre_chevaux(0) que fait le (0) c'est une initialisation??
    Et pour la ligne
    std::vector<int> t1(nombre_chevaux,0); je ne sais pas du tout ce que c'est ni std ni vector<int>

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Je ne peux pas non plus utiliser les pointeurs.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Je viens d'échanger la place de déclaration du tableau et du coup il complile toujours il me demande le nombre chevaux et la distance et apres plu riens

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Par défaut
    Apparament un des problèmes serait la fonction affichage qui ne renvoie rien est ce que je dois pas mettre string affichage(..................) plutot que void?

    Merci

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    Quel est l'objectif de l'exercice ? Utiliser des tableaux, définir des fonctions, etc ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/11/2005, 18h22
  2. [FLASH MX2004] Course de bateaux
    Par Kalyptus dans le forum Flash
    Réponses: 9
    Dernier message: 31/05/2005, 19h26
  3. Réponses: 2
    Dernier message: 15/02/2005, 20h32

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