Boucle for bizzard

Signaler
Messages postés
127
Date d'inscription
mardi 23 août 2005
Statut
Membre
Dernière intervention
9 mai 2011
-
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
-
Salut les amis !

Bon voilà mon problème. J'ai une boucle for tiré d'une programme qui fonctionne correctement.

Ce n'est pas moi qui l'ai fait. Pourtant je voudrais simplifier cette boucle afin de la transcrire dans un autre langage :

for(b=c ; d+=f[b]*a , f[b]=d%--g , d/=g-- , --b ; d*=b);


J'ai mis en rouge la condition de la boucle, et donc observez moi cette
horreur ! Et pourtant ça marche ! Et moi je voudrais juste une
condition toute belle...

Ou tout simplement, à quoi sert la virgule entre les conditions.


Bon ben j'ai tout dit, si il y a un génie parmis l'assemblé.. à lui de jouer

merci

3 réponses

Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
Je suis d'accord c'est plus joli comme ca :
for(b=c ;b;b--;d+=f[b]*a , f[b]=d%--g , d/=g-- ,d*=b); .. mais bon

euh sinon

for(b=c;b;b--)
{
.. ton code ...
d+=f[b]*a;
g--;
f[b]=d%g;
d/=g;
g--;
d*=b;
}
//repetion si tu en as besion apres...
d+=f[b]*a;

g--;

f[b]=d%g;

d/=g;

g--;

d*=b;
ca marche pas?
Messages postés
56
Date d'inscription
dimanche 13 novembre 2005
Statut
Membre
Dernière intervention
11 juillet 2006

pour moi ya aucune condition da dedans c'est toujour vrais :s:s:s
Messages postés
540
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
1 octobre 2007
2
for(b=c ; d+=f[b]*a , f[b]=d%--g , d/=g-- , --b ; d*=b);
ce qui compte c'est la derniere , donc --b et --b est faux quand b = 0 (tous les bits a 0 ), c'est a dire quand b vaut 1 car on decremente avant
le test ( -- placé avant b...)