[Language C] front montant

jeannot -  
MRextra Messages postés 154 Statut Membre -
Bonjour, je voudrai incrémenter une variable lorsqu'une autre passe à 1. J'ai pensé a l'algo suivant:

int a,b;
if(a==1)
{b=b++;}

mai le probleme est que la variable b va s'incrémenter a chaque temps de cycle ou a=1 et je voudrai que b s'incrémente uniquement lorsque a passe de 0 à 1
merci de votre aide

3 réponses

  1. crabs Messages postés 909 Statut Membre 507
     
    Salut,
    Pour le principe : tu mémorise l'état précédent de ton 'a'
    /* déclaration des variables */
    int a, a_prec, b ;
    
    /* initialisation des variables */
    a=0 ; a_prec=0 ; b=0 ;
    
    /* boucle de traitement */
    if ( a != a_prec ) /* on vient de détecter un front
      if ( a == 1 ) /* c'est un front montant */
        b++ ;
    /* on mémorise l'état principal */
    a_prec = a ;
    /* fin de la boucle de traitement */
    

    A+, crabs
    9
  2. MRextra Messages postés 154 Statut Membre 35
     
    pourquoi {b=b++;} fais b++ seulement
    2
  3. matmat27 Messages postés 601 Statut Membre 147
     
    Salut,

    je ne comprends pas trop ton problème mais commence peut être par initialiser ta variable 'a' à 0 (int a=0).
    Une fois que 'a' est passé à 1, il y restera donc c'est normal que 'b' s'incrémente à chaque passage. Peut être faudrait-il qu'une fois que 'b' à été incrémenté que tu remettes ta variable 'a' à 0 (ou une autre valeur).

    Mais bon, il me faudrait un peu plus de code pour te conseiller un peu plus.

    A+.
    1