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

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