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 :

[C++]Générateur de mot?


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut [C++]Générateur de mot?
    Bonjour,

    J'ai besoin de votre aide, parce que je suis bloqué dans un petit programme en C++ qui normalement juste mais que ne me donne pas les bons résultat, ça fait quelque temps que j'essaye de trouver la solution mais rien.
    Bon, le but que je veux atteindre est un programme qui génère des mots de n caractères avec ordre alphabétique ( ex: si n = 3 alors je devrai avoir comme résultat sur l'écran aaa aab aac aad...etc...)
    Bon la solution bien sûr est de créer une procédure récursive avec comme paramètre d'entrée la position suivante du caractère dans le mot à générer :

    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
    ...
    static char used_char[26];//tableau de caractères utilisés ( de 'a' à 'z') rempli auparavant
    static char word[3];
    ...
    void genr(int j)
      {
         static int p,d;
         d=j;   
          for(p=0; p<=25; p++)
            {
              word[d]=used_char[p];
              if(d=2){word[3]='\0';printf("%s\n",word);}
                      else{ d++;genr(d);}
            }
      } 
    ...

    J'obtiens seulement aas aab....aaz, c'est tout alors que normalement il devrait aller jusqu'à zzz.

    Donc j'aimerai savoir ou est le problème?
    sinon, est-ce qu'il y a une autre solution pour arriver au bon résultat?

    J'ai chercher partout mais j'ai rien trouvé, vous êtes mon dernier espoir.

    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    J'ai pas tout regardé, mais ceci :
    Devrait être ceci :

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Pourquoi incrémenter d dans la boucle ? Elle est bien sensée gérer en permanence le d-ième caractère de la chaine, non ? Donc remplacer par
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 19
    Par défaut
    Salut!

    Merci le problème est résolu

    -Effectivement! c'est juste une erreur d'inattention:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(d=2)
    //normalement c'est
    if(d==2)
    -C'est la même chose concernant:
    Mais je préfére celle que tu m'as proposé, c'est plus propore:
    -Mais la principale erreur était au niveau de:
    puisque j'avais besoin de variable local (variables propres à chaque itération):
    C'est acause de ça que le résultat s'arrêté au niveau de aaz

    Merci beaucoup pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. générateur de mot 1-8
    Par jack_x4 dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2010, 21h05
  2. générateur de mot de passe
    Par cyborgtun dans le forum VB.NET
    Réponses: 0
    Dernier message: 19/05/2010, 21h10
  3. Générateur de mots à partir d'un alphabet
    Par saad.hessane dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 31/07/2009, 15h10
  4. générateur de mot de passe
    Par zais_ethael dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 18/05/2006, 15h47
  5. Générateur de mot de passe
    Par christel1982 dans le forum ASP
    Réponses: 2
    Dernier message: 16/11/2005, 12h25

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