[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
A voir également:

3 réponses

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
MRextra Messages postés 154 Statut Membre 35
 
pourquoi {b=b++;} fais b++ seulement
2
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