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

Algorithmes et structures de données Discussion :

compteur alphanumérique à choix


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Par défaut compteur alphanumérique à choix
    voilà mon projet
    1) definir un nombre de position
    2) donner les elements de notre compteur (ex : 6bu8p)
    3) faire défiler (affichage) le compteur typiquement comme un compteur numérique
    dans ce cas
    6
    b
    u
    8
    p
    66
    6b
    6u
    68
    6p
    b6
    bb
    bu
    b8
    bp
    u6
    ...
    disons que j'arrive à quelque chose au début mais dès le 3ème rang je m'y perds un peu
    comment puis je faire
    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Eh bien tu comptes dans un base n avec donc n caractères différents.
    Ces n caractères peuvent être rangés dans un tableau.
    Puis tu comptes
    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
     
    i = 1
    tant que pas_fini // en fait tu décides quand arréter
    	afficher(i)
            i <= i + 1
    fin tant que
     
    procedure afficher( entier nb)
    digit : chaine de caractères contenant les symboles utilisés pour afficher ton nombre
    affi : chaine de caractères "assez longue" pour afficher ton nombre en base n initalisée avec des espaces
    indice : entier indiquant la position du caractère en cours dans la construction de la chaine
    m : entier recoit le modulo d'un nombre en base n
    debut
        indice <- longueur de affi
       // ecriture de ton nombre en base n
       tant que nb <> 0 faire
           m <- nb mod 
           affi(indice) <- digit(m + 1) // en supposant que la numérotation des chaînes commence à 1
           nb <- nb div n
           indice <- indice - 1
       fin tant que
       ecrire affi
    fin
    Attention à longueur de la chaine d'affichage !
    On peut faire plus rapide en ayant une chaine de caractère d'affichage déjà prête et en changeant les caractères de cette chaîne.
    Si tu ne trouves pas, je t'indiquerai.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    non. Trap D, ton algo fonctionne pour une représentation en base N en utilisant les chiffres 0 .. n-1, ce qui est désiré ici c'est une représentation en base N en utilisant les chiffres 1 .. n.

    Chris, puisque c'est un exercice, je ne vais pas donner plus de renseignements.

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Je ne comprends pas ce que tu veux dire, les chiffres n'ont aucune valeur numérique, mon algo fonctionne car il utilise n caractères différents.
    Maintenant, c'est vrai que j'ai un peu trop tendance à donner mes solutions...
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    TrapD, avec l'exemple donné: 6bu8p, ce que tu fais c'est attribuer à "6" la valeur 0, à "b" la valeur 1, ... à "p" la valeur 5 et à afficher en base 6.

    La base 6 est une bonne idée, mais il faut attribuer à 6 la valeur "1", à "b" la valeur 2, ... à "p" la valeur 6.

  6. #6
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut Re: compteur alphanumérique à choix
    Avec ces valeurs (ou chiffres) :
    6
    b
    u
    8
    p
    Et avec ces "nombres" de la première "dizaine" :
    66
    6b
    6u
    68
    6p
    Il me manque un "truc" ...

    Si l'on prend un "mappage" ainsi :
    • 1 -> 6
      2 -> b
      3 -> u
      4 -> 8
      5 -> p

    La liste des "nombres" de la première "dizaine" est : 11, 12, 13, 14, 15
    La seconde "dizaine" est : 21, 22, 23, 24, 25
    etc.

    On a alors une numération en base 5, mais sans 0.

    Je ne suis pas expert en numération, donc cela choque mon "sens numérique".

    Si pour éviter ça, on mappe ainsi :
    • 0 -> 6
      1 -> b
      2 -> u
      3 -> 8
      4 -> p

    Les listes de nombres me choquent encore davantage :
    • 0, 1, 2, 3, 4
      00, 01, 02, 03, 04
      10, 11, 12, 13, 14
      ...

    Tout cela me plonge dans la perplexité

    Un expert en numération pourrait-il m'éclairer ?

  7. #7
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    C'est bien de la numérotation en base 5 (et non 6 comme je l'ai écrit dans un autre message, je ne sais apparemment plus compter :-)) avec les chiffres de 1 à 5 plutôt que de 0 à 4. La manière de calculer la valeur reste la même.

    66 par exemple est 1*6 + 1 = 7
    bb est 2*6 + 2 = 14
    bbb est 2*6^2 + 2*6 + 2 = 50

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Je n'avais pas fait attention à cette série
    66
    6b
    6u
    68
    6p

    Je comprends mieux ta remarque Jean-Marc.Bourguet
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  9. #9
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    C'est bien de la numérotation en base 5 (et non 6 comme je l'ai écrit dans un autre message, je ne sais apparemment plus compter :-)) avec les chiffres de 1 à 5 plutôt que de 0 à 4. La manière de calculer la valeur reste la même.

    66 par exemple est 1*6 + 1 = 7
    bb est 2*6 + 2 = 14
    bbb est 2*6^2 + 2*6 + 2 = 50
    Justement, en procédant ainsi, n'ayant pas de zero, je ne sais pas comment écrire 6 (de notre base à nous), ni 12, ni aucun autre multiple de 6.

    On passe de p = 5 à 66 = 7 (ou 1*6 + 1).
    De même, on passe de 6p = 11 (ou 1*6 + 5) à b6 = 13 (ou 2*6 + 1).

    Je sens confusément que je passe à côté de quelquechose d'évident, et je n'aime pas ça

  10. #10
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par 2Eurocents
    Citation Envoyé par Jean-Marc.Bourguet
    C'est bien de la numérotation en base 5 (et non 6 comme je l'ai écrit dans un autre message, je ne sais apparemment plus compter :-)) avec les chiffres de 1 à 5 plutôt que de 0 à 4. La manière de calculer la valeur reste la même.

    66 par exemple est 1*6 + 1 = 7
    bb est 2*6 + 2 = 14
    bbb est 2*6^2 + 2*6 + 2 = 50
    Justement, en procédant ainsi, n'ayant pas de zero, je ne sais pas comment écrire 6 (de notre base à nous), ni 12, ni aucun autre multiple de 6.

    On passe de p = 5 à 66 = 7 (ou 1*6 + 1).
    De même, on passe de 6p = 11 (ou 1*6 + 5) à b6 = 13 (ou 2*6 + 1).

    Je sens confusément que je passe à côté de quelquechose d'évident, et je n'aime pas ça
    Aarg, décidément, je n'arrive pas à compter juste J'écris que c'est de la base 5, puis je fais les calculs comme en base 6 :-(

    On a 5 "chiffres" donc on écrit en base 5 (de même qu'avec 10 chiffres -- y compris le 0 -- on écrit en base 10). Et avec une notation positionnelle on multiplie les chiffres par des puissance de la base, donc des puissances de 5.

    "66" c'est donc 1*5^1 + 1*5^0 = 6
    "bb" c'est 2*5^1 + 2*5^0 = 12
    "bbb" c'est 2*5^2 + 2*5^1 + 2*5^0 = 37

    En espérant ne pas avoir fait d'erreur cette fois-ci.

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    "bbb" c'est 2*5^2 + 2*5^1 + 2*5^0 = 37
    non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "bbb" c'est 2*5^2 + 2*5^1 + 2*5^0 = 2 * 25 + 2 * 5 + 2 = 62

    Le problème est l'absence de 0, on ne le représente pas dans ce système.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Trap D
    "bbb" c'est 2*5^2 + 2*5^1 + 2*5^0 = 37
    non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "bbb" c'est 2*5^2 + 2*5^1 + 2*5^0 = 2 * 25 + 2 * 5 + 2 = 62
    Seule solution, je vais me coucher.

  13. #13
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Si je ne me suis pas trompé cette fois-ci, (en fait j'ai changé la méthode d'affichage, on obtiens ceci qui est effectivement perturbant : p => 10 en base 5 !
    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
         6     1
         b     2
         u     3
         8     4
         p    10
        66    11
        6b    12
        6u    13
        68    14
        6p    20
        b6    21
        bb    22
        bu    23
        b8    24
        bp    30
        u6    31
        ub    32
        uu    33
        u8    34
        up    40
        86    41
        8b    42
        8u    43
        88    44
        8p   100
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. [AC-2007] Incrémenter un compteur alphanumérique
    Par tibofo dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/01/2015, 12h52
  2. Choix de technologie pour Gauges, Compteurs graphiques.
    Par Contrec dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 20/01/2010, 15h18
  3. [Choix] SGDB pour Entreprise : coût, efficacité, etc.
    Par grassat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 15/06/2002, 08h52
  4. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23
  5. Choix d'un ORB
    Par Anonymous dans le forum CORBA
    Réponses: 4
    Dernier message: 06/05/2002, 11h15

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