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 :

Générateur de codage


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut Générateur de codage
    Bonjour a tous,

    Je ne suis vraiment pas specialise en C (lol ni en francais desole) mais dans le but d'un projet ayant pour sujet les machines a etat finit je voudrais generer tous les codes possible pour 12 states.

    example : codage 1 codage 2 codage n
    state 0 is 0000 1101 xxxx
    state 2 is 0001 0110 xxxx
    ...
    state 11 is 1010 0101 xxxx

    je pense qu'il est possible de generer environs 12^12 codes et je voudrais pouvoir le faire en C.

    Mon algo principal marche mais je dois rentrer les 12 codes manuellement ... dans un array tab[4][12] (12 etats de 4 bits).

    Le mieux, je penses, serait de generer un tableau tab[4][12][12^12]....

    C'est a ce point la que j'aurai besoin de tous vos talents pour pouvoir me donner une idee pour generer un tel tableau

    J'espere avoir ete assez clair dans ma description, je suis a votre disposition pour tous renseignement supplementaire ...

    Je vous en remercie d'avance.

    David.

  2. #2
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    Bonjour, je ne suis pas sûre d'avoir bien compris le problème...
    Mais pourquoi ne pas se créer une structure qui contiendrai la combinaison de quatres bits (au pire 16 structures différentes même si cela n est pas trés élégant !) et de ce fait tu n a plus qu a gérer un tableau de structures ?

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Fao,
    Citation Envoyé par darock Voir le message
    Le mieux, je penses, serait de generer un tableau tab[4][12][12^12]....
    Je ne pense pas : 2*12*(12^12) = 427 972 821 516 288

    ça fait un peu beaucoup, non ?

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut
    Pour essayer d'eclaicir ce sujet je dirai que ce programme a pour but de trouver le meilleur codage pour les 11 états, (mon prog effectue un calcul en fct du codage utiliser), mais pour trouver le meilleur il me faudrai un moyen de les générer tous ...

    Comme la signaler droggo, le nombre de code a générer est très grand mais serait il possible d'en générer non pas la totalité mais déjà une grande parti.

    Je ne suis pas tres fort en struc (mais si je comprend ton idee serai de créer une struc contenant 4 bit et d'utiliser 12 fois cette struc pour représenter un codage...)

    mais comment les générer tous (ou une parti seulement..)?

    encore merci du coup de main.

    david

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par darock Voir le message
    Je ne suis vraiment pas specialise en C (lol ni en francais desole) mais dans le but d'un projet ayant pour sujet les machines a etat finit je voudrais generer tous les codes possible pour 12 states.

    example : codage 1 codage 2 codage n
    state 0 is 0000 1101 xxxx
    state 2 is 0001 0110 xxxx
    ...
    state 11 is 1010 0101 xxxx

    je pense qu'il est possible de generer environs 12^12 codes et je voudrais pouvoir le faire en C.
    La valeur possible de 12 états, c'est, par exemple 0 à 11 (0000-1011). Je ne vois pas trop où est le problème.

    Ca peut même être crée automatiquement avec un enum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum sts {STS_A, STS_B, STS_C /* ... */ STS_NB};
    Si c'est pour une machine à état, la question est de savoir combien il y a d'évènements.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum evt b{EVT_A, EVT_B, EVT_C /* ... */ EVT_NB};
    Tu veux coder une machine à état avec une matrice états/évènements ?

    Il faut définir une transition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct trans
    {
       enum sts next; /* etat suivant */
       action_f *pf;   /* action de la transition */
    };
    Nota : action_f est un typedef qui reprend le profil unique de l"action associée... Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef int action_f (enum evt evt, void *contexte);
    puis créer un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #define ___ -1 /* no change */
    #define nop NULL /* NOP */
     
    struct trans[STS_NB][EVT_NB] =
    {
    /*           EVT_A      EVT_B      EVT_C      EVT_D */
    /* STS_A */ {___,nop},{___,nop},{___,nop},{___,nop},
    /* STS_B */ {___,nop},{___,nop},{___,nop},{___,nop},
    /* STS_C */ {___,nop},{___,nop},{___,nop},{___,nop},
    /* STS_D */ {___,nop},{___,nop},{___,nop},{___,nop},
    };
    Ce tableau est 'vierge'. On le modifie ensuite en fonction de la spécification de la machine à état.

    A l'exécution, on garde l'état courant en mémoire (il faut un état initial) et selon l'évènement entrant, le couple de coordonnées état/évènements permet d'atteindre une cellule unique tu tableau qui dit ce qu'il fait faire (la transition):
    • quel changement d'état ?
    • quelle action associée ?

    J'ai mis au point une méthode assez automatisée pour coder les FSM (Finite State Machines) :

    http://emmanuel-delahaye.developpez.com/clib.htm
    Module FSM

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut
    Merci de ta reponse, en fait je ne fais pas un FSM mais un calcul prenant en compte le codage des different etats (je travailles sur le "low power state assigment" donc je dois affecter le meilleur codage posible c'est a dire l etat 0 doit etre 0000 ou 0001 ou 0010 etc ...)

    mon calcul prend en input les 12 code affecter a chaque state 0,1,2...11 mais pour trouver le meilleur je dois generer tous les autre.
    (ex :
    3,5,11,2...
    2,5,8,1....
    )
    (ce calcul utilise le nombre de bit différent entre deux states )

    je voudrais juste avoir toute ces série de 4 bit utilisant 0..11 dans un tableau ou quoi que ce soit.

    J'espère avoir été plus précis et merci encore de vos réponses

Discussions similaires

  1. Codage d'un générateur de CRC16
    Par webgaro dans le forum Langage
    Réponses: 0
    Dernier message: 02/05/2012, 19h30
  2. [Interbase] [Trigger] Codage
    Par AnestheziE dans le forum InterBase
    Réponses: 9
    Dernier message: 06/11/2003, 14h51
  3. Générateur de doc
    Par chman dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 09/09/2003, 20h37
  4. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00
  5. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49

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