[Language C] front montant

Fermé
jeannot - 12 janv. 2006 à 15:25
MRextra Messages postés 153 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 23 février 2009 - 16 mars 2008 à 22:23
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

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
12 janv. 2006 à 17:50
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 153 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 23 février 2009 35
16 mars 2008 à 22:23
pourquoi {b=b++;} fais b++ seulement
2
matmat27 Messages postés 594 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 18 novembre 2010 147
12 janv. 2006 à 17:13
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