[Language C] front montant

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. 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
    1. 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+.