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++Builder Discussion :

Machine d'etats en C


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par d�faut Machine d'etats en C
    Bonjour,

    Je travaille sur c++ builder, et j'essaie de faire une machine d'etat.

    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
     
    int a=0;
    while(a=0){
    switch(etat)
    {
    case 1 :
    Fonction1();
    etat=2;
    break;
    case 2 :
    Fonction2(); 
    etat=3;
    break;
    case 3 :
    Fonction3(); 
    a=1;
    break;
    }}
    La forme est-elle bonne ?Parce que mon programme ne fonctionne pas...

  2. #2
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    while(a=0) renvoie toujours 0 donc ton code n'est jamais ex�cut�. Tu aurais utilis� le mode Debug tu t'en serais aper�u.
    Tu as s�rement voulu faire : while(a==0) ?

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par d�faut
    Au temps pour moi, faute de frappe :/
    C'est bien a==0. Sinon c'est bon ?

  4. #4
    Membre chevronn�
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    D�tails du profil
    Informations personnelles :
    �ge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par d�faut
    Essaie le mode "Debug". C'est peut �tre la valeur de etat qui va pas.

  5. #5
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Salut,
    s'il te plait utilise les balise [ CODE ] en appuyant sur le # au dessus de la fen�tre o� tu tapes ton message, c'est plus lisible.

    Pour ton probl�me, que ce passe-t-il?

    Quand tu mets un point d'arret (en appuyant sur F5 sur la ligne) sur le while et que tu ex�cute ton code pas � pas (en appuyant sur F8 ou F7 pour rentrer dans les fonctions) peux tu nous dire o� ton code bloque?

    Comme ca, perso je ne vois pas d'erreur sur cette partie. Le mode pas � pas peux t'aider � plus cobler le probl�me.

    Affaire � suivre ...

  6. #6
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par d�faut
    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
    int a=0;
     
    while( a==0 )
    {
      switch(etat)
      {
      case 1 :
        Fonction1();
        etat=2;
        break;
     
      case 2 :
        Fonction2(); 
        etat=3;
        break;
     
      case 3 :
        Fonction3(); 
        a=1;
        break;
      }
    }
    Vu comme �a, il n'y a pas d'erreur apparente.
    Juste une petite inqui�tude au niveau de la condition de sortie de boucle.
    J'esp�re que la variable 'a' est mise � '0' dans une des fonctions appel�es car sinon, cette boucle est infinie.
    La question est: que se passe-t-il dans ces fonctions ?
    Si elles attendent sur un �v�nement d'un composant, il faut penser � traiter les messages Windows avec un 'Application->ProcessMessages()'.

    Mais au fait: qu'est-ce qui ne marche pas dans ce programme ?

  7. #7
    Membre �m�rite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    916
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 916
    Par d�faut
    Je me permet de r�pondre � ta place Jerepain, pour le "a" il est pass� � 1 dans l'�tat 3 (case 3) et le changement de la variable "etat" est bien impl�ment�.

    Par contre, je te rejoins sur ta derni�re question rtg57, Qu'est ce qui ne fonctionne pas?

  8. #8
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par d�faut
    C'est bon j'ai reussi a faire fonctionner mon programme
    Merci

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Par d�faut
    En fait c'�tait pour savoir d'o� venait mon erreur, et si ma machine d'�tats devait bien fonctionner ^^

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 05/09/2009, 16h12
  2. Sortir a tout moment d'une machine d'etats
    Par Jerepain dans le forum C++Builder
    R�ponses: 3
    Dernier message: 08/06/2007, 17h15
  3. machine a etat et timer
    Par Fry dans le forum C++
    R�ponses: 2
    Dernier message: 25/06/2006, 14h29
  4. Machines d'etats
    Par Fooshi dans le forum Algorithmes et structures de donn�es
    R�ponses: 3
    Dernier message: 18/03/2004, 10h19

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