Optimise une boucle

novice -  
 novice -
Bonjour,





bonjour le forum j'ai un pb avec une boucle qui prends beaucoup de temps merci pour vos reponses:

p1 = 211876: p2 = 17296: p3 = 1081: p4 = 46
s1 = 1: s2 = 2: s3 = 3: s4 = 4: s5 = 4

st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s1 = s1 + 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st1

st2: If nx > p2 Then nx = nx - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st2

st3: If nx > p3 Then nx = nx - p3: p3 = p3 - p4: p4 = p4 - 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st3

st4: If nx > p4 Then nx = nx - p4: p4 = p4 - 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st4

s5 = s5 + nx: s(1) = s1: s(2) = s2: s(3) = s3: s(4) = s4: s(5) = s5

1 réponse

loupius Messages postés 789 Statut Membre 148
 
Je ne sais quel langage tu utilises mais tu peux gagner un peu de temps en remplaçant:
st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: s1 = s1 + 1: s2 = s2 + 1: s3 = s3 + 1: s4 = s4 + 1: s5 = s5 + 1: GoTo st1
par
n=0
st1: If nx > p1 Then nx = nx - p1: p1 = p1 - p2: p2 = p2 - p3: p3 = p3 - p4: p4 = p4 - 1: n = n + 1: GoTo st1
s1 = s1 + n: s2 = s2 + n: s3 = s3 + n: s4 = s4 + n: s5 = s5 + n
Bonne continuation
1
novice
 
merci pour votre réactivité la boucle tourne tres bien.elle est juste lente
je souhaiterai savoir si il existe une formule capable de donnee le meme resultat ,c'est en vba excel
0