Partage
  • Partager sur Facebook
  • Partager sur Twitter

initialisation tableau de caractere

    9 mars 2008 à 15:51:45


    Bonjour,

    Je cherche a remplir un tableau de caracteres avec tous
    mots de 3 lettres existants. Voila ce que j'ai fait:

    1. char key_3[10000]={'AAH', 'AAL' ,'AAS', 'ABA', 'ABO', 'ABS', 'ABY', 'ACE', 'ACT', 'ADD', 'ADO', etc....};


    Le probleme est que ma console m'afficher:
    1. warning:  overflow in implicit constant conversion
    2. warning: multi-character constant


    Si quelqu'un connait le probleme...
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2008 à 16:16:11

      Bonjour,
      Tu définis un tableau de char ( 1 caractère répété n fois, ici 1000 fois) et tu l'initialises avec des groupes de plusieurs caractères comme s'il s'gissait d'un tableau à 2 dimensions :

      1. char key_3[10000]= { 'AAH', 'AAL' ,'AAS', 'ABA', 'ABO', 'ABS', 'ABY', 'ACE', 'ACT', 'ADD', 'ADO', etc....};


      Si il s'agit d'un tableau à une dimension tu dois l'initialiser de la manière suivante :
      1. char key_3[10000]=  "AAHAALAAS.........ADO", etc....};

      mais tu ne peux pas directement accéder aux groupes de 3 lettres.

      Ou il s'agit d'un tableau à 2 dimensions :
      1. char key_3 [3] [334]= { 'AAH', 'AAL' ,'AAS', 'ABA', 'ABO', 'ABS', 'ABY', 'ACE', 'ACT', 'ADD', 'ADO', etc....};

      Là tu peux directement accéder aux groupes de 3 lettres.

      Cordialement,
      Christian.

      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2008 à 16:28:51

        merci pour ta reponse. Penses tu qu'il soit possible d'automatiser ce travail? creer 2 boucles "for" pour creer toutes les combinaisons possibles
        de mots de 3 lettres. Voila le code que j'ai commence a faire, mais ca ne compile pas:
        1. for(i=0;i<26;i++)
        2. {
        3.     for(j=0;j<26;j++)
        4.     {
        5.         for(k=0;k<26;k++)
        6.         {
        7.           tab_3=('a'+i)+('a'+j)+('a'+k);
        8.         }
        9.     }
        10. }
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2008 à 16:31:45

          Je propose que tu utilises le code ASCII pour l'incrémentation.
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2008 à 16:38:58

            C'est monstrueux comme résultat attendu, ça doit donner un truc de l'ordre de 3 puissance 26 possibilités, non ?

            Christian.
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2008 à 16:43:15

              oui c'est ca! mais c'est necessaire pour mon sujet malheureusement, etje ne sais pas si c'est techniquement possible...
              • Partager sur Facebook
              • Partager sur Twitter
                9 mars 2008 à 17:04:46


                Si on ne fait pas d'erreur de raisonnement ça nous fait :

                2 541 865 828 329 possibilités, on met ça où ? Dans un fichier pobablement ?

                Christian.
                • Partager sur Facebook
                • Partager sur Twitter
                  9 mars 2008 à 17:11:15

                  oui dans un fichier texte, je crois que ca serait difficile de faire autrement..
                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 mars 2008 à 17:11:46

                    Pas compliqué à faire comme boucle...réfléchis bien (je te mets la réponse en secret).

                    1. compteur = 0;
                    2. value = 'a';
                    3. for(i=0;i<26;i++)
                    4. {
                    5.     for(j=0;j<26;j++)
                    6.     {
                    7.         for(k=0;k<26;k++)
                    8.         {
                    9.              key[compteur][0] = (i + value);
                    10.              key[compteur][1] = (j + value);
                    11.              key[compteur][2] = (k + value);
                    12.              compteur++;
                    13.         }
                    14.     }
                    15. }



                    Où value est la valeur ASCII du caractère 'a'.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      9 mars 2008 à 17:23:20

                      Sans pointeur aussi ça va consommer énormément de mémoire car on sait pas si 10000 suffit surtout si tu veux essayé toutes les lettres :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 mars 2008 à 17:28:49

                        Tu ferai comment avec les pointeurs? J'ai essaye le code de Aleksab il met n'importe quoi dans mon fichier..
                        • Partager sur Facebook
                        • Partager sur Twitter
                          9 mars 2008 à 17:32:14

                          Ca tiendra sur ton (tes) disque(s) ? Mes 2 disques ne font que 226 GO chacun. Là on est dans les 7500 Go, si je ne m'abuse.

                          Cordialement,
                          Christian.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            9 mars 2008 à 17:32:17

                            J'ai fait ça rapide, sans vérifier...

                            Mais je sais pas si 1000 suffit,en effet.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              9 mars 2008 à 17:34:58

                              Oui ca va tenir j'ai 8000 Go de memoire...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                9 mars 2008 à 17:56:38

                                Citation

                                C'est monstrueux comme résultat attendu, ça doit donner un truc de l'ordre de 3 puissance 26 possibilités, non ?



                                mmhh, ton calcul me semble erroné.

                                3 lettre par combinaison avec 26 lettre differente, ça serait plutôt de l'ordre de 26 * 26 * 26, donc 26^3 et non pas 3^26 ^^

                                Cela donne 17576 mot possible avec 3 lettre, cela me semble plus plausible que 2 541 865 828 329 possibilité :-°
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  9 mars 2008 à 18:07:26

                                  Citation : Brugnar

                                  Citation

                                  C'est monstrueux comme résultat attendu, ça doit donner un truc de l'ordre de 3 puissance 26 possibilités, non ?



                                  mmhh, ton calcul me semble erroné.

                                  3 lettre par combinaison avec 26 lettre differente, ça serait plutôt de l'ordre de 26 * 26 * 26, donc 26^3 et non pas 3^26 ^^

                                  Cela donne 17576 mot possible avec 3 lettre, cela me semble plus plausible que 2 541 865 828 329 possibilité :-°



                                  lool, c'est de la lotterie ça :p

                                  Essayes plutôt avec 3 lettres comme tu veux mais seulement avec A par exemple.
                                  Tu vas entrer dans l'infini et puis c'est pas question de 8Tera que tu as de mémoire, mais t'aurai le résultat affiché dans quelques années :lol:

                                  Il va a falloir laisser ton pc allumé pendant des années avant de pouvoir voir le résultat je suppose..Exactement comme la tour de Hanoie si on donne par exemple 27disques, ça prendra 2^27 ans o_O

                                  Bonne chance
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    9 mars 2008 à 18:42:46

                                    Bonjour,

                                    J'me disais aussi !!!!!!!

                                    Merci Brugnar,

                                    Cordialement
                                    Christian.
                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    initialisation tableau de caractere

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown